Оригінальне запитання
Я вже робив кілька інтерв'ю для своєї компанії, в основному, комп'ютерних спеціалістів на посадах розробників, а також деяких тестерів та керівників проектів. Тепер мені належить заповнити вакансію в нашій дослідницькій групі у відділі НДДКР (сторона зауваження: «дослідження» означає, що ми намагаємося вирішити проблеми в нашій професійній галузі / ринковій ніші, використовуючи програмне забезпечення в дослідницьких проектах разом з університетами, іншими компаніями, науково-дослідними центрами і організацій кінцевих користувачів. Це не дослідження інформатики; ми не збираємось вирішувати проблему P = NP).
Тепер ми запросили хлопця, який мав магістр з хімії (з великою кількістю фізики в його резюме), який ніколи не мав уроку з інформатики. Я вже говорив з ним близько півгодини в дні кар’єри місцевого університету, і немає сумнівів, хлопець розумний. Також його оцінки чудові, і він закінчив з відзнакою. Для свого ступеня бакалавра йому потрібно було навчити програмування в Mathematica і правдоподібно сказав мені, що йому дуже подобається програмування. Також він вирішив певну проблему фізичної хімії, яку я, мабуть, не розумію, використовуючи власне програмне забезпечення, реалізоване в Mathematica, для своєї магістерської дисертації. Він включає графічний інтерфейс і помітний розмір 8000 ЛоК. Здається, його дуже приваблює те, що ми робимо в нашій дослідницькій групі, і якщо чесно, для МСП, як ми, досить важко отримати хороших людей. Я також дуже зацікавлений у тому, щоб найняти його, оскільки він міг би допомагати мені писати проектні пропозиції, доповіді, робити презентації тощо. Ймовірно, він також підходив би до нашої команди.
Залишилося тільки питання: як я можу перевірити, чи отримає він навички програмування, необхідні для виконання програмного забезпечення в наших проектах, оскільки це буде значною частиною роботи?
Звичайно, я запитаю його, що це таке, що захоплює його програмуванням. Я також запитаю, як він продовжував писати своє природознавче програмне забезпечення та як його структурував. Я запитаю про те, як йому вдалося отримати необхідні навички та інформацію про розробку програмного забезпечення. Але чи можна щось більше запитати? Можливо, щось конкретніше? Чи повинен я попросити його пояснити своє рішення Mathematica?
Щоб було зрозуміло: я не шукаю знань у певній стеці мови чи технологій. Ми - магазин .NET в розробці продуктів, але я хочу мати вільний вибір для наших дослідницьких проектів. Тож мені цікаво, щоб метакомпетентність змогла дізнатись, що насправді потрібно.
Я сподіваюся, що це питання відповідає і не є відкритим, оскільки мені дуже хочеться знати, чи існує спосіб за замовчуванням перевірити можливість отримання додаткових навичок програмування на роботі. Якщо вам щось не зрозуміло, будь ласка, дайте мені коментарі та дозвольте мені покращити своє питання.
Оновлення, щоб відобразити відповіді, надані до 2011-12-01
Яку відповідь я прийняв і чому
Дякую всім за ваші відповіді, більшість із них є дуже корисними, тому я дуже схвалював! Хоча відповідь Тома Сквайреса отримала найбільше голосів, я прийму відповідь, яку дав принц Гулаш . Звичайно, Том об'єктивно правильний, але відповідь Принца для мене просто корисніша, і я ще раз перевірив FAQ, що це критерій прийняття відповіді.
Що я збираюся його запитати під час співбесіди
Я дозволю йому пояснити кілька простих завдань, як, наприклад, у «Верблюді є два горби», згаданих Крісом Бертом-Брауном
Я попрошу його пояснити деякі більш вдосконалені потоки управління, можливо, у графічному позначенні.
Я перевірю його розуміння рекурсії на математичному прикладі.
Я дозволю йому пояснити алгоритм на свій вибір природною мовою.
Я дозволю йому пояснити своє рішення Mathematica, зокрема запитаю його модель процедури, використання інструментів, структурування коду та програмного забезпечення в цілому, а також різні рівні абстракції.
Щоб перевірити його мотивацію, я попрошу його захоплення розробкою програмного забезпечення.
Я запитаю його, чи знає він, що йому потрібно буде дізнатися про розробку програмного забезпечення підприємства. Особливо я хочу перетворити дискусію в напрямок роботи в командах, парного програмування, TDD, тому що я очікую, що він не буде багато знати про це після роботи над його MSc.
Здається, це буде довге інтерв'ю;)
Оновлення після інтерв'ю 2011-12-09
Ще раз дякую всім за добрі відповіді. Він пройшов співбесіду з літаючими фарбами. Я ніколи не був задоволений заявником. Його рішення Mathematica, здається, структуровано досить добре. Він зміг пояснити, де він використовує функції вищого порядку, хоча він не знав, що їх називають так. Він відповів на мої математичні запитання щодо рекурсії, а також на прості завдання та керував потоками з «Верблюда має два горби». Коли він пояснював деякі алгоритми, я багато чого дізнався про нелінійну підгонку;) Крім того, він чесно сказав, що, звичайно, він не може гарантувати, що зможе дізнатися речі про професійну розробку програмного забезпечення, про яку він досі не знає. Але він, правдоподібно, стверджує, що завжди був добрим у вивченні нових концепцій - навіть самим собою - і дуже зацікавлений у розробці програмного забезпечення. Він також попросив технологічний стек проекту, до якого він буде застосований спочатку, щоб подивитися на нього вдома. Йому цікаво було програмування пар та роботи в команді. Зараз я сподіваюся, що трудовий договір буде укладений.