Как человек с почти двадцатилетним опытом в разработке программного обеспечения и найме сотрудников, я был по обе стороны баррикад. Я подавал резюме на множество вакансий и также был лидом, отвечающим за найм разработчиков. Давайте рассмотрим вопрос о тестовых заданиях с двух сторон.
С точки зрения кандидата
Junior-разработчики: Если вы начинающий разработчик, пытающийся попасть в индустрию, у вас часто нет выбора, кроме как выполнять тестовые задания. Конкуренция огромная, и эти задания могут стать вашим билетом в компанию.
Middle и Senior-разработчики: Здесь я нахожу тестовые задания в основном бессмысленными. В среднем они занимают около 5 часов. Тратить 5 часов на потенциальную работу, которую вы можете не получить, иррационально. Это время можно было бы лучше потратить на подачу заявок в другие компании с более простыми процессами трудоустройства. Что больше всего раздражает, так это компании, которые сразу после получения резюме присылают тестовое задание. Моя первая мысль: "Давайте сначала обсудим зарплатные ожидания, команду и ваши требования к кандидату, прежде чем переходить к тестам." Зачем тратить время кандидата без предварительного обсуждения?
С точки зрения кандидата, рациональнее сосредоточиться на компаниях, которые ценят ваше время и готовы сначала обсудить условия.
Сценарий после технического интервью: Если вы уже прошли техническое интервью, которое обычно длится не менее часа, и вас просят выполнить тестовое задание, это указывает на то, что компания все еще сомневается в вас. Во время технического интервью я обычно задаю критически важные вопросы, чтобы понять, является ли эта компания моей мечтой. Если их ответы меня устраивают, я могу согласиться на тестовое задание. В противном случае, я предпочту потратить свое время на другие возможности, где в моей кандидатуре менее сомневаются.
С точки зрения лида
Моя позиция по тестовым заданиям: Я никогда не просил кандидатов выполнять тестовые задания. Для меня это ненужно. Я предпочитаю, чтобы разработчик прислал свой GitHub с проектами. Если их нет или проекты под NDA, это значительный минус. В таких случаях, если у меня есть серьезные сомнения после технического интервью, я могу предложить тестовое задание для экономии времени. Но в целом, я предпочитаю видеть их существующую работу.
GitHub против тестовых заданий: Просмотр проектов на GitHub предоставляет намного больше ценной информации, чем простое тестовое задание. Это показывает, как кандидат пишет код, думает и использует паттерны проектирования. Вы можете увидеть, как он структурирует проекты. Что дает тестовое задание? Что разработчик может решить простую задачу за 4 часа? Нет гарантии, что он сделал это сам; возможно, ему помог друг или ChatGPT. Вы не получите представления о том, как он структурирует проект или решает проблемы. В простых задачах редко применяются сложные паттерны.
Сложность задач: Понять уровень разработчика можно только на более сложных и объемных задачах. Если это оплачиваемое задание, которое занимает день или два, это другой разговор. Я использовал этот подход несколько раз, когда у меня были сомнения после технического интервью. В таких случаях можно многое узнать. Но обсуждение того, как проводить техническое интервью, это уже другая тема.
Вопрос о тестовых заданиях неоднозначен. Для Junior-разработчиков это часто необходимость. Для Middle и Senior-разработчиков это обычно пустая трата времени, если компания не проявляет серьезного интереса. С точки зрения лида, проекты на GitHub предоставляют больше ценной информации, чем простые тестовые задания. Если сомнения остаются после технического интервью, можно рассмотреть более объемное и оплачиваемое задание.