Перед выполнением тестового задания при приёме на работу выясните, какой результат ждёт работодатель, сколько времени предлагает на него потратить и как будет проверять работу. Затем соберите основной сценарий, проверьте его по условию и приложите понятную инструкцию. К моменту сдачи вы должны уметь показать результат и объяснить свои решения.
Статья поможет пройти этот путь без бесконечных доработок и догадок об ожиданиях. Разберём небольшое задание для разработчика: от первого сообщения до обсуждения готового проекта. Все условия, договорённости, сроки и сообщения в примерах учебные. Для своей вакансии ориентируйтесь на инструкции компании.
Что уточнить перед тестовым заданием
Сначала определите формат. Домашний проект обычно позволяет распределить работу до согласованной даты. Задание по таймеру выполняется за ограниченное время, иногда прямо в специальной платформе. Возможность возвращаться к вопросам, пользоваться документацией и запускать свои проверки зависит от правил. Проверьте их до нажатия кнопки начала.
Для домашнего проекта полезно прояснить следующие вопросы. Если ответы уже есть в инструкции, повторно спрашивать их не нужно.
- Результат: что обязательно должно работать, а какие пункты считаются дополнительными? Нужен код, отчёт, демонстрация или несколько материалов?
- Время: когда сдавать работу и сколько часов ожидается на само выполнение? Начинается ли отсчёт при открытии ссылки?
- Оценка: что будут проверять — правильность, оформление, структуру решения, автоматические тесты? Будет ли отдельное обсуждение?
- Инструменты: какие технологии, библиотеки и источники разрешены? Есть ли отдельные правила использования ИИ?
- Передача: куда отправлять результат, кому открыть доступ и можно ли размещать условие и решение публично?
- Дальнейшее использование: это учебная задача или работа над действующим продуктом? Если предполагается большой объём, как обсуждаются оплата и использование результата?
Рекрутер — специалист по подбору сотрудников — может передать технические уточнения команде. Сформулируйте их одним сообщением, объяснив, какое решение зависит от ответа.
Пример сообщения до начала
Кандидату прислали задание сделать страницу со списком задач. В условии есть функции, но не указаны ожидаемые часы работы и способ хранения данных.
Ирина, добрый день! Спасибо за задание. Подскажите, на какое время выполнения вы рассчитываете и к какой дате нужен результат? В списке обязательных функций вижу добавление, завершение и фильтрацию задач. Правильно ли я понимаю, что отдельный сервер не нужен? Должны ли задачи сохраняться после обновления страницы? Также уточню правила использования ИИ и формат передачи проекта.
Вопрос о хранении здесь меняет объём работы. Если данные должны быть доступны с разных устройств, простого сохранения в одном браузере будет недостаточно. Это лучше выяснить до выбора решения.
Как согласовать объём и не потратить на тестовое все выходные
Разделяйте календарный срок и ожидаемое время работы. Возможность прислать проект через неделю не означает, что нужно работать над ним всю неделю. Универсальной нормы часов для тестового нет: небольшое упражнение, домашний проект и полноценная рабочая проба устроены по-разному.
Оцените, помещаются ли обязательные части в предложенное время. Кроме написания кода, нужны проверка, инструкция и отправка. Если до срока далеко, всё равно заранее выберите момент, после которого будете исправлять ошибки и готовить сдачу, а не добавлять функции.
Если объём не сходится со временем, обсудите это до выполнения. Например: «На перечисленные функции с проверками я оцениваю больше времени, чем предложенные четыре часа. Какие пункты для вас приоритетны? Можно ли согласовать меньший объём или другой формат оценки?» Укажите конкретную причину: обязательную интеграцию, загрузку данных или дополнительный экран.
Для большой рабочей пробы отдельно спросите об оплате и дальнейшем использовании результата. Если условия вам не подходят, можно отказаться: «Спасибо за предложение. Сейчас не смогу выделить время на такой объём. Готов обсудить короткую практическую встречу или показать подходящий собственный проект». Работодатель может согласиться на другой формат или сохранить свой процесс.
- Понять результат
Выписать обязательные функции, ограничения и вопросы. Согласовать то, что меняет объём.
- Собрать основной сценарий
Провести пользователя через задачу от начала до конца. Затем улучшать решение по приоритетам.
- Проверить
Сверить поведение с условием и повторить запуск по инструкции из новой копии проекта.
- Передать и объяснить
Подготовить README, проверить доступ и обозначить сделанное, ограничения и дальнейшие шаги.
Можно ли использовать ИИ, библиотеки и готовый код
Разрешение зависит от задания. Одни компании допускают помощь ИИ и просят описать её, другие оценивают самостоятельное выполнение без таких инструментов. Даже в одной компании правила домашнего проекта и следующего собеседования могут различаться. Отсутствие запрета в коротком письме лучше прояснить вопросом.
Уточните и характер помощи: разрешено ли искать объяснения, получать замечания к своему коду или генерировать части решения? Если использование допускается, сохраните сведения об инструментах и своей проверке в том формате, который попросили. Перед отправкой разберитесь во всём, что включили в работу: почему код нужен, как ведёт себя при ошибках и как его изменить.
Для библиотек действует тот же принцип: соблюдайте условие и понимайте, какую часть задачи выполняет библиотека. Если проверяют реализацию конкретного алгоритма, замена его готовым вызовом может убрать сам предмет оценки. Если выбор инструментов свободный, подходящая библиотека помогает сосредоточиться на задаче. Заимствования и помощь описывайте честно; не используйте рабочие материалы прежнего работодателя без разрешения.
Разбираем тестовое задание на одном примере
Продолжим учебную ситуацию со страницей списка задач. Предположим, после уточнений стороны договорились: сделать её на React — библиотеке для создания интерфейсов, без отдельного сервера. Задачи должны сохраняться в этом браузере после обновления страницы. Обязательны добавление, отметка о завершении и три фильтра: «Все», «Активные», «Завершённые». Анимация — дополнительный пункт. На работу предложено ориентироваться в пределах четырёх часов; это условие примера, а не норма для всех тестовых.
Превратите функции в наблюдаемое поведение
Фраза «добавление задачи» ещё не отвечает на вопросы о пустом названии и повторяющемся тексте. В нашем примере кандидат согласовал: название из одних пробелов не принимается, а две разные задачи могут называться одинаково. После этого можно составить таблицу, по которой получится и написать решение, и проверить его.
| Условие | Поведение | Проверка |
|---|---|---|
| Добавить задачу | Новая запись видна в списке активных. | Добавить «Подготовить вопросы команде» и найти её в списке. |
| Не принимать пустое название | Пустая строка и одни пробелы не создают запись; рядом с полем есть пояснение. | Попробовать отправить оба варианта и проверить, что список не изменился. |
| Разрешить одинаковые названия | У каждой задачи своя запись; завершение одной не меняет другую. | Добавить две задачи «Проверить письмо» и завершить только первую. |
| Фильтровать по состоянию | Фильтр меняет видимые записи, сохраняя остальные задачи. | Переключить три фильтра и вернуться к списку всех задач. |
| Сохранять результат | Название и отметка о завершении остаются после обновления страницы. | Создать две задачи, завершить одну, обновить страницу и сверить обе записи. |
Не каждую мелочь нужно согласовывать отдельно. Существенные вопросы меняют результат, способ хранения, доступ или объём. Небольшие решения, которые не противоречат условию, можно принять самостоятельно и кратко обозначить в документации.
Сначала проведите задачу через весь основной сценарий
Для нашего примера первый рабочий результат — человек вводит название, видит задачу, завершает её и находит в нужном фильтре. Затем проверяется сохранение. Если начать с анимации кнопки, к концу времени может остаться красивый экран без обязательного поведения.
Структуру кода подбирайте под объём. Например, отдельно держите отображение списка, операции над задачами и чтение с сохранением данных. Так изменение фильтра не требует переписывать работу с хранилищем. Для одной страницы достаточно понятного разделения ответственности; добавляйте новые слои, когда можете объяснить, какую задачу они решают.
Не расширяйте условие незаметно для себя. В этой договорённости нет регистрации, синхронизации между устройствами и совместного доступа. Их добавление увеличит работу и изменит способ хранения. Если после обязательных функций осталось время, сначала проверьте решение, затем выбирайте дополнительный пункт.
Если обязательную функцию не успеваете: сообщите об этом, назовите готовую часть и предложите согласовать следующий шаг. Запись в README объясняет пропуск, но не делает требование выполненным. Когда условие специально предлагает выбрать приоритеты, объясните этот выбор; когда требует полный набор функций — уточните возможность сокращения объёма.
Как проверить решение перед сдачей
Вернитесь к условию и таблице поведения. Для каждого обязательного пункта найдите подтверждение в работе программы. Не ограничивайтесь одним удачным запуском: ввод из пробелов, две одинаковые записи и переключение фильтра в нашем примере проверяют разные ошибки.
Автоматические тесты — небольшие программы, которые сами проверяют результат действий или вычислений. Если формат задания предполагает собственные тесты, начните с важной логики. В списке задач полезно проверить добавление, отказ от пустого названия, изменение нужной записи и фильтрацию. Отдельно проверьте сохранение и восстановление данных. Ручной просмотр страницы помогает убедиться, что человек видит результат и может пользоваться элементами управления.
Объём проверок зависит от задания. В упражнении на платформе часть тестов может запускаться автоматически; в домашнем проекте работодатель может ждать ваши. Указывайте, что проверено автоматически, что вручную и что осталось без проверки. Не заявляйте полную проверку, если прошли только основной путь.
Затем получите новую копию проекта из того архива или репозитория, который будете отправлять. Репозиторий хранит файлы проекта и историю изменений. Пройдите установку и запуск строго по своей инструкции, не подставляя недостающие файлы из рабочей папки. Это помогает обнаружить незаписанную зависимость — библиотеку, которая нужна программе, — или пропущенный шаг подготовки. Новая папка на том же компьютере не исключает влияния заранее установленных инструментов: отдельно убедитесь, что необходимые программы и их версии указаны в README.
Для страницы из примера также проверьте первый запуск без сохранённых задач, доступ к кнопкам с клавиатуры и поведение на узком экране. Если нашли ошибку, исправьте её и повторите затронутые проверки. Цель — передать результат, который другой человек сможет воспроизвести.
Что написать в README тестового задания
README — текстовая инструкция в папке проекта. Начните с того, как получить и проверить результат: нужные инструменты и их версии, последовательность установки, точные команды запуска и тестов, адрес открываемой страницы. Команды берите из своего проекта и проверяйте перед отправкой. Если компания дала шаблон, заполните его.
После инструкции кратко опишите выполненное, принятые решения, известные ограничения и дальнейшие улучшения. Эти разделы помогают проверяющему понять, что он видит. Они не должны расходиться с поведением программы.
Сокращённый пример содержательной части README
Предположим, в учебном проекте готовы все обязательные функции, перечисленные выше. Ниже — пример описания после инструкций установки и запуска. Это образец текста, а не отчёт о реально выполненном проекте.
Что сделано. Задачи добавляются, отмечаются завершёнными и отображаются в трёх фильтрах. Пустое название не принимается. Одинаковые названия разрешены; записи различаются по отдельному идентификатору.
Хранение. Данные сохраняются локально в браузере: после обновления страницы список восстанавливается. Доступ с другого устройства не предусмотрен — отдельный сервер по согласованному условию не нужен.
Проверки. Автоматически проверены добавление, пустой ввод, завершение выбранной записи и фильтрация. Сохранение после обновления, работа с клавиатуры и узкий экран проверены вручную.
Что не добавлено. Дополнительная анимация не реализована. После обязательных функций время потрачено на проверки и документацию.
Следующий шаг. Проверить восстановление списка при повреждённых сохранённых данных. Сейчас этот случай не проверен.
Здесь видны границы результата и конкретный пробел. Формулировка «можно улучшить качество» не подсказывает, что менять; указание непроверенного случая позволяет обсудить действие и его приоритет.
Если разрешённый ИИ использовался, добавьте правдивое описание. Например: «ИИ помог предложить варианты проверок. Я выбрал относящиеся к условию и проверил результаты». Пишите так только при соответствии реальной работе. Если инструмент создавал код, укажите это и объясните свою проверку; не заменяйте описание общим «использовал современные инструменты».
Как отправить тестовое задание работодателю
Следуйте указанному способу: архив, ссылка на закрытый репозиторий, форма или отправка через платформу. Проверьте, что приложена нужная версия и у названных проверяющих есть доступ. Возможность открыть ссылку под своей учётной записью ещё не подтверждает их доступ. Не публикуйте условие и решение открыто, пока не выяснили, разрешено ли это.
В сообщении достаточно назвать вакансию, дать результат и указать, где лежат инструкции. Существенный пропуск или ограничение обозначьте сразу. Ниже — учебный пример сдачи той страницы списка задач, которую мы разбирали.
Ирина, добрый день! Отправляю тестовое на позицию frontend-разработчика. Ссылка на проект приложена, доступ открыт указанным проверяющим. Инструкции запуска и описание проверок — в README. Добавление, завершение, фильтры и сохранение задач реализованы. Дополнительную анимацию не добавлял. Готов показать решение и обсудить выбранный подход. Подскажите, когда ожидать обратную связь?
Если после отправки обнаружили ошибку, сообщите, какое поведение она затрагивает, и уточните возможность обновить результат. Если версия уже принята в проверку, согласуйте замену. Так у сторон будет одинаковое понимание того, какую работу оценивают.
Как подготовиться к обсуждению результата
Работодатель может попросить показать проект, объяснить устройство или внести изменение. Заранее откройте отправленную версию и убедитесь, что можете воспроизвести основной сценарий. Стройте рассказ от задачи пользователя к решениям, а затем к ограничениям.
- Напомните цель. В примере — добавить задачу, завершить её и найти в нужном списке, сохранив результат после обновления.
- Покажите основной путь. Короткая демонстрация помогает собеседнику связать объяснение с работающей программой.
- Разберите одно важное решение. Например, почему одинаковые названия требуют отдельных идентификаторов и как это проверено.
- Объясните ограничение. Локальное хранение подходит согласованной странице, но не обеспечивает общий список на разных устройствах.
- Назовите следующий шаг. Сначала устраните существенный пробел в корректности, затем обсуждайте необязательные улучшения.
Потренируйтесь отвечать на вопросы «Почему выбрали этот способ?», «Как проверили?» и «Что изменится при новом требовании?». Для нашего проекта новое требование может звучать так: «Два человека должны работать с одним списком». Объясните, почему теперь потребуется общее хранение данных и правила доступа; покажите границу первоначальной договорённости.
Если собеседник нашёл ошибку, сначала уточните воспроизведение и ожидаемое поведение. Затем объясните причину и способ проверки исправления. Когда точного ответа нет, обозначьте, что нужно выяснить. Способность разобраться в своём решении помогает поддерживать предметный разговор.
Что проверить перед отправкой
- Понятны обязательный результат, ожидаемое время и способ сдачи.
- По каждому требованию известно, выполнено ли оно и чем это проверено.
- Проект запускается из передаваемой копии по инструкции; важные проверки проходят.
- README содержит фактические команды, решения, ограничения и сведения об использованных инструментах.
- У проверяющих есть доступ к нужной версии, а сообщение обозначает существенные незавершённые части.
- Вы можете показать результат, объяснить выбор и назвать следующий разумный шаг.
Начните с перечня обязательных функций и вопросов, которые меняют объём. После согласования соберите работающий основной сценарий, проверьте его и подготовьте понятную передачу. Тогда на обсуждении у вас будут конкретные результаты: что сделано, почему так устроено и что стоит улучшить дальше.
