Học nghề lập trình phần mềm

Bài viết được dịch từ blog Coding Horror

Trong bài viết “Dạy lập trình hiện nay rất tệ: Tại sao chúng ta cần quay lại cách đào tạo 1.000 năm về trước”, Rob Walling đã đưa ra một lý lẽ để thuyết phục ngành giáo dục nên từ bỏ kiểu đào tạo truyền thống thiên về lý thuyết và chuyển qua đào tạo theo hình thức học nghề.

Học lập trình phải kết hợp giữa lý thuyết và thực hànhHọc lập trình phải kết hợp giữa lý thuyết và thực hành

Đọc tiếp >>

Lập trình viên Ferengi

Bài viết được dịch từ trang web Coding Horror

Có một chút ồn ào gần đây về một số bình luận của Joel Spolsky trên podcast của chúng tôi:

Tuần trước, tôi có nghe một podcast trên trang web Hanselminutes, trong đó Robert Martin nói về các nguyên tắc SOLID trong phát triển phần mềm. (Nó là một thuật ngữ rất dễ tìm kiếm trên Google!) Đó là về thiết kế hướng đối tượng và họ gọi là thiết kế agile, nhưng thực ra không phải là như vậy. Đó là các nguyên tắc để làm thế nào thiết kế các class của bạn, và các class đó sẽ làm việc như thế nào. Khi tôi lắng nghe họ, thẳng thắn mà nói, tôi có cảm giác rằng tất cả họ đều có vẻ như có lối suy nghĩ về lập trình cực kỳ quan liêu xuất phát từ tâm trí của những người chưa từng viết thật nhiều code.

Bạn có phải là một lập trình viên Ferengi?Bạn có phải là một lập trình viên Ferengi?

Đọc tiếp >>

Liệu tồi hơn có thực sự tốt hơn?

Bài viết được dịch từ blog Coding Horror

Ngày nay bạn có thể nghĩ rằng Steve Martin là một danh hài bẩm sinh– nhân vật trung tâm của những bộ phim tuyệt vời như ParenthoodFather of the Bride. Nhưng không phải lúc nào cũng như vậy. Sự nghiệp của Steve đã tiến những bước dài vào đầu những năm 80. Tại thời điểm đó, tôi không nghĩ có bất kỳ danh hài nào khám phá ra những góc cạnh hài hước theo cách giống như Steve Martin đã làm. Tôi mãi mãi sẽ nhớ về cuốn sách Cruel Shoes như một xúc cảm tuổi niên thiếu. Đó là một bộ sưu tập các truyện ngắn rất kỳ lạ. Ở tuổi non trẻ đó, tôi chắc chắn chưa từng bao giờ đọc bất cứ điều gì giống như nó. Thật khó để giải thích. Bạn hãy tự đọc và cảm nhận. Dưới đây là nội dung đầy đủ một truyện ngắn cùng tên Cruel Shoes (tạm dịch là đôi giày ác nghiệt):

Trong lập trình phần mềm: liệu tồi hơn có phải là tốt hơn?Trong lập trình phần mềm: liệu tồi hơn có phải là tốt hơn?

Đọc tiếp >>

Lập trình viên và hội chứng tự kỷ

Bài viết được dịch từ trang web Coding Horror

Khi tôi đọc bài viết của Wesner Moise về hội chứng Asperger (một dạng tự kỷ nhẹ), tôi đã không cảm thấy ngạc nhiên. Nhiều người trong số các nhà phát triển phần mềm giỏi nhất mà tôi từng biết đều có một vài đặc điểm đi kèm với hội chứng tự kỷ (Asperger):

Để thành công trong lập trình thì một chút tự kỷ là điều cần thiết!Để thành công trong lập trình thì một chút tự kỷ là điều cần thiết!

Đọc tiếp >>

Làm startup là để giải quyết một “nỗi đau” nào đó – Phỏng vấn Trương Trọng Thể

Anh Trương Trọng Thể - Founder & CTO Udoctor

Anh Trương Trọng Thể – Founder & CTO Udoctor

Cùng đọc bài phỏng vấn của blog Vinacode với anh Trương Trọng Thể, là founder và Giám đốc kỹ thuật (CTO) của ứng dụng tư vấn sức khỏe miễn phí Udoctor. Hiện nay Udoctor đang đứng Top 1 trên Google PlayApp Store về lĩnh vực sức khoẻ tại Việt Nam; để nghe anh chia sẻ về:

  • Cơ duyên nào đã đưa anh đi theo nghiệp lập trình.
  • Tại sao từng có thời gian dài làm việc trong lĩnh vực ngân hàng nhưng anh Thể lại quyết định khởi nghiệp ở lĩnh vực y tế?
  • Ứng dụng Udoctor ra đời nhằm giải quyết “nỗi đau” nào?
  • Những khó khăn và thách thức mà team xây dựng Udoctor đã gặp phải trong thời gian đầu.
  • Những lời khuyên cho developer về việc tìm co-founder, nhà đầu tư, và những vấn đề ngoài kỹ thuật khác nếu muốn khởi nghiệp.

Đọc tiếp >>

Để phát triển bền vững, lập trình viên Việt Nam cần nắm vững kiến thức về cấu trúc dữ liệu và giải thuật – Phỏng vấn Nguyễn Đức Anh

