Привет Хабр, меня зовут Герман, и я лид разработки, вышедший из фронтов. Сегодня очень хочу обсудить тему культуры собеседований, а точнее тот хаос, что творится на этом поприще и узнать, что об этом думает комьюнити in situ.

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

  1. От компании к компании сильно различается уровень собеседований — на одну и ту же вакансию с одинаковой зарплатой.

  2. Зачастую абсолютное непонимание у собеседующих того, что необходимо спрашивать на определенную должность.

  3. Засилье лайфкодинга уровня leetcode easy в ущерб реальным знаниям.

Все эти факторы приводят к тому, что собеседования в 2023 году — это русская рулетка, которая стреляет в ногу как работодателям, так и рынку кандидатов.

Давайте подробнее разберем все это безобразие, и я постараюсь объяснить, почему компаниям/лидам/менеджерам стоит пересмотреть свой подход к найму.

Влияние бигтеха на рынок

В сети ходят легенды о собеседованиях в бигтех компании, на ютубе сотни видосов, как решать задачки всех уровней, для того чтобы попасть на работу в одну из них. И вот я тоже решил сходить на подобный собес синьорного уровня.

7 задач, 3 часа: 3 задачи по js (замыкания, функциональщина, промисы) и 4 алгоритмических (графы, линкед листы, скользящие окна).

Я понимаю, зачем это бигтеху. Лидеры рынка могут позволить себе выбирать, плюс многие из них успешно продают курсы для того, чтобы ты прошел их собеседования. Чего я не понимаю, так это зачем компаниям поменьше перенимать опыт собеседования лидеров рынка? Если и к вам, и к бигтеху попасть одинаково потно, то зачем выбирать вас? Что ВЫ поймете после того, как кандидат нарешал вам уйму задачек/алгосов, но у вас цели переписать легаси код и перейти на PWA стек?

И в итоге на своих публичных собеседованиях бигтех менеджеры на вопрос из зала «А зачем на фронта так много алгоритмов?» отвечают: «А вдруг вам придется огромные JSON нормализировать и денормализовать на клиенте?». Я надеюсь, что это последнее, чем придется заниматься фронту на клиенте. Но суть в том, что других внятных объяснений подобных форматов собеседований у них для нас нет.

Среди бесконечных "лайфхаков" как выучить литкод, есть подборки компаний которые не спрашивают алгоритмы, и это набирает просмотры.

Но люди принимают практики больших компаний и, в большинстве случаев, собесы сразу начинаются с окна редактора кода, и после пару слов приветствий идет штурм leetcode based задачек.

И вот тут-то и кроется все коварство данного подхода.

Просмотрев сотни и сотни резюме, держа руку на пульсе «тенденций попадания на первую работу в IT», я своими глазами наблюдаю следующую картину. Молодые люди с накрученным опытом в резюме активно спамят джун+/миддл вакансии в надежде попасть на любителя алгоритмов. И тогда собеседования - это просто своеобразный экзамен с билетами, которые можно зазубрить. И согласно базовой теории игр это выигрышная стратегия. И эти люди находят работу!

Как я лидом устраивался

Мое самое большое удивление за всю мою карьеру, что на джуна и лида многие спрашивают одно и тоже (и в весьма крупных конторах).

Типичный диалог с техническим специалистом:

— Какие бывают значения у свойства position?

— А вот var, let и const чем отличаются?

— Абстрактный класс от интерфейса чем отличается?

— А я простите на какую позицию собеседуюсь?

— Техлид, а что?

И, когда ты идеально отвечаешь на все, то остается немой вопрос: а как люди будут принимать решения, какого кандидата взять? А почему этот человек вообще собеседует меня на такую должность? И чем мне придется там заниматься? К сожалению, это не единичный случай, но, слава богу, нечастый.

Есть и другие крайности, когда HR проводит с тобой 2 собеса (знакомство и скрининг анкетой) и потом по результатам того, что CTO прочитал твою анкету и что-то не понял, HR попросил написать эссе на тему отличия Express от Nest. А ты действующий лид, и все это выглядит как какая-то нездоровая шутка и огромная трата времени.

