Quá trình phỏng vấn của tôi gồm ba vòng chính.
- Mỗi vòng đều có những thử thách và yêu cầu riêng, tất cả đều được thực hiện bằng tiếng Anh.
- 1/ Vòng đầu tiên là Bài kiểm tra trực tuyến: Bài kiểm tra này gồm ba câu hỏi: một dễ, một trung bình và một khó, với tổng thời gian là 75 phút. Tôi đã tự tin vượt qua vòng này, giải quyết tất cả các câu hỏi trong vòng chưa đầy một giờ và chắc chắn rằng mình đã đạt điểm tuyệt đối.
- 2/ Vòng thứ hai là Vòng sàng lọc kéo dài một giờ: - Người phỏng vấn rất thân thiện và chúng tôi đã dành nửa đầu thời gian để thảo luận về kinh nghiệm trước đây của tôi. - Trong nửa sau, chúng tôi chuyển sang phần lập trình trực tiếp. Tôi đã viết một đoạn mã chạy thành công với ví dụ được đưa ra, và người phỏng vấn đã chấp nhận giải pháp được tối ưu hóa của tôi. Tôi rời khỏi vòng này với cảm giác tích cực.
- 3/ Sau đó là Vòng phỏng vấn trực tiếp, được chia thành ba cuộc phỏng vấn kéo dài một giờ.
3.1/ Cuộc phỏng vấn đầu tiên là với một trưởng nhóm kỹ thuật. - Chúng tôi bắt đầu bằng việc thảo luận về kinh nghiệm dự án của tôi trước khi chuyển sang bài kiểm tra lập trình. - Nhiệm vụ là tạo ra một trò chơi với một hành động cần được tối ưu hóa đến độ phức tạp O(1). Ban đầu, tôi đề xuất một giải pháp với độ phức tạp O(log), nhưng qua cuộc thảo luận, tôi đã có thể tinh chỉnh nó thành O(1). Tôi tự tin rằng điều này đáp ứng hoàn hảo các tiêu chí.
3.2/ Cuộc phỏng vấn thứ hai: - Bắt đầu bằng một cuộc thảo luận khác về kinh nghiệm của tôi, trong đó tôi đã vẽ sơ đồ một trong những dự án của mình. - Sau đó, người phỏng vấn đưa ra một bài toán lập trình mà tôi thấy khá dễ. - Tôi đã hoàn thành giải pháp với một ý tưởng được tối ưu hóa hoàn toàn, còn dư 30 phút. Người phỏng vấn không còn gì để hỏi và yêu cầu tôi viết một số trường hợp kiểm thử. - Sau khi tôi hoàn thành, anh ấy vẫn không có thêm câu hỏi nào, vì vậy tôi đã tận dụng cơ hội để hỏi anh ấy về công ty.
3.3/ Trong cuộc phỏng vấn thứ ba: - Chúng tôi đã nói về kinh nghiệm trước đây của tôi với các công ty khác nhau. Mặc dù tôi không thể nhớ chi tiết của một số công việc cũ hơn, nhưng người phỏng vấn đảm bảo với tôi rằng điều đó không sao cả. - Sau đó, chúng tôi chuyển sang một câu hỏi về thiết kế hệ thống. Nhiệm vụ là thiết kế một hệ thống tương tự như một nền tảng xã hội. - Tôi đã làm rõ phạm vi và tập trung vào trường hợp sử dụng thiết yếu mà người phỏng vấn muốn biết. - Tôi đã giải thích về thiết kế mô hình, thiết kế API và kiến trúc tổng thể. Người phỏng vấn đã hỏi một số câu hỏi tiếp theo, và tôi đã trả lời bằng cách trình bày chi tiết về cân bằng tải, khám phá dịch vụ, chiến lược mở rộng quy mô, xếp hàng, bộ nhớ đệm, sao chép cơ sở dữ liệu và chiến lược đa số. Chúng tôi cũng đã thảo luận về các sự đánh đổi và các chế độ lỗi. - Tôi cảm thấy mình đã cung cấp các câu trả lời toàn diện mà không có thiếu sót đáng kể nào. Nhìn chung, tôi nghĩ rằng quá trình phỏng vấn diễn ra suôn sẻ. Tuy nhiên, ba ngày sau, tôi nhận được email từ chối. Kết quả này khá sốc đối với tôi. Tôi đã viết một bài đánh giá bày tỏ sự kính trọng chân thành của mình đối với tất cả những người phỏng vấn và quy trình, tin rằng sự thật về phần thể hiện của tôi trong cuộc phỏng vấn sẽ được họ thấy rõ. Mặc dù tôi hiểu khả năng bị từ chối,Tôi tin rằng các câu hỏi đã khá thách thức và tôi đã vượt qua chúng một cách thành công, phản ánh quá trình học hỏi bền bỉ lâu dài của mình. Đây là một câu chuyện đáng thất vọng, nhưng tôi chia sẻ nó để minh họa cho sự ngẫu nhiên và thiếu rõ ràng tiềm ẩn đôi khi có thể xảy ra trong quá trình phỏng vấn. Kinh nghiệm này cũng là một lời nhắn nhủ cá nhân và lời khuyên cho những người khác cần lưu ý về những thách thức tiềm tàng này.