Xin chào các nhà phát triển đồng nghiệp!
Trong suốt sự nghiệp của mình, tôi đã thực hiện hơn 100 cuộc phỏng vấn với các nhà phát triển ở mọi cấp độ, từ các nhà phát triển cấp dưới đến những người kỳ cựu dày dạn kinh nghiệm. Và bạn biết những gì? Trong thời gian đó, tôi đã soạn ra một bộ 10 câu hỏi hóc búa mà tôi sẽ đặt ra cho mọi ứng viên mới.
Tại sao? Chà, thật đơn giản: những câu hỏi này cho phép tôi đi xa hơn việc chỉ đánh giá kỹ năng kỹ thuật của ai đó. Họ nghiên cứu sâu hơn về quá trình suy nghĩ, cách tiếp cận giải quyết vấn đề, khả năng làm việc nhóm và những phẩm chất quan trọng khác.
Bạn đã sẵn sàng cho cuộc chiến trí tuệ này chưa? Vậy thì hãy chuẩn bị tinh thần vì những câu hỏi này không dành cho người yếu tim!
Giả sử bạn đang triển khai hệ thống chỉnh sửa tạp chí nơi các biên tập viên có thể chỉnh sửa các bài viết trong bảng quản trị. Làm cách nào bạn có thể ngăn hai biên tập viên đồng thời chỉnh sửa cùng một bài viết và ghi đè lên những thay đổi của nhau?
Các nguyên tắc triển khai không có thời gian ngừng hoạt động, một phương pháp triển khai ứng dụng mà không có thời gian ngừng hoạt động của dịch vụ là gì? Làm thế nào điều này đạt được?
Nêu tên các khía cạnh của khuôn khổ ưa thích mà bạn không thích hoặc không hoạt động theo cách bạn muốn. Giải thích những vấn đề này phát sinh như thế nào và ở đâu cũng như cách chúng có thể được cải thiện.
4. Xử lý các công việc định kỳ chạy dài
Điều gì có thể xảy ra nếu công việc định kỳ của bạn, chạy mỗi phút, bắt đầu mất hơn một phút để thực thi? điều này có thể được ngăn ngừa bằng cách nào?
5. Không chuẩn hóa dữ liệu trong cơ sở dữ liệu
Bạn đã bao giờ gặp phải nhu cầu không chuẩn hóa dữ liệu trong cơ sở dữ liệu chưa? Nếu vậy, bạn đang cố gắng giải quyết vấn đề gì, bạn gặp phải những thách thức nào và làm cách nào để giải quyết vấn đề đó tốt hơn?
6. Chế nhạo các cuộc gọi bên ngoài trong các bài kiểm tra
Nếu bạn viết bài kiểm tra, làm cách nào bạn tránh được vấn đề về lệnh gọi bên ngoài do mã bạn đang kiểm tra thực hiện? Hãy xem xét tình huống trong đó các cuộc gọi bên ngoài bị cấm trên CI (tích hợp liên tục). Tại sao đây là một thực hành tốt?
7. Đồng bộ hóa các thay đổi email với hệ thống bên ngoài
Giả sử hệ thống của bạn triển khai chức năng thay đổi email. Tuy nhiên, email cũng được lưu trữ trong một hệ thống bên ngoài, chẳng hạn như bộ xử lý thanh toán, hệ thống này sẽ gửi email đến người dùng (nhưng người dùng không tương tác trực tiếp với nó). Bạn sẽ triển khai đồng bộ hóa email với hệ thống bên ngoài như thế nào?
Làm thế nào để bạn tìm hiểu về các lỗi xảy ra trong sản xuất? Bạn có dựa vào báo cáo của người dùng hoặc có cơ chế tự động tại chỗ không?
Bạn sẽ thiết kế một ứng dụng trò chuyện đơn giản như thế nào? Bạn có thể hỏi kỹ sư phụ trợ về phần phụ trợ và kỹ sư giao diện người dùng về phần giao diện người dùng. Có thể có nhiều nhánh trong cuộc trò chuyện này.
10. Kiểm thử cô lập trong môi trường nhiều người dùng
Làm cách nào để đảm bảo việc cách ly thử nghiệm khi nhiều thử nghiệm chạy đồng thời và truy cập vào cơ sở dữ liệu, có khả năng sửa đổi cơ sở dữ liệu? Nếu khung của bạn không cung cấp sự cô lập, bạn sẽ triển khai hoặc cải thiện nó như thế nào?
Lời khuyên bổ sung:
Khuyến khích ứng viên giải thích chi tiết về quá trình suy nghĩ và lập luận đằng sau câu trả lời của họ.
Đánh giá kỹ năng giải quyết vấn đề, khả năng tư duy phản biện và kiến thức về các công nghệ liên quan của họ.
Đánh giá kỹ năng giao tiếp và hợp tác của họ trong suốt cuộc phỏng vấn.