Những người khác đã cung cấp câu trả lời mà tôi đã nêu lên như một vấn đề bắt buộc . Lý do tôi viết một câu trả lời khác là vì những gì tôi muốn nói có lẽ sẽ không phù hợp với một bình luận, và bởi vì có điều gì đó phải được nói về cách một cuộc phỏng vấn công việc lập trình tốt có thể như thế nào.
Trong cuộc phỏng vấn tốt đầu tiên tôi nhớ, chúng tôi đã nói chuyện rất nhiều, không vội vàng. Đầu tiên trong một giờ, trên điện thoại, về thiết kế hướng đối tượng và những ưu và nhược điểm của việc triển khai nó trong C ++. Sau đó, trên trang web, tôi đã nói chuyện với nhiều người về thực tiễn phát triển phần mềm, tích hợp, kiểm tra, kiểm soát phiên bản và quản lý cấu hình của họ, về các nhóm và trách nhiệm, về công nghệ và về thiết kế. Đó là một cuộc phỏng vấn cả ngày bao gồm bữa trưa với những người đã phỏng vấn tôi. Nhìn nhận lại, tất cả là về việc liệu tôi có phù hợp với những gì họ đã làm hay không.
Kể từ đó, các cuộc phỏng vấn tốt đã kéo dài từ một đến hai giờ về phát triển phần mềm. Không có câu hỏi nào giải quyết vấn đề, không có câu đố và không có thách thức về mã hóa.
Nếu tôi được phỏng vấn ai đó cho một công việc lập trình ngày hôm nay, tôi sẽ tiến hành thích. Tôi muốn hỏi ý kiến về chiều rộng của các chủ đề và để lại chiều sâu:
- Bạn thích ngôn ngữ lập trình nào? Tại sao?
- Làm thế nào để tiếp cận xử lý ngoại lệ?
- Không phải lợi ích của thiết kế lớp là một huyền thoại?
- Không tích hợp liên tục là một gánh nặng cho hiệu quả?
- Bất cứ ai đã viết một đoạn mã nên sở hữu nó, phải không?
- Bạn làm gì để đi vào "dòng chảy".
- Làm thế nào nên báo cáo lỗi được bao gồm trong một kế hoạch dự án?
- ...
Đó là những câu hỏi có nhiều hơn một câu trả lời, và tất cả chúng đều là về các chủ đề mà nhà phát triển phần mềm nên có ý kiến chính xác. Tôi hoàn toàn đồng ý với các câu trả lời đề cập đến các vấn đề thực tế trước đây gặp phải như một chủ đề cuộc trò chuyện (không phải là câu hỏi).
Các nghiên cứu khoa học hơn về phát triển phần mềm hiệu quả kể từ Peopleware nói rằng các lập trình viên giỏi nhất là những người hiểu được động lực của phát triển phần mềm, ngay cả khi họ không có IQ cao nhất. Tôi thà lấy một tân binh ham học hỏi hơn một người có n
nhiều năm kinh nghiệm đã trải qua nhiều 1
năm kinh nghiệm lặp đi lặp lại n
. Sự thiên vị cá nhân của tôi là hướng tới những ứng viên có xu hướng suy nghĩ vượt trội, đồng thời biết cách phù hợp với hộp hiện tại (của tôi).