Lý do tại sao tôi là lập trình viên giỏi nhất thế giới*

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

Đó là bởi vì tôi rất khiêm tốn, rõ ràng là vậy. Cho phép tôi được làm rõ điều này bằng một trích đoạn từ chương nói về tính cách cá nhân trong cuốn sách nổi tiếng Code Complete 2.0 của tác giả McConnell:

Chính cái tính chất sâu sắc mãnh liệt của công việc lập trình đã khiến cho tính cách cá nhân vô cùng quan trọng. Bạn đã biết thật là khó khăn làm sao khi phải tập trung trong công việc 8 giờ mỗi ngày. Bạn có thể đã trải qua kinh nghiệm bị trở nên kiệt sức vào một ngày nào đó bởi vì đã quá tập trung cho công việc ở ngày trước đó hoặc bị kiệt sức vào một tháng nào đó bởi vì phải làm việc quá căng thẳng vào tháng trước đó. Có những ngày mà bạn đã làm việc rất hiệu quả từ 8h:00 sáng đến 2h:00 chiều và sau đó cảm giác muốn được nghỉ. Tuy nhiên, bạn đã không nghỉ; bạn ráng làm từ 2h:00 đến 5h:00 chiều và sau đó thì phải dành cả những ngày còn lại trong tuần chỉ để sửa chữa những phần code mà bạn đã viết từ khoảng 2h:00 đến 5h:00 chiều hôm đó.

Công việc lập trình về mặt bản chất là không thể nào giám sát được bởi vì không một ai thực sự biết được chính xác là bạn đang làm cái gì. Tất cả mọi người đều có những dự án mà chúng ta đã dành 80% thời gian để làm việc trên một phần nhỏ mà mình cảm thấy thú vị và 20% thời gian để xây dựng 80% còn lại của chương trình đó.

Ông chủ của bạn không thể ép buộc bạn trở thành một lập trình viên giỏi được; có rất nhiều thời điểm ông chủ của bạn thậm chí không ở vị trí để có thể phán xét xem liệu bạn có làm tốt hay không. Nếu bạn muốn trở nên xuất sắc, thì bạn phải tự chịu trách nhiệm về điều đó. Đó chính là vấn đề nằm trong tính cách cá nhân của bạn.

Một lập trình viên muốn trở nên giỏi thì càng phải thực sự khiêm tốn và cầu tiến.Một lập trình viên muốn trở nên giỏi thì càng phải thực sự khiêm tốn và cầu tiến.


Đứng đầu trong danh sách của những nét tính cách cá nhân đáng mong muốn chính là tính khiêm tốn:

Không một ai thì thực sự đủ thông minh để lập trình máy tính cả. Để hiểu một cách đầy đủ về một chương trình thuộc loại trung bình thôi thì đã yêu cầu vô số kỹ năng để có thể hiểu được những chi tiết và một khả năng tiếp thu tương xứng để có thể lĩnh hội tất cả chúng tại cùng thời điểm. Cái cách bạn tập trung trí tuệ của mình thì quan trọng hơn rất nhiều so với chỉ số thông minh mà bạn có.

Tại buổi thuyết trình để nhận giải thường Turing Award vào năm 1972, nhà khoa học máy tính nổi tiếng Edsger Dijkstra đã công bố một nghiên cứu có tên là “Lập trình viên khiêm tốn”. Ông ta lý luận rằng hầu hết công việc lập trình là một sự cố gắng để bù đắp cho kích cỡ vô cùng giới hạn của bộ não của chúng ta. Những người thuộc loại giỏi nhất trong lĩnh vực lập trình là những người mà nhận ra rằng bộ não của họ nhỏ như thế nào. Họ là những người rất khiêm tốn. Những người mà kém nhất trong lĩnh vực lập trình là những người đã từ chối chấp nhận một thực tế rằng bộ não của họ thì không tương xứng với tác vụ đó. Chính “cái tôi” của họ đã ngăn cản họ trở thành những lập trình viên vĩ đại. Bạn càng học nhiều để bù lại cho bộ não nhỏ bé của bạn, thì bạn sẽ càng trở thành một lập trình viên giỏi hơn. Bạn càng khiêm tốn bao nhiêu thì bạn càng nhanh chóng tiến bộ bấy nhiêu.

Bạn có thể nghĩ rằng con đường nhanh nhất để phát triển những khả năng trí tuệ là tránh sự trợ giúp trong lập trình. Và rằng một lập trình viên mà hỏi nhờ sự giúp đỡ thì đang đi vào “con đường chậm tiến”. Tuy nhiên, kinh nghiệm thực tế đã chỉ ra rằng, những lập trình viên khiêm tốn và chịu khó bù đắp cho những khả năng của họ thường viết code dễ dàng hơn cho chính họ và những người khác có thể hiểu được và có ít lỗi hơn. “Con đường chậm tiến” thực ra lại chính là con đường mà tạo ra nhiều lỗi và làm chậm tiến độ của dự án.

Khi phỏng vấn các ứng viên cho các vị trí lập trình, tôi luôn luôn tìm kiếm những người mà đủ dũng cảm để nói “tôi không biết” khi mà họ cần tới. Những ứng viên mà không thể hoặc sẽ không làm điều này thì sẽ nhận một dấu chấm đỏ; những loại lập trình viên này rất nguy hiểm. Thái độ “có thể làm” có một mức cám dỗ rất lớn, nhưng họ đang thực sự đầu độc ngành phần mềm của chúng ta.

Liệu có phải thế giới của những blog phát triển phần mềm, là một nguồn kiến thức dường như vô tận đến mức kinh ngạc — cũng là sự khiêm tốn đến mức khó tin? Có rất nhiều người, nhiều trong số họ là những người vĩ đại trong lĩnh vực phát triển phần mềm của chúng ta, những người mà thông minh hơn tôi rất nhiều và chỉ đơn giản là tốt hơn cấp độ tôi có thể trở thành.

Nhưng công việc của chúng ta thì không phải là để trở nên tốt hơn một người nào khác; chúng ta chỉ cần trở nên tốt hơn chính bản thân mình một năm về trước là đã đủ rồi.

* Vâng, tiêu đề của bài viết này thì chỉ nhằm mục đích châm biếm. Vì vậy, tôi muốn được thông báo ở đây…

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

2 comments on “Lý do tại sao tôi là lập trình viên giỏi nhất thế giới*

  1. Em thực sự đã được khai sáng sau khi đọc bài viết này! Có lẽ từ trước đến nay, vì đã quá tự đắc với những gì mình làm được nên em đã bỏ lỡ rất nhiều thứ: Thời gian, hiểu biết. Mà đáng lẽ ra thay vì ở tuổi 19 thì em phải biết từ hơn 5 năm về trước. Trải nghiệm của lập trình viên (hay nghiên cứu khoa học) không thể đem so sánh đơn giản như những người khác được !!!

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s