Прокачайте ваш онбординг
с навигатором интерфейсов Experrto
Выберите категорию

Собеседование для программиста: теория и практика

Поиск программиста своеобразная игра в «сапера» (кстати, один из первых шедевров мастеров кода). Ведь судя по резюме, каждый кандидат умудренный опытом профи, разбирающийся в полусотне новейших технологий и начавший кодить в возрасте, когда другие дети играли в песочнице.

Поверить в такое сложно, поэтому что остается несчастному HR-менеджеру, как не проявить себя гением тактики и разведки, сквозь туман непонятных терминов пробираясь к самой сути сидящего перед ним специалиста?

Подбор специалистов в IT-отдел

Кому-то везет

Один довольно известный в русскоязычном интернет-пространстве бизнесмен, Антон Кленов, начинал в 2000-х годах именно с программирования. Точнее, главным было желание «удрать» куда подальше из страны, для чего был избран необычный на тот момент способ податься в мастера кода. Литературы по этому направлению продавалось немного, обучение было не по карману, и бизнесмен пошел ва-банк: подал свое резюме в очень солидную немецкую компанию. Ситуация осложнялась тем, что английский и немецкий он знал на школьном, то есть практически нулевом, уровне.

Первое собеседование проходило по телефону. Доблестный кандидат на протяжении 15 минут выслушивал вопросы немецкого эйчара и мужественно отвечал на все: «Йес, оф кос». В итоге удовлетворенный немец дал добро, и соискатель отправился оформлять загранпаспорт и прочие документы.

По пути во Франкфурт-на-Майне будущий «программист» добросовестно вызубрил книжку со шпаргалками по PHP и Java, а по прилету с энтузиазмом взялся за работу (вот она, сила безвыходного положения). За неделю ему удалось одолеть месячный объем работы, а еще через пару месяцев он получал гонорар, сравнимый с тремя средними московскими зарплатами, и ездил на служебном авто с шофером.

Источник: twitter.com

Смелому и находчивому парню повезло. Но случаются такие истории редко, да и вас вряд ли удовлетворит подобный «липовый» кандидат.    

Программист или самозванец: как определить уровень кандидата?

Никому не верить!

Если на собеседовании программист говорит, что он эксперт в какой-то технологии скорее всего он о ней просто слышал или видел, как «старшие» с ней работают. Если он называет себя гуру iOS-разработки значит, создал одно-два приложения, и теперь этим очень горд. Бывают и честные специалисты, но лучше исходить из самого худшего варианта. Вы же не хотите, чтобы ваш стартап или интересный проект зашел в тупик из-за красноречивого технаря?

На этапе знакомства (предварительного собеседования, интервью) хорошо бы попросить кандидата кратко перечислить выполненные им проекты и работы. Тут есть один важный момент: наибольшее значение имеют приоритеты разработчика.

Если для человека важно создавать законченные проекты, работать на бизнес-показатели и гордиться своими результатами — это очень хорошо. Такие люди могут стать для стартапа настоящими чудотворцами.

Однако если его интересуют только используемые платформы, языки и инструменты (больше всякого-разного, еще больше!), то это вариант откровенно никакой. Подобные специалисты постоянно меняют места работы и часто переходят из одного стартапа в другой. Портфолио у них может ломиться от проектов, куда они внесли свой сомнительный вклад, но пусть это не вводит вас в заблуждение.

Образование для программиста не так важно. Да, в некоторых сферах без нескольких лет мехмата за плечами далеко не продвинуться, но у многих известных программистов даже профильного образования нет вообще. Гораздо важнее инициативность специалиста, готовность постоянно учиться и обновлять свои знания. Чтобы быть в «тонусе», нужно регулярно изучать тематические блоги, общаться на специализированных ресурсах, просматривать конференции. Активность в opensource тоже один из больших плюсов.

Источник: diary.ru

Образование в Сети: где и чему можно научиться в интернете

Тестовое задание: ищем самую суть

Итак, предварительная беседа подошла к концу. Примерный опыт программиста ясен, и первое впечатление сложилось. Теперь пора ему подтвердить свои навыки в деле, а для этого идеально подойдет «полевая» обстановка, или практическое задание. Его необходимо правильно выполнить, уложившись при этом в срок. А как еще вы узнаете стиль работы кодера, как не в стрессовой ситуации?

