Bạn có từng dành hàng tháng luyện LeetCode chỉ để rồi... bị loại sau vòng phỏng vấn đầu tiên?
Bạn không cô đơn đâu.
Trong suốt nhiều năm qua, mô hình phỏng vấn kỹ sư phần mềm ở nhiều công ty – đặc biệt là các công ty công nghệ lớn – vẫn xoay quanh các bài toán thuật toán như “đảo cây nhị phân”, “tìm đường đi ngắn nhất”, “cộng chuỗi số rất lớn”...
Tức là, bạn bị đánh giá chủ yếu qua cách bạn giải một câu đố lập trình, trong 45 phút, không tài liệu, không Internet, không bối cảnh thực tế.
Tôi tin rằng: Đã đến lúc chúng ta dừng lại. Đã đến lúc ngành phần mềm cần một cách phỏng vấn tốt hơn.
🎯 LeetCode không phải là lập trình thực tế
Hầu hết kỹ sư phần mềm không làm việc với cây nhị phân hàng ngày. Họ không cần phải nhớ chính xác cách tối ưu thuật toán Dijkstra hay viết trie bằng tay.
Họ:
- Làm việc với codebase phức tạp.
- Thiết kế API, refactor hệ thống.
- Debug lỗi khó nhằn trong môi trường production.
- Giao tiếp với PM, QA, DevOps, khách hàng...
Vậy mà trong phỏng vấn, họ lại bị đánh giá bằng việc giải câu đố không liên quan đến thực tế.
Một kỹ sư từng làm việc 10 năm, viết hàng trăm nghìn dòng code có thể dễ dàng bị đánh rớt – chỉ vì họ không nhớ cách đệ quy ngược một linked list.
🧠 Ưu tiên người “luyện thi”, bỏ rơi người có kinh nghiệm
LeetCode tạo ra một thế giới riêng, nơi kỹ năng giải câu đố được đánh đồng với năng lực kỹ sư.
Kết quả? Những người dành thời gian “cày” 200–300 bài, học thuộc template DFS/BFS/... lại có lợi thế. Trong khi đó, những người đang làm việc thực tế, không có thời gian luyện thi, lại bị tụt lại phía sau.
Điều này không chỉ không công bằng – mà còn vô tình đánh mất những ứng viên thực chiến, giàu kinh nghiệm.
🧪 Phỏng vấn như thi đại học: căng thẳng, thiếu thực tế
Một vòng phỏng vấn thuật toán điển hình:
- 45 phút.
- Một bài toán hóc búa.
- Không được tra Google.
- Không có thời gian suy nghĩ sâu.
Đó không phải là môi trường làm việc bình thường. Không ai làm việc một mình, trong im lặng, dưới áp lực đồng hồ đếm ngược.
Chúng ta cần một quy trình phản ánh đúng bản chất công việc thực tế, không phải bài kiểm tra IQ trá hình.
✅ Có những cách tốt hơn
May mắn là, có nhiều công ty đã chuyển sang những hình thức phỏng vấn công bằng, thực tế và hiệu quả hơn. Ví dụ:
- Take-home assignment: Bài tập nhỏ mà ứng viên có thể làm trong vài giờ.
- Pair programming: Cùng giải quyết một task đơn giản với người phỏng vấn.
- Design interview: Thảo luận về cách thiết kế hệ thống, scale, trade-offs.
- Code review session: Đánh giá khả năng đọc, hiểu, và refactor code.
Những cách này giúp đánh giá toàn diện hơn: tư duy kỹ thuật, khả năng làm việc nhóm, viết code sạch, và giải quyết vấn đề trong bối cảnh thực.
💬 Kết luận
LeetCode là một công cụ tốt để rèn luyện tư duy thuật toán. Nhưng nó không nên là cánh cổng duy nhất để bước vào ngành phần mềm.
Chúng ta cần thay đổi cách phỏng vấn – để tập trung vào điều thực sự quan trọng:
- Khả năng xây dựng phần mềm.
- Hiểu hệ thống.
- Giải quyết vấn đề thực tế.
- Làm việc với con người.
Bởi vì cuối cùng, công ty bạn không cần một người giỏi giải đố.
Công ty bạn cần một kỹ sư phần mềm giỏi.
Bạn có đang tuyển dụng hoặc đi phỏng vấn không? Bạn nghĩ sao về việc bỏ kiểm tra thuật toán trong phỏng vấn?
👉 Hãy chia sẻ quan điểm của bạn trong phần bình luận!