Câu hỏi phỏng vấn Python
Bởi Aaron Cao · Cập nhật
Hãy chuẩn bị cho ba tầng: cơ chế ngôn ngữ như tính khả biến, generator và decorator; hành vi tại thời điểm chạy như GIL; và lập trình ứng dụng trên các cấu trúc dữ liệu. Phần lớn các trường hợp bị loại đến từ việc giải thích "tại sao" quá hời hợt, chứ không phải do sai cú pháp.
Những câu hỏi cứ lặp đi lặp lại
Làm hết danh sách hai trăm câu hỏi Python nghe có vẻ hiệu quả nhưng hiếm khi thay đổi kết quả phỏng vấn. Phần này thu hẹp phạm vi xuống một số ít câu hỏi lặp lại trong các vòng sàng lọc qua điện thoại và vòng kỹ thuật, đồng thời cho thấy một câu trả lời tốt cần có gì. Một số ít tính năng ngôn ngữ mang phần lớn tín hiệu đánh giá.
- Tham số mặc định có thể thay đổi. Vì sao
def f(x=[])lại tích lũy giá trị qua các lần gọi? Giá trị mặc định chỉ được tính một lần, khi hàm được định nghĩa, chứ không phải mỗi lần gọi. - Generator so với list. Khi nào
yieldtốt hơn việc xây dựng một list? Khi chuỗi dữ liệu lớn, hoặc khi bạn có thể dừng đọc sớm. - Decorator. Một decorator thực sự trả về điều gì, và vì sao wrapper cần
functools.wraps? - GIL. Vì sao các thread giới hạn bởi CPU không mở rộng được trong CPython, và bạn sẽ dùng gì thay thế?
- Sao chép nông so với sao chép sâu. Điều gì bị hỏng khi một cấu trúc lồng nhau được sao chép bằng slice?
- Định danh so với bằng nhau. Vì sao kiểm tra
isvới các số nguyên nhỏ trong shell lại cho ra kết quả gây hiểu lầm.
Điều phân biệt đậu và rớt
Hai ứng viên có thể đưa ra cùng một định nghĩa đúng về GIL, nhưng chỉ một người được đi tiếp. Sự khác biệt thường nằm ở câu thứ hai.
Một kỹ sư backend phỏng vấn cho vị trí L5 tại một nhà cung cấp cloud công cộng được hỏi vì sao dịch vụ của họ chậm lại khi tải cao. Người này nêu ra GIL, rồi tiếp tục: đường dẫn nóng là phân tích JSON, nên thread không phải công cụ phù hợp, và việc chuyển giai đoạn đó sang một process pool đã khôi phục thông lượng. Việc gọi tên được giới hạn chỉ mang lại điểm một phần. Việc gắn nó với một quyết định cụ thể mới giành được vòng phỏng vấn đó.
Xây dựng mỗi câu trả lời theo ba nhịp: tính năng đó làm gì, vì sao nó tồn tại, và khi nào bạn sẽ tránh dùng nó. Nhịp thứ ba là điều mà hầu hết ứng viên bỏ qua, và cũng chính là điều thể hiện khả năng phán đoán. Các trang khác về vòng coding, phỏng vấn hành vi và thiết kế hệ thống được nhóm dưới các loại phỏng vấn.
Cách chuẩn bị mà không cần học thuộc lòng
Đọc một câu trả lời và nói ra một câu trả lời là hai kỹ năng khác nhau, và chỉ một trong hai được kiểm tra. Hãy luyện tập nói to, có bấm giờ, bằng chính những từ ngữ bạn sẽ dùng trong cuộc gọi thật.
- Viết câu trả lời cho mỗi câu hỏi hay lặp lại thành ba câu, sau đó nói lại mà không nhìn.
- Chọn hai tính năng bạn dùng hằng ngày và chuẩn bị một giới hạn trung thực cho mỗi tính năng. Việc có thể phê bình chính công cụ mình dùng cho thấy kinh nghiệm.
- Mang theo một câu chuyện gỡ lỗi thực tế, nơi hành vi của Python khiến bạn bất ngờ và bạn đã tìm ra lý do.
- Luyện phần ứng dụng riêng: dictionary, set, sắp xếp bằng hàm key, và xử lý chuỗi chiếm phần lớn các vòng sàng lọc.
Nếu bạn muốn có một buổi luyện tập tính giờ với một AI phỏng vấn viên trước buổi thật, hãy vào trang phỏng vấn thử.
Trợ lý trực tiếp phù hợp ở đâu, và không phù hợp ở đâu
SubcueAI là ứng dụng desktop gốc cho macOS và Windows. Nó ghi lại âm thanh của cả hai bên cuộc gọi, phiên âm theo thời gian thực, và hiển thị một khung ý trên một lớp phủ nổi chỉ tồn tại cục bộ trên máy của bạn, nên nó không tham gia cuộc họp với tư cách người tham dự hay bot. Đối với vòng phỏng vấn Python, đầu ra hữu ích là một gợi ý cấu trúc, chứ không phải một câu trả lời hoàn chỉnh: các chi tiết cụ thể phải là của riêng bạn, vì câu hỏi tiếp theo sẽ xoay quanh chính đoạn mã bạn vừa mô tả.
Giới hạn trung thực quan trọng hơn khả năng. Nếu bạn chia sẻ màn hình, mọi thứ trên màn hình đó đều được chia sẻ. Nếu vòng phỏng vấn diễn ra trên một nền tảng đánh giá có giám sát, hoặc trên thiết bị do công ty quản lý, trợ lý không nằm trong phạm vi cho phép. Cách thiết lập và quyền truy cập được trình bày trên trang hướng dẫn.
Câu hỏi thường gặp
Phỏng vấn Python có còn hỏi về GIL không?
Tôi nên học thuộc bao nhiêu kiến thức vặt về Python?
Bài toán coding có phải một phần của phỏng vấn Python không?
Tôi có nên thừa nhận khi không biết câu trả lời không?
Tôi có thể dùng trợ lý AI trong lúc phỏng vấn coding Python không?
Câu hỏi liên quan
- Làm sao để chuẩn bị cho phỏng vấn hội đồng?
- Phỏng vấn tìm hiểu thông tin là gì và tiến hành thế nào?
- Những câu hỏi phỏng vấn về năng lực lãnh đạo thường gặp là gì?
- Vòng phỏng vấn thứ hai thường hỏi những câu hỏi gì?
- Phỏng vấn HireVue là gì và chuẩn bị cho nó như thế nào?
- Làm thế nào để trả lời câu hỏi phỏng vấn một cách hiệu quả?