Điều gì giúp bạn trở thành một Senior developer

Cu đơ yêu nghề
Senior developer là một mức phân loại trong việc đánh giá khả năng lành nghề của một developer. Bao gồm Junior, Intermediate, Senior, trong đó Junior chỉ những người mới vào nghề có từ 1-2 năm kinh nghiệm, Intermediate chỉ những người có kinh nghiệm vào khoảng 3-5 năm và có 1 mức độ lành nghề nhất định, Senior Developer là mức đánh giá cao nhất có trên 5 năm kinh nghiệm làm việc, có một mức độ hiểu biết sâu và rộng trong lĩnh vực công nghệ. (Ngoài ra vẫn còn nhiều mức đánh giá trên cả senior developer. Tuy nhiên mình sẽ chú trọng vào Senior developer trong bài này.)
Khi tham gia phỏng vấn ứng viên, mình thấy đôi khi nhiều bạn hay đánh giá quá cao bản thân mình để rồi đánh mất đi cơ hội hiếm có để phát triển hay nhiều bạn đánh giá quá thấp bản thân để rồi bị thiệt thòi. Vì vậy mình nghĩ rằng mình nên hiểu mình là ai, đang ở đâu trong sự nghiệp. Nó cũng rất quan trọng để giúp mình có một định hướng tốt cho tương lai.
Vậy làm thế nào, tiêu chí gì để tự biết level của mình ở đâu? Đây là một câu hỏi tương đối, và khó. Dưới đây là một vài tiêu chí mình đánh giá khi phỏng vấn ứng viên của mình.
Số năm kinh nghiệm
1 trong những chỉ số quan trọng để đánh giá kinh nghiệm của ứng viên. Tuy nhiên thì "Chiếc áo không làm nên thầy tu".Số năm kinh nghiệm chỉ là một cách đánh giá tương đối và thay đổi tuỳ theo từng người.Có nhiều bạn số năm kinh nghiệm nhiều nhưng tích luỹ, kiến thức không tương xứng. Nhiều khi hỏi cũng không biết gì. Nhưng cũng có nhiều bạn có ít năm kinh nghiệm nhưng vẫn có kiến thức và kinh nghiệm đáng nể.
Số năm kinh nghiệm đối với mình nó như 1 con dao hai lưỡi với ứng viên. Nếu 1 ứng viên không có đủ kỹ năng tương xứng cũng sẽ gây ấn tượng không tốt. Ví dụ 10 năm kinh nghiệm nhưng kỹ năng chỉ tầm 2-3 năm.
Kỹ năng
Kỹ năng cơ bản nhất của một lập trình viên là code và hiểu được sâu cách vận hành của code, framework mình sử dụng, tiếp đó là khả năng thiết kế, sử dụng những practice phổ biến. Việc bạn code thế nào, tổ chức code của mình ra sao, cách đặt tên biến, cách phân chia dòng lệnh etc. Công ty sẽ đánh giá những kỹ năng này thông qua những assignment cho ứng viên, hoặc những buổi code interview online.
Giải quyết những vấn đề khó
Đây là một trong những kỹ năng quan trọng nhất để đánh giá khả năng của một kỹ sư lành nghề. Nó cũng đòi hỏi vận dụng không chỉ kỹ năng kinh nghiệm mà còn khả năng tư duy logic, khả năng phân tích. Trong buổi phỏng vấn, mình sẽ đưa ra yêu cầu một cách đơn giản và mơ hồ, việc đặt những câu hỏi để hiểu vấn đề và tìm ra lời giải phù hợp nhất cho một bài toán khó là rất quan trọng.
Make Impact
Làm một lập trình viên viết code là dễ nhất trong một dự án phần mềm. Làm cái mình giỏi nhất thích nhất. Tuy vậy ảnh hưởng bạn tạo ra lại rất nhỏ . 1 developer ra đi ko bao giờ làm chết dự án, và rất dễ bị thay thế. Khi đã tích lũy được kiến thức và kinh nghiệm thì cuối cùng một Senior developer phải biết tạo ra ảnh hưởng lớn hơn và đạt được công việc thông qua các thành viên khác.
Kết bài
Lập trình là một sự kết hợp giữa con người và máy tính theo thời gian. Trong đó yếu tố con người cũng rất quan trọng. Việc học hỏi tích luỹ kỹ năng cứng là cần thiết nhưng chưa đủ để giúp chúng ta trở thành một Senior developer. Yếu tố con người, làm việc hiệu quả cùng với team và tạo ra ảnh hưởng thông qua người khác cũng cần thiết.
Là một Senior developer không chỉ là bạn có bao nhiêu năm kinh nghiệm, biết bao nhiêu ngôn ngữ mà thực ra là bài toán bạn giải quyết là gì. Mình nghĩ là khi đã có đủ trình độ và kiến thức, việc bước ra khỏi vùng an toàn, tìm kiếm và giải quyết những bài toán khó hơn sẽ giúp chúng ta trở thành một Senior developer thực thụ.






