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 >>

Có một thứ mà các lập trình viên và nhạc sĩ có cùng điểm chung

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

Trong bài viết trước đây của tôi, một độc giả đã đặt ra câu hỏi này:

Tôi đã từng gặp rất nhiều người rất giỏi trong lĩnh vực máy tính và họ có một tình yêu lớn dành cho âm nhạc. Liệu phải làm gì để có khả năng nhìn thấy cái đẹp ở trong các hệ thống số phức tạp?

Tôi yêu thích âm nhạc. Tôi có một bộ sưu tập âm nhạc rất lớn, tôi thích nghe nhạc và khám phá các ban nhạc mới cũng như các thể loại mà tôi chưa từng được nghe. Nhưng tôi không có một chút khả năng nào về âm nhạc cả. Vì vậy, sẽ không thực sự thích hợp để tôi bình luận về điều này. Tôi đã đọc về những ý kiến so sánh ở nhiều nơi khác nhau. Đủ để tôi tự hỏi liệu có một mối quan hệ nào giữa việc trở thành một nhạc sĩ và trở thành một lập trình viên không nhỉ?

Lập trình viên và mấy tay nhạc sĩ có điểm gì giống nhau?Lập trình viên và mấy tay nhạc sĩ có điểm gì giống nhau?

Đọc tiếp >>

Thuyết vị lai trong lập trình.. năm 1994

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

Paul Heberli và Bruce Karsh đã đề xuất một cái gì đó mà họ gọi là lập trình vị lai vào năm 1994:

Chúng tôi tin rằng có một cơ hội tuyệt vời cho các nguyên tắc vị lai sẽ được áp dụng vào khoa học của lập trình máy tính. Chúng tôi phản ứng chống lại bầu không khí tôn giáo nặng nề bao trùm mọi khía cạnh của lập trình máy tính. Chúng tôi tin rằng đây là lúc để giải phóng khỏi những ràng buộc của quá khứ, và ăn mừng một sự phục hưng trong nghệ thuật lập trình máy tính.

Chúng tôi thấy nhiều hệ thống máy tính hiện nay là vô cùng lãng phí và không hiệu quả. Phần cứng máy tính đã tăng tốc độ thực thi hơn 200 lần trong 20 vừa năm qua, trong khi việc thiết kế phần mềm có rất ít tiến bộ được tạo ra kể từ sự phát minh ra chương trình con. Chúng tôi muốn nhìn thấy khoa học của lập trình phát triển một cách nhanh chóng như các lĩnh vực công nghệ khác.

Chúng tôi tin rằng giáo dục đại học đang dành quá nhiều thời gian để truyền đạt những giáo điều, thay vì nên dạy về lý thuyết của việc thiết kế phần mềm để giúp các lập trình viên tạo ra những chương trình tốt. Các trường đại học nên cung cấp cho sinh viên ít giáo lý hơn, và thêm nhiều kinh nghiệm thực tế trong việc tạo ra và phân tích các chương trình nhỏ, nhanh, hữu ích và hiệu quả.

Liệu tôi có nên theo trường phái lập trình vị lai?Liệu tôi có nên theo trường phái lập trình vị lai?

Đọc tiếp >>