Trở về căn bản

“Ok, I think I’m going to give up”

Ứng viên nói với mình khi còn 5 phút cho thời gian phỏng vấn pair programming.

Mình khá tiếc khi nghe bạn ấy nói vậy. Nhưng thật sự thì đây không phải lần đầu một ứng viên chia sẻ như vậy với mình.

Khi bạn phỏng vấn cho vị trí Data Scientist, bạn chắc chắn sẽ phải trải qua vòng technical interview. Technical interview cũng ở nhiều dạng, tuỳ công ty. Có nơi cho take-home assignment, bạn tự giải đề bài công ty giao theo thời gian quy định, không có người phỏng vấn ở đó. Có nơi khác làm live-coding/pair programming, bạn tương tác với người phỏng vấn để giải bài.

Một năm qua mình có dịp ngồi phỏng vấn các bạn ứng viên trong vòng pair programming (cả Python lẫn SQL) và quan sát thấy một số điểm giúp các bạn gây ấn tượng để vào vòng trong.

  1. Sau khi đọc câu hỏi, bạn tóm tắt lại theo cách hiểu của mình, và hỏi một số câu follow up để xác nhận những giả định của bạn
  2. Trước khi viết code, bạn bàn qua về hướng đi, những trường hợp hiếm gặp (edge case) có thể xảy ra. Mỗi lần mình có điểm chưa rõ hoặc mình thấy bất đồng quan điểm trong hướng đi, mình sẽ hỏi lại bạn. Và mình rất thích cơ hội được thảo luận, tranh luận với ứng viên để tìm hiểu cá tính làm việc và kĩ năng hợp tác
  3. Bạn nghĩ đến người sử dụng code, hoặc cách họ sẽ sử dụng kết quả từ code đó để đưa ra giải pháp phù hợp
  4. Khi bạn code, bạn chia sẻ rõ ràng bạn sẽ làm gì và tại sao bạn lại làm điều đó
  5. Sau khi code, bạn kiểm xem kết quả có đúng như mình hình dung ban đầu hay không. Đơn giản nhất bạn sẽ nhìn qua và nói cho mình biết bạn đang kiểm tra cái gì. Những người thạo hơn sẽ viết unit test
  6. Và cuối cùng, bạn rất vững căn bản

Mình muốn nhấn mạnh về điểm cuối cùng - vững căn bản. Đa số các bạn trượt vòng pair programming với mình đều biết cách sử dụng package pandas trong Python. Nhưng bạn lại quên mất cách sử dụng những data structure căn bản nhất của Python như list, tuple, dictionary. Bởi vậy, khi gặp những câu phỏng vấn không thể làm được bằng pandas, bạn sẽ thấy rất khó khăn, và một số trường hợp đã bỏ cuộc giữa chừng.

Nếu bạn nào đang muốn dành thời gian ôn lại Python và SQL, bạn có thể xem qua các khoá học miễn phí, hoặc đọc thẳng documentation trên website của mỗi ngôn ngữ

Có thể bạn đang thắc mắc tại sao mình lại đề cập đến 6 điểm trên. Phỏng vấn lập trình chưa bao giờ dừng lại ở việc kiểm tra kĩ năng lập trình. Mỗi cuộc phỏng vấn pair programming như vậy là một cơ hội lấy những tín hiệu về kĩ năng lập trình, cách suy nghĩ phân tích, cá tính làm việc, kĩ năng hợp tác và nhận góp ý của ứng viên. Những kĩ năng mà mình và công ty mong muốn ở một đồng nghiệp tương lai, làm việc 40 tiếng mỗi tuần với mình.

Mong với chia sẻ nho nhỏ này, bạn có thêm điểm nhìn từ một người phỏng vấn để chuẩn bị cho đợt phỏng vấn trong tương lai thật mỹ mãn nha!

Photo by Towfiqu barbhuiya on Unsplash