Đặc điểm của một lập trình viên 10x, 20x
Chúng ta đều đã nghe về cụm từ kỹ sư 10x, phải không? Bạn có biết rằng nghiên cứu trong những năm 1960 thực sự từng đề cập đến 20 sự khác biệt giữa một kỹ sư giỏi và tồi tệ? Cuộc thí nghiệm so sánh thời gian viết code, debug, tốc độ chạy chương trình, kích thước code… Kết quả ...
Chúng ta đều đã nghe về cụm từ kỹ sư 10x, phải không? Bạn có biết rằng nghiên cứu trong những năm 1960 thực sự từng đề cập đến 20 sự khác biệt giữa một kỹ sư giỏi và tồi tệ? Cuộc thí nghiệm so sánh thời gian viết code, debug, tốc độ chạy chương trình, kích thước code… Kết quả là có tới 10 sự khác biệt nhưng theo cá nhân tôi nghĩ rằng sự khác biệt thậm chí có thể lên tới 20 đối với các kỹ sư thực sự tuyệt vời và tôi sẽ giải thích lý do tại sao trong bài viết này.
Lưu ý rằng sự khác biệt này trở nên quan trọng hơn nếu sản phẩm của bạn thành công và có thể mở rộng. Bạn có thể tuyển 20 kỹ sư dở để làm việc với những đoạn code tốt nhất, nhưng họ vẫn sẽ không đạt được những gì tuyệt vời nhất có thể.
Đã có rất nhiều bài báo liệt kê 10 điểm nổi bật của một kỹ sư giỏi, nhưng tôi vẫn sẽ nói lại cho bạn biết nhằm có sự đồng nhất. Đương nhiên, đây là ý kiến cá nhân của tôi, và bạn có thể không đồng ý, nhưng mục tiêu cuối cùng vẫn là cung cấp cho các kỹ sư một số quan điểm để suy nghĩ về các lĩnh vực họ có thể cải thiện và có thể tạo sự khác biệt.
Từ 10x đến 20x
10 đặc điểm của một developer giỏi – developer 10x
1) code đơn giản, rõ ràng, dễ bảo trì và có thể mở rộng
Tôi nghĩ rằng đây là một trong những đặc điểm cơ bản. Lập trình là một nghề mà nhiều người làm việc trên cùng một project. Vì vậy, mà một developer giỏi là khi họ viết code với mục đích có thể dễ dàng được tái cấu trúc, tái cơ cấu hoặc thay thế.
2) Hiểu rõ về vấn đề gặp phải
Các kỹ sư 10x giải quyết vấn đề trực tiếp chứ không phải là đưa ra một cái nhìn chung chung tổng quát. Đây là một điểm thường bị đánh giá thấp và bỏ qua bởi nhiều người.
3) Khả năng cân bằng giữa thực dụng và cầu toàn
Các kỹ sư 10x có khả năng tạo ra cả hai giải pháp nhanh chóng và mạnh mẽ và sự khôn ngoan để lựa chọn cái nào phù hợp với một vấn đề nhất định. Họ biết khi nào nên hack và khi nào đầu tư vào chất lượng, và họ thực hiện những lựa chọn này một cách có chủ ý. Nhưng hacks của họ vẫn được viết theo cách mà họ dễ dàng ổn định sau này.
4) Sự khiêm tốn, kiên trì và tự cải thiện
Họ biết bản thân vẫn còn nhiều thứ không biết, nhưng vẫn thử làm. Sau đó, họ lặp lại bằng nỗ lực của mình cho đến khi thật sự hiểu. Kỹ sư giỏi là người luôn học tập liên tục. Họ học ngôn ngữ, công cụ, thư viện và cả cách lập trình. Tài năng của họ xuất phát từ tư duy rèn luyện liên tục. Nhờ đó, tất cả kiến thức của họ mang lại cho bản thân những quan điểm khác nhau.
5) Không “ngán” bất nhiệm vụ được giao nào
Developer thường không thích debug, ngay cả khi đó là code của họ. Trái ngược lại, các developer giỏi sẽ tập trung và sửa những lỗi đó bằng sự kiên trì. Hiểu rằng điều này có thể không làm cho họ hạnh phúc, nhưng developer biết nó cần phải được thực hiện và đó là một phần trách nhiệm của mình.
6) Sử dụng công cụ hoặc phương pháp đúng cho dự án
Bất cứ công việc nào được đưa ra, các kỹ sư 10x luôn biết cách chọn đúng công cụ. Điều này thực sự có nghĩa là sự đơn giản của giải pháp quan trọng hơn việc tìm ra giải pháp dễ dàng. Họ cũng không nhất thiết phải luôn tuân theo bất kỳ phương pháp nào, nhưng họ vẫn sẽ tìm hiểu về chúng trong trường hợp chúng có thể hữu ích.
7) Biết nghi ngờ khi cần thiết
Các lập trình viên bình thường sẽ luôn bằng lòng mỗi khi tìm thấy giải pháp để làm việc. Trái ngược lại, các kỹ sư 10x có xu hướng không tin vào code của mình. Vì thế, họ sẽ kiểm tra nó kĩ lưỡng. Một sự khác biệt nhỏ, vô hại mà các lập trình viên khác có thể bỏ qua thì ngược lại developer 10x sẽ nghi ngờ nó đến từ một vấn đề lớn hơn và sẽ điều tra thêm.
8) Giỏi quản lý thời gian và công việc
Kỹ sư 10x có độ tin cậy cao bởi họ có một tinh thần làm việc mạnh mẽ và luôn xuất hiện tại các cuộc họp đúng giờ. Sự hiểu biết của họ về quản lý thời gian thực sự giúp ích trong ước tính thời điểm phát hành sản phẩm.
9) Kỹ năng giao tiếp tuyệt vời
Kỹ sư 10x có thể hiểu rõ vấn đề một cách rõ ràng và chuyển tiếp sự hiểu biết của họ cho bất kỳ thành viên nào trong nhóm. Họ cũng không cần phải có tất cả các thông số kỹ thuật được viết ra.
10) Thái độ tích cực
Họ là những người tích cực, sẵn sàng đi xa để hoàn thành công việc và cống hiến hết mình cho nó mỗi ngày. Khi bạn cần ship một bản phát hành trước deadline, họ sẽ tăng cường và đưa sản phẩm ra mắt bất cứ khi nào có thể. Bởi vì một lập trình viên giỏi là người quan tâm tới sản phẩm của mình
Các đặc điểm của developer 20x
Developer 20x có tất cả 10 đặc điểm đầu tiên của một developer 10x và cộng thêm một số kĩ năng khác!
11) Không có sự thiên vị
Các kỹ sư 20x có kỹ năng bẩm sinh để xem những gì thực sự cần thiết. Họ không ngần ngại đặt câu hỏi chất vấn về sự hiểu biết của mình và team. Đây cũng là một phẩm chất thường thấy ở product manager giỏi!
12) Không chỉ là một thành viên
Họ cải thiện team của mình thông qua sự hiểu biết, kiến thức và cố vấn của mình. Họ rất vui khi thấy mọi người chịu học hỏi. Vì vậy, mà các developer 20x luôn ủng hộ lập trình cặp, không phải vì họ muốn cố vấn bạn, nhưng bởi vì họ cảm thấy bản thân cũng có thể học hỏi. Vì vậy mà tư duy của developer 20x dần được ủng hộ và làm theo bởi các thành viên khác trong nhóm.
13) Giỏi giao tiếp và ứng biến với Client/Sếp
Kỹ sư 20x rất giỏi trong việc giao tiếp với khách hàng hoặc manager của họ. Nhờ đó mà developer hiểu được các vấn đề tiềm ẩn vốn không rõ ràng trong tiềm thức của khách hàng / sếp và đưa ra các giải pháp phù hợp. Thông thường, điều này sẽ mang lại lợi ích năng suất rất lớn cho các đồng nghiệp của họ nhờ vào cái nhìn sâu sắc của developer 20x.
14) Cân bằng trong công việc và cuộc sống
Developer 20x hiểu rằng bất kỳ dự án nào đều là một cuộc chạy marathon chứ không phải chạy nước rút. Điều này có nghĩa là họ cố gắng cho đồng đội có thể về nhà vào cuối ngày. Các developer 20x có xu hướng để cho những đồng nghiệp ít kinh nghiệm hơn có được giữ sự cân bằng hợp lý giữa làm và chơi.
15) Cái nhìn toàn diện về sản phẩm
Các developer 20x xem cách mọi người sử dụng phần mềm của họ, tìm hiểu điều gì khiến user thất vọng và sau đó đưa ra cách để cải thiện nó. Nói cách khác, developer 20x không đưa ra giả định về những gì mọi người muốn từ phần mềm của mình. Thay vào đó, họ sẽ cố gắng hiểu khách hàng cũng như là tham gia vào các cuộc thảo luận về sản phẩm.
16) Hiểu rõ hơn về tình hình kinh doanh
Kỹ sư 20x có thể hiểu được các yếu tố quan trọng hơn trong phát triển phần mềm, chẳng hạn như nhu cầu đặc biệt từ khách hàng, thiết kế UI / UX, đưa ra ngân sách và hơn thế nữa. Điều này đảm bảo họ có thể đưa ra quyết định đúng đắn ở mọi bước. Developer 20x cũng có thể nghiên cứu lĩnh vực kinh doanh mà họ đang làm việc, để để giải quyết các vấn đề rộng hơn.
Techtalk via dzone