Phỏng vấn pair programming: những điều cần biết và cách chuẩn bị
Bởi Aaron Cao · Cập nhật

Trong một buổi phỏng vấn pair programming, bạn sẽ cùng một kỹ sư viết code thật, thường là trên một trình soạn thảo dùng chung hoặc trên IDE của chính bạn qua chia sẻ màn hình, thường xoay quanh một tính năng nhỏ hoặc một lỗi trong một codebase thực tế. Nhà tuyển dụng đánh giá khả năng phối hợp, giao tiếp và các thói quen như viết test, chứ không chỉ xem bạn có hoàn thành hay không.
Phỏng vấn pair programming khác gì với một bài kiểm tra code?
Nếu bạn chủ yếu chuẩn bị bằng các câu đố thuật toán, một vòng pair programming có thể khiến bạn thấy lạ lẫm. Phần này giải thích sự khác biệt đó và nó thay đổi cách bạn chuẩn bị ra sao. Nói ngắn gọn, bạn đang được đánh giá như một đồng đội tương lai, chứ không phải người giải đố.
Buổi phỏng vấn thường diễn ra theo một trong ba hình thức: một trình soạn thảo dùng chung trên trình duyệt, IDE của chính bạn trong khi chia sẻ màn hình, hoặc phần mở rộng của một dự án take-home mà bạn đã làm trước đó. Nhiệm vụ thường giống công việc hằng ngày, chẳng hạn thêm một quy tắc kiểm tra hợp lệ, sửa một test đang thất bại, hoặc tái cấu trúc một hàm. Một số công ty hoán đổi vai trò, nên bạn sẽ dành một phần buổi phỏng vấn làm “driver” gõ code và một phần làm “navigator” dẫn dắt hướng đi.
Nhà tuyển dụng đánh giá điều gì?
- Câu hỏi làm rõ. Bạn có xác nhận yêu cầu và thế nào là “xong” trước khi viết code không.
- Nói to suy nghĩ. Người cùng cặp có thể theo kịp kế hoạch của bạn mà không cần hỏi lại không.
- Tiến triển từng bước. Những bước nhỏ chạy được thay vì một thay đổi lớn duy nhất ở cuối.
- Viết test. Bạn có viết hoặc chạy test để chứng minh thay đổi hoạt động không.
- Đọc code. Bạn nắm bắt code mà mình không viết nhanh đến mức nào.
- Tiếp nhận góp ý. Bạn phản hồi ra sao trước gợi ý hoặc ý tưởng khác từ người cùng cặp.
Các hình thức phỏng vấn code khác, gồm bảng trắng, take-home và vòng thuật toán trực tiếp, được so sánh trong trang tổng hợp các loại phỏng vấn.
Một buổi pair programming tốt trông như thế nào?
Một kỹ sư backend phỏng vấn cho vị trí mid-level tại một startup logistics được yêu cầu thêm một quy tắc giảm giá vào module thanh toán hiện có. Trước khi gõ code, họ hỏi liệu các mã giảm giá có thể cộng dồn hay không và điều gì nên xảy ra với các đơn hàng đang xử lý. Họ đọc các test hiện có, viết một test thất bại cho quy tắc mới, làm cho nó thành công bằng thay đổi đơn giản nhất, rồi hỏi người cùng cặp xem quy tắc này nên nằm trong class tính giá hay trong một policy object riêng. Khi người phỏng vấn gợi ý một cách tiếp cận khác, họ đã thử và giải thích sự đánh đổi. Họ không hoàn thành yêu cầu mở rộng, nhưng phản hồi vẫn tập trung vào việc họ dễ hợp tác đến mức nào.
Quy trình làm rõ, viết test trước, thực hiện thay đổi nhỏ và bàn về thiết kế chính là điều mà hầu hết các vòng pair programming muốn quan sát.
Nên chuẩn bị như thế nào, và SubcueAI phù hợp ở đâu?
Hãy pair với một người bạn trên một nhiệm vụ nhỏ trong một repository xa lạ, và luyện tập vừa làm vừa thuyết minh. Nếu bạn sẽ dùng IDE của chính mình, hãy thiết lập môi trường trước: dự án nên build được và test nên chạy được trước khi cuộc gọi bắt đầu. Công cụ phỏng vấn giả lập giúp ích cho các phần trò chuyện, chẳng hạn giải thích một quyết định thiết kế hoặc một dự án cũ.
Hãy thực tế về các công cụ trực tiếp ở đây. Pair programming phụ thuộc nhiều vào chia sẻ màn hình, và mọi thứ bạn chia sẻ đều hiển thị với người cùng cặp; người phỏng vấn cũng đang xem bạn viết code theo thời gian thực. SubcueAI phiên âm lời người phỏng vấn và soạn sẵn các ý trả lời trong những phần thảo luận của một buổi phỏng vấn video, từ ứng dụng desktop hoặc tiện ích trình duyệt, không có bot nào tham gia cuộc gọi. Việc viết code vẫn hoàn toàn do bạn đảm nhận, còn các môi trường có giám sát và thiết bị do công ty quản lý nằm ngoài phạm vi hỗ trợ. Chi tiết thiết lập có trên trang hướng dẫn.
Câu hỏi thường gặp
Có thể tra cứu trong lúc phỏng vấn pair programming không?
Nếu bị bí trong buổi phỏng vấn pair programming thì sao?
Tôi có cần hoàn thành nhiệm vụ không?
Tôi sẽ dùng ngôn ngữ nào?
Câu hỏi liên quan
- Phỏng vấn bảng trắng là gì và bạn chuẩn bị cho nó như thế nào?
- Tôi nên chuẩn bị thế nào cho phỏng vấn lập trình có AI hỗ trợ?
- Làm sao để chuẩn bị cho phỏng vấn hội đồng?
- Tôi nên chuẩn bị thế nào cho buổi phỏng vấn xin việc từ xa?
- Phỏng vấn nhóm là gì và làm thế nào để nổi bật trong đó?
- Phỏng vấn kỹ thuật qua điện thoại diễn ra như thế nào và làm sao để vượt qua?