Tag Archives: c#

Lightning Talk Kì 9 – Năm ngôn ngữ lập trình đáng học năm 2018

Vlog này sẽ chia sẻ về những ngôn ngữ lập trình đáng học trong năm 2018 nhé.

Mình đăng trên Channel Youtube trước blog và fanpage khoảng vài hôm. Bạn nào muốn xem trước tiên thì subscribe channel của mình nhé: https://www.youtube.com/c/toidicodedaoblog

Hiện tại đã được gần 4000 sub, nếu lượng subscribe được 5000 mình sẽ cố gắng livestream trên Youtube thường xuyên hơn để tri ân nhe, cảm ơn mọi người 😉.

 

Trong số các ngôn ngữ lập trình này, thứ nào cũng có cái hay cái mạnh riêng nên mỗi người sẽ có cái nhìn khác nhau. Do vậy, mình sẽ cố gắng khách quan hết mức có thể!

Các ngôn ngữ được mình lựa chọn, đánh giá xếp hạng theo sức mạnh của ngôn ngữ, độ phổ biến, nhu cầu tuyển dụng, khả năng tìm việc v..v nha.

Các ngôn ngữ lập trình đuợc nhắc đến trong vlog:

  1. JavaScript
  2. Java
  3. C#
  4. Python
  5. PHP

Bài viết gốc tại blog: https://toidicodedao.com/2018/01/02/top-5-ngon-ngu-lap-trinh-dang-hoc-cho-nam-2018/

Advertisements

Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 2 : Profiler và Command Line

Nối tiếp phần 1, mình sẽ tiếp tục giới thiệu về những công cụ đơn giản, bá đạo mà truờng không hề dạy, làm đồ án cũng không bao giờ dùng. Tuy nhiên, chúng lại đuợc áp dụng trong 96.69% dự án thực tế.

Thông qua những câu chuyện ngắn gọn, mình sẽ giới thiệu và giải thích về các công cụ này nhé. Chúng lần lượt là:

  • Phần 1: Unit Test và Logging
  • Phần 2: Profiler và Command Line

Nhắc lại một tí, hai nhân vật chính trong câu chuyện này là:

  • Tùng, một sinh viên Ép Tao Dê mới ra trường, gia nhập công ty phần mềm Ép Dê Tao với vị trí junior.
  • Sơn, một anh senior dev kì cựu cao to sáu múi.

Profiler – Code chậm thành nhanh, không còn memory leak

Chuyện thứ 3: Mấy tháng sau, Tùng đã không còn là junior developer nữa mà đã… lên chức thành developer. Anh Sơn cũng từ vị trí senior developer leo lên techinical lead.

Duyên trời run rủi, hai người lại bị điều vào chung 1 dự án. Đây là một dự án C#, công việc chính cũng là bảo trì và thêm chức năng mới.

Vì dự án đã được phát triển từ 5,6 năm trước nên code rất nhiều, cấu trúc vô cùng rắc rối và phức tạp. Hồi trước chỉ có khoảng 100-200 user nên không sao, bây giờ hệ thống đã lên tầm 50-100k user nên hệ thống bắt đầu bị chậm, lâu lâu lại crash vì thiếu RAM.

Nhận trọng trách mới, Tùng bắt tay vào optimize code để hệ thống chạy nhanh hơn, ít tốn RAM hơn. Tùng cắm đầu cắm cổ áp dụng đủ mọi kiến thức từ đổi thuật toán, thêm caching, thay ORM. Thế nhưng, sau một tuần, hiệu suất chỉ tăng mỗi … 5-10%.

Thấy tội nghiệp, anh Sơn liền ra tay, hướng dẫn Tùng cách dùng profiler.

Profiler là một công cụ cho phép ta đo đạc thời gian hoạt động, tài nguyên mà các đoạn code sử dụng, từ đó optimize cho hợp lý.

C# Profiler trong Visual Studio
Tùng lần luợt làm theo 4 bước:

  1. Chạy code cùng với profiler một thời gian
  2. Dựa theo profiler tìm, các đoạn code chạy chậm nhất, tốn tài nguyên nhất
  3. Optimize các đoạn code đó
  4. Chạy lại profiler để check kết quả

Đêm đó, hai anh em Sơn Tùng thức suốt đêm tại công ty để tình thương mến thương,… nhầm, để optimize code.

Hoá ra do mỗi lần truy cập, chương trình lại đọc thông tin từ một file text vài trăm MB trên ổ cứng, sau đó không close connection nên bị memory leak.

Anh Sơn chỉ việc load toàn bộ thông tin này lên RAM làm cache, hệ thống chạy nhanh gấp… 5 lần, hết tràn RAM chỉ nhờ 10 dòng code và profiler.

