Пока борьба за классных техспециалистов на рынке напоминает Звёздные войны, многие компании задаются вопросом, как правильно протестировать знания разработчиков. О том, что и как проверять, а также как защититься от взломов и списываний — читайте в статье.
В последние годы рынок IT в России рос с пугающей скоростью, при этом являясь, скорее, рынком работника. 2022-й год перевернул всё с ног на голову. Так, по данным HeadHunter с января по сентябрь количество вакансий в IT упало на 25%. При этом число резюме выросло на 55%, с 211 тысяч до 327.
У этого эффекта есть сразу несколько объяснений: это и выход на рынок десятков тысяч специалистов из международных компаний, покинувших Россию; и большое количество людей, которые после начала кризиса обучились на онлайн-курсах и претендуют на джуниор-позиции.
«Рынок порешал» и развернулся в сторону работодателя. Бизнес теперь сталкивается с большим количеством откликов от техспецов, а значит как никогда актуальным становится их качественный отбор.
Строим воронку найма: как отбирать разработчиков
В 2022 году американская платформа CodinGame выяснила, что самая насущная проблема IT-рекрутинга — это поиск квалифицированных кадров, о ней упомянули 46% опрошенных респондентов. Это почти в два раза больше, чем у второго места «топа» — определения реального потенциала у кандидатов, которые не оканчивали профильные учебные заведения.
Действительно, полагаться лишь на резюме техспециалистов, в нынешних реалиях, авантюрно. Во-первых, заявленные навыки явно требуют проверки, иначе можно нарваться на «зелёного» джуна, выдающего себя за крепкого миддла. Во-вторых, напротив, не все разработчики умеют «продавать» себя. За внешне невзрачным резюме может скрываться потенциальный алмаз.
Поэтому опытные IT-рекрутеры советуют проводить многоступенчатый отбор:
-
Изучать портфолио разработчика. Оно может быть в совершенно разных форматах — наборы кода, собранные страницы, приложения или целые сайты.
-
При наличии, исследовать GitHub претендента. Рекрутеры обращают внимание на количество подписчиков, дату регистрации, количество репозиториев и коммитов.
-
Уточнять опыт использования Stack Overflow. Изучив, с какими вопросами и ответами кандидат приходит на крупнейший Q&A-сервис для разработчиков, можно понять области его интересов, примерный уровень знаний, репутацию в сфере.
-
Проводить тесты. Это эффективный способ нанять качественных разработчиков. Кандидаты решают реальные практические задачи, с которыми могут столкнуться во время работы в компании. Например, находят баги или синхронизируют многопоточное приложение.
-
Проводить технические интервью. В идеале — с кодингом в режиме реального времени и под присмотром нанимающего менеджера с опытом в разработке.
В этой статье сосредоточимся на 4-м пункте — тестировании — и расскажем о его тонкостях на примере нашего клиента, одного из крупнейших корпоративных университетов России.
Как протестировать знания программистов
Клиент, которого мы упомянули чуть выше, делает особый упор на проверку знаний IT-специалистов. За прошлый год компания провела больше 500 тысяч сеансов тестирования в StartExam, причём оценивала совершенно разных профессионалов: разработчиков и их руководителей, DevOps, администраторов СУБД, кибербезопасников, архитекторов.
Спектр языков и технологий для оценки также используется максимально широкий: Java, Python, Kotlin, SQL, PostgreSQL, PL/SQL, JavaScript, Agile, AI, ML, Data Science и др.
В компании используют 5 различных видов заданий:
-
Проверка теории. В таких заданиях можно, например, спросить, для чего используется описанный алгоритм. Или попросить дать определение термину: «Что такое функции высокого порядка?»
Вопросы могут быть как с заранее подготовленными ответами на выбор, либо открытыми.
-
Поиск ошибки. Кандидату выдаётся кусок кода, в котором нужно найти и исправить баг.
-
Описание результата. По фрагменту кода нужно описать, к какому результату приведёт его исполнение. Здесь может быть как выбор ответа из списка заготовленных, так и открытый текстовый ввод.
-
Решение задачи. Участнику даётся кейс, который нужно решить — написать код и прикрепить его файлом прямо в системе. После этого его проверит нанимающий менеджер и выставит оценку.
-
Интерактивные задания. В окне со встроенным компилятором участнику нужно написать свой код, и результат будет виден сразу.
Тестирование на раннем этапе отбора позволяет демократизировать наём (потому что задания у кандидатов будут схожими), сразу отсеять неподходящих кандидатов и сэкономить время для технических интервью с действительно ценными кадрами.
Однако важно учитывать, что техспецы любят проверять любое ПО на прочность, и системы тестирования — не исключение.
Взломать за 60 секунд: как защититься от читерства
За годы работы мы неоднократно сталкивались с тем, что айтишники пользуются своими навыками не только, чтобы пройти тест, но и чтобы облегчить его.
Но система StartExam превратилась в практически невзламываемое решение. Расскажем, с какими кейсами мы сталкивались и как в нашей платформе закрыты эти «бреши»:
-
Намеренное «притормаживание» таймера, чтобы получить больше времени на прохождение. В системе хранится как клиентское, так и серверное время. По расхождениям видно все попытки «читерства».
-
Смена часовых поясов. Если начало теста запланировано на 10:00 по местному времени, то попытка начать его раньше или позже ни к чему не приведет – система отслеживает часовые пояса.
-
Поиск правильных ответов в консоли. Ответы не хранятся в коде, сопоставление происходит на сервере.
-
Создание и рассылка скриншотов. Мы советуем создавать для каждого теста большое количество вопросов. В системе есть функция банка заданий, из которого в каждой сессии в случайном порядке собирается уникальный тест.
-
Вход с двух устройств. Система фиксирует такие попытки и позволяет зайти с одного устройства за раз.
-
Подстановка значений регистрационной анкеты. В StartExam можно создавать уникальные закодированные ссылки на тесты. По ним невозможно зарегистрироваться за другого человека.
Выводы
Тестирование знаний разработчиков — относительно простой и эффективный способ отсеять неподходящих специалистов. В дальнейшем сэкономленное время можно будет потратить на технические интервью и разбор портфолио.
В идеале, ваша система тестирования должна поддерживать большинство современных языков программирования и предотвращать попытки взлома и читерства. Это в полной мере реализовано в StartExam. Оставьте заявку на сайте и получите 5 дней бесплатного демо-доступа.
Всего 2 письма в месяц, внутри — только полезные материалы, кейсы и исследования.