Nếu là một nhà tuyển dụng cần tuyển developer, làm thế nào để bạn có thể đánh giá đúng mức độ năng lực, kinh nghiệm, kỹ năng của họ trong quá trình tuyển dụng? Đối với nhà tuyển dụng, điều quan trọng trong việc tuyển là phải hiểu chính xác những đặc điểm nào sẽ mang lại giá trị tối đa cho đội ngũ hiện có. Cho dù một tổ chức cần developer dày dạn kinh nghiệm để đóng vai trò chủ chốt, hay developer tài năng sáng giá và có thể đào tạo để phát triển, cả junior developer và senior developer đều đóng vai trò quan trọng với các vai trò khác nhau trong đội.
Dưới đây là danh sách những đặc điểm của senior và junior developer mà nhà tuyển dụng cần phải xem xét ngoài tiêu chí số năm kinh nghiệm mà chúng ta hay nhắc đến.
Junior Developer
Thế nào là một junior developer?
Junior developer là người có hiểu biết cơ bản về lập trình nhưng chưa chứng minh được khả năng hoạt động độc lập của mình. Họ có thể có những quan điểm mới mẻ nhưng vẫn đang ở giai đoạn đầu của sự nghiệp và cần sự giám sát và cố vấn hợp lý từ các đồng nghiệp dày dạn kinh nghiệm. Junior developer không chỉ có thể giúp thực hiện các công việc hàng ngày mà còn trở thành khoản đầu tư dài hạn vô giá một khi họ phát triển thành các nhà phát triển dày dạn kinh nghiệm hơn.
Dưới đây là một số điểm chính mà các công ty cần đánh giá về Junior developer trong quá trình tuyển dụng:
Kỹ năng chuyên môn
- Kỹ năng giải quyết vấn đề, sự tháo vát, khả năng suy nghĩ thấu đáo, đánh giác các vấn đề theo những cách khác nhau để tìm kiếm giải pháp, kỹ phân tích vấn đề của họ như thế nào.
- Họ có bằng chứng về kiến thức và các nguyên tắc cơ bản trong lập trình không? (ví dụ: bằng cử nhân có liên quan, hoàn thành chương trình đào tạo về lập trình, điểm số..)
- Nếu họ tốt nghiệp một chương trình đào tạo chính thức như bằng Cử nhân hoặc chương trình đào tạo về lập trình, họ có ít nhất một số kinh nghiệm phát triển thực hành không? (ví dụ: dự án cá nhân, dự án trường học, kinh nghiệm làm việc, thực tập)
- Họ có kinh nghiệm xử lý sự cố không? Họ có thông thạo các quy trình kiểm tra và gỡ lỗi cơ bản không?
- Họ có hiểu biết cơ bản về cách thức hoạt động của công nghệ cốt lõi mà công ty của bạn đang sử dụng không? Hay họ đã quen với một software stack có thể giúp họ nắm bắt công nghệ mới một cách nhanh chóng?
- Họ có các kỹ năng viết code linh hoạt và có thể hỗ trợ nhiều thành viên và các khía cạnh trong nhóm của bạn khi cần thiết không?
Khả năng hòa nhập nhóm hiện có
- Họ có quen thuộc với triết lý phát triển của đội ngũ hiện có?
- Họ đã từng làm việc thành công trong một nhóm trong quá khứ hay quen thuộc với sự năng động của một nhóm phát triển?
- Họ có chủ động trong nhóm, đóng góp ý kiến trong thời điểm thích hợp và có mạnh dạn liên hệ với những người khác khi họ gặp trở ngại không?
- Họ có sẵn sàng chấp nhận những lời chỉ trích và hướng dẫn mang tính xây dựng từ đồng đội?
- Họ có thể hiện sự mong muốn tìm hiểu tổng thể hệ thống và mong muốn hiểu công việc của họ phù hợp với hệ thống đó như thế nào?
Các kỹ năng mềm
- Họ có khao khát mở rộng kiến thức và phát triển trong lĩnh vực lập trình không?
- Họ đã chứng tỏ được năng lực tự khởi nghiệp, chủ động tìm cách đóng góp ngay cả khi chưa được chỉ định rõ ràng chưa?
- Họ có kỹ lưỡng, định hướng chi tiết và cam kết thực hiện các dự án của họ như họ đã cam kết với chúng không?
- Họ có các kỹ năng giao tiếp cơ bản tốt mà họ có thể sử dụng để thảo luận hiệu quả cả các khái niệm kỹ thuật và phi kỹ thuật không?
- Họ có thái độ định hướng theo nhóm và sẵn sàng đóng góp cho tổ chức kỹ thuật tổng thể không?
- Họ có sẵn sàng đặt sự cạnh tranh trên cơ sở vì lợi ích của đội không?
Senior Developer
Một Senior developer là một người có thể hợp tác và đóng góp thực tế trong team. Không nhất thiết họ phải lãnh đạo một nhóm các developers nhưng được kỳ vọng sẽ có kiến thức chuyên môn đã được chứng minh trong lĩnh vực chuyên môn cụ thể, nắm chắc về chu trình phát triển phần mềm và sẵn sàng cố vấn và cộng tác với các đồng nghiệp ở mọi cấp độ kinh nghiệm . Kỹ năng kỹ thuật của họ là tài sản rõ ràng nhất và thường đóng vai trò trung tâm trong việc đánh giá khi tuyển dụng. Các kỹ năng phi kỹ thuật của họ cũng rất quan trọng trong việc đảm bảo khả năng cộng tác thành công với các thành viên còn lại trong nhóm của bạn.
Dưới đây là một số đặc điểm hàng đầu của senior developer cần được đánh giá đúng mức ngoài việc thông thạo các kỹ năng và thực hành phát triển phần mềm cơ bản:
Chuyên môn
- Họ có thể chứng minh khả năng thực thi chu trình phát triển phần mềm từ đầu đến cuối không?
- Họ có chủ động lập kế hoạch dài hạn bằng cách tính toán trước các vấn đề tiềm ẩn và sai sót trong công việc của họ và hỗ trợ nhóm khi có vấn đề xảy ra không?
- Họ có nỗ lực tương tác nhất quán với các blog, podcast hoặc các nguồn thông tin liên quan đến nghề nghiệp của họ để bắt kịp với các công nghệ hiện tại và đang thay đổi không?
- Họ đã chứng minh được khả năng lãnh đạo và quản lý các dự án với sự hướng dẫn tối thiểu chưa, dù là theo nhóm hay cá nhân?
- Họ có theo dõi việc ước lượng phạm vi và tiến độ dự án của họ, đồng thời thực hiện một cách nhất quán các cam kết mà họ đưa ra không?
Khả năng hòa nhập nhóm
- Họ có được đào tạo và cảm thấy thoải mái với triết lý phát triển mà nhóm của bạn lựa chọn không?
- Họ có kinh nghiệm làm việc liên chức năng với các bộ phận khác để lắng nghe, diễn giải và thực hiện các yêu cầu liên quan đến phát triển khi cần thiết không?
- Họ có định hướng theo nhóm và sẵn sàng tìm kiếm sự hướng dẫn và hợp tác từ các đồng nghiệp của họ khi cần thiết không?
- Họ đã chứng minh được khả năng cố vấn thành công cho các nhà phát triển đồng nghiệp và tạo ra một môi trường học tập chưa?
- Họ có khiêm tốn và cởi mở để lắng nghe ý kiến đóng góp của các nhà phát triển khác trong nhóm của họ, bao gồm cả đồng nghiệp và đồng đội ít kinh nghiệm hơn không?
Các kỹ năng mềm
- Họ có hoàn toàn chịu trách nhiệm về những đóng góp của họ cho công ty, dù tích cực hay tiêu cực? Khi vấn đề phát sinh, họ có dừng lại hay đổ lỗi?
- Họ có được đầu tư vào việc tạo ra chất lượng công việc cao nhất quán trên toàn diện hay không, cho dù các nhiệm vụ được coi là lâu dài hay thú vị và thách thức hơn?
- Họ có các kỹ năng giao tiếp kỹ thuật tiên tiến mà họ có thể sử dụng để lập kế hoạch và cộng tác hiệu quả với các đồng nghiệp không?
- Họ cũng có các kỹ năng giao tiếp phi kỹ thuật nâng cao mà họ có thể tận dụng để diễn giải và cung cấp các yêu cầu từ nhân viên có ít hoặc không có kinh nghiệm phát triển (ví dụ: nhân viên trong Tiếp thị Sản phẩm hoặc Phát triển Kinh doanh)?
- Họ có được đầu tư vào việc liên tục phát triển bản thân và học hỏi trong lĩnh vực này, thay vì chỉ tham gia vào các khái niệm và thực hành mà họ đã hiểu?
Kết luận
Đánh giá một cách chính xác mức độ kinh nghiệm của các junior và senior developer mà bạn đang tuyển là cực kỳ quan trọng để xây dựng một đội ngũ phù hợp. Các câu hỏi và đặc điểm trong bài viết không chỉ giúp nhà tuyển dụng tuyển đúng người mà còn giúp các developer đánh giá lại mình và cải thiện các kỹ năng cần thiết để trở thành các senior developer đúng nghĩa.
Ngoài những đặc điểm trên, nhà tuyển dụng có thể tham khảo thêm Programmer Competency Matrix tại đây để có thể đánh giá tốt hơn mức độ kinh nghiệm của các developer tại đây
Bài viết dựa trên bài đăng trên HackerRank: Your Guide to Assessing Junior vs. Senior Developers