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

08/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? Bài viết này sẽ liệt kê những đặc điểm giúp bạn nhận ra được mình là một lập trình viên như thế nào. (Lưu ý trong bài có sử dụng cả developer lẫn programmer nhưng về cơ bản các đặc điểm là như nhau)

Ở phần trước chúng ta đã tìm hiểu một lập trình viên tệ là như thế nào. Phần này bạn sẽ biết được một lập trình viên bình thường và giỏi là như thế nào nhé.

 

Lập trình viên tầm thường (Mediocre Developer)

Ở một khía cạnh nào đó, những nhà phát triển tầm thường tệ hơn những người viết code vì họ biết mình không giỏi, nhưng họ thường hài lòng với việc dậm chân tại chỗ về mặt kỹ năng.

Không giống như cowboys, các nhà phát triển tầm thường (Mediocre programmer or developer) thường không quan tâm đến việc lập trình hoàn toàn và do đó gặp khó khăn trong việc hiểu các khái niệm lập trình. Họ mất nhiều thời gian để xây dựng một thứ gì đó, nhưng code do họ viết vẫn dưới trung bình và có nhiều vấn đề. Họ thường không có niềm đam mê hay hứng thú với việc viết code, và họ học các công nghệ mới chậm hoặc thực tế là không thể học được.

Có thể những nhà phát triển tầm thường không cá tính như cowboy vì họ sẽ chơi trong một đội, nhưng họ chắc chắn không mang lại điều gì đáng bàn và giải pháp của họ sẽ luôn kém hơn những cowboy (họ thường tạo ra rất nhiều lỗi  hay code kém hiệu quả cũng như do nhiều quyết định tồi).

 

Cốt lõi của vấn đề

Cốt lõi của điều làm cho một nhà phát triển trở nên tồi tệ là thiếu mong muốn trở thành một lập trình viên giỏi hơn. Bad programmers hài lòng và thoải mái với hiện tại. 

Hơn nữa, bad programmer là người không quan tâm đến việc học những gì họ không biết và do đó không quan tâm đến việc cải thiện bản thân.

Đây cũng là lý do tại sao bạn thường tìm thấy rất nhiều bản copy và dán trong code của bad programmer, vì họ không nỗ lực tìm hiểu lý do tại sao một cái gì đó hoạt động hoặc không hoạt động – họ chỉ muốn sửa chữa. Sao chép và dán không phải là xấu, nhưng chỉ trong các trường hợp sau:

  • Bạn biết mình đang làm gì.
  • Bạn chắc chắn rằng code bạn đang sao chép và dán sẽ hoạt động.
  • Nó chỉ để testing / dùng thử

Bad developers thường sẽ copy & paste StackOverflow mà không hiểu nó hoặc điều chỉnh các giải pháp để phù hợp với code của riêng họ.

Sự thiếu tò mò về cách thức hoạt động của một đoạn code sẽ khiến các bad developers hiểu biết hời hợt về ngôn ngữ, công cụ hay các thư viện mà họ sử dụng. Như Jeff Atwood, người đồng sáng lập của StackOverflow nói, “Read the Source Code, Luke”. Lưu ý rằng, những người luôn nhấn mạnh vào việc tuân theo “các phương pháp hay nhất” mà không hiểu tại sao những phương pháp đó được coi là “tốt nhất” cũng có thể xem bad programmers.

Ngoài ra, lập trình viên tệ dường như không bao giờ học hỏi từ những sai lầm của họ, vì họ không thừa nhận rằng họ đã mắc sai lầm hoặc vì thiếu học hỏi.

Bạn có thể mắc lỗi và tạo ra lỗi vì mọi người đều mắc lỗi. Tuy nhiên, nếu bạn tiếp tục lặp lại sai lầm của mình, điều này có nghĩa là bạn đang không học hỏi và điều đó khiến bạn trở thành một bad developer.

 

Lập trình viên giỏi

Các nhà phát triển giỏi phải tạo nên phần lớn năng suất làm việc cho cả nhóm và họ thường có các đặc điểm sau:

  • Nhận thức rằng luôn có một nhà phát triển tốt hơn
  • Khiêm tốn và sẵn sàng chịu trách nhiệm về sai lầm cũng như học hỏi từ sai lầm
  • Viết code có cấu trúc, có thể đọc được
  • Thiết kế code vững chắc có thể được gỡ lỗi dễ dàng
  • Cố gắng hiểu cách mọi thứ hoạt động
  • Giao tiếp và hợp tác tốt với những người khác trong nhóm
  • Cởi mở với những lời chỉ trích và các cách tiếp cận khác nhau
  • Có thể bắt kịp với việc học hỏi các công nghệ mới
  • Thích giải quyết vấn đề

Code chất lượng rất khó đo lường (đó là lý do tại sao nó không thể được đưa vào bài kiểm tra, nhưng đây là một khía cạnh quan trọng làm cho nhà phát triển trở nên “tốt”).

(source)

Lưu ý : Nếu bạn là nhà phát triển mới bắt đầu hoặc người làm nghề tự do, bạn có thể nhận được đánh giá code từ các nhà phát triển chuyên gia tại Codementor.

Các nhà phát triển giỏi là những người tốt và khiêm tốn, có trách nhiệm, những người sẽ hoàn thành công việc và đảm bảo mọi thứ hoạt động như bình thường. 

 

Các nhà phát triển thực sự giỏi

