«Программирование сегодня — это гонка разработчиков, стремящихся писать программы с большей и лучшей идиотоустойчивостью, и вселенной, которая пытается создать больше отборных идиотов. Пока вселенная побеждает» (Рик Кук)
Знаете ли вы, что стоимость найма разработчика программного обеспечения может достигать 60 тысяч долларов? Если вы не имеете большого бюджета для найма работников, вы не можете позволить себе нанимать кандидатов, чьи навыки не подтверждены и просто надеяться на лучшее. Фактически, умение применять навыки программирования, будь то front end, back end или full stack разработка, является фундаментальным для каждого успешного процесса IT рекрутмента.
Как работодатели могут проверить чьи-то способности заранее? Это сложнее, чем просто заглянуть в резюме программиста.
«Многие разработчики посещают курсы обучения программистов для расширения своих навыков, уже имея постоянную работу » (Квинси Ларсон)[1]
В этой статье мы рассмотрим наиболее оптимальные методы оценки навыков IT-специалистов, в том числе тесты по написанию кода и технические интервью. Следуя нашему совету, вы минимизируете риск найма недо- или пере- оцененного кандидата, или просто того, кто не подходит вашей компании.
Давайте взглянем.
Давайте сначала посмотрим на приложения, которые ваши кандидаты могут использовать для демонстрации кода.
Вам стоит посмотреть на прошлые или текущие проекты кандидата через призму задач, которые им необходимо будет решать в новой роли.
Работали ли они раньше над чем-то похожим на ваш проект? Или возможно они смогут продемонстрировать уникальный подход к поставленной задаче? Получение ответов на эти вопросы должно дать вам хорошее первое впечатление о том, кто ваш кандидат.
Воспринимайте GitHub как расширение для портфолио вашего кандидата. Вам стоит взглянуть на следующие детали их профиля:
Держа все это в голове, важно, чтобы вы также знали об ограничениях GitHub.
В проектах с открытым исходным кодом не всегда ясно, кто выполнил большую часть работы над проектом или сколько времени потребовалось для выполнения. Вы также не сможете проверить, как ваш кандидат работал вместе с другими. В конце концов, хотя GitHub и полезен, он не является надежным методом оценки навыков.
«Лучшие программисты не чуть-чуть лучше хороших. Они на порядок лучше по любым меркам: концептуальное мышление, скорость, изобретательность и способность находить решения.» (Рэндал И. Стросс)
Stack Overflow -это сайт, используемый разработчиками, где они делятся, учатся и отвечают на вопросы друг друга по программированию. Просмотр их аккаунта в Stack Overflow позволит вам проверить уровень знаний вашего кандидата. Однако, если они являются активными пользователями, это также позволит вам изучить их стиль коммуникации. Некоторые ответы могут показать не только их знания, но и то, есть ли у них командный дух и могут ли объяснять технические концепты другим…
«Большинство профессиональных разработчиков занимаются программированием не так давно. 55% кодит менее 8 лет, а 1/3 — менее 5» (Квинси Ларсон)[2]
«Измерять продуктивность программиста подсчетом строк кода — это так же, как оценивать постройку самолета по его весу» (Билл Гейтс)
Тесты по алгоритмам программирования — популярный метод оценки уровня владения выбранным языком или фреймворком. Однако, мы категорически рекомендуем вам не полностью полагаться на них при проверке компетенций вашего кандидата. Почему? Потому что они не имеют контекста и позволяют проверять только те навыки, которые в лучшем случае связаны с разработкой программного обеспечения.
Вот отличная аналогия: алгоритмы похожи на слова и фразы на английском языке. Давать вашему кандидату общий тест по программированию перед приемом на работу — все равно что дать автору контента тест, который проверяет их знание грамматики английского языка или словарный запас. Говоря вам, что человек знает много слов, они никак не покажут, может ли он написать отличную статью.
Итак, как вы можете проверить реальные навыки вашего кандидата в разработке программного обеспечения? Давая на выполнение пробные рабочие тесты кода.
Пробные рабочие тесты — отличный метод, если вы хотите узнать, как оценить навыки программирования, потому что они отражают реальные задачи, которые ждут нового разработчика . В отличие от общих тестов по программированию, задачи по кодированию собеседований сосредоточены на решении реальных проблем, а не на ответах на простые вопросы.
Согласно исследованию Университета Айовы, пробные рабочие тесты также являются лучшим показателем будущей эффективности кандидата.
Итак, как они работают?
Эти тесты кодирования позволяют смоделировать день из жизни разработчика программного обеспечения в вашей компании, давая новобранцам практическое задание, будь то проект разработки или задача DevOps по настройке системы. Им предоставляется доступ к той же среде, которую обычно используют ваши разработчики — библиотекам, фреймворкам, GitHub или Stack Overflow. Все это позволяет им увидеть, как может выглядеть «первый день», если бы они работали на вас.
Во время пробного рабочего теста кандидатам дается ограничение по времени, которое отражает, как долго вы обычно ожидаете, чтобы ваш разработчик предоставил подобное решение.
Однако важно отметить, что они проинформированы о требованиях до начала теста. Таким образом, они смогут освоиться в вашей среде разработки программного обеспечения.
По выполнению задания, каждый кандидат получает оценку — не только простое «сдал» или «не сдал». Это означает, что рекрутеры могут быстро сравнить оценки всех кандидатов и решить, с кем продолжать.
Они также могут быстро предоставить обратную связь кандидатам — что важно, потому что лучшие технические таланты уходят с рынка почти мгновенно!
«Большая часть разработчиков работает на постоянной работе, примерно 10% — фрилансеры. Только 5% разработчиков желающих работать сейчас в поиске — статистика на много лучше, чем практически в любой другой сфере деятельности» (Квинси Ларсон)[3]
Вот несколько других причин, по которым вам следует включить пробный рабочий тест в свой процесс набора:
После того, как вы предварительно квалифицируете своих кандидатов с помощью теста, вам следует провести два типа собеседований — собеседование с HR-специалистом, отвечающее за межличностные навыки / культурные особенности, и техническое интервью с менеджером по найму, техническим директором, техническим руководителем или руководителем группы.
Собеседование о культурных особенностях должно проверить, выглядит ли кандидат так, чтобы другие хотели с ним работать. Самое главное, оно должно установить, как кандидаты могут подходить к конфликтам или разногласиям в команде разработчиков программного обеспечения.
Что касается целей технического собеседования, оно должно проверить:
Чтобы дополнить результаты онлайн —тестов , многие технические собеседования также включают сеанс программирования в реальном времени.
Рекомендуемая литература: Как проводить техническое собеседование: 7 советов по техническому собеседованию
Целью кодирования в реальном времени не является тщательное изучение каждой строки кода, которую предоставляет кандидат. В конце концов, ошибки случаются даже с лучшими из нас, не говоря уже о кандидатах, которые могут быть подвержены стрессу во время процесса в реальном времени.
Это должно дать представление, как кандидат принимает поставленную перед ним задачу и какие вопросы он задает, чтобы понять, что делает конечное программное обеспечение. Это также позволяет рекрутерам видеть, проверяет ли кандидат правильность кода перед завершением задачи.
Все эти элементы раскрывают коммуникативные навыки вашего кандидата, модели поведения и позволяют увидеть, как он разрабатывает стратегию для работы, которую им поручили.
Рекомендуемая литература: Собеседование по программированию онлайн и как работать с CodePair удаленно.
Поиск квалифицированного разработчика программного обеспечения может оказаться сложной и дорогостоящей задачей. Если вы нанимаете кого-то, кто недостаточно или слишком квалифицирован для этой должности, вы рискуете не только высоким уровнем выбытия сотрудников. Вы также тратите значительные финансовые ресурсы из-за неудачного найма. К счастью для ИТ-работодателей, которые хотят знать, как оценивать навыки программирования, есть много способов проверить навыки программирования своих кандидатов.
Самый эффективный метод оценки — это выполнение пробных рабочих тестов, которые позволяют вам проверить навыки ваших кандидатов в решении проблем, а не только их знание языка или структуры.
Имитируя реальный опыт работы в вашей компании, эти тесты позволяют увидеть, насколько хорошо кандидат соответствует профилю вашего идеального сотрудника. В результате вы сможете сосредоточить свои усилия на приеме на работу на собеседовании с наиболее многообещающими потенциальными сотрудниками и сможете избежать 10 наиболее распространенных запретов , которые следует соблюдать при найме программистов.
Изображения принадлежат Кевину Ку на Unsplash
[1] Цитата из статьи «Insights from Stack Overflow’s 2018 survey of 100,000 developers»
[2] Цитата из статьи «Insights from Stack Overflow’s 2018 survey of 100,000 developers»
[3] Цитата из статьи «Insights from Stack Overflow’s 2018 survey of 100,000 developers»
Обзор составили HR Эксперты ONLINE PERSONAL
Самойленко Геннадий, Данилова Варвара
В качестве бонуса предлагаем посмотреть видео от известного и авторитетного разработчика инструментов для it рекрутеров — AmazingHiring .
Как оценить навыки разработчика? Какие приемы можно использовать при проведении первичного скрининга для подбора технических специалистов? Где найти достойных специалистов и как выбрать наиболее подходящих?
Если вы хотите узнать ответ на эти вопросы, а также услышать экспертное мнение о том, как правильно подобрать работника на должность разработчика, смотрите вебинар Алексея Исаева, рекрутера с более чем 6-летним опытом, который сталкивается с этими проблемами практически каждый день. В своем честном монологе Алексей рассказывает про различные ресурсы, помогающие в оценке навыков разработчиков, а также отвечает на актуальные вопросы слушателей.
Ссылка на видео «Первичный скрининг: как оценить навыки разработчика»: