Оригинальный вопрос
Я уже дал несколько интервью для своей компании, в основном компьютерных специалистов на должности разработчиков, а также некоторых тестировщиков и менеджеров проектов. Теперь мне нужно заполнить вакансию в нашей исследовательской группе в отделе исследований и разработок (примечание: «исследования» означает, что мы пытаемся решать проблемы в нашей профессиональной области / нише рынка, используя программное обеспечение в исследовательских проектах вместе с университетами, другими компаниями, исследовательскими центрами и организации конечных пользователей. Это не компьютерные исследования, мы не собираемся решать проблему P = NP).
Теперь мы пригласили парня со степенью магистра в области химии (с большим количеством физики в его резюме), у которого никогда не было никакого урока информатики. Я уже говорил с ним около получаса в дни карьеры в местном университете, и нет сомнений, что парень умен. Также его оценки отличные, и он закончил с отличием. Для получения степени бакалавра он должен был научиться программированию в Mathematica и сказал мне правдоподобно, что он очень любит программирование. Также он решил некоторую проблему физической химии, которую я, вероятно, не понимаю, используя его собственное программное обеспечение, реализованное в Mathematica, для своей магистерской диссертации. Он включает в себя графический интерфейс и заметный размер 8000 LoC. Кажется, его очень привлекает то, что мы делаем в нашей исследовательской группе, и, честно говоря, для таких МСП, как мы, довольно сложно найти хороших людей. Я также очень заинтересован в его найме, поскольку он мог бы помочь мне в написании проектных предложений, отчетов, проведении презентаций и так далее. Он, вероятно, подойдет и для нашей команды.
Единственный оставшийся вопрос: как я могу проверить, получит ли он навыки программирования, необходимые для реализации программного обеспечения в наших проектах, поскольку это будет значительная часть работы?
Конечно, я спрошу его, что это такое, что увлекает его в программировании. Я также спрошу, как он начал писать свое естественное программное обеспечение и как он его структурировал. Я спрошу о том, как ему удалось получить необходимые навыки и информацию о разработке программного обеспечения. Но могу ли я спросить что-нибудь еще? Возможно, что-то более конкретное? Должен ли я попросить его объяснить его решение Mathematica?
Чтобы было ясно: я не ищу знания в конкретном языке или технологии стека. Мы являемся магазином .NET в разработке продуктов, но я хочу иметь свободный выбор для наших исследовательских проектов. Поэтому я заинтересован в том, чтобы мета-компетенция могла изучать все, что действительно необходимо.
Я надеюсь, что этот вопрос является ответом и не является открытым, поскольку мне действительно хотелось бы знать, есть ли способ по умолчанию проверить возможность получения дополнительных навыков программирования на работе. Если вам что-то не понятно, пожалуйста, дайте мне несколько комментариев и позвольте мне улучшить мой вопрос.
Обновление, чтобы отразить ответы, данные до 2011-12-01
Какой ответ я принял и почему
Спасибо всем за ваши ответы, большинство из них весьма полезны, поэтому я за них проголосовал! Хотя ответ Тома Сквайра получил наибольшее количество голосов, я собираюсь принять ответ, данный принцем Гуляшем . Конечно, Том объективно прав, но ответ Принса для меня просто более полезен, и я дважды проверил FAQ, что это критерий для принятия ответа.
О чем я собираюсь спросить его во время интервью
Я позволю ему объяснить несколько простых заданий, таких как пример в «Верблюде с двумя горбами», упомянутом Крисом Буртом-Брауном
Я попрошу его объяснить некоторые более сложные потоки управления, возможно, в графической форме.
Я проверю его понимание рекурсии на примере математики.
Я позволю ему объяснить алгоритм его выбора на естественном языке.
Я позволю ему объяснить его решение Mathematica, в частности, я попрошу его модель процедуры, использование инструментов, структурирование кода и программного обеспечения в целом, а также различные уровни абстракции.
Чтобы проверить его мотивацию, я попрошу его увлечение разработкой программного обеспечения.
Я спрошу его, знает ли он, что ему нужно узнать о разработке корпоративного программного обеспечения. Особенно я хочу перевести дискуссию в направлении работы в командах, парного программирования, TDD, поскольку я ожидаю, что он не узнает об этом много после работы над своей магистерской работой.
Похоже, это будет длинное интервью;)
Обновление после собеседования 2011-12-09
Еще раз спасибо всем за ваши хорошие ответы. Он прошел интервью с летающими цветами. Я никогда не был более доволен заявителем. Его решение Mathematica, похоже, хорошо структурировано. Он был в состоянии объяснить, где он использовал функции высшего порядка, хотя он не знал, что они упоминаются следующим образом. Он ответил на мои рекурсивные вопросы по математике, а также на простые задания и вопросы управления потоком из «Верблюда с двумя горбами»., Когда он объяснял некоторые алгоритмы, я многое узнал о нелинейной подгонке;) Также он честно сказал, что, конечно, он не может гарантировать, что сможет узнать о профессиональной разработке программного обеспечения то, чего он до сих пор не знал. Но он правдоподобно заявляет, что он всегда был хорош в изучении новых концепций - даже сам по себе - и действительно заинтересован в разработке программного обеспечения. Он также попросил технологический стек проекта, к которому он будет обращаться в первую очередь, чтобы посмотреть на него дома. Ему было любопытно и парное программирование, и командная работа. Теперь я надеюсь, что трудовой договор будет заключен.