Đọc trang web này và SO tôi đã thấy nhiều câu chuyện về câu hỏi và câu trả lời phỏng vấn nói rằng một ứng viên phải thực hiện một danh sách liên kết từ đầu. Thông thường đây là một bài tập "gimme" cho các ứng cử viên vai trò lập trình như viết FizzBuzz. Ý tưởng là nếu ứng viên không thể làm điều này, họ không thể lập trình và nên bị từ chối gần như ngay lập tức.
Tuy nhiên, tôi không thể không nghĩ rằng đây có thể là một thực tiễn kém vì những lý do sau:
- Các ngôn ngữ cấp cao hiện đại hơn như C # và Python thường sử dụng danh sách rộng rãi; viết đối tượng danh sách liên kết của riêng bạn sẽ chỉ được yêu cầu trong các trường hợp bất thường và thậm chí sau đó có thể không được khuyến khích.
- Các ngôn ngữ cấp thấp hơn như C ++ có các thư viện chuẩn với các trình lặp và danh sách các đối tượng.
- Theo hai điểm đầu tiên, các lập trình viên có thể mất nhiều năm mà không cần suy nghĩ về việc thực hiện một danh sách (liên kết, liên kết đôi, v.v.). Một số thậm chí có thể không thực sự nhìn thấy những điều như vậy kể từ ngày học đại học.
- Sức mạnh tính toán cũng không phải là yếu tố của nó cách đây nhiều năm, vì vậy hiệu quả thông qua con trỏ không phải là vấn đề trước đây (nói chung).
- Một tìm kiếm trên web đơn giản về một cái gì đó như "ví dụ danh sách được liên kết" sẽ đưa ra rất nhiều ví dụ mã có thể được ghi nhớ và nhổ ra, không thực sự cho thấy năng lực thực sự của người nộp đơn.
Tôi nên nói rằng việc sử dụng một danh sách được liên kết để dẫn đến các câu hỏi / thảo luận mở về khả năng giải quyết vấn đề / tư duy phê phán của ứng viên hầu như có khả năng là một thực hành phỏng vấn thực sự tốt. Bất kỳ cách nào một người phỏng vấn thực sự có thể thấy người nộp đơn là như thế nào và họ nghĩ như thế nào là có lợi lớn.
Tôi nghĩ cách tiếp cận nhị phân này của "không có mã danh sách liên kết, không có công việc" đối với các lập trình viên làm việc trên máy tính để bàn hoặc ứng dụng web là một chút lỗi thời. Nó cũng có thể khá có hại; một ứng cử viên không thể nhớ làm thế nào để làm việc đúng với người đứng đầu danh sách có thể là một lập trình viên và đồng nghiệp xuất sắc và bị lạc trong hỗn hợp. Suy nghĩ?
EDIT : Có nhiều ý kiến (tốt) cho thấy rằng đây là một câu hỏi tốt hay xấu để hỏi tùy thuộc vào bối cảnh của công việc. Tôi hoàn toàn đồng ý, vì vậy hãy để tôi viết lại câu hỏi này: Thực hiện danh sách liên kết là một câu hỏi phỏng vấn phổ biến cho một loạt các công việc mã hóa, tương tự như các câu hỏi như FizzBuzz hoặc viết hàm đệ quy để tính các yếu tố. Câu hỏi này có đủ tiện ích được sử dụng phổ biến để đánh giá các ứng cử viên lập trình trên bảng không? Hoặc nên xem xét một câu hỏi tồi để hỏi ngoại trừ vị trí "Nhóm nhà phát triển cao cấp, danh sách liên kết nhúng"?