Tag Archives: architecture

Sự khác biệt giữa Junior và Senior Developer

Thật ra, mình được nghe câu hỏi “Senior Developer thì khác gì Junior Developer” cũng nhiều lần lắm rồi. Hôm nay mình mới có thời gian ngồi suy ngẫm, đúc kết lại để viết một bài đàng hoàng để giải thích về vấn đề này.

Đây là một bài viết khá hay, đáng đọc. Dù bạn có đang là junior – sinh viên mới ra trường, hoặc đang là senior lương chục củ, bài viết này cũng sẽ có ích cho bạn.

 

Note: Thật ra, cộng đồng developer thế giới lẫn Việt Nam đều có rất nhiều tranh cãi về chuyện phân chia title như thế nào, chưa có một chuẩn nào cụ thể, rõ ràng cả!

Do vậy, bài viết này là góc nhìn cá nhân của mình, chứ không phải là chuẩn hay tuyệt đối gì đó. Bạn có thể đồng tình hoặc phản đối nhé, mọi tranh luận đều được đón nhận.

Continue reading Sự khác biệt giữa Junior và Senior Developer

Advertisements

Thật ra, code không quan trọng như bạn nghĩ đâu!

Ý tưởng của bài viết này xuất phát từ một câu hỏi vừa thú vị vừa hơi … buồn cười của một bạn đọc:

Ủa anh ơi, lập trình viên mình thì công việc chính là viết code. Vậy chỉ cần viết code giỏi là thành lập trình viên giỏi thôi! Cần gì những kĩ năng này nọ v...v nữa ạ?

Đây là một câu hỏi rất bình thường và hiển nhiên, không phải hỏi ngu hay gì cả; vì thời mới ra trường mình cũng từng có thắc mắc tương tự.

Giờ đây, sau khi đã bị cuộc đời coder vùi dập vài năm, mình đã trải nghiệm tạm đủ để có thể trả lời câu hỏi này (cho bạn đọc, cũng như cho mình ngày xưa)

Chàng trai à, thật ra, code không quan trọng như bạn nghĩ đâu. Bởi vì, công việc chính của lập trình viên... không phải là viết code!

Continue reading Thật ra, code không quan trọng như bạn nghĩ đâu!

Developer phải làm sao khi làm việc với code … rởm?

Ở bài “Tại sao code của dự án hiện tại nó … tởm quá vậy” trong kì trước, mình đã nói lý do mà code của các dự án càng để lâu sẽ càng loằng ngoằng, rối rắm.

Đây là chuyện bất khả kháng, và chúng ta ít khi có quyền lựa chọn project mình tham gia!

Thay vì than trời, trách đất, chửi mấy lão developer trước kia, bạn hãy cùng mình tìm hiểu một số cách “sống chung với lũ” – tức sống và làm việc chung với code bựa.

Ở cuối bài, mình cũng sẽ chia sẻ một số phương pháp để nâng cao chất lượng code trong dự án, giúp code đỡ “tởm dần đều” qua thời gian nhé!

Continue reading Developer phải làm sao khi làm việc với code … rởm?

CDN là cái gì? CDN tăng tốc độ tải của hệ thống như thế nào?

Hôm nay, chúng ta quay lại tìm hiểu các khái niệm technical hay ho tiếp nhé!

Trong bài này, chúng ta nói về một thiết kế rất đơn giản nhưng lại vô cùng hệ quả. Thiết kế này được rất nhiều ông lớn sử dụng để đảm bảo hệ thống hoạt động nhanh, ổn định cho toàn bộ người dùng trên thế giới.

Thứ mà chúng ta sẽ nói đến trong bài được gọi là hệ thống CDN (Content Delivery Network).

Continue reading CDN là cái gì? CDN tăng tốc độ tải của hệ thống như thế nào?

Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Khi đi học hoặc mới đi làm, chúng ta được dạy về việc viết code rõ ràng, mạch lạc, chất lượng:

  • Code phải được chia tách thành các class/module rõ ràng.
  • Mỗi module phải làm một nhiệm vụ duy nhất, ít lệ thuộc lẫn nhau (high cohension/low coupling)
  • Code được thiết kế theo architecture phù hợp (3-tier hoặc MVC) tùy vào dự án. Có sử dụng design pattern tùy vào vấn đề.

Khi tham gia dự án đầu tiên, hẳn ai cũng mong rằng mình sẽ được tiếp xúc với những dòng code mạch lạc, chất lượng như vậy.

Thế nhưng, đời sẽ cho bạn một gáo nước lạnh ngay lập tức! Khi tham gia một dự án, nhiều khả năng các bạn sẽ được đọc một đống code vừa khổng lồ, vừa tởm vừa rối như canh hẹ.

Có những đống code đọc vào chỉ muốn chửi WTF

Thật đấy, 96.69% code của các dự án lớn đều như vậy cả. Có thể dự án hiện tại bạn đang làm cũng vậy đấy!

Vì sao thế? Cùng đọc bài viết này để biết nhé!

Continue reading Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh

Đã có bao giờ bạn cảm thấy mình giỏi hơn hẳn đồng nghiệp hoặc bạn bè cùng trang lứa chưa?

Đã bao giờ bạn cảm thấy cái ngôn ngữ/framework này “dễ òm”, mình học một tí là được chưa?

Đã bao giờ bạn cảm thấy mình đã “nắm chắc 100%” một ngôn ngữ lập trình nào đó chưa?

Nếu đã từng có lần cảm thấy những điều trên, xin chúc mừng bạn! Bạn đã mắc phải hiệu ứng Dunning Kruger rồi đấy!

Trong bài này, chúng ta cùng mổ xẻ về nguyên nhân, triệu chứng, hậu quả của thứ này nhe. Bạn nào bị thì nhớ đọc kĩ để phòng tránh nhé!

Continue reading Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh

Tại sao đa phần các công ty thích dùng công nghệ “lỗi thời”

Ở kì trước, mình có khuyên các bạn Nên đặt câu hỏi vì sao (why) thay vì làm sao (how). Việc này sẽ giúp các bạn học sâu hơn, nhìn nhận vấn đề tốt hơn!

Ngay sau đó, mình lại nhận được một câu hỏi “Vì sao” khá hay từ vài bạn độc giả:

Anh ơi, tại sao các công ty họ lại thích dùng công nghệ cũ vậy ạ?
Em tự học, tự tìm hiểu Spring/Struts với Angular đồ; vào cty F lại dùng toàn đồ cũ, làm dự án toàn VB.NET rồi JSP rồi jQuery là sao anh?

Hẳn nhiều bạn sinh viên mới ra trường cũng có suy nghĩ tương tự nhỉ!

Bài viết này sẽ cho bạn một góc nhìn khác về các công nghệ mới, cũng như trả lời câu hỏi: Tại sao đa phần các công ty thích dùng công nghệ cũ??

Continue reading Tại sao đa phần các công ty thích dùng công nghệ “lỗi thời”