Thế nào là lập trình viên giỏi, lập trình viên tệ? (P1)

07/03/2021

Có một câu nói rằng “một lập trình viên giỏi có thể làm gấp 10 lần một lập trình viên bình thường”. Không ai muốn mình bị xem là một lập trình viên tệ. Nhưng có một thực tế là rất nhiều lập trình viên nhận thức được rằng mình khá tệ. Vậy thì điều gì làm cho bạn trở nên một lập trình viên giỏi, và tại sao bạn lại là một lập trình viên tồi?

Lập trình viên tệ

Trước tiên chúng ta hãy hiểu hai kiểu bad developers thường gặp:

  • Cowboy/girl Coder (để đơn giản trong bài viết này ta chỉ gọi ngắn gọn là cowboy coder)
  • Mediocre Developer

Về cốt lõi, hai kiểu lập trình viên này giống nhau, nhưng thường thể hiện các hành vi khác nhau.

dev

Cowboy Coders

dev 1

Cowboy Coders có thể phá hỏng đội ngũ mà họ làm việc cùng. Họ làm việc tốt nhất khi một mình và trong một dự án duy nhất có tuổi thọ ngắn.

Những lập trình viên tự học chưa bao giờ nhận được bất kỳ hướng dẫn nào về cách viết code sẽ là những lập trình viên kiểu này. Vậy đặc điểm chính của một cowboy coder là gì?

1. Code rất nhanh

Thông thường, bad developers có thể tạo ra các tính năng mới nhanh hơn nhiều so với các developer bình thường và những người không biết code sẽ nghĩ rằng những người lập trình nhanh này thật tuyệt vời. Những lập trình viên này hoạt động tốt nhất một mình và cho những khách hàng có thời hạn cực kỳ chặt chẽ và những người chỉ muốn giới thiệu tính năng càng sớm càng tốt.

2. Code lộn xộn, không thể đọc được

Thiết kế code của các dự án được xây dựng nhanh chóng sẽ là một mớ hỗn độn hoàn toàn. Loại code lộn xộn này thường được gọi là “Code Spaghetti”, nhưng lại không “ngon” như tên gọi của nó..

Code spaghetti rất khó hiểu và phức tạp một cách không cần thiết đến mức người khác sẽ khó hiểu những gì lập trình viên làm, và do đó nó thường là một cơn ác mộng để bảo trì sau này. Điều này đồng nghĩa với việc giảm năng suất cho cả nhóm nếu bất kỳ ai không may phải làm việc với cowboy coder.

Kết quả của code lộn xộn là…

3. Lỗi. Lỗi, mọi nơi

dev 1

Nếu phần mềm của một công ty phát triển ngày càng lớn và phức tạp hơn và code của họ vẫn là một đống mì Ý, thì đó chỉ là một quả bom tích tắc chờ phát nổ. Tệ nhất là sẽ gây ra các vấn đề nghiêm trọng như việc Toyota tăng tốc ngoài ý muốn. Mọi người đều có thể đồng ý rằng vụ thu hồi xe Toyota là một thảm họa.

Cũng không bao giờ dễ chịu nếu phần mềm của bạn tình cờ lọt vào the Daily WTF (một blog đưa ra những ví dụ về coding tệ nhất trong môi trường làm việc thực tế)

Hơn nữa, code spaghetti không thể mở rộng. Điều này có nghĩa là việc thêm các tính năng mới vào code Spaghetti giống như đi bộ trong một bãi mìn sẽ phát nổ, bất kể bước lớn hay nhỏ và bạn đi theo hướng nào.

Điều này thường là do một lập trình viên đã trộn lẫn mọi chức năng với nhau, vì vậy bất kỳ thay đổi nào cũng sẽ phá vỡ hoàn toàn phần mềm. Điều này có thể được ngăn chặn bằng thiết kế code tốt hơn hoặc unit tests, nhưng tất nhiên, các lập trình viên không quan tâm đến việc code của họ có thể sử dụng được hay không và cũng không quan tâm đến việc viết các bài test.

