Take-home vs. Leetcode

#career #interviews



Время непопулярных мнений: мне домашние задания куда больше по душе, чем алгоритмические собеседования с написанием кода (ака «литкод»). Ругают вообще-то оба этих способов отбора кандидатов, домашние задания - в основном за неоплачиваемое время кандидатов и нагрузку во внерабочие часы, литкод - за проверку специфичных навыков (нет, этот пост пишу не потому, что запорол свой литкод, мой литкод впереди). Так что тут выбор из двух зол. И мой выбор - домашние задания. Поскольку, про минусы литкода только ленивый не писал, буду больше про take-home.



Плюсы take-home в сравнении с алгоритмическими собеседованиями:



1) куда ближе к реальной работе. Тут вряд ли кто поспорит, завернуть модельку в API и докер, обсудить model lifecycle management и дашборды с метриками - бесконечно ближе к реальной работе MLE, чем пресловутые BFS и DFS (уж красно-черные деревья такой мем и стереотип, что даже не хотел упоминать).

2) кандидат работает в нестрессовой обстановке. Про стресс собесов вживую сто раз говорилось, просто отметим, что неспеша делать задание дома или на работе (кек) - куда лучше.

3) приоритизация в действии. Хорошее задание дается из расчета на 3-6 часов работы. Это значит не 40, а реально 3-6 часов. В таком ограничении я вижу только плюс - можно увидеть, что кандидат считает важным, а что нет. Для примера можно представить идеальный парсер какого-то сайта и хреновую архитектуру приложения и, наоборот, продуманную архитектуру и базовый quick & dirty парсер.

4) качественный фидбек. Это в общем не факт что верно, тут скажу за себя: я даю кандидатам подробный фидбэк по заданию, как по ключевым решениям, так и по коду. Джунам такой фидбек будет сильно полезнее, чем стандартный фидбэк после запоротого алгоритмического собеса или отписка «надо бы структуры данных поботать»

5) часть портфолио (скорее для джунов). По согласованию с работодателем сделанное домашнее задание можно поместить в портфолио проектов. С сравнении с сотнями часов, потраченных на литкод, это выглядит плюсом, таким же, как от пет-проджектов.



И, конечно, минусы. Приведу и те, которые традиционно считаются минусами, со своими контраргументами.



1) «кандидаты работают забесплатно». Хех, давайте поговорим об этом. Во-первых, если постараться, можно и оплатить работу кандидатов, что, думаю, в средней компании сделать сложновато, но можно.

Во-вторых, будем честны, больше половины заданий настолько плохи, что фидбек очень ценен для кандидата, а говорить об оплате времени даже как-то нелепо, когда на выходе что-то несуразное, вот уж реально chatGPT лучше сделает https://t.me/new_yorko_times/27

Так что средний кандидат тратит время на take-home, получает опыт и фидбек, по мне – fair enough. Не вижу особого отличия от 100 часов, убитых на литкод, и собес, запоротый за 10 минут, где попадается hard или крепкий medium (см. плюс первый, take-home задания хотя бы куда ближе к жизни, чем литкод)

2) «бедные кандидаты должны работать над заданием во внерабочее время». Камон, а литкод? В рабочее время? Тебе в принципе надо постараться, чтоб сменить работу. И хорошо бы не лицемерить, когда человек ищет работу, он уже отбирает немного времени и от работы в текущей компании, опять же будь то take-home, литкод или какой угодно другой собес.

3) задания утекают в открытый доступ. Да, вот это серьезный минус, тут можно частично разрулить проблему путём NDA, но задания все равно будут утекать, с этим нельзя что-либо сделать. А новые задания каждый раз легко не придумаешь, когда надо (к слову, это же - наибольшая сложность открытых курсов типа mlcourse.ai)

4) синьоры не будут делать take-home. Вот это да, проблемка, точнее, ограничение - take-home хорошо для найма стажеров, джунов, мидлов, но вот господа синьоры, весьма вероятно, ответят «нет у меня времени на это ваше задание». Но по мне это и не такая уж проблема, у синьоров можно другие вещи спрашивать, с ними на первый план выходят поведенческие собеседования и истории из жизни https://t.me/new_yorko_times/6