Trong phỏng vấn kỹ thuật, người phỏng vấn muốn thấy cách bạn suy nghĩ nhiều hơn là một đáp án đúng. Bạn có hỏi lại để hiểu đề không, có chia nhỏ vấn đề không, có nói ra suy nghĩ trong lúc làm không, có tự kiểm tra và nhận ra lỗi của mình không. Nói to suy nghĩ và trung thực khi không biết là hai điều quan trọng nhất.
Chào bạn, đây là Nhà Lập Trình. Phỏng vấn kỹ thuật là nỗi sợ của rất nhiều người, kể cả người làm nghề lâu năm. Ngồi trước người lạ, giải một bài toán trong thời gian có hạn, cảm giác như thi cử. Tập này kể phỏng vấn kỹ thuật từ phía bên kia bàn, để bạn biết người ta đang chấm gì.
Buổi phỏng vấn là một mẫu thử công việc
Hãy nghĩ về buổi phỏng vấn như một mẫu thử ngắn của việc làm chung với bạn. Người phỏng vấn đang tự hỏi: nếu người này vào đội, cùng mình giải quyết một vấn đề khó, thì sẽ như thế nào.
Trong công việc thật, không ai giải quyết vấn đề trong im lặng rồi đưa ra đáp án hoàn hảo. Người ta hỏi lại yêu cầu, thử một hướng, gặp lỗi, sửa, trao đổi với đồng nghiệp. Người phỏng vấn muốn thấy chính quá trình đó.
Vì vậy, một ứng viên giải xong bài trong im lặng, đáp án đúng, nhưng không giải thích gì, có khi được đánh giá thấp hơn một ứng viên chưa giải xong nhưng suy nghĩ rõ ràng, trao đổi tốt, tự phát hiện được lỗi của mình.
Hiểu điều này giúp bạn bớt áp lực phải ra đáp án hoàn hảo, và tập trung vào điều người ta thật sự muốn thấy.
Hỏi lại trước khi làm
Khi nhận đề, đừng lao vào viết ngay. Hãy hỏi lại để chắc mình hiểu đúng. Dữ liệu đầu vào lớn cỡ nào? Có thể rỗng không? Có trùng lặp không? Kết quả cần trả về dạng gì? Nếu có hai đáp án thì trả về cái nào?
Nhiều đề phỏng vấn cố tình mơ hồ, để xem bạn có hỏi không. Trong công việc thật, yêu cầu gần như luôn mơ hồ, và người giỏi là người biết hỏi đúng câu trước khi làm.
Nhắc lại đề bằng lời của mình, kèm một ví dụ nhỏ: vậy nếu đầu vào là thế này thì kết quả là thế kia phải không. Người phỏng vấn sẽ xác nhận hoặc sửa, và bạn tránh được việc giải sai đề mười phút.
Những câu hỏi này không làm bạn trông kém. Ngược lại, chúng cho thấy bạn cẩn thận và có kinh nghiệm với yêu cầu thật.
Nói to suy nghĩ và bắt đầu từ cách đơn giản
Trong lúc giải, hãy nói ra những gì mình đang nghĩ. Mình đang nghĩ cách này, nhưng nó sẽ chậm nếu dữ liệu lớn. Mình thử cách kia xem. Người phỏng vấn không đọc được suy nghĩ của bạn. Im lặng mười phút, họ không biết bạn đang bí hay đang nghĩ rất hay.
Nói to suy nghĩ cũng cho người phỏng vấn cơ hội giúp. Nhiều người phỏng vấn sẵn lòng gợi ý khi thấy bạn đi đúng hướng mà kẹt một chỗ nhỏ. Nhưng họ chỉ gợi ý được nếu biết bạn đang ở đâu.
Bắt đầu từ cách đơn giản nhất bạn nghĩ ra, dù nó chậm. Nói rõ: đây là cách đơn giản, nó chạy được nhưng chậm, giờ mình thử cải thiện. Có một lời giải chạy được dù chậm tốt hơn nhiều so với theo đuổi lời giải tối ưu mà không xong.
Nói to suy nghĩ cần luyện tập, vì bình thường ta nghĩ trong im lặng. Hãy luyện với bạn bè, hoặc tự nói một mình khi giải bài tập ở nhà.
Tự kiểm tra và trung thực khi không biết
Khi viết xong, đừng tuyên bố xong ngay. Hãy tự chạy thử bằng tay với một ví dụ: dòng này làm gì, biến này thành gì. Thử với trường hợp biên: rỗng, một phần tử, rất lớn. Nếu tự phát hiện được lỗi và sửa, đó là điểm cộng lớn, vì đó chính là điều người làm nghề giỏi làm hằng ngày.
Khi gặp câu hỏi bạn không biết, hãy nói thẳng là không biết, rồi nói cách bạn sẽ tìm hiểu, hoặc suy luận từ những gì bạn biết. Mình chưa làm với cái này, nhưng nếu nó giống cái kia thì mình đoán là như thế này.
Đừng bịa. Người phỏng vấn có kinh nghiệm nhận ra ngay, và sự thiếu trung thực đáng lo hơn nhiều so với thiếu một kiến thức. Kiến thức học được, còn thói quen bịa khi không biết thì nguy hiểm trong công việc thật.
Và nếu bạn bí hoàn toàn, hãy nói bạn đang bí ở đâu. Đôi khi đó là lúc người phỏng vấn gợi ý, và cách bạn tiếp nhận gợi ý cũng là một phần được đánh giá.
Kể về dự án và hỏi lại nhà tuyển dụng
Nhiều buổi phỏng vấn có phần hỏi về dự án bạn đã làm. Hãy chuẩn bị kể một hai dự án thật kỹ: vấn đề là gì, bạn đã làm gì, quyết định quan trọng nào và vì sao, gặp khó khăn gì, nếu làm lại sẽ làm khác thế nào. Câu cuối cùng cho thấy bạn biết tự nhìn lại, và rất ít ứng viên chuẩn bị nó.
Nói thật về phần mình làm trong dự án nhóm. Người phỏng vấn sẽ hỏi sâu vào chi tiết, và nếu bạn nhận phần của người khác, bạn sẽ lộ ra rất nhanh.
Cuối buổi, thường bạn được mời đặt câu hỏi. Hãy chuẩn bị vài câu thật: đội làm việc thế nào, người mới được hướng dẫn ra sao, một ngày làm việc điển hình trông như thế nào, đội đang gặp thách thức gì. Câu hỏi tốt cho thấy bạn quan tâm thật, và giúp chính bạn biết nơi đó có hợp không.
Phỏng vấn là hai chiều. Bạn đang được chọn, nhưng bạn cũng đang chọn.
Câu hỏi thường gặp
Phỏng vấn kỹ thuật lập trình thường có những phần nào?
Thường gồm giải bài toán lập trình, câu hỏi về kiến thức nền tảng, trao đổi về dự án đã làm và phần ứng viên đặt câu hỏi. Mỗi nơi có cách tổ chức khác nhau.
Không giải được bài trong phỏng vấn có bị loại không?
Không nhất thiết. Người phỏng vấn đánh giá cả cách bạn suy nghĩ, trao đổi và tự kiểm tra. Một lời giải chưa xong nhưng hướng đi rõ ràng vẫn có thể được đánh giá tốt.
Nói to suy nghĩ khi phỏng vấn là gì?
Là nói ra những gì bạn đang nghĩ trong lúc giải bài, như đang cân nhắc cách nào, vì sao bỏ cách kia. Nó giúp người phỏng vấn hiểu cách bạn làm việc và có thể gợi ý khi bạn kẹt.
Gặp câu hỏi không biết thì trả lời sao?
Nói thẳng là chưa biết, rồi trình bày cách bạn sẽ tìm hiểu hoặc suy luận từ kiến thức liên quan. Đừng bịa, vì người phỏng vấn thường nhận ra.
Nên hỏi gì khi được mời đặt câu hỏi cuối buổi phỏng vấn?
Hỏi về cách đội làm việc, cách hướng dẫn người mới, một ngày làm việc điển hình và thách thức đội đang gặp. Những câu này cho thấy bạn quan tâm thật và giúp bạn đánh giá nơi làm việc.