Bạn không cần phải cảm thấy áp lực khi trở thành một nhà phát triển “tuyệt vời”, bởi vì những người thực sự giỏi không cần bất kỳ gợi ý nào – họ có thể đã làm những điều này vì niềm đam mê và tình yêu viết code thôi thúc họ.

Có hai kiểu nhà phát triển thực sự sẽ giúp một nhóm:

  • Nhà phát triển MVP
  • Nhà phát triển hữu ích

MVP

Các nhà phát triển kiểu MVP không chỉ đơn giản là giải quyết vấn đề, họ biết có nhiều cách để thực hiện công việc. Họ cố gắng tìm ra phương pháp tốt nhất để giải quyết vấn đề. Họ phát triển vượt bậc nhờ thử thách và do đó luôn làm việc hiệu quả nhất trong các nhiệm vụ khó – đây là điều khiến MVP có năng suất cao hơn nhiều so với hầu hết các nhà phát triển vì họ có thể đạt được những điều mà các nhà phát triển bình thường không thể. Tuy nhiên, nhờ sự yêu thích thử thách này, các nhà tuyển dụng có thể gặp khó khăn trong việc giữ chân họ nếu công việc được giao cho họ quá dễ dàng hoặc nhàm chán, bởi vì các MVP có thể bỏ đi nếu họ cảm thấy buồn chán.

Các nhà phát triển MVP thường rất tự hào về công việc của họ và do đó họ là người gắn bó với chất lượng và hiệu suất. Trên thực tế, họ sẽ xem xét nhiều trường hợp phức tạp và giải thích trước khi vấn đề xảy ra. Trong một số trường hợp, họ là kỹ sư QA của riêng mình, họ có thể thiết kế một chương trình để giảm đáng kể thời gian gỡ lỗi. Như vậy, một lập trình viên MVP có thể có năng suất cao hơn ít nhất 10 lần so với một lập trình viên tồi.

Các nhà phát triển MVP có óc tò mò mạnh mẽ và sẽ không dừng lại ở việc tìm hiểu “tại sao” một thứ gì đó hoạt động hoặc không hoạt động. Do đó, họ dành nhiều thời gian để đọc về lập trình cũng chỉ để cập nhật tất cả các công nghệ hoặc tìm hiểu về những điều mới, nhưng họ không nhảy vào bất kỳ trò chơi nào vì họ quan tâm nhiều hơn đến việc tự tìm hiểu mọi thứ. Họ rất đam mê viết code, họ cũng thường lập trình trong thời gian rảnh rỗi, hoặc là các dự án phụ hoặc đơn giản là thử các công nghệ, công cụ và ngôn ngữ mới.

Cuối cùng, các nhà phát triển MVP tự tin nhưng khiêm tốn vì họ luôn ghi nhớ rằng sẽ luôn có ai đó giỏi hơn họ, và thay vì cảm thấy bị đe dọa, họ sẽ thích làm việc với ai đó tốt hơn chỉ vì họ muốn học hỏi từ những nhà phát triển giỏi hơn.

 

Nhà phát triển mà nhóm của bạn mong muốn

Những nhà phát triển này thể hiện những đặc điểm tương tự như một nhà phát triển MVP với tình yêu mã hóa và sự tò mò không ngừng học hỏi bên ngoài công việc, nhưng họ không nhất thiết phải làm việc hiệu quả (mặc dù họ cũng thường đứng đầu về năng suất). Họ thường chỉ để lại bình luận phù hợp mà người khác cần và chủ động ghi lại những điều cần viết ra. Nhìn chung, những gì họ làm sẽ giúp mọi người khác trong nhóm vì đó là tài liệu sẽ giúp mọi người trong nhóm làm việc hiệu quả hơn. Bạn có thể có một nhóm MVP nhưng nhà phát triển này là người sẽ khiến tất cả họ hoạt động với hiệu quả cao nhất.

Hơn thế nữa, những tâm hồn tốt bụng này là những người có kiến ​​thức, những người rất vui khi giúp những lập trình viên thiếu kinh nghiệm trở thành những lập trình viên giỏi hơn. Họ có kiến ​​thức sâu sắc về các công cụ họ sử dụng và kiên nhẫn giải thích cho người mới bắt đầu lý do tại sao mọi thứ hoạt động và họ cố gắng đảm bảo rằng những người khác sẽ có thể hiểu và học hỏi để cải thiện.

Hầu hết, nếu không phải tất cả, các chuyên gia Codementor là những lập trình viên này. Họ không quan tâm đến việc chỉ giải quyết lỗi khó chịu đó cho bạn mà họ muốn giúp bạn học cách trở thành một lập trình viên giỏi hơn. Nếu bạn muốn hiểu “tại sao” mọi thứ hoạt động và đang gặp khó khăn khi làm như vậy thông qua googling hoặc câu hỏi để tìm câu trả lời tại StackOverflow, thì đây là những người phù hợp để hỏi.

 

Kết luận

Cuối cùng, yếu tố quan trọng nhất để trở thành một nhà phát triển giỏi, hoặc thậm chí tuyệt vời, nằm ở chính bạn. Có lẽ cần phải có tài năng và niềm đam mê bẩm sinh thực sự để trở thành một lập trình viên top 1%, nhưng bất cứ ai quan tâm đến lập trình và giải quyết vấn đề đều có thể trở thành một lập trình viên “giỏi”. Nếu bạn không muốn trở thành một lập trình viên giỏi, thì không ai có thể giúp bạn, kể cả một người cố vấn tuyệt vời. 

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