Летом 22 года я прошел ряд неприятных (и неудачных) технических собеседований. Я столкнулся с компаниями, которые:
меняли описание вакансии после собеседования;
отказывали, потому что у меня не было навыков, которые они НЕ упоминали в вакансии;
требовали пройти несколько раундов технического собеседования для внештатной работы;
проводили «техническое собеседование», не задав ни одного технического вопроса;
давали на дом тестовое задание по кодингу весом в ~30 часов работы.
И больше всего у меня горело от неорганизованности большинства компаний. Эти интервью были пустой тратой времени. Но я не настолько себя люблю, чтобы скинуть всю вину на других. Я вообще не люблю технические интервью. Они мне плохо даются. Я их ненавижу. Вы можете мне отказать, и с такой же вероятностью я просто сольюсь с выполнения задачи.
По идее, техническое интервью — это попытка убедить компанию в том, что человек с улицы сможет что-то покрутить в разработке. На практике же компании расписывают вам, какие они молодцы, имитируя процессы гигантов из FAANG. И получается плохо.
Вывод: техническое собеседование это напрасная трата времени что для меня, что для вас.
Почему вы впустую тратите мое время
Я завел в интернете множество ресурсов, чтобы продемонстрировать свои навыки, указал их в своем резюме, но вы ничего не посмотрели. Я понимаю. Аврал на работе, тяжело заглянуть в чей-то блог или в профиль на гитхабе.
Вы не станете читать мой код, потому что прочитать его в 10 раз сложнее и дольше, чем его написать. Так что, даже если код на моем гитхабе написан филигранно, вы вряд ли это поймете.
Я знаю, что вы собираетесь сделать. Вы считаете, что должны повторять за ребятами из FAANG, да? Зачем изучать портфолио кандидата, если можно взять задачку с Hackerrank или LeetCode и попросить решить ее на доске. А я просто адски, кошмарно, чудовищно в этом плох.
К сожалению, задачи с LeetCode слабо коррелируют с решением реальных проблем (прим. ред.: есть одна статья, которая с этим поспорит). Особенно в области DevOps, моей специализации. Не существует тестового задания по отладке цепочек SSL-сертификатов в рабочей среде в 3 часа ночи. Сколько раз за все время работы вам требовалось вычислить сумму диагональных элементов многомерного массива? Наверное, единственный раз — когда вас собеседовали в FAANG.
Вы могли бы предложить мне домашнее тестовое задание по кодингу. Опять-таки, вроде бы как поступают профи, верно? Но нет — скорее всего, вы сильно недооцениваете временные затраты. Недавно одна компания попросила меня выбрать приложение, создать для него инфраструктуру (включая конвейеры CI/CD) с Terraform, чтобы все это запускалось с нуля одной строкой. Они оценили эту работу в четыре часа. Возможно, у меня получится уложиться в четыре часа, если я просто скопирую код гитхаба. Но даже если бы я был готов пустить на ветер так много времени, опыт подсказывает мне, что у вас нет объективных критериев или ресурсов для надлежащей проверки моего кода. Чтение кода занимает слишком много времени, помните?
Это аксиома: ваш рекрутер ВООБЩЕ НИЧЕГО не знает о технологии, которая применяется на указанной позиции. Вы заплатите им целое состояние, чтобы они подобрали вам кандидата, но, за редким исключением, по уровню они недалеко ушли от телефонных продаж. Половина рекрутеров, с которыми я разговаривал, просили меня составить небольшую рекламную презентацию. Остальные читали названия технологий в моем резюме, как имена малоизвестных средневековых индийских ученых. Они в буквальном смысле просто передают вам мое резюме.
И при всем этом, вы, скорее всего, даже не удостоите меня фидбеком, если я вам не подойду. Вы просто не будете мне писать. Такие отказы вызывают во мне смешанные чувства: если вы настолько неорганизованны, что не можете даже пару строк написать, вы — ужасный работодатель и нам с вами не по пути. Но!
Я всего лишь хотел бы узнать, над чем мне стоит поработать, где я не дотянул до ваших требований. Я понимаю, что могу добиться большего. Я не идиот. Но вместо этого вы выдаете мне набор абсолютно надуманных и посторонних причин, вроде “вы не понравились нам как человек” или “у вас недостаточно опыта работы с технологией X”. Не следует говорить кандидатам, что у них недостаточно опыта, после собеседования. Вы уже ясно понимали это из моего резюме. Ничего полезного я из подобного общения не получу, а следовательно — вы впустую тратите мое время.
Почему я впустую трачу ваше время
Я приукрашиваю практически все свои навыки. Так делают все. Я использую подходящие модные словечки в резюме, завышаю масштаб своих достижений и глубину моих навыков. Я даже добавляю задачи и обязанности, соответствующие вашим требованиям, к своим предыдущим должностям. Вы же не станете их проверять, не так ли?
Несмотря на долгую и успешную карьеру в разработке, у меня мало абстрактных навыков решения задач. Я решаю проблемы итеративно, и с каждой итерацией разбираюсь в ситуации чуточку лучше. Единственная польза от моего опыта — я могу делать это очень быстро. Достаточно быстро, чтобы сдать рабочий компонент до того, как вы обанкротитесь.
Ни разу за всю карьеру я не написал сходу решение, которое хотя бы отдаленно пережило взаимодействие с программными фреймворками, API и аппаратными ограничениями. Каждый раз меня поджидали сотни различных ловушек и ограничений. И единственный способ устранить их и получить устойчивый результат — это действовать пошагово. Так вот, я не смогу вам сотворить что-то осмысленное с LeetCode, если не буду практиковаться в решении задач с LeetCode — потому что это отдельный навык.
А еще на LeetCode нельзя показать упорство, хладнокровие или стрессоустойчивость. Мы не сможем воссоздать ситуацию, когда рабочая среда, неизвестно почему, вышла из строя в 6 вечера в канун Рождества, и мы будем сидеть до рассвета, пока все не починим. Я не смогу продемонстрировать, как я справляюсь с одновременным созданием пятнадцати различных срочных функций, жонглируя пятью продактами, и каждый приходит со своими планами и графиками. Я не смогу изобразить, как работаю 40 часов подряд на выходных не покладая рук, потому что нужно подготовить продукт ко вводу в эксплуатацию. А между тем это как раз те навыки, которые вашей компании действительно нужны.
И само собой, я не собираюсь вам показывать, как пользуюсь Google, хотя каждый разработчик постоянно лезет в поисковик. Каждый день.
В общем, я не собираюсь много рассказывать вам о своей повседневной рутине. Я впустую трачу ваше время, не так ли?
Что нам делать?
Компании, помните, что это палка о двух концах.
Мне нужно пройти ваше собеседование и провалить его, чтобы стать лучше. Мне нужно практиковаться решать задачи с LeetCode. И мне нужна адекватная обратная связь. Это поможет мне успешно прыгать через обручи, но я не думаю, что вам пригодится этот талант.
Если вы хотите закрыть свои вакансии и набрать хороших кандидатов, перестаньте бездельничать и полагаться на LeetCode или ленивый перебор резюме. Проверяйте портфолио кандидата. Задавайте вопросы, приближенные к реальности. Постарайтесь сделать так, чтобы ваши технические собеседования отражали глубинную сущность должности.
Мы ищем разработчиков для стартапов, а они не любят тратить время зря — поэтому интервью проводят быстро и вопросы задают только по делу. Если ищете работу, напишите нам — мы подберём для вас что-нибудь подходящее.
Читайте также: