Bill Gates và Steve Jobs

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

Nếu bạn chưa từng xem cuộc phỏng vấn lịch sử này giữa Bill Gates và Steve Jobs, thì bạn nên xem. Bạn sẽ thấy hai gã khổng lồ trong ngành công nghiệp máy tính trên sân khấu tương tác với nhau rất là hấp dẫn và đôi khi thậm chí có một chút cảm động.

Bill Gates và Steve Jobs

Đọc tiếp >>

Advertisements

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

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

Tuổi thơ tôi lớn lên cùng máy vi tính

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

Tôi đọc cuốn sách Accidental Empires (Những đế chế tình cờ) của tác giả Robert X Cringley ngay sau khi nó được xuất bản vào năm 1992. Cuốn sách đó cung cấp một góc nhìn thú vị về những năm đầu khi mà Thung lũng Silicon mới được hình thành. Nó cũng là cuốn sách yêu thích của Doc Searls về ngành công nghiệp máy tính. Tôi đề xuất bạn nên đọc cuốn sách này.

Những đế chế công nghệ tình cờNhững đế chế công nghệ tình cờ

Đọc tiếp >>

Ngôn ngữ máy tính không phải là ngôn ngữ của con người

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

Mặc dù tôi đã trở thành một người không thể hiểu về sự hoàn toàn vô nghĩa trong việc lựa chọn giữa VB.NET và C#, theo quan điểm của tôi thì cú pháp được kế thừa từ ngôn ngữ C là một điểm mà nhiều người thèm muốn. Và không chỉ trong việc phân biệt chữa hoa – chữ thường khi viết code. Daniel Appleman, trong một cuốn sách e-book tuyệt vời của ông, VB.NET hay C#, Nên chọn ngôn ngữ nào?, cũng đồng tình:

Ở đây tôi đang mạo hiểm bước đi trên chỉ vài ngón chân của mình, bởi vì cú pháp ngôn ngữ giống như một vấn đề tôn giáo đối với nhiều lập trình viên. Chắc chắn là tất cả chúng ta có khuynh hướng thích cú pháp ngôn ngữ mà mình đã quen thuộc, các lập trình viên C++ và Java chắc chắn sẽ cảm thấy rất quen thuộc khi làm việc với C#.

Một điểm cũng nên cần làm rõ từ phần này đó là sự khác biệt giữa 2 ngôn ngữ VB.NET và C# là thực sự không đáng kể. Cả hai hầu như đều có cùng chức năng.

Tuy nhiên, về vấn đề cú pháp đối tượng (object), tôi phải trao giải thưởng chiến thắng cho VB.NET. Bạn chỉ cần nhìn vào những khai báo kế thừa sau đây:

public class BClass: AClass, Iint
Public Class BClass
Inherits AClass
Implements Iint

Hãy xem các từ được sử dụng để kiểm soát kế thừa:

abstract, sealed, virtual
MustInherit, NotInheritable, Overridable, Overrides, Shadows

Khi nói đến việc nhìn vào code và hiểu ngay đoạn code đó để làm gì — đặc biệt là sau khi nhà phát triển ban đầu đã nghỉ việc và một số lập trình viên trẻ vừa mới chân ướt chân ráo bước ra khỏi trường đại học phải tìm hiểu phần code đó một cách nhanh chóng để giải quyết một số bug khó hiểu hoặc bổ sung thêm một tính năng mới, thì ngôn ngữ nào sẽ dễ hiểu hơn? Xin thưa, đó là Visual Basic .NET.

Ngôn ngữ lập trình nào là tốt nhất?Ngôn ngữ lập trình nào là tốt nhất?

Đọc tiếp >>

Phần mềm: Nó là Gas

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

Nathan Myhrvold, cựu giám đốc công nghệ của Microsoft, là một nhà vật lý thực sự. Ông có bằng vật lý từ hai trường đại học UCLA và Princeton. Ông thậm chí đã có một học bổng sau tiến sĩ dưới sự hướng dẫn của nhà khoa học nổi tiếng Stephen Hawking. Vì vậy, như bạn có thể hiểu được, trong bài phát biểu của ông tại hội nghị ACM 1997 có tên là “50 Năm tiếp theo của phần mềm” chứa rất nhiều những ẩn dụ về lĩnh vực vật lý và khoa học.

Phát triển phần mềm là công việc rất phức tạp.Phát triển phần mềm là công việc rất phức tạp.

Đọc tiếp >>

Thành công không phải là đích đến mà là trải nghiệm trên từng chặng đường đi – Phỏng vấn Nguyễn Thanh Tùng

“Mình luôn tâm niệm: ‘Thành công không phải là đích đến mà là trải nghiệm trên từng chặng đường đi’. Vì vậy nếu bạn có khát khao, có đam mê nào đó thì hãy cứ thực hiện đừng quan tâm nó có đến đích hay không, bởi dám thực hiện đã là một thành công lớn rồi.” ~ Nguyễn Thanh Tùng

Anh Nguyễn Thanh Tùng

Anh Nguyễn Thanh Tùng

