Câu hỏi gốc
Tôi đã thực hiện một số cuộc phỏng vấn cho công ty của mình, chủ yếu là các nhà khoa học máy tính cho các vị trí dev nhưng cũng có một số người thử nghiệm và quản lý dự án. Bây giờ tôi phải lấp chỗ trống trong nhóm nghiên cứu của chúng tôi trong bộ phận R & D (chú thích: và các tổ chức người dùng cuối. Đây không phải là nghiên cứu khoa học máy tính, chúng tôi sẽ không giải quyết vấn đề P = NP).
Bây giờ chúng tôi đã mời một anh chàng có bằng thạc sĩ hóa học (cũng có rất nhiều vật lý trong CV), người không bao giờ có bất kỳ bài học khoa học máy tính nào. Tôi đã nói chuyện với anh ta khoảng nửa giờ tại các ngày làm việc của một trường đại học địa phương và không nghi ngờ gì nữa, anh chàng này rất thông minh. Ngoài ra điểm của anh ấy là tuyệt vời và anh ấy tốt nghiệp với sự khác biệt. Đối với BSc của mình, anh ta cần phải tự dạy lập trình trong Mathematica và nói với tôi rằng anh ta thích lập trình rất nhiều. Ngoài ra, ông đã giải quyết một số vấn đề hóa học vật lý mà có lẽ tôi không hiểu bằng cách sử dụng phần mềm của riêng mình, được triển khai trong Mathematica, cho luận án thạc sĩ của mình. Nó bao gồm GUI và kích thước đáng chú ý là 8.000 LoC. Anh ta dường như rất bị thu hút bởi những gì chúng tôi đang làm trong nhóm nghiên cứu của chúng tôi và thành thật mà nói, thật khó khăn cho một doanh nghiệp vừa và nhỏ như chúng tôi để có được những người tốt. Tôi cũng rất quan tâm đến việc thuê anh ấy vì anh ấy có thể hỗ trợ tôi viết đề xuất dự án, báo cáo, thuyết trình, v.v. Anh ấy có lẽ cũng sẽ phù hợp với đội của chúng tôi.
Câu hỏi duy nhất còn lại là: Làm thế nào tôi có thể kiểm tra xem anh ta có đạt được các kỹ năng lập trình mà anh ta cần để thực hiện phần mềm trong các dự án của chúng tôi không vì đây sẽ là một phần quan trọng của công việc?
Tất nhiên tôi sẽ hỏi anh ta nó là gì, đó là điều hấp dẫn anh ta về lập trình. Tôi cũng sẽ hỏi làm thế nào anh ấy tiến hành viết phần mềm khoa học tự nhiên của mình và cách anh ấy cấu trúc nó. Tôi sẽ hỏi về cách anh ta quản lý để có được các kỹ năng và thông tin về phát triển phần mềm mà anh ta cần. Nhưng tôi có thể hỏi thêm điều gì nữa không? Một cái gì đó cụ thể hơn có lẽ? Tôi có nên yêu cầu anh ta giải thích giải pháp Mathicala của mình?
Để rõ ràng: Tôi không tìm kiếm kiến thức trong một ngôn ngữ hoặc công nghệ cụ thể. Chúng tôi là một cửa hàng .NET trong phát triển sản phẩm nhưng tôi muốn có sự lựa chọn miễn phí cho các dự án nghiên cứu của chúng tôi. Vì vậy, tôi quan tâm đến siêu năng lực có thể học bất cứ điều gì thực sự cần thiết.
Tôi hy vọng câu hỏi này có thể trả lời được và không có kết thúc mở vì tôi thực sự muốn biết liệu có cách nào mặc định để kiểm tra khả năng có được các kỹ năng lập trình tiếp theo trong công việc hay không. Nếu điều gì đó không rõ ràng với bạn xin vui lòng cho tôi một số ý kiến và để tôi cải thiện câu hỏi của tôi.
Cập nhật để phản ánh các câu trả lời được đưa ra cho đến 2011-12-01
Câu trả lời nào tôi chấp nhận và tại sao
Cảm ơn tất cả các câu trả lời của bạn, hầu hết chúng đều khá hữu ích, vì vậy tôi đã nâng cao rất nhiều! Mặc dù câu trả lời của Tom Squires nhận được nhiều phiếu bầu nhất, tôi sẽ chấp nhận câu trả lời do Hoàng tử Goulash đưa ra . Tất nhiên Tom là khách quan, nhưng câu trả lời của Prince chỉ hữu ích hơn cho tôi và tôi đã kiểm tra lại Câu hỏi thường gặp rằng đây là tiêu chí để chấp nhận câu trả lời.
Những gì tôi sẽ hỏi anh ấy trong cuộc phỏng vấn
Tôi sẽ để anh ấy giải thích một số bài tập đơn giản như ví dụ trong The Camel Has Two Humps được đề cập bởi Chris Burt-Brown
Tôi sẽ yêu cầu anh ta giải thích một số luồng điều khiển nâng cao hơn có thể trong ký hiệu đồ họa.
Tôi sẽ kiểm tra sự hiểu biết của anh ấy về đệ quy bằng một ví dụ toán học.
Tôi sẽ để anh ta giải thích một thuật toán của sự lựa chọn của mình bằng ngôn ngữ tự nhiên.
Tôi sẽ để anh ta giải thích giải pháp Mathicala của mình, đặc biệt là tôi sẽ hỏi về mô hình thủ tục của anh ta, cách sử dụng các công cụ, cấu trúc mã và phần mềm nói chung cũng như các lớp trừu tượng khác nhau.
Để kiểm tra động lực của anh ấy, tôi sẽ yêu cầu niềm đam mê phát triển phần mềm của anh ấy.
Tôi sẽ hỏi anh ta nếu anh ta nhận thức được những gì anh ta sẽ cần để tìm hiểu về phát triển phần mềm doanh nghiệp. Đặc biệt tôi muốn biến cuộc thảo luận thành hướng làm việc theo nhóm, lập trình cặp, TDD vì tôi mong anh ta không biết nhiều về điều này sau khi làm việc một mình với ThS.
Có vẻ như đó sẽ là một cuộc phỏng vấn dài;)
Cập nhật sau cuộc phỏng vấn 2011-12-09
Một lần nữa cảm ơn tất cả các câu trả lời tốt của bạn. Anh ấy đã vượt qua cuộc phỏng vấn với màu sắc bay. Tôi không bao giờ hài lòng hơn với một ứng viên. Giải pháp Mathicala của ông dường như được cấu trúc khá tốt. Anh ta có thể giải thích nơi anh ta sử dụng các hàm bậc cao hơn, mặc dù anh ta không biết rằng chúng được gọi như thế này. Anh ấy đã trả lời các câu hỏi đệ quy dựa trên toán học của tôi cũng như các bài tập đơn giản và kiểm soát các luồng từ The Camel Has Two Humps. Khi anh ấy giải thích một số thuật toán, tôi đã học được rất nhiều về sự phù hợp phi tuyến tính;) Anh ấy cũng thành thật nói rằng tất nhiên anh ấy không thể đảm bảo rằng anh ấy sẽ có thể học được những điều về phát triển phần mềm chuyên nghiệp mà anh ấy không biết cho đến nay. Nhưng anh ta tin rằng anh ta luôn giỏi trong việc học các khái niệm mới - ngay cả bản thân anh ta - và thực sự quan tâm đến phát triển phần mềm. Anh ấy cũng yêu cầu ngăn xếp công nghệ của dự án, anh ấy sẽ được áp dụng trước, để có một cái nhìn tại nhà. Anh ấy cũng tò mò về lập trình cặp và làm việc nhóm. Bây giờ tôi hy vọng rằng hợp đồng lao động sẽ được ký kết.