Nội dung chính
Viết code là công việc của lập trình viên nên có rất nhiều người đã tốn một mớ thời gian chỉ để “làm đẹp” cho code của mình. Thật xui xẻo rằng, những lập trình viên đó lại đang tự hại mình! Ngoài việc viết code, nghề lập trình viên còn ẩn giấu những “sự thật mất lòng” mà chẳng ai nói bạn nghe khi mới vào nghề đâu!
Tình cờ, ITviec đọc được bài viết trên blog của Mortoray – một lập trình viên với hơn 20 năm kinh nghiệm, hiện đang sinh sống và làm việc tại Đức, có tiêu đề Chẳng ai quan tâm đến code của bạn đâu. ITviec hoàn toàn ngạc nhiên với những gì ông chia sẻ, nhất là về vấn đề viết code “đẹp hay xấu” nhưng sau khi ngẫm lại, những sự thật về nghề lập trình dần được hé lộ.
Đọc bài viết này để biết được:
- Những sự thật mất lòng mà lập trình viên không hiểu (hay cố tình không hiểu)
- Tại sao quá trau chuốt vào việc code là tự hại mình?
- Nên khôn ngoan đầu tư thời gian vào những kỹ năng nào khác?
Xem thêm việc làm Developer tại ITviec
Những sự thật mất lòng về nghề lập trình viên
Trong bài viết, ông nêu ra 3 luận điểm:
Viết code không phải là tất cả
Nhiều người nghĩ rằng viết code là mục đích cuối cùng trong công việc của một người lập trình viên.
Họ nhầm. Những dòng code không phải là sản phẩm – đích đến, chúng chỉ là công cụ giúp lập trình viên làm ra phần mềm với tính năng mà người dùng cần.
Code với lập trình viên, cũng giống như lưỡi cưa hay chiếc búa đối với thợ mộc vậy. Một thợ mộc dù dùng cưa/búa thuần thục đến đâu nhưng nếu sản phẩm làm ra không tốt, thì vẫn là thợ mộc tồi. Cũng tương tự như vậy với việc bạn ngồi viết code một cách nắn nót.
Khách hàng hay sếp chẳng quan tâm đến cách bạn viết code như thế nào đâu!
Bạn phải đi họp với khách hàng hoặc sếp. Bạn có thể tự hào “khoe” với họ về cách thiết kế database, script chi tiết để deploy hay là liệt kê bao nhiêu class, bao nhiêu tâm huyết bạn đã dùng để viết code?
Bạn thấy mặt những người nghe dài như cái bơm? Họ ngáp ngắn ngáp dài? Họ chăm chăm ngắt lời bạn? Bạn bèn “hận cả thế gian” vì không có người hiểu mình?
Bạn nhầm. Không phải vì họ không đủ khả năng để hiểu những vấn đề kĩ thuật, mà chỉ đơn giản là họ-chả-quan-tâm.
Những điều mà khách hàng/sếp muốn biết là: tiến độ dự án, các tính năng hoạt động tốt không, còn thiếu sót/chỉnh sửa những gì, có rủi ro gì cần lưu ý hay không .v.v…
Thư giãn với video: Khách hàng phàn nàn vì Developer không test trên thiết bị này
Mấy cái thư viện chẳng quý báu như bạn nghĩ nên không cần giữ khư khư source code
Tạo thư viện riêng là đúng đắn, vì nó giúp dev làm các dự án nhanh hơn. Tuy nhiên, không có nghĩa là mọi người khác đều “thèm muốn” nó. Nếu không tin, thì cứ rao bán source code của bạn, thử xem kết quả ra sao?
Quan điểm này làm bạn khó chịu? Nó phủ nhận niềm tự hào về công việc lập trình viên của chúng ta: Viết code là một nghệ thuật, người viết code là một nghệ sĩ?
Có lẽ. Thú thực, bản thân tôi lúc mới đọc bài này cũng sôi máu.
Nhưng, tiếc rằng, ngay cả Jeff Atwood cũng đồng tình với quan điểm của Mortoray.
(Phải, chính Jeff Atwood, chủ codinghorror.com, kiêm founder Stack Overflow – trang web thần thánh chuyên “cứu nguy” cho lập trình viên!)
Jeff kể: bạn tôi làm cho một công ty open source database cực kì nổi tiếng. Ảnh nói, đống code bên đó chắc thuộc hàng gớm ghiếc nhất mà ảnh từng trông thấy trong đời.
Nhưng rồi sao? Chẳng sao cả. Người dùng chả quan tâm đến chuyện code thơm hay thối. Họ chỉ quan tâm code có chạy hay không.
Cũng tương tự, khách hàng chả quan tâm chuyện bạn chọn sử dụng ngôn ngữ nào để lập trình. Với họ, User Interface chính là ứng dụng. Chấm hết.
Viết code “đẹp” chỉ tốn thời gian mà thôi!
Logic rất đơn giản. Mỗi người chỉ có 24 giờ mỗi ngày. Cho nên, thay vì còng lưng ngồi tỉa tót code, có lẽ chúng ta NÊN KHÔN NGOAN đầu tư thời gian vào những kĩ năng cần thiết khác, có lợi cho sự nghiệp hơn?
Bởi vì chúng ta đang viết code trong một thế giới vô cùng khắc nghiệt. Trừ phi bạn xuất chúng như Mr. Robot, hoặc trừ phi bạn tự viết code cho chính mình. Còn nếu không, bạn sẽ phải cạnh tranh với rất nhiều developer khác để rao bán sức lao động.
Muốn bán được giá, bạn cần cộng thêm vào “món hàng” nhiều giá trị khác, chứ không chỉ trần trụi mỗi kĩ năng code.
Đừng hiểu lầm. Đây không phải sự cổ súy cho việc viết code ẩu, viết code gian dối “sống chết mặc bây”.
Trái lại, chính vì code là công cụ, nên trong nghề lập trình viên, việc sử dụng thành thạo, linh hoạt nhiều ngôn ngữ/framework lại càng quan trọng.
Nếu không làm chủ được “công cụ” code, lập trình viên sẽ không kiểm soát được chất lượng sản phẩm. Và sớm hay muộn sẽ phải trả giá đắt cho những món nợ kĩ thuật (technical debt).
Quan điểm của tôi ở đây là: trên đời không có phần mềm nào là hoàn hảo. Nên, cũng đừng tỉ mẩn nắn nót viết code thật đẹp, thật tinh tế làm gì. Hãy dùng thời gian đó cho những việc khác có ích hơn.
Một hệ thống có thể tồn tại hàng chục năm, song vòng đời của các dòng code thường ngắn hơn rất nhiều: có thể chỉ là vài tháng, vài ngày, hoặc thậm chí vài phút – nếu như bạn thay đổi giải pháp và buộc phải sửa code.
Vậy thì, chúng ta nên đầu tư thời gian vào việc gì?
Kỹ năng mềm và xây dựng thương hiệu cá nhân là hai thứ xứng đáng nhất để chúng ta đầu tư thời gian, ngoài đầu tư vào kỹ năng viết code.
Trong bài viết mà tôi vô cùng tâm đắc – 7 sai lầm trong nghề lập trình viên, tác giả John Sonmez đã chỉ ra 3 sai lầm mà đại đa số dev mắc phải: không đầu tư vào kĩ năng mềm, không tham gia cộng đồng, không xây dựng thương hiệu cá nhân.
Chính John Sonmez cũng khẳng định: Nếu biết cách marketing bản thân thì lương của lập trình viên hoàn toàn có thể gấp 2, thậm chí gấp 3 những người có cùng kĩ năng!
Để marketing bản thân, bạn có thể áp dụng 3 cách đơn giản của John Sonmez như sau:
- Đọc sách “Đắc nhân tâm” của Dale Carnegie. Đây là cuốn sách tốt nhất về kĩ năng giao tiếp và làm việc với con người.
- Viết blog. Cố gắng viết 1 bài hàng tuần.
- Lên kế hoạch cho sự nghiệp của bạn. Ngồi lại với một tờ giấy trắng hoặc một trang Google Doc. Dành ra một giờ đồng hồ nghĩ về đích bạn muốn đến. Chọn một mục tiêu, rồi nghĩ về các bước giúp bạn tiến đến mục tiêu đó.
Hoặc, bạn cũng có thể bắt đầu từ những điều nhỏ nhặt, thiết thực như: học cách viết CV, cover letter sao cho hấp dẫn, cách chọn môi trường làm việc phù hợp, hay cách đàm phán để có mức lương cao hơn khi nhảy việc .v.v…
Tôi đã thử áp dụng và thấy rất hiệu quả. Bạn cũng thử xem sao?
Bạn nghĩ rằng code đẹp là cần thiết? Hoặc, bạn nghĩ nên cân bằng giữa “chủ nghĩa hoàn hảo” và tính thực dụng khi viết code? Theo bạn, chất lượng code như thế nào là “vừa đủ tốt”? Hãy chia sẻ với ITviec nhé!
Và đừng quên tham khảo việc làm Developer tại ITviec!