Đọc bài phỏng vấn của blog Vinacode với anh Nguyễn Thanh Tùng, là một developer có nhiều năm kinh nghiệm với công nghệ Microsoft .NET và hiện anh đang là Chief Software Architect tại công ty MISA JSC. Anh cũng là người rất tích cực chia sẻ kiến thức cho cộng đồng qua các hoạt động làm speaker và trainer tại các sự kiện do Microsoft và nhiều đơn vị khác tổ chức; để nghe anh chia sẻ về:

  • Những mặt ưu và nhược điểm của .NET so với các công nghệ khác.
  • Cách học .NET một cách hiệu quả và những nguồn tài liệu hữu ích về công nghệ Microsoft .NET
  • Kinh nghiệm thi lấy chứng chỉ Microsoft Certified Professional Developer (MCPD) và thông tin về các loại chứng chỉ mà một developer .NET cần quan tâm.
  • Những kiến thức và kỹ năng cần trang bị để trở thành một Chief Software Architect.
  • Kinh nghiệm và kỹ năng để làm tốt công việc của một speaker và trainer tại các sự kiện do Microsoft và các đơn vị khác tổ chức.

Đọc tiếp >>

Mọi thứ bạn biết sẽ bị lỗi thời trong vòng 5 năm

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

Lời bàn của Vinacode:

Chắc bạn vẫn còn nhớ trong bài viết “Nghề lập trình: trước 40 tuổi bạn nên có phương án B” đăng trên blog Vinacode có phần thống kê của cục điều tra NSF về so sánh tuổi thọ của nghề lập trình viên và nghề xây dựng ở Hoa Kỳ:

“Sáu năm sau khi tốt nghiệp đại học, 57% sinh viên tốt nghiệp ngành khoa học máy tính làm việc như là một lập trình viên; sau 15 năm ra trường thì con số này giảm xuống còn 34%, và sau 20 năm ra trường — khi mà hầu hết mọi người đều chớm bước sang tuổi 40 — thì tỉ lệ này rớt xuống còn 19%. Trái ngược hẳn, con số này tương ứng cho kỹ sư xây dựng là 61%, 52% và 52%.”

Sau khi xem kết quả so sánh trên thì chắc hẳn bạn cũng đã tự đưa ra được lý do rồi nhỉ? Mình có đọc được ở đâu đó rằng ngành xây dựng khoảng 50 năm mới đổi mới hoàn toàn một lần, trong khi đó ngành phần mềm thì chỉ 10 năm; điều đó đồng nghĩa với việc một kỹ sư xây dựng với kiến thức thu được ở trường thì có thể ung dung ngồi rung đùi làm việc trong nhiều năm, trong khi một kỹ sư phần mềm thì hầu như phải học tập kiến thức mới mỗi ngày.

Ngành phát triển phần mềm cũng tuân theo định luật Moore?

Ngành phát triển phần mềm cũng tuân theo định luật Moore?

Ngành phát triển phần mềm cũng tuân theo định luật Moore?Theo “định luật Moore” do nhà đồng sáng lập Intel là Gorden Moore tiên đoán thì cứ sau 18 tháng tốc độ xử lý của con chip máy tính sẽ được tăng lên gấp đôi, và điều đó đồng nghĩa rằng ngành phát triển phần mềm cũng sẽ phát triển theo tốc độ đó? Cứ vài tuần bạn lại nghe thấy một ngôn ngữ lập trình, hay một framework hoặc một công nghệ mới nào đó xuất hiện… và bạn lại phải lao đầu vào nghiên cứu, nhưng đến một lúc nào đó bạn sẽ tự hỏi rằng liệu trong nghề phần mềm thì cái gì là không hoặc ít thay đổi nhất để mình bám vào nó? Bạn hãy dành một phút suy ngẫm trước khi tìm thấy câu trả lời sẽ có trong bài viết này nhé!

“Chỉ có hai điều là vô hạn: vũ trụ và sự ngu xuẩn của con người, và tôi không chắc lắm về điều đầu tiên.” ~ Albert Einstein

Là một lập trình viên, tôi luôn phải cập nhật kiến thức mới mỗi ngày.Là một lập trình viên, tôi luôn phải cập nhật kiến thức mới mỗi ngày.

Đọc tiếp >>

Lạy Chúa, ngài có ở đó không? Có tôi, Microsoft đây

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

Mặc dù cuối cùng bạn cũng bỏ được những tật xấu đó, nhưng bất kỳ lập trình viên nào cũng phải trả giá bằng những vết sẹo do hàng ngàn cuộc chiến tranh tôn giáo nhỏ xíu để lại. Nó là một mối nguy trong nghề nghiệp, như tác giả Steve McConnell cũng đã đề cập trong cuốn sách nổi tiếng Code Complete ở phần Thou Shalt Rend Software and Religon Asunder (Hãy tách rời Phần Mềm và Tôn Giáo ra xa nhau):

Những niềm tin và định kiến cực đoan là rất nguy hiểm trong lập trình.Những niềm tin và định kiến cực đoan là rất nguy hiểm trong lập trình.

Đọc tiếp >>

Lập trình viên chích chòe

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

Tôi thường nghĩ rằng các nhà phát triển phần mềm cũng gần giống như mấy con chim chích chòe, những con chim này có tiếng xấu là hay đi ăn cắp những đồ vật đẹp đẽ để về trang hoàng cho cái tổ phức tạp của chúng. Giống như những con chim chích chòe, các lập trình viên là những sinh vật cực kỳ thông minh và ham hiểu biết, điều này thực sự đã ngấm vào máu của họ. Nhưng chúng ta cũng rất dễ bị phân tâm bởi những thứ “đồ chơi” mới.

Lập trình viên thì cũng giống như con chim chích chòe vậy.Lập trình viên thì cũng giống như con chim chích chòe vậy.

Đọc tiếp >>