Chủ YếU Công Nghệ Làm thế nào để nhận ra sự khác biệt giữa một lập trình viên giỏi và một người giỏi

Làm thế nào để nhận ra sự khác biệt giữa một lập trình viên giỏi và một người giỏi

Tử Vi CủA BạN Cho Ngày Mai

Nếu viết mã là một môn khoa học, tất cả các nhà phát triển sẽ giống nhau.

Cũng như trong nghệ thuật, không có hai nhà phát triển nào có cùng suy nghĩ hoặc nhận thức hoặc sự thật chủ quan trong khi viết mã cho cùng một kết quả.

Trong khi một số đấu tranh để tạo ra kết quả mong muốn, đối với một số ít, điều đó đến gần như tự nhiên, như thể một sự hiển linh ập đến với họ vào lúc họ ngồi để tạo ra các chương trình hoặc giải quyết một vấn đề.

Trong một bài viết trên blog Steve McConnell (được trích dẫn là một chuyên gia trong lĩnh vực kỹ thuật phần mềm) viết rằng nghiên cứu ban đầu phát hiện ra những thay đổi lớn trong năng suất lập trình cá nhân được thực hiện vào cuối những năm 1960 bởi Sackman, Erikson và Grant. Họ phát hiện ra rằng tỷ lệ thời gian viết mã ban đầu giữa những lập trình viên giỏi nhất và kém nhất là khoảng 20 đến 1. Họ không tìm thấy mối quan hệ nào giữa lượng kinh nghiệm của một lập trình viên với chất lượng hay năng suất mã.

Mặc dù có những sai sót trong nghiên cứu này, ngay cả sau khi tính toán chúng, dữ liệu vẫn cho thấy sự khác biệt hơn 10 lần giữa những lập trình viên giỏi nhất và những người kém nhất.

Tại Arkenea, chúng tôi có hơn 5 năm kinh nghiệm tuyển dụng các nhà phát triển và việc đánh giá một lập trình viên giỏi vẫn là một thử thách như những ngày trước đó.

Đó không phải là một thử thách duy nhất. Chúng tôi đã chứng kiến ​​nhiều doanh nghiệp lớn và các công ty trong các ngành đấu tranh với cùng một vấn đề. Nhiều người đã tạo ra một quy trình lọc bằng các thử nghiệm khác nhau, nhưng bạn có thể thực sự kiểm tra một nghệ sĩ không?

Câu trả lời thẳng thắn là không.

Viết mã tốt đơn giản không phải là yếu tố duy nhất khi đánh giá liệu lập trình viên có phải là một nguồn tài nguyên tuyệt vời hay không.

Nhưng có một cách. Có một số chỉ số khác (ngoài chất lượng viết mã) phân biệt các lập trình viên giỏi với những người giỏi.

Christopher Burke, trong một phản hồi về Quora , được nhấn mạnh rằng bất kỳ ai có thể viết chương trình làm việc để giải quyết vấn đề đều là lập trình viên. Mặt khác, một lập trình viên giỏi là người cộng tác với những người khác để tạo ra các chương trình có thể bảo trì, thanh lịch, phù hợp với khách hàng sử dụng, đúng thời gian và tỷ lệ sai sót thấp, ít hoặc không có kịch tính giữa các cá nhân.

Nhưng điều tạo nên một lập trình viên giỏi là người hiểu các thuật toán và kiến ​​trúc một cách trực quan, có thể xây dựng các hệ thống lớn tự nhất quán với ít sự giám sát, có thể phát minh ra các thuật toán mới, có thể cấu trúc lại hệ thống trực tiếp mà không phá vỡ chúng, có thể giao tiếp hiệu quả và hòa đồng với các nhân viên không chuyên về kỹ thuật và các vấn đề phi kỹ thuật, hiểu cách kiểm soát bản ngã của mình và có thể dạy kỹ năng của mình cho người khác.

Tuy nhiên, theo kinh nghiệm của tôi, tôi sẽ đánh đồng định nghĩa của anh ấy về một lập trình viên với định nghĩa của một lập trình viên giỏi và định nghĩa của anh ấy về một lập trình viên giỏi với định nghĩa của một người tuyệt vời.

Tôi sẽ nói ai đó mà Christopher gọi là một lập trình viên vĩ đại, không nhất thiết phải viết mã khi đạt đến giai đoạn này trong sự nghiệp của anh ta hoặc cô ta. Người đó sẽ làm việc có chiến lược hơn với các công ty và nhóm phát triển của họ để đưa ra định hướng sản phẩm - về cơ bản là một người giống như một CTO.

Sự sẵn sàng ở lại với một vấn đề cho đến khi nó được giải quyết (không nên nhầm lẫn với việc ngồi vào một vấn đề), cùng với khả năng giải quyết nó một cách sáng tạo, là một kỹ năng hoặc năng khiếu rất được mong muốn chỉ có ở những lập trình viên giỏi.

Vì vậy, câu hỏi tinh túy, làm thế nào để bạn xác định một lập trình viên tuyệt vời? Người này sẽ có thể nhanh chóng giải quyết tận gốc vấn đề của bạn. Người đó có thể không đưa ra giải pháp ngay lập tức nhưng có thể vạch ra con đường đi đến giải pháp một cách nhanh chóng và hiệu quả.