Lập trình viên Nguyễn Đức AnhCùng đọc bài phỏng vấn của blog Vinacode với anh Nguyễn Đức Anh, là một cựu sinh viên đã từng đoạt tới 6 giải thưởng cao tại các cuộc thi Olympic tin học trong nước và quốc tế. Hiện tại anh đang là một developer chuyên về các lĩnh vực Big Data, Data Mining, Nature Language Processor,… tại công ty truyền thông VCcorp; để nghe anh chia sẻ về:

  • Bí quyết từ một cậu học trò “nghiện game” và trượt Đại học trở thành một sinh viên xuất sắc với 6 lần đạt giải cao trong các cuộc thi Olympic tin học trong nước và quốc tế.
  • So sánh về năng lực của sinh viên Việt Nam với các đối thủ khác trong khu vực Châu Á ở các cuộc thi Olympic tin học.
  • Liệu những kiến thức và kinh nghiệm từ các cuộc thi Olympic tin học thời sinh viên có trở nên hữu ích trong công việc sau này của developer.
  • Thực trạng nhiều sinh viên CNTT thường lơ mơ về môn cấu trúc dữ liệu giải thuật và giải pháp cho vấn đề đó.
  • Tầm quan trọng của kiến thức về cấu trúc dữ liệu và giải thuật đối với sinh viên tin học cũng như đối với lập trình viên; và ứng dụng của nó trong công việc thực tế.

Đọc tiếp >>

Phần cứng rất rẻ, lập trình viên rất đắt

Bài viết được dịch từ blog Coding Horror

Với sự phát triển nhanh chóng của công nghệ phần cứng theo Định luật Moore, khi nào thì ta nên ném phần cứng vào một vấn đề lập trình? Như một quy tắc chung, tôi muốn nói gần như là luôn luôn.

Hãy xem xét mức lương trung bình của lập trình viên tại Mỹ:

Mức lương cho lập trình viên ở Mỹ luôn rất caoMức lương cho lập trình viên ở Mỹ luôn rất cao

Đọc tiếp >>

Vì bạn muốn trở thành một nhà phát triển game

Bài viết được dịch từ blog Coding Horror

Tôi thường nói rằng phát triển game là dạng phát triển phần mềm khó nhất. Nó có xu hướng lập trình ở cấp độ rất thấp, trên những nền tảng phần cứng khác thường, và bạn phải liên tục tối ưu hóa hiệu suất và “niềm vui” — hay bất cứ điều gì mà bạn có thể. Hãy xem xét sự phức tạp của một khía cạnh nhỏ trong phát triển game, AI (trí tuệ nhân tạo): làm thế nào để bạn mô phỏng các đối thủ một cách hiệu quả? Nếu đem so sánh với việc phát triển game thì các ứng dụng doanh nghiệp nhỏ của tôi đang làm cũng giống như chỉ là cuộc đi dạo trong công viên vậy.

Bạn muốn trở thành một lập trình viên trong ngành công nghiệp game?Bạn muốn trở thành một lập trình viên trong ngành công nghiệp game?

Đọc tiếp >>

Phát triển phần mềm: Đó là một tôn giáo

Bài viết được dịch từ blog Coding Horror

Đó là ngày Thứ Hai và Steve Yegge vẫn ghét phương pháp phát triển phần mềm Agile. Ông ta ghét nó khoảng bao nhiêu? Trị giá khoảng 11.000 từ. Dưới đây là những nội dung chính trong bài viết mới nhất của Steve:

  • Steve không có ý định ủng hộ quy trình phát triển phần mềm của Google như là Một Phương Pháp Đích Thực về phát triển phần mềm. Nó chỉ là một ví dụ về một giải pháp có thể thay thế cho phương pháp Agile.
  • Phương pháp phát triển phần mềm Agile hay bất kỳ phương pháp phát triển phần mềm nào khác sẽ hiệu quả nếu bạn có trong tay những kỹ sư tài năng và họ đều quyết tâm làm theo phương pháp đó.
  • Không có cách khoa học thực nghiệm để chứng minh rằng Agile là tốt hơn so với bất kỳ phương pháp phát triển phần mềm nào khác. Vì vậy, việc thúc đẩy Agile là một sự mê tín.
Phát triển phần mềm có phải là một tôn giáo?Phát triển phần mềm có phải là một tôn giáo?

Đọc tiếp >>

Lập trình viên giỏi cần có “năng khiếu toán học”?

Bài viết được dịch từ blog Coding Horror

Một trong những trích dẫn nổi tiếng của nhà khoa máy tính Edsger Dijkstra là từ bài giảng nhận giải thưởng Turing vào năm 1972 của ông, Làm thế nào để chúng ta nói ra sự thật mà có thể làm tổn thương?

Bên cạnh một năng khiếu toán học, thì việc đặc biệt thông thạo tiếng mẹ đẻ là tài sản quan trọng nhất của một lập trình viên giỏi.

Lưu ý rằng ông chính xác nói là tiếng mẹ đẻ, không phải tiếng Anh. Điều này khiến tôi tự hỏi tại sao tất cả các công trình nghiên cứu quan trọng nhất của Dijkstra lại bằng tiếng Anh, chứ không phải tiếng Hà Lan quê hương ông.

Lập trình viên có cần phải giỏi toán học?Lập trình viên có cần phải giỏi toán học?

Đọc tiếp >>