О домашних заданиях на IT-собеседованиях
Несколько моих знакомых как-то спросили у меня как я отношусь к домашним заданиям на собеседованиях и стоит ли браться за них. Мой ответ был однозначный “Только если оплачивается. Даже если вы новичок. Новичку в поиске первой работы можно взять задание, но от такое вакансии лучше отказаться, а само задание добавить себе в портфолио”. Недавно ко мне снова обратился один знакомый за советом по реализации одного функционала. Я ему помог и в конце диалога спросил для чего он будет использоваться. “Делаю домашнее задание для собеседования”. Он был уверен, что его возьмут если он его выполнит и он не разделяет моего скептицизма. В результате его не взяли, а написанный им функционал успешно внедрили в один из своих проектов. Я немного с ним пообщался посмотрел на написанный им код и предложил парт-тайм занятость, поскольку фулл-тайма сейчас нет, но с переводом на фулл-тайм позицию как только она появиться или понадобиться.
[sendpulse-form id=”278″]
Некоторые компании с вакансией разработчика ПО предлагают такой способ проверки способностей программиста как написать приложение для вымышленной ситуации. Например, написать приложение по доставке заказов из вымышленного ресторана. Многие, особенно начинающие программисты, бывают этим слегка шокированы. Разработка такого приложения с нуля требует существенного времени, а подобное домашнее задание часто не оплачивается, в СНГ это вообще тренд №1.
После долгой работы над подобными приложениями новички часто сдаются. сами обращаются к тем, кто дал заданием или с кем сказали держать связь и говорят, что вакансия им не интересна. В реальности же их тревожит сам метод подобной проверки знаний и умений.
Я пообщался со знакомыми в Европе и США, оказалось, что у них разработчики тоже столкнулись с этой практикой. Люди тратят от нескольких часов до нескольких дней (иногда больше трех), выполняя не оплачиваемые задания. В выступлении на PyCon в прошлом году разработчик Сьюзан Тан сказала, что потратила 32 часа на домашнее задание, а в итоге её всё равно не взяли, потому что в программе отсутствовала функция, даже не указанная в первоначальных требованиях. Она говорит, что обычно вообще не получала никаких откликов после выполнения работы — типичная проблема среди опрошенных разработчиков.
Эрик Уменхофер из Кремниевой долины столкнулся с тестами, которые требовали полных трёх дней работы. «В районе залива [Bay Area] к этому уже привыкли, — сказал он. — Когда одна компания начинает применять такую практику, другие замечают это и следуют примеру».
Как домашнее задание стало частью IT-собеседования
Для первой полноценной работы в 2012 году я прошел три неструктурированных интервью [интервью, в котором словесная форма вопросов и сам порядок вопросов не планируются заранее — прим. пер.]. Как было принято в IT-отрасли в то время, я побеседовал со старшим разработчиком и тим-лидом из команды в которой должен был бы работать, и менеджером проектов. Кто-то подготовил вопросы, кто-то — нет.
Многочисленные исследования показывают, что подобные интервью являются потенциальным источником предвзятости и не дают точной оценки кандидатов.
Позже IT-индустрия предложила иные формы тестирования для проверки навыков, в том числе чтобы избежать такой предвзятости. Это в том числе собеседование с использованием доски (whiteboarding), где кандидату предлагают изложить решение для какой-нибудь головоломки, вроде алгоритма для последовательности первых 25-ти простых чисел.
Такой подход тоже был принят в штыки: критики говорили, что эти тесты не похожи на обычную работу большинства программистов. Затем самый известный сторонник таких головоломок Google признал: даже собственные исследования не выявили существенной корреляции решения головоломок со способностями кандидата. Тесты с доской похоронили.
В этом вакууме возникли «домашние задания», где разработчикам дают решать актуальные проблемы в комфортной домашней обстановке на собственных компьютерах.
Проблема с домашним заданием на собеседованиях
К сожалению, пока нет исследований, которые сравнивают их эффективность с другими методами найма. Но некоторые HR-менеджеры утверждают, что можно оценить способности программистов без таких затрат времени.
Пит Холидей, менеджер по разработке CallRail в Атланте, раздавал домашние задания в процессе собеседований, но впоследствии понял, что так отпадают хорошие кандидаты. Некоторые говорили, что у них нет времени на домашнюю работу. Другие, возможно, даже не дошли до этой стадии. «Простое собеседование в офисе даёт больший охват, — говорит Холидей. — Вы не рассчитываете, что у них будет время или есть дома компьютер. Есть кандидаты с больными родственниками, родители-одиночки. Без домашних заданий можно расширить охват».
Холидей также заметил, что некоторые кандидаты оказались незнакомы с конкретным фреймворком, который им предлагался для задачи, но явно были способны его изучить.
Компания Холидея теперь использует структурированный формат «интервью с программированием в прямом эфире», который включает совместный аудит кода и его обсуждение. Обычно процесс занимает от 30 минут до часа.
Алистер Дэвидсон, технический архитектор из Лондона, говорит, что его компания сделала такой же выбор, когда узнала, что выполнение предложенного ими «маленького» домашнего задания заняло у кандидата 16 часов. «[Интервью в прямом эфире] даёт лучшее представление, каково работать рядом с человеком и решать проблему вместе с ним», — сказал он.
В то же время многие разработчики, особенно более высокого уровня, начинают просто отвечать «Нет, спасибо» на предложение выполнить домашнее задание.
Я советую отказываться от компаний предлагающих выполнить бесплатное домашнеее задание. Если вы новичок, то откажитесь только после получения задания. Само задание новичку лучше сделать чтобы пополнитель свое портфолио, что будет очень хорошим плюсом.