Cách Tổ Chức Một Buổi Phỏng Vấn Thử Cho Kỹ Sư Phần Mềm
Bởi Aaron Cao · Cập nhật

Hãy luyện tập từng vòng một dưới áp lực thời gian thực, trong đúng công cụ mà vòng thật sử dụng, với một người phỏng vấn có ngắt lời bạn. Hãy chấm điểm cấu trúc, giao tiếp và khả năng phục hồi, chứ không phải việc bạn có đạt được giải pháp tối ưu hay không. Một buổi luyện tập không bao giờ trục trặc thì không phải đang luyện phần khó nhất.
Một buổi phỏng vấn thử chân thực cho kỹ sư phần mềm gồm những gì?
Bạn có lẽ đã giải rất nhiều bài tập mà vẫn thấy chưa sẵn sàng, và lý do thường là vì tự giải một mình không phải là điều vòng phỏng vấn đo lường. Phần này tách riêng ba vòng mà một quy trình tuyển kỹ sư phần mềm sử dụng, vì mỗi vòng cần một cách luyện khác nhau và gộp chúng lại sẽ lãng phí buổi luyện.
- Coding. 35 đến 45 phút, một hoặc hai bài, vừa gõ code vừa nói to suy nghĩ. Mục tiêu luyện tập là thuật lại một giải pháp mà bạn vẫn đang hình thành.
- Thiết kế hệ thống. 45 đến 60 phút, một đề mở, không có làm rõ trừ khi bạn hỏi. Mục tiêu luyện tập là xác định phạm vi bài toán trước khi thiết kế nó.
- Behavioral. 45 phút kể chuyện dự án với các câu hỏi truy vấn gay gắt. Mục tiêu luyện tập là sống sót qua câu hỏi truy vấn thứ ba về một quyết định bạn hối tiếc.
Mỗi buổi chỉ nên luyện một trong số này. Một vòng lặp đầy đủ ba tiếng đồng hồ có vẻ hiệu quả nhưng gần như không mang lại phản hồi nào hữu ích, vì đến vòng thứ ba bạn đang luyện sự mệt mỏi chứ không phải kỹ năng. Nếu bạn muốn kho câu hỏi thay vì cơ chế luyện tập, đó là một trang riêng trong trung tâm phỏng vấn thử.
Làm thế nào để tự luyện một mình?
Các buổi luyện một mình thường thất bại theo cách dễ đoán: bạn chọn một bài mình có thể giải, dừng đồng hồ khi bị bí, rồi kết thúc với cảm giác ổn. Mỗi điều đó đều ngược lại hoàn toàn với điều kiện thật. Hãy tái tạo đúng những ràng buộc đó.
- Đừng tự chọn bài của mình. Lấy từ một danh sách bạn chưa đọc, hoặc nhờ người khác chọn. Tự chọn nghĩa là chọn thứ khiến bạn thấy thoải mái.
- Bấm giờ và đừng bao giờ dừng lại. Thời gian bị bí cũng là dữ liệu. Tạm dừng sẽ xóa đi đúng áp lực mà bạn đang luyện để chịu đựng.
- Khớp đúng công cụ. Nếu vòng thật dùng trình soạn thảo dùng chung, không gợi ý code, không nút chạy và không bộ kiểm thử, hãy luyện đúng ở đó.
- Nói với một căn phòng trống. Nghe có vẻ vô lý nhưng đây là phần giá trị nhất. Giải bài trong im lặng luyện một kỹ năng mà không ai chấm điểm.
- Ghi hình lại. Xem lại chính mình rất khó chịu và nó cho bạn thấy những từ đệm, việc lùi lại sửa, và phút giây bạn im bặt.
- Lúc đầu hãy thiết kế mà không dùng công cụ vẽ sơ đồ. Nhiều vòng thiết kế chỉ là một cuộc gọi thoại và một tài liệu trống.
Điều duy nhất một buổi luyện một mình không thể cung cấp là sự ngắt lời, và ngắt lời chính là phần lớn lý do khiến vòng thật trở nên khó. Một người phỏng vấn AI có thể lấp đúng khoảng trống đó: nó hỏi câu hỏi truy vấn ngay giữa câu bạn đang nói và không lịch sự chờ bạn nói xong. Chế độ phỏng vấn thử vận hành các vòng theo đúng cách này.
Bạn nên thu thập những phản hồi nào?
Hầu hết mọi người kết thúc một buổi luyện thử và ghi lại một kết luận chung chung, thứ vô dụng sau một tuần. Hãy thu thập những quan sát cụ thể gắn với hành vi mà bạn có thể thay đổi.
- Thời gian đến câu hỏi làm rõ đầu tiên. Nếu quá chín mươi giây, bạn đang giải sai bài toán.
- Khoảng im lặng dài nhất. Bất cứ điều gì trên hai mươi giây cần một câu giữ chỗ nói ra thành lời thay vào đó.
- Bạn có nêu cách tiếp cận trước khi gõ code không? Có hoặc không, mỗi lần đều vậy.
- Bạn phục hồi thế nào khi bị bí? Nhắc lại bài toán, thử một trường hợp nhỏ hơn, hoặc đứng hình.
- Phần thảo luận độ phức tạp là do được hỏi hay tự nêu ra? Tự nêu ra được chấm điểm cao hơn.
- Với thiết kế: bạn có xác định phạm vi trước khi vẽ không? Ràng buộc và quy mô trước, các ô hình sau.
Một kỹ sư backend chuẩn bị cho một vòng tuyển senior đã luyện mười hai buổi và vượt qua tất cả, rồi lại trượt vòng coding thật sau khi im lặng bốn phút trước một biến thể lạ. Các buổi luyện của cô chưa bao giờ có một bài mà cô không giải được, nên cô chưa từng luyện đúng điều duy nhất thực sự đã trục trặc. Cô đổi một quy tắc, cho phép các bài trên trình độ của mình, và vấn đề im lặng lộ ra ngay lập tức.
Bao nhiêu buổi luyện thử là đủ, và chúng không thể sửa được điều gì?
Không có con số kỳ diệu nào, và số lượng vượt quá một mức nào đó sẽ không còn đáng công nữa. Một khuôn mẫu hữu ích là hai đến ba buổi luyện cho mỗi loại vòng, trải trong hai tuần, với phần đánh giá giữa các buổi quan trọng hơn chính các buổi luyện. Sáu buổi luyện không có đánh giá còn tệ hơn ba buổi có ghi chú cẩn thận.
Hãy rõ ràng về giới hạn. Một buổi luyện thử không thể cho bạn biết bạn sẽ gặp bài nào, không thể đoán trước phong cách của người phỏng vấn bạn, và không thể thay thế việc thực sự nắm vững kiến thức. Điều nó sửa được là lớp trình bày: vừa nói vừa nghĩ, xác định phạm vi trước khi xây dựng, và phục hồi thành tiếng khi bị bí. Những điều đó chuyển hóa hoàn toàn, và chúng cũng là những điều mà đọc sách không dạy được.
Luyện tập và hỗ trợ trực tiếp là hai câu hỏi khác nhau với hai câu trả lời khác nhau. Việc luyện tập không có gì gây tranh cãi. Hỗ trợ trong một cuộc phỏng vấn thật phụ thuộc vào định dạng và quy định của nhà tuyển dụng, và các vòng coding có chia sẻ màn hình hoặc giám sát sẽ hoàn toàn nằm ngoài phạm vi này. Các giới hạn trung thực được nêu tại trung tâm khả năng bị phát hiện.
Câu hỏi thường gặp
Một kỹ sư phần mềm nên luyện bao nhiêu buổi phỏng vấn thử?
Tôi có thể tự luyện một buổi phỏng vấn thử hữu ích mà không cần bạn đồng hành không?
Bài luyện thử nên ở trình độ của tôi hay khó hơn?
Phỏng vấn thử có giúp ích cho vòng thiết kế hệ thống không?
Phỏng vấn thử có giống với việc luyện LeetCode không?
Câu hỏi liên quan
- Làm thế nào để thực hiện một buổi phỏng vấn thử thực tế cho vị trí product manager?
- Kỹ sư phần mềm nên luyện tập những câu hỏi nào trong buổi phỏng vấn thử?
- Làm sao tôi có thể luyện phỏng vấn một mình mà không cần bạn đồng luyện?
- Có phỏng vấn thử AI miễn phí không, và phiên bản miễn phí bao gồm những gì?
- Bạn nên luyện tập những câu hỏi hành vi nào trong một buổi phỏng vấn thử?
- Phỏng vấn thử có thực sự cải thiện hiệu suất phỏng vấn không?