Nghề lập trình viên quá trau chuốt code là tự hại mình?

nghe-lap-trinh-vien-nguyen-thanh-luan

Phàm đã làm nghề lập trình viên, ai cũng mong viết ra những dòng code thật đẹp đẽ, hoàn hảo. Nhưng, điều đó có cần thiết và khả thi?

Đọc bài viết này để biết:

  • Tại sao quá trau chuốt code là tự hại mình?
  • Nên khôn ngoan đầu tư vào những kĩ năng nào khác?

Xem thêm việc làm Developer tại ITviec

NGHỀ LẬP TRÌNH VIÊN VÀ NHỮNG SỰ THẬT MẤT LÒNG

Sáng nay, tôi tình cờ đọc được bài viết trên blog của Mortoray: chẳng ai quan tâm đến code của bạn đâu(Mortoray là lập trình viên hơn 20 năm kinh nghiệm, hiện đang sống và làm việc tại Đức.)

Trong bài viết, ông nêu ra 3 luận điểm:

1. Code chỉ là công cụ.

Nhiều người nghĩ rằng viết code là mục đích công việc của nghề 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, song 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 nghề lập trình viên.

2. Khách hàng/sếp của bạn chỉ quan tâm đến tính năng thôi!

Bạn phải đi họp với khách hàng hoặc sếp. Bạn huyên thiên về cách thiết kế database, script chi tiết để deploy, hay là liệt kê bao nhiêu class, bao nhiêu dòng code đã viết xong? 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…

3. 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?

nghe-lap-trinh-vien-meme

Code hoàn hảo chỉ tồn tại trong trí tưởng tượng.

Quan điểm này làm bạn khó chịu? Nó phủ nhận niềm tự hào về nghề lập trình viên của chúng ta: code là một nghệ thuật, coder một là 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 stackoverflow – trang web thần thánh chuyên “cứu khổ phò nguy” cho dev!)

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ệc làm Developer TPHCM

Việc làm Developer Hà Nội

Việc làm Java Developer

TRONG NGHỀ LẬP TRÌNH VIÊN, QUÁ TRAU CHUỐT CODE LÀ TỰ HẠI MÌNH?

Tôi đã tự hỏi câu này không biết bao nhiêu lần. 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.

nghe-lap-trinh-vien-mr-robot

Nếu “trình” không được như Mr. Robot, thì bạn nên tính thêm “cửa” đầu tư cho các kĩ năng khác nữa nha ^^’

Đừng hiểu lầm. Tôi không hề cổ vũ cho việc code ẩu, code gian dối “sống chết mặc bay”. 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 code thật đẹp đẽ, 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.

Việc làm Senior Developer TPHCM

Việc làm Senior Developer Hà Nội

Việc làm PHP Developer

VẬY, LÀM NGHỀ LẬP TRÌNH VIÊN, CHÚNG TA NÊN ĐẦU TƯ THỜI GIAN VÀO ĐÂU?

Tôi nghĩ, 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.

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: một lập trình viên biết cách marketing bản thân hoàn toàn có thể nhận được lương 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 cùng chia sẻ ở phần bình luận phía dưới!

Và đừng quên tham khảo việc làm Developer tại ITviec!

About the Author:

Full Stack Web Developer

I'm working as a Full Stack Ruby on Rails Developer and eager to learn as well as expanding knowledge. Read more...

Comments