Chưa kể, đều thường xảy ra với một lập trình viên là họ nhanh chóng “sửa” một số lỗi, chỉ để tạo ra nhiều lỗi hơn. Họ có thể cảm thấy như những người lính cứu hỏa anh hùng, bận rộn, những người không bao giờ thực sự dập tắt được nguồn gốc của đám cháy.

Nói chung, mọi lỗi và lỗi do bad developer tạo ra sẽ gây ra năng suất tiêu cực. Lúc đầu, có vẻ như anh chàng lập trình viên này đang làm việc siêu năng suất khi luôn đáp ứng các thời hạn mà các nhà phát triển khác sẽ không dám hứa, nhưng điều này phải trả giá bằng vô số lỗi “không mong muốn” có thể được ngăn chặn bằng code được thiết kế tốt và được lập trình sạch bởi một nhà phát triển giỏi.

Nếu bạn đang dành hơn 80% thời gian phát triển để gỡ lỗi code của chính mình và nếu code của bạn là một cơn ác mộng để gỡ lỗi (tức là cuối cùng bạn tạo ra một lỗi khác), điều này thường có nghĩa là codebase không tốt và bạn có thể cần trợ giúp về cải thiện code của mình.

4. Kiêu căng

Nhiều lập trình viên mới thường mắc phải sai lầm khi viết code mà không lập kế hoạch và tạo ra một loạt code lỗi, đôi khi vì họ có ít kinh nghiệm với những vấn đề này nên họ đưa ra quyết định không tốt.

Những người mới bắt đầu này có thể dễ dàng thăng tiến bằng cách nhận được sự cố vấn từ các nhà phát triển có kinh nghiệm, những người tự hào về việc xây dựng code chất lượng, vì rất nhiều lần những người mới bắt đầu là bình thường vì họ không biết rõ hơn. Tuy nhiên, nếu xung quanh họ là những nhà phát triển tồi tệ hoặc tầm thường như nhau, thì họ sẽ gặp rắc rối khi rơi vào ảo tưởng rằng họ giỏi.

Miễn là bạn sẵn sàng chịu trách nhiệm cho những sai lầm của mình và miễn là bạn đang học hỏi từ những sai lầm của mình, bạn không phải là bad developer.

Tính cách quan trọng nhất khiến bạn trở thành lập trình viên tệ là tính kiêu ngạo.

Lập trình viên tệ nghĩ rằng code của họ là hoàn hảo và sẽ đổ lỗi cho khách hàng vì đã làm hỏng chương trình của họ hơn là tìm lý do tại sao phần mềm bị lỗi.

Hơn nữa, những lập trình viên kiêu ngạo này cũng nghĩ rằng những người khác kém họ về trí thông minh. Họ thường cho rằng những người cần nhận xét và những người không hiểu code của họ quá “ngu ngốc” để làm việc với họ, nhưng lại bao giờ cố gắng nghĩ về lý do tại sao mọi người không hiểu code.

Kết quả của việc luôn nghĩ rằng mình đúng và luôn nghĩ người khác kém hơn, họ thiếu sáng tạo khi xây dựng các tính năng, điều này có thể gây ra rất nhiều vấn đề cho một nhóm.

Tệ hơn nữa, bad programmers không muốn lắng nghe hoặc học hỏi từ những sai lầm vì họ không thừa nhận rằng họ đã mắc sai lầm – như đã đề cập trước đây, họ thường chơi trò đổ lỗi để thay thế.

Xin lưu ý rằng điều này không có nghĩa là cowboy coders là những người khó tính – họ có thể là người dễ chịu nhất mà bạn từng gặp – nhưng sự kiêu ngạo và không sẵn sàng chịu trách nhiệm cho những sai lầm thường ăn sâu vào thái độ tinh thần của họ bất cứ khi nào.

Theo itguru.vn

Japan IT Works 



Việc làm theo chuyên ngành

Việc làm theo ngành

Việc làm theo tỉnh thành