Nhờ profiler, Tùng và anh Sơn nhanh chóng optimize code và fix đuợc memory leak
Bài học rút ra: Profiler là một công cụ rất mạnh mẽ nhưng ít bạn biết vì … làm bài tập và dự án trên trường có bao giờ phải optimize code đâu.

Mỗi ngôn ngữ thường đi kèm với profiler, có khi tích hợp sẵn trong IDE luôn. Do vậy, khi cần optimize code, các bạn hãy nhớ đến profiler nhé.

Command Line – Cảnh giới “thần thánh” không cần chuột

Chuyện thứ tư: Một hôm nọ, Tùng may mắn được ngồi cạnh pair programming với anh Sơn. Tùng để ý anh rất ít khi dùng chuột mà chỉ toàn dùng bàn phím gõ gõ, trên màn hình đen thui nhấp nháy.

Thắc mắc, Tùng hỏi: Sau anh không dùng giao diện cho dễ mà gõ gõ chi vậy anh?

Anh Sơn trả lời: Hở? Em vẫn còn dùng giao điện àh? Chuyển qua dùng Terminal và Vim đi! Tăng ít nhất 50% năng suất làm việc đấy!

Bán tín bán nghi, Tùng cũng bắt đầu tập sử dụng command line và Vim trong các công việc thường ngày: Sửa file, build code, chạy code.

Sau một thời gian, Tùng nhận thấy mình bắt đầu viết code nhanh hơn, thực hiện công việc nhanh hơn, năng suất tăng còn hơn 50% mà anh Sơn đã quảng cáo.

Nhờ làm việc chung với anh Sơn, Tùng cảm thấy trình độ của mình ngày một tăng, tình cảm “chong xáng” dành cho anh cũng tăng theo.

Sự bá đạo của Command Line. Ảnh chôm của codeaholicguy
Command Line là một công cụ vô cùng mạnh mẽ mà nhiều bạn sinh viên/lập trình viên bỏ qua, do đã quá quen thuộc với Windows và IDE.

Ta có thể build code từ command line, sử dụng Git từ command line, thậm chí upload file hoặc deploy code từ command line nốt.

Command Line còn được những bạn làm về mạng hoặc sysadmin ưu dùng. Khi quản lý các server Ubuntu, bạn sẽ không thể dùng giao diện và click như Window mà phải SSH để kết nối tới server, sau đó dùng command line để quản lý.

Hoặc nếu bạn làm Front-end developer, command line càng là người bạn không thể thiếu. Hầu như các tool của mảng front-end (Babel, Webpack, npm) đều dựa trên nền NodeJS, chạy trên command line. Thành thạo command line là nền tảng để sử dụng các tool này.

Do đó, mình khuyến khích các bạn nên học và làm quen cách dùng command line nhé! Ví dụ như trong clip dưới, mình và Codeaholicguy có huớng dẫn cách dùng Git trên command line.

Bạn có thể cài Bash trên Windows 10, hoặc kiếm một con VPS Ubuntu để tập nghịch command line nhé. Ngoài ra, bạn có thể đọc cuốn này để nhập môn cách dùng command line: Learn Enough Command Line to Be Dangerous.

Nếu bạn có hứng thú thì cứ để lại comment nhé. Nếu có nhiều người quan tâm thì sau này mình sẽ có một series riêng về cách dùng command line nha!

Chuyện cuối cùng

Sau đó, anh Sơn và Tùng nhận ra tình cảm của mình dành cho nhau. Hai người sống hạnh phúc bên nhau đến cuối đời. Họ có với nhau một đứa con xinh xắn tên là Sơn Tùng MTP.

Từ đó Tùng và anh Sơn sống hạnh phúc bên nhau đến cuối đời
Các bạn có thể sẽ thắc mắc: Tại sao ngay từ đầu anh Sơn không vô giúp đỡ Tùng mẹ nó đi, chờ nó te tua rồi mới nhảy vô vậy?? Đương nhiên anh Sơn có thể làm vậy, nhưng để Tùng tự va chạm, tự trải nghiệm sẽ giúp Tùng học được nhiều hơn, nhớ lâu hơn.

Do vậy, khi gặp khó khăn, các bạn có thể hỏi người có kinh nghiệm hơn. Tuy nhiên, hãy tự mình tìm hiểu trước, vừa để cho bản thân mình, vừa tiết kiệm thời gian của người khác nhé!

Kết

Đấy, trong 2 phần của bài viết, mình đã chia sẻ về bốn công cụ đơn giản, mạnh mẽ nhưng rất hữu ích bao gồm:

  1. Unit Test
  2. Logging
  3. Profiler
  4. Command Line

