В статье описан взгляд бэкэнд-разработчика, участвующего в найме, при проверке тестовых заданий кандидатов.
Все истории — художественный вымысел. Все совпадения случайны.
Контекст: зачем даются тестовые задания
Многие компании используют тестовые задания как способ первичной фильтрации кандидатов на технические роли. Это позволяет оценить не только уровень знаний, но и подход к решению задач, внимание к деталям, навыки работы с git и документацией. Однако в 2025 году, с повсеместным использованием ИИ-инструментов, эффективность такой практики ставится под сомнение.
Исходные данные
Соискатели откликаются на вакансию на популярной платформе, им предлагается пройти какой-то несложный тест на знание языка программирования. HR проводит первичный скрининг резюме и даёт ссылку в GitHub на тестовое задание.
Сроки на тестовое не ограничены.
Тестовое состоит из 3-х частей разной сложности и объёма. Результаты тестового также необходимо прислать в виде ссылки на репозиторий.
Впоследствии HR отправляет тестовые кандидатов для проверки действующим бэкэнд-разработчикам компании, в которую происходит найм.
Как проверяются тестовые задания
Первое, что приходит в голову проверяющему: кто выполнил задание — человек или ИИ?
Кажется, что начинающему разработчику в 2025 году написать код и не спросить что-то у ChatGPT — нереальная задача.
На первый взгляд практически все задания рабочие и даже неплохо написаны, но похожи друг на друга. И тут возникает куча вопросов:
Как оценить навыки кандидата, если код, вероятнее всего, писал не он?
А если при решении соискатель частично использовал ИИ, то как понять, понимает ли он то, что было сгенерировано ИИ?
И есть ли смысл вообще проверять задание, выполненное ИИ, если на проверку одного кандидата уходит примерно 30 минут рабочего времени?
На этом этапе у большинства разработчиков встаёт серьёзный жизненный выбор: выполнять ли бессмысленную работу или попытаться её автоматизировать.
Идея: программа ai_plagiat
Окей, сформулируем небольшое ТЗ: программа, которая будет автоматически проверять, выполнено ли тестовое задание с помощью ИИ.
Берём описание каждой тестовой задачи, закидываем во все популярные AI-ассистенты (на момент написания статьи около 5–6).
Сохраняем их решения себе.
Парсим решение кандидата из его репозитория.
Сравниваем решение кандидата и ИИ двумя способами:
1) Простое текстовое сравнение
Удаляем комментарии (однострочные и многострочные)
Удаляем лишние пробелы и переносы строк
Сравниваем две последовательности символов
2) Сравнение AST (абстрактного синтаксического дерева)
Дерево представляет собой структуру кода: выражения, операторы и т.д.
Сравниваются структуры деревьев решений
Пример отчета ai_plagiat
Экспериментальный инструмент
Результаты сравнения решений кандидата с решениями ИИ
TEXT — текстовое сравнение
AST — сравнение абстрактного синтаксического дерева
---Kandidat Kanditov---
task1: TEXT: 98.02% (chat_gpt); AST: 99.78% (chat_gpt);
task2: TEXT: 28.48% (chat_gpt); AST: 47.05% (deep_seek);
task3: TEXT: 13.01% (grok); AST: 42.94% (grok);
Что это нам даёт
Даже в таком написанном "на коленке" варианте программы можно понять, какой из кандидатов не сильно задумывался над выполнением задания.
Держа в голове мысль о том, что суть тестового - это оценить навыки кандидата, то в некоторых случаях такое ПО даёт четкий ответ, что это не представляется возможным. И кандидату можно с чистой душой направить соответствующий ответ (сгенерированный AI-ассистентом, конечно же).
В целом такой инструмент, наверное, полезен и должен применяться HR-ом ещё до отправки тестовых на проверку разработчикам. Программа ai_plagiat не даёт 100% гарантии и требует периодической доработки.
Есть ли смысл в тестовых заданиях в 2025 году?
По личному опыту проверки тестовых — подавляющее большинство джуниор-кандидатов выполняют задания с использованием AI-ассистентов.
Проблемы работодателя:
Трата ресурсов на проверку решений, сгенерированных ИИ
Гадание: понимает ли кандидат, что ему сгенерировали
Возможные пути решения:
Приглашать кандидата на онлайн-кодинг только по резюме — точно не выход
Составлять текстовое описание тестового таким образом, чтобы ИИ в первых итерациях давал заведомо неправильное решение
Не пользоваться AI-ассистентами в 2025 году в разработке — уже невозможно.
Но работодателю для кандидатов, видимо, придётся сделать исключение, если сохранится формат тестовых заданий.
Проблемы найма: взгляд изнутри
Наш HR отправляет разработчикам на проверку в день примерно по 10–15 тестовых кандидатов. Из них удаётся проверять 3–5 в день, т.к. не каждый разработчик может уделять время на ежедневной основе. Т.е. куча тестовых просто физически никто не успевает просмотреть.
А ещё сколько резюме кандидатов проходит через самого кадровика — страшная загадка.
Если работодатель не отвечает соискателю или отвечает отказом — то велика вероятность, что дело не в кандидате, а в отсутствии физических возможностей это всё обработать.
Задания, написанные с использованием ИИ, проверяющему приходится сразу скипать, т.к. оценить навыки кандидата в этом случае очень сложно.
💡 Совет джуниор-кандидатам: пользоваться ИИ для решения тестовых не стоит, т.к. велика вероятность отсеяться ещё на этапе автофильтров.