Thời thế, thế thời thay đổi, và hình ảnh của một coder cả tuần không tắm mà chỉ lao vào hùng hục code đã trở thành “lập trình viên thành công”. Ngày nay một lập trình viên phải có hình ảnh như là một programmer/ developer, nghĩa là ngoài viết code giỏi ra thì còn cần nhiều kỹ năng khác để có thể thành công.
Làm gì để thành một lập trình viên thành công
Dù sao đi nữa, như Ian Landsman – tác giả cuốn sách “10 bí quyết để giúp một lập trình viên trở thành doanh nhân” đã chỉ ra, tầm quan trọng của phần code mà chúng ta viết ra thì hoàn toàn bị lép vế bởi mọi thứ khác xung quanh nó
“Một trong những vấn đề lớn nhất mà tôi nhìn thấy ở các lập trình viên thành công đó là họ suốt ngày chúi mũi vào những dòng code của mình mà không còn quan tâm đến vấn đề gì khác. Họ dành ra vô số thời gian để tạo ra một chức năng hoàn hảo hoặc xây dựng các đặc trưng để khoe khoang về công nghệ mới nhất nào đó.
Hiện nay bạn phải viết code để có thể tồn tại trong ngành kinh doanh phần mềm. Đó là code viết ra phải có chất lượng cao mà không có nhiều bug hoặc thiếu an toàn. Tuy nhiên, phần code tốt nhất trên thế giới đó sẽ trở nên vô nghĩa nếu không ai biết về sản phẩm của bạn.”
Có lẽ cách tốt nhất để trở thành một lập trình viên thành công đó là hãy loại bỏ hết toàn bộ các hoạt động mang lại giá trị thấp và ngừng việc viết code hoàn toàn. Như Steve Yegge đã giải thích:
“Liệu bạn có bất kỳ một vài thần tượng trong lập trình nào không? Tôi có! Mặc dù có một điều hơi kỳ cục đó là tôi chưa từng bao giờ thực sự xem nhiều code của họ. Hầu hết các lập trình viên thành công nổi tiếng mà tôi tôn trọng thì thường tạo ra sự ảnh hưởng của họ lên bản thân tôi thông qua các bài viết của họ, và đó thực sự chỉ là các bài viết văn xuôi, có thể cùng với một ít code rải rác trong đó.
Có những lập trình viên thành công mà tôi ngưỡng mộ là những người đã tạo ra những sản phẩm mà tôi sử dụng rất nhiều. Nhưng khi tôi thử liệt kê ra một danh sách các lập trình viên mà mình ngưỡng mộ (ý tôi là những người mà tôi không quen biết), thì tôi nhận thấy hầu hết họ luôn rơi vào trong một (hoặc cả hai) của chỉ hai thể loại sau đây:
1.Những người mà đã viết ra một ngôn ngữ lập trình hữu ích, một hệ điều hành, hoặc một framework đặc biệt quan trọng.
2.Những người mà đã viết ra một cuốn sách thực sự rõ ràng và rành mạch về lập trình.
Khi một ai đó xây dựng một framework – bất kỳ môi trường nào mà chúng ta sống và thực sự thấy thích thú lập trình trong đó – và sẽ có một người được xem là “cha đẻ” và là tác giả đầu tiên của cái framework đó, sau đó tôi nghĩ rằng chúng ta thường có khuynh hướng ngưỡng mộ vị tác giả này, và không giống như những lập trình viên khác, người đó bắt đầu trở nên nổi tiếng.
Thậm chí nếu họ là một tay lập trình viên tồi.
Và chúng ta cũng không thực sự biết được vị tác giả đó có phải là một tay lập trình viên tồi hay không, bởi vì chúng ta có thường xuyên nhìn vào mã nguồn của framework mà chúng ta sử dụng đâu? Bạn đã dành bao nhiêu thời gian cho việc ngâm cứu mã nguồn của một trình biên dịch, trình thông dịch của một ngôn ngữ lập trình ưa thích hoặc một VM (máy ảo)? Theo thời gian thì những hệ thống đó đã trở nên rất hiệu quả và hữu ích, và đến lúc đó thì có bao nhiêu code mà vị tác giả ban đầu đã thực sự viết ra?”
Liệu có phải là tôi đang nói với các lập trình viên rằng hãy ngừng viết code? Không, không thực sự là như vậy. Các lập trình viên thành công thường đã là các tay giỏi viết code rồi. Đó là lý do tại sao mà họ lại chọn để trở thành một nhà phát triển phần mềm. Việc viết thật nhiều code thì chỉ là bạn đang đào sâu hơn vào một kỹ năng mà bạn đã đặc biệt chuyên sâu rồi.
Cái mà tôi đang đề xuất đó là chúng ta hãy dành ít thời gian để viết code đi và dành nhiều thời gian hơn để phát triển các kỹ năng trong những lĩnh vực khác mà có thể bổ sung cho những kỹ năng coding của chúng ta. Hãy trở thành người viết lách tốt hơn. Hãy trở thành một người diễn thuyết tốt hơn. Hãy cải thiện những kỹ năng mềm của bạn. Hãy tham gia tích cực vào đóng góp cộng đồng.
Cố gắng dành một chút thời gian để nói chuyện với con người thay vì cứ luôn ôm cứng lấy trình biên dịch. Đó là cách để có thể phân biệt bản thân bạn ra khỏi những tay đồng nghiệp xoàng xĩnh của bạn. Và đó cũng là cách để bạn trở thành một nhà phát triển phần mềm giỏi hơn.
Đăng ký trở thành lập trình viên thành công tại đây
Về tác giả bài viết: Jeff 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 Exchangevà Discourse. |
Theo vinacode