Bạn còn biết công cụ nào nữa không? Hãy chia sẻ và thảo luận trong phần comment nhé ;).

Top 5 ngôn ngữ lập trình đáng học cho năm 2018

Năm cũ vừa hết, năm mới lại qua. Đầu năm mới, mình viết bài này để chia sẻ về những ngôn ngữ lập trình đáng học trong năm 2018 nhé.

Trong số các ngôn ngữ lập trình này, thứ nào cũng có cái hay cái mạnh riêng nên mỗi người sẽ có cái nhìn khác nhau. Do vậy, trong bài này mình sẽ viết khách quan hết mức có thể!

Trong bài viết này, các ngôn ngữ được mình lựa chọn, đánh giá xếp hạng theo sức mạnh của ngôn ngữ, độ phổ biến, nhu cầu tuyển dụng, khả năng tìm việc v..v nha,

Continue reading Top 5 ngôn ngữ lập trình đáng học cho năm 2018

Ngày xửa ngày xưa, lập trình là vốn là chuyện của … đàn bà???

Hiện tại, theo quan điểm của nhiều người, lập trình là một ngành khô khan, không phù hợp với phái nữ. Bản thân trong ngành lập trình, nam giới cũng chiếm tỉ lệ khá lớn.

Tuy nhiên, bạn có biết, những con người đặt nền móng cho ngành lập trình lại là… phụ nữ??

Bạn có biết, ngày xưa tỉ lệ nam-nữ trong ngành lập trình là 50-50, bây giờ chỉ còn 92-8.

Bạn có thắc mắc tại sao ngành lập trình lại có đông nam và ít nữ như vậy hay không?

Nếu có, hãy cùng đọc bài viết để tìm hiểu nhé!

Note: Đây là bài viết nhằm tôn vinh chị em phụ nữ trong ngành code. Mình đặt tựa đàn bà nghe cho nó có vần có điệu hơn thôi, ko có ý coi thường gì chị em phụ nữ đâu nha hehe.

Continue reading Ngày xửa ngày xưa, lập trình là vốn là chuyện của … đàn bà???

Năm ý tưởng cực thú dzị cho đồ án tốt nghiệp ngành CNTT – Phần 2

Sau phần trước có vẻ được khá nhiều bạn ủng hộ, kì này mình tiếp tục giới thiệu 5 ý tưởng đồ án tốt nghiệp cực kì … thú dzị khác nhé.

Năm ý tưởng kì này sử dụng các công nghệ hay hơn, mới lạ hơn và dĩ nhiên cũng… khó hơn so với kì trước. Do vậy, các bạn nên đọc và tìm hiểu kĩ chứ đừng vội lựa chọn kẻo … không đủ sức làm đấy nhé.

À, hù vậy thôi chứ các dự án này đều được sinh viên trường mình hoàn thành cả, do vậy các bạn sinh viên học khá khá tí đều dư sức làm nhé :3.

Continue reading Năm ý tưởng cực thú dzị cho đồ án tốt nghiệp ngành CNTT – Phần 2

Năm ý tưởng cực thú dzị cho đồ án tốt nghiệp ngành CNTT

Gần đây, nhiều bạn sinh viên hay nhờ mình gợi ý ý tưởng làm đồ án tốt nghiệp.

Với các bạn sinh viên, nghĩ ra ý tưởng hay ho đã khó, xem xét ý tưởng đó có khả thi hay không, lưạ chọn công nghệ để thực hiện còn khó hơn. Do vậy, trong bài này, mình sẽ gợi ý một số ý tưởng thú dzị, không quá khó mà lại hay, rất thích hợp để làm đồ án tốt nghiệp.

Bên cạnh đó, mình cũng gợi ý luôn một số công nghệ mà các bạn có thể tìm hiểu và sử dụng cho đồ án nhé!

Các đồ án này cần team khoảng 3-4 sinh viên làm trong 3-4 tháng kể cả viết document, nếu các bạn có ít người hơn thì cứ việc bỏ bớt chức năng ha.

Continue reading Năm ý tưởng cực thú dzị cho đồ án tốt nghiệp ngành CNTT

Jon Skeet đã dạy tôi điều gì về tính khiêm tốn?

Hôm nay, chúng ta tạm bỏ qua những dòng code và những bài technical căng thẳng để cùng nghiền ngẫm về lòng tự cạo, tính khiếm tốn – một đức tính mà các developer khá thiếu.

Continue reading Jon Skeet đã dạy tôi điều gì về tính khiêm tốn?