— Вы мидл? Объясните разницу Jit компиляции в SpiderMonkey и JavaScriptCore

Наверное второй по холиварности тезис при обсуждении собеседований и знаний, которых на них проверяют (после алгоритмов). Избыточность вопросов и требований к экспертности кандидатов на должность, которая этого не требует.

Сколько моих мидлов повалилось на подобных собесах, после которых мы сидели и разбирали эти потрясающие вопросы уровня «Разница работы евент лупа в браузере и в ноде», «Как улучшить SQL запрос если медленно работает» и так далее..

Я понимаю, чего хотят добиться собеседующие, если бы были другие вопросы, но часто собеседование состоит только из того, что собеседующий выстрадал на своем опыте и требует от своих подчиненных. И все мы понимаем, что уровень реальных рабочих задач не такой. Во всяком случае в вакансии о таких вещах не написано ни слова.

Обратная сторона подобных собесов — это вопросы на БАЗУ.

Процитирую Вадима Макеева: у нас есть 2 джава скрипта, один на котором мы пишем, а второй с собеседований.

И черт возьми, вот ЭТУ статью на хабре люди читают только для того, чтобы решать задачи с собесов на выводы консоль логов через промисы. Никто в продакшн коде не будет писать Promise.all с 0. Фибоначчи не фигурирует в топе вопросов на хабркуа или стаковерфлоу.

Если ваш кандидат нереально круто и быстро ответил на вопросы по БАЗЕ, это не значит что он семи пядей во лбу, это значит, что ваше собеседование у него уже десятое.

В результате у нас появляются такие синьоры (некоторые слова заменены)

А что же тогда спросить?

Если у вас есть такой вопрос в голове, то задумайтесь — а нужен ли вам новый человек в команду? Когда ко мне, как к нанимающему менеджеру, приходят с просьбой прособеседовать человека на должность, я сначала спрошу: а чем он должен будет заниматься?

Кратко отмечу, что вопросы для человека, который будет поддерживать легаси и архитектора систем не будут даже пересекаться. Мне правда неинтересно, знает ли крепкий мидл, как разворачивать деревья или как работает ивент луп в деталях, бизнес будет ему платить не за это. То же самое и с синиор+ уровнем, мне неинтересно, насколько у него зеленый гитхаб или сколько лычек в литкоде. Если он не может за час рассказать вкратце, как бы он развернул полноценный PWA и не понял, нужен ли нам SSR для проекта или нет.

Итого

Находясь в профессии какое-то время, мы часто слышим что-то в стиле «кандидатов мало, а достойных еще меньше» или «нормальную работу хрен найдешь». И причиной этому я вижу исключительно в отсутствии культуры собеседований или понимании того ЗАЧЕМ они действительно нужны.

И из-за этого мы имеем два рынка:

  • Рынок вакансий, которому нужны просто смышленые сотрудники с опытом для конкретных бизнес задач, или джуны у которых есть смекалка не только зубрить БАЗУ, но и делать самую важную джуновскую работу — спрашивать и не бояться. Но большая часть собеседований на эти вакансии проверяет совсем не эти навыки.

  • Рынок опытных кандидатов, которые уже решали какие-то реальные бизнес-задачи. Их бэкграунд-чек несложно проверить звонком/сообщением на прошлую работу. Но их не спрашивают об опыте, их спрашивают что-то, что придет в голову собеседующему.

И в генеральном случае два этих рынка редко пересекаются. Успех среди кандидатов имеют люди, зубрящие собесы и системно хакающие рынок.

Уважаемые наниматели, лиды, менеджеры! Для вас всегда есть подходящий кандидат (и много, а не 1 из 100), просто спросите его о чем-нибудь другом, о чем-то, что важно вашему бизнесу, а не вашему идеально настроенному линтеру.

P.S. Парадоксально, но самые лучшие собесы у меня были с гендиректорами или управляющими менеджерами, которые не сталкиваются с кодом. Их вопросы всегда были про то, как я буду решать их проблемы.