Часто в качестве тестового задания рекрутеры предлагают специалисту решить несколько головоломок задач на логику. Или просто задают пару каверзных вопросов. Таким подходом к отбору кандидатов славятся крупные IT-компании, такие как Google или Microsoft. Вот несколько примеров:

«Объясните, что такое База Данных в 3 предложениях так, как будто перед вами ваш 8-летний племянник»

«Сколько бейсбольных мячей поместится в обычный школьный автобус?»

«Почему крышки у канализационных люков именно круглой формы?»

Источник:habrahabr.ru

Ответы на эти вопросы не дают рекрутеру представления о профессиональных навыках собеседника. Однако позволяют за несколько минут оценить степень креативности и подход к решению логических задач.

Как проверить идею стартапа и собрать команду мечты?

Другие варианты практического задания

Можно дать программисту несложную задачку для решения за компьютером или даже на бумаге. Такой способ позволяет отсеять откровенных дилетантов, но попасть в эту сеть могут и хорошие спецы. Почему? Человек может просто перенервничать или сглупить (да, теоретическая возможность попасть в вашу команду не такой мощный стимул, как пистолет у виска).

А вот поставить обстоятельную задачу, решение которой займет несколько дней отличная идея. Этот метод позволит раскрыть потенциал и способности кандидата наиболее полно.

Тем не менее здесь есть свои минусы: во-первых, неизвестно, как программист проявит себя в условиях форс-мажора, когда «надо было срочно сделать это еще вчера, иначе стартапу конец». Во-вторых, ловкий технарь может привлечь к делу своих товарищей по профессии и бессовестно вас обмануть. И, в-третьих, «использовать» подобным образом кандидата не совсем честно, по-хорошему подобные задания должны оплачиваться даже в случае, если результат вас не устроит.

Компромиссный вариант попросить специалиста решить несколько задач среднего уровня, желательно реальных, а не абстрактных. В таком случае, при успешном решении написанный код можно будет сразу применить в разрабатываемом проекте, а кандидат получит шанс пополнить свое портфолио. Все в плюсе, win-win.

Ярослав Маркин, основатель проекта Evil Martians, утверждает, что смысл тестового задания заключается не только в проверке технического уровня программиста, но и в определении границ его ответственности и способности к социальному взаимодействию.

Сможет ли он верно оценить задачу и задать правильные уточняющие вопросы? Распределить работу таким образом, чтобы успеть все выполнить к поставленному сроку? Сделать ее правильно и в полном объеме? Все эти вопросы помогают понять, насколько эффективно программист будет действовать в реальной обстановке и выполнять свои обязанности без нарушений и отговорок.

Как запустить стартап, не написав ни строчки кода?

На что еще обратить внимание?

В любом случае тестовое задание нужно хорошо продумать. Некомпетентно составленный тест не поможет вам достичь цели, но и отпугнет профессионалов своего дела. Не нужно абстракций и «мастерства на все руки». Опытные менеджеры проверяют общий базис знаний (способность ориентироваться в ООП, шаблонах проектирования, реляционных БД, сетевых протоколах, документировании кода и т.д.), также специальные навыки, которые понадобятся программисту для работы над конкретным стартапом или проектом.

Все знать невозможно и не нужно. Самый талантливый всезнайка будет уступать профессионалу с узкой специализацией. Другой вопрос, что оба этих типа еще нужно отыскать.

Стоит обратить внимание не только на результат выполнения, но и на сам процесс. Как мыслит программист, с какой стороны он подходит к решению? Какие методы использует? Какие алгоритмы применяет и почему? Все это ценная информация, которую следует учитывать при отборе. Даже если человек не слишком удачно справится с тестовым заданием, ход его мыслей может оказаться потенциально очень продуктивным. Кстати, не помешает активно выводить кандидата на диалог, просить его озвучивать свои идеи по ходу решения.

Последний совет: предоставляйте человеку свободу действий, не нужно направлять его по единственной стезе. Если программист начнет использовать какой-либо язык только потому, что во время собеседования о нем много говорилось, об эффективной работе можно забыть.

Многие IT-специалисты, в том числе и программисты настоящие интроверты, которых сложно вывести на диалог. Надо научиться выявлять среди них таланты правильным обращением, продуманной системой вопросов и продуманными практическими заданиями. Но никто и не говорил, что будет легко!

Image source: internet archive bookimages

Прокачайте ваш онбординг
с навигатором интерфейсов Experrto