AI đã giết chết phỏng vấn kỹ thuật. Giờ phải làm sao?
(kanenarraway.com)- Quy trình tuyển dụng là thứ mà ai cũng ghét. Quản lý tuyển dụng, người phụ trách tuyển dụng và ứng viên đều như vậy
- Phỏng vấn kỹ thuật là một trong những bước tai tiếng nhất trong số đó, và phần lớn người đi phỏng vấn đều không thích
- Trong khi công việc thực tế chủ yếu là kết nối API đơn giản, thì trong phỏng vấn người ta lại thường hỏi về lý thuyết phức tạp và thuật toán
- Ví dụ như trường hợp tác giả của Homebrew, công cụ được cho là do 90% kỹ sư ở Google sử dụng, bị trượt phỏng vấn vì không thể đảo cây nhị phân trên bảng trắng
Những thay đổi trong vài năm gần đây (các yếu tố làm phỏng vấn mất hiệu lực)
- Đã xuất hiện các trường hợp tắt camera trong phỏng vấn từ xa rồi thuê người khác làm thay
- Từng có trường hợp lao động Triều Tiên dùng video deepfake để tìm việc
- Với sự xuất hiện của các công cụ tự động viết mã như GitHub Co-pilot, Cursor, cùng các LLM như Claude hay OpenAI, các bài toán lập trình cơ bản hoặc phần hỏi đáp giờ có thể được giải quyết rất dễ dàng
- AI ngày càng có thể can thiệp từ việc viết CV, nộp hồ sơ hàng loạt cho tới phỏng vấn video, nhưng bài viết này tập trung vào chính phỏng vấn kỹ thuật
Cấu trúc cơ bản của phỏng vấn kỹ thuật
Hầu như mọi công ty tuyển dụng lập trình viên đều có một quy trình được biến thể đôi chút như sau
- Bài kiểm tra trước trên Hackerrank
- Đóng vai trò bộ lọc để tuyển lập trình viên junior hoặc thực tập sinh
- Có thể làm bài trực tuyến một cách tự do
- Kiến thức nền tảng khoa học máy tính (Comp Sci Fundamentals)
- Hỏi về cấu trúc dữ liệu, thuật toán, Big O, v.v.
- Thường dành cho lập trình viên junior
- Phỏng vấn coding
- Đánh giá khả năng viết và chạy mã thực tế
- Dùng các ví dụ dự án đơn giản để kiểm tra khả năng sử dụng ngôn ngữ và giải quyết vấn đề ở mức cơ bản
- Kiến trúc/thiết kế
- Nhắm tới lập trình viên senior nhiều hơn junior
- Đánh giá thiết kế hệ thống, khả năng mở rộng, cơ sở dữ liệu và thiết kế API
Việc dùng AI trong phỏng vấn
- Vì AI, vai trò sàng lọc của các bài kiểm tra trước như Hackerrank đã suy yếu đáng kể
- Các phần kiến thức nền tảng khoa học máy tính và phỏng vấn coding cũng đang dễ bị giải bởi độ khó của đề bài nằm trong phạm vi trả lời của LLM
- Phỏng vấn kiến trúc/thiết kế hiện vẫn tương đối an toàn, nhưng về dài hạn nếu AI tiếp tục phát triển thì lĩnh vực này cũng có thể bị đe dọa
Chúng ta có những lựa chọn nào?
- 1. Dừng phỏng vấn kỹ thuật từ xa
- Nếu người phỏng vấn ngồi cạnh quan sát trực tiếp thì sẽ khó dùng AI hơn
- Giả sử vượt qua tất cả các vòng còn lại, có thể chuyển sang phỏng vấn coding trực tiếp
- Nếu người phỏng vấn ngồi cạnh quan sát trực tiếp thì sẽ khó dùng AI hơn
- 2. Dùng phần mềm kiểu Pearson Vue
- Cài phần mềm giám sát và theo dõi qua camera
- Không hoàn hảo vì đã có nhiều cách lách được chia sẻ rộng rãi qua nhiều kênh khác nhau (thậm chí còn có subreddit riêng về việc này)
- 3. Làm ngơ vấn đề
- Dựa vào lời kêu gọi đạo đức kiểu “đừng dùng AI”
- Kết quả là người dùng AI sẽ có lợi thế, khiến doanh nghiệp khó chọn được ứng viên phù hợp
- 4. Cho phép dùng AI
- Đánh giá khả năng viết prompt tốt cho LLM và năng lực refactor thay vì chỉ đánh giá kỹ năng coding thuần túy
- Đây cũng là giai đoạn chuyển tiếp, nơi vẫn cần năng lực lập trình đủ tốt để tự sửa lỗi trong đầu ra của AI
- 5. Cách tiếp cận hybrid
- Trước tiên kiểm tra từ xa khả năng tận dụng AI, sau đó làm vòng xác minh cuối cùng trực tiếp ngoại tuyến
Các giải pháp khả thi
- Về dài hạn, cách số 4 và số 5 có khả năng thực tế cao hơn
- Ngay cả khi áp dụng RTO, cũng không thể gọi toàn bộ ứng viên ở xa tới phỏng vấn trực tiếp, nên vẫn cần một phương án hiệu quả
- Một phương án khác là thay đổi chính định dạng của buổi phỏng vấn
- Phỏng vấn coding ngày nay nhiều khi chỉ dừng ở các bài nhỏ cỡ FizzBuzz hoặc làm máy tính đơn giản
- Nếu tận dụng hỗ trợ của AI, có thể tăng độ khó bài tập lên hơn 10 lần để đánh giá cả quá trình xây dựng một ứng dụng hoàn chỉnh
- Cũng có thể thử hình thức phỏng vấn dài khoảng 2 tiếng, kết hợp cả kiến trúc lẫn coding
- Với cách này, có thể yêu cầu ứng viên xây dựng ứng dụng, mở rộng nó và triển khai thêm tính năng
- Khi codebase lớn dần, có thể kiểm tra xem họ có giữ được tính nhất quán hay không, và đánh giá được năng lực ở mức sâu hơn thay vì chỉ dừng ở câu trả lời bề mặt
- Qua quá trình đó có thể đánh giá
- Năng lực sử dụng các công cụ cơ bản như git và IDE
- Khả năng viết prompt hiệu quả cho LLM và “lập trình” để nhận được đầu ra tốt hơn
- Năng lực hiểu và kết hợp đầu ra từ LLM để hoàn thiện mã theo hướng có thể bảo trì
- Liệu ứng viên có thể hoàn thành một ứng dụng đạt quy mô và khả năng mở rộng nhất định trong thời gian giới hạn hay không
- Khả năng duy trì chất lượng và logic một cách nhất quán
- Cách đánh giá tổng hợp như vậy có thể trở thành phương án thay thế cho phỏng vấn coding trong kỷ nguyên AI
Summary
- Phỏng vấn kỹ thuật nhiều khả năng sẽ thay đổi rất lớn trong tương lai gần
- Hiện tại việc dùng AI có thể còn chậm hoặc dễ lộ, nhưng dần dần AI có thể sẽ được che giấu tốt hơn
- Từ đó có thể xuất hiện các kịch bản như
- Tỷ lệ đậu tăng lên, nhưng thay vào đó số trường hợp bị loại trong thời gian làm việc thực tế (probation) cũng có thể tăng
- Áp lực buộc lập trình viên junior phải sớm theo kịp yêu cầu kỹ thuật cao của doanh nghiệp có thể còn lớn hơn
- Nếu cách dùng AI để vượt qua phỏng vấn FAANG lan rộng, tốc độ thay đổi có thể còn tăng nhanh hơn nữa
9 bình luận
Tôi lo rằng thay vì thu hẹp sự lệch pha giữa phỏng vấn kỹ thuật và công việc thực tế, người ta lại đổ lỗi oan cho AI.
Không biết có phải vì sự thay đổi này không, nhưng công ty tôi đang làm hiện phỏng vấn bằng live coding mà không có bài tập làm trước.
Bên chỗ tôi hiện đang chuyển sang chính sách cho phép dùng AI để trả lời trong phỏng vấn kỹ thuật.. Vì đầu vào quyết định đầu ra, nên ngược lại còn có thể đánh giá năng lực đặt câu hỏi..
Tôi nghĩ dùng AI cũng được.
Nhưng kết quả tạo ra theo cách đó phải được biến thành 100% của chính mình.
Nếu tôi là người phỏng vấn, tôi sẽ giao bài tập lập trình online rồi trong buổi phỏng vấn trực tiếp yêu cầu ứng viên giải thích về đoạn mã đó. Tất nhiên cũng sẽ có thêm các câu hỏi bổ sung.
Dù là tự viết hay AI viết, nếu ở mức độ không thể giải thích đoạn mã đã nộp và cũng không trả lời được các câu hỏi liên quan thì nên bị loại.
> Thay vì kỹ năng lập trình, hình thức đánh giá sẽ chuyển sang khả năng viết prompt tốt cho LLM và năng lực refactoring
Tôi nghĩ những năng lực này sẽ trở nên quan trọng hơn.
Vấn đề không phải do AI, mà chẳng phải là do trước đây các bài tập phỏng vấn vốn đã có định dạng sơ sài kiểu “hãy tìm ra
optimal answer, vậy là mọi thứ đều OK”, và giờ vấn đề đó chỉ mới lộ ra thôi sao? Trong công việc thực tế cũng đâu phải là sẽ không dùng AI, vậy thì tại sao lại đặt ra hạn chế? haha Dù dùng phương tiện nào đi nữa, miễn tạo ra được output là được. Tuy vậy, vẫn cần đánh giá một cách minh bạch xem họ đã tận dụng phương tiện đó như thế nào.Tôi đồng ý. Khi AI xuất hiện, những bài kiểm tra coding tào lao xa rời công việc thực tế sẽ tự nhiên bị thị trường đào thải, và những công ty dùng phương thức tuyển dụng tốt hơn sẽ thu hút được nhân tài giỏi.
Đây đúng là một cuộc chiến thú vị giữa giáo và khiên.
Chương trình gian lận phỏng vấn Leetcode
Đây là một ví dụ phù hợp về việc gian lận bằng AI trong các buổi phỏng vấn kỹ thuật mà bài viết này đề cập.
Ý kiến Hacker News
Quy trình phỏng vấn tốt nhất bao gồm lập trình cặp với thành viên trong nhóm và phỏng vấn qua điện thoại. Chỉ trong vài phút là có thể biết ứng viên có làm việc tốt hay không, và quy trình này đã tạo ra đội ngũ hiệu quả nhất trong hơn 20 năm sự nghiệp
Review code rất hữu ích như một công cụ đánh giá
Khoảng năm 2005, tại một SME đã được yêu cầu code trên bảng trắng nhưng không được dùng máy tính
Nếu AI có thể giải hết mọi câu hỏi phỏng vấn kỹ thuật, thì công ty A nên tự hỏi vì sao họ lại không tuyển chính AI
Một kỹ thuật tuyển dụng để tránh AI là yêu cầu lập trình viên junior mang code của họ đến và giải thích nó
Với tư cách người phỏng vấn, ở các công ty không phải FAANG thì dùng quy trình phỏng vấn đơn giản
Thị trường việc làm hiện tại đang hỗn loạn, nên có vẻ sẽ khó kiếm việc cho đến khi mọi thứ thực sự đụng trần
Việc dùng các bài Leetcode mức trung bình/cao trong 30-45 phút phỏng vấn chỉ có thể làm lộ ra hai kiểu người
Vấn đề không phải là AI, mà là công ty không biết cách lựa chọn ứng viên cho đúng
Ở buổi phỏng vấn gần nhất, đã được yêu cầu dùng công cụ, bao gồm cả AI, để hoàn thành bài tập