Tin tức

Làm thế nào để trở thành một Kỹ sư Phần mềm Senior? Tôi đã tuyển hơn 1.000 người

Drawing on experience hiring over a thousand software engineers, the author argues that seniority is not about years of experience but a mindset shift. The clearest signal of a senior engineer is whether they pause to ask 'why' before solving a problem. Beyond technical skill, senior engineers think about outcomes and customers, not just code quality. Practical advice includes habitually questioning the problem before acting and deliberately expanding scope by owning projects end-to-end rather than waiting for tickets.

Matt Watson05/07/202610 phút đọc10 lượt xem
Làm thế nào để trở thành một Kỹ sư Phần mềm Senior? Tôi đã tuyển hơn 1.000 người

Một lập trình viên dừng lại để hỏi "Tại sao?" trước khi trả lời — đó là tín hiệu rõ ràng nhất giúp phân biệt một Kỹ sư Phần mềm Senior.

Tôi đã tuyển dụng hơn 1.000 kỹ sư phần mềm.

Tại VinSolutions, Stackify và hiện tại là Full Scale, nơi chúng tôi xây dựng các đội ngũ phát triển phần mềm chuyên biệt cho các công ty trên khắp nước Mỹ.

Sau từng ấy cuộc phỏng vấn, từng ấy lần tuyển dụng và từng ấy kỹ sư mà tôi đã chứng kiến phát triển, chững lại rồi lại trưởng thành, tôi có một góc nhìn khá rõ ràng về điều gì tạo nên sự khác biệt giữa một Senior Software Engineer và những người còn lại.

Và điều đó không giống như những gì hầu hết mọi người nghĩ.

Tại sao số năm kinh nghiệm là một thước đo sai lầm

Theo thống kê trong ngành, trung bình cần khoảng 6 năm để đạt đến vị trí Senior Engineer.

Nhưng theo tôi, con số đó không nói lên nhiều điều.

Chúng tôi từng phân tích rất kỹ về từng cấp độ kỹ sư và kết luận nhất quán là:

"Cấp độ của một kỹ sư được quyết định bởi phạm vi vấn đề họ giải quyết và mức độ họ làm chủ công việc, chứ không phải bởi thời gian."

Nếu bạn làm cùng một công việc suốt 10 năm, bạn hoàn toàn có thể vẫn chỉ là một Junior Developer với 10 năm kinh nghiệm.

Senior không liên quan đến việc bạn đã đi làm bao nhiêu năm.

Biểu đồ minh họa: Số năm kinh nghiệm không dự đoán được cấp độ Senior. Có người đạt Senior chỉ sau 2 năm, trong khi có người vẫn là Junior sau hơn 10 năm.

Danh hiệu Senior không tích lũy theo thời gian giống như số ngày nghỉ phép.

Hoặc là bạn đã thay đổi tư duy, hoặc là bạn chưa.

Thời gian trôi qua không đồng nghĩa với sự trưởng thành.

Tôi đã tuyển những kỹ sư chỉ có 2 năm kinh nghiệm nhưng tư duy của họ rõ ràng là Senior.

Ngược lại, tôi cũng từng phỏng vấn những người có hơn 10 năm kinh nghiệm nhưng còn rất xa mới đạt được cấp độ đó.

Vì vậy, khi ai đó hỏi tôi:

"Mất bao lâu để trở thành Senior?"

Câu trả lời của tôi luôn là:

"Bạn đang nhìn nhầm thứ cần nhìn."

Điều thực sự quan trọng là:

"Điều gì thay đổi khi một người bước sang cấp độ Senior?"

Và sự thay đổi đầu tiên chính là cách họ xử lý những câu hỏi mà họ chưa thực sự hiểu rõ.

Tín hiệu đầu tiên tôi luôn tìm kiếm: Họ có hỏi "Tại sao?" không?

Tôi đã thực hiện rất nhiều cuộc phỏng vấn.

Và tôi đã chứng kiến rất nhiều cách các kỹ sư trả lời câu hỏi.

Tín hiệu rõ ràng nhất mà tôi từng thấy là:

Liệu họ có dừng lại để hỏi "Tại sao?" trước khi bắt đầu trả lời hay không.

Một Junior Engineer sẽ trả lời đúng câu hỏi bạn vừa đặt ra.

Bạn hỏi họ sẽ thiết kế một API như thế nào.

Họ lập tức lao vào giải thích cách thiết kế.

Họ giải quyết đúng vấn đề được mô tả.

Một Senior Engineer thì khác.

Họ dừng lại.

Họ muốn biết:

API này dùng để làm gì?

Vì sao cần xây dựng nó?

Những ràng buộc là gì?

Ai sẽ sử dụng?

Vấn đề thực sự cần giải quyết là gì?

Chỉ một khoảng dừng rất ngắn ấy thôi.

Nghe có vẻ nhỏ.

Nhưng thực tế nó cực kỳ quan trọng.

Sơ đồ minh họa: Junior đi thẳng từ câu hỏi đến câu trả lời, trong khi Senior dừng lại để hỏi "Tại sao?" trước khi đưa ra giải pháp.

Việc trả lời một câu hỏi trước khi hiểu vì sao câu hỏi đó được đặt ra là một trong những dấu hiệu rõ ràng nhất mà tôi nhìn thấy trong các buổi phỏng vấn.

Điều đó không có nghĩa người đó là một kỹ sư kém.

Nó chỉ cho thấy họ chưa hình thành thói quen phân tích vấn đề trước khi lao vào giải pháp.

Senior Engineer làm điều này gần như theo phản xạ.

Trước khi viết một dòng code, họ hiểu:

Họ đang xây dựng cái gì.

Vì sao phải xây dựng nó.

Trước khi ước lượng một task, họ xem xét lại những giả định phía sau.

Trước khi phát biểu trong cuộc họp, họ dừng lại để nghĩ xem điều thực sự đang được hỏi là gì.

Đây là điều mọi kỹ sư nên làm.

Nhưng với một Senior Engineer, đó không còn là lựa chọn nữa.

Đó là tiêu chuẩn tối thiểu.

Toàn bộ sự khác biệt chỉ gói gọn trong điều này:

Hỏi "Tại sao?" là hành vi phân biệt người chỉ biết thực thi với người thực sự làm chủ công việc.

Và chính khả năng làm chủ (Ownership) mới là cốt lõi của một Senior Engineer.

Senior Software Engineer thực sự khác biệt ở điểm nào?

Phần lớn lời khuyên để thăng cấp trong ngành đều xoay quanh kỹ thuật:

Học Design Pattern.

Giỏi System Design hơn.

Giải nhiều bài LeetCode hơn.

Những điều đó đều quan trọng.

Nhưng chúng chỉ là điều kiện tối thiểu, chứ không phải yếu tố quyết định.

Những kỹ sư mà tôi từng đề bạt lên Senior đều có một điểm chung.

Và điểm đó không liên quan đến code.

Họ suy nghĩ vượt ra ngoài những dòng code.

Điều đó thể hiện ở những câu hỏi như:

Họ có thể dẫn dắt một đội ngũ không?

Họ có thể chịu trách nhiệm cho một dự án từ đầu đến cuối không?

Họ có thể thiết kế và triển khai một hệ thống phức tạp không?

Họ có thể trao đổi trực tiếp với khách hàng để hiểu điều khách hàng thực sự cần không?

Điều cuối cùng thường bị đánh giá thấp nhất.

Phần lớn lập trình viên chỉ nghĩ về code.

Senior Developer nghĩ về khách hàng.

Tôi từng phỏng vấn nhiều kỹ sư có trình độ kỹ thuật xuất sắc.

Nhưng họ không thực sự quan tâm phần mềm có giải quyết đúng vấn đề hay không.

Điều họ quan tâm là:

Code có đẹp không?

Có thông minh không?

Đồng nghiệp có khen không?

Có dùng đúng Design Pattern không?

Trong khi đó, Senior Engineer chỉ quan tâm một điều:

Thứ mình xây dựng có thực sự giúp ích cho người sử dụng hay không.

Nghe có vẻ hiển nhiên.

Nhưng chính điều đó thay đổi mọi thứ.

Nó thay đổi:

Những câu hỏi bạn đặt ra khi nhận yêu cầu.

Những tình huống đặc biệt bạn nghĩ tới.

Cách bạn phản biện yêu cầu.

Điều bạn ưu tiên tối ưu.

Những kỹ sư có bước chuyển mình này không còn suy nghĩ như một lập trình viên nữa.

Họ suy nghĩ như một người sở hữu sản phẩm.

Họ quan tâm đến kết quả cuối cùng (Outcome), chứ không chỉ khối lượng công việc đã hoàn thành (Output).

Đây là điều rất khó để dạy.

Hoặc bạn tự phát triển được nó.

Hoặc bạn sẽ không bao giờ có được.

Làm thế nào để thực sự đạt đến cấp độ Senior?

Tin tốt là:

Sự thay đổi về tư duy này không phải điều ngẫu nhiên.

Bạn hoàn toàn có thể chủ động rèn luyện.

Nếu muốn tăng tốc quá trình trở thành Senior, hãy bắt đầu từ thói quen quan trọng nhất:

Luôn hỏi "Tại sao?" trước khi làm bất cứ điều gì.

Trước khi viết code.

Trước khi ước lượng một task.

Trước khi trả lời trong cuộc họp.

Hãy tự hỏi:

Vấn đề thực sự là gì?

Khách hàng thật sự cần điều gì?

Vì sao câu hỏi này được đặt ra?

Chỉ riêng thói quen này thôi cũng đủ khiến người khác nhìn bạn khác đi.

Bạn sẽ chuyển từ người chỉ biết thực thi thành người biết suy nghĩ.

Đó chính là biểu hiện rõ ràng nhất của sự trưởng thành.

Điều tiếp theo giúp bạn tiến bộ nhanh hơn là chủ động mở rộng phạm vi trách nhiệm.

Tình nguyện dẫn dắt những việc bạn chưa từng làm.

Nhận trách nhiệm cho cả kết quả dự án, thay vì chỉ phần việc của mình.

Tiếp xúc với khách hàng nếu có cơ hội, dù chỉ để lắng nghe.

Những kỹ sư tôi từng thấy trưởng thành nhanh nhất đều có một điểm chung:

Họ không ngồi chờ ai đó giao task.

Họ chủ động tìm kiếm những vấn đề cần được giải quyết và tự mình chịu trách nhiệm.

Mọi người thường hỏi tôi:

"Muốn lên Senior nhanh hơn thì có nên nhảy việc không?"

Đôi khi việc đổi công ty có thể giúp bạn phát triển nhanh hơn.

Nhưng đó không phải yếu tố quyết định.

Tôi từng thấy có người trở thành Senior chỉ sau 2 năm ở cùng một công ty.

Tôi cũng từng gặp những người đã làm ở cả chục công ty trong suốt 10 năm nhưng vẫn chưa đạt đến cấp độ đó.

Sự khác biệt chưa bao giờ nằm ở số năm.

Nó nằm ở việc:

"Bạn đã nhận ra rằng công việc của mình lớn hơn những dòng code hay chưa."

— Matt Watson
(Dịch bởi Vũ Văn Thuận)