Как выглядит техсобес в современном мире и нужно ли к нему готовиться?

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

0957b9e6384e82f0503597bc292535ad.png

Спойлер — готовиться нужно. Все это делают по-своему, но мы наметили несколько общих подходов.

Техническое собеседование глазами кандидата

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

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

Чтобы оставаться актуальным, необходимо заниматься самообразованием — постоянно освежать свои знания. Но в фоне с основным проектом как правило этого никто не делает. Многие и смысла в этом не видят. Сегодня технология на хайпе, но к тому моменту, когда ты выйдешь на рынок труда, она может благополучно исчезнуть. Зачем же тратить время на то, чтобы во внерабочее время ковыряться с ней без конкретной цели? Плюс некоторые знания — в части подходов и паттернов — можно получить только на практике в компании. Работа над некоммерческим пет-проектом здесь не поможет, потому что там далеко не всегда используются те же подходы, что и в коммерческой разработке (это, кстати, беда всех самоучек — они уходят в практики, которые не совпадают с мейнстримом).

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

Как отметил один из спикеров, примерно 95% рабочих ситуаций укладывается в 5% опыта. Но спрашивать именно об оставшихся 5% ситуаций — это своего рода традиция. И особенно абстрактными вопросами грешат крупные компании — они очень любят спросить базу по теории или погонять по алгоритмам, которые скорее всего не пригодятся. Отличный пример от другого спикера — асинхронность в JavaScript. Как он отметил, знание о том, что есть так называемый event loop или отдельная очередь микрозадач, за 10 лет работы не пригодилось ни разу, зато на собеседованиях все это вспоминают часто. Спикер вспомнил, что из последних десяти собеседований хорошие вопросы именно о том, с чем предстоит работать, встречались только на двух или трех.

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

Почему вопросы именно такие, в целом понятно. В рамках собеседования представители компании пытаются понять, какого уровня кандидат перед ними — стоит ли платить ему столько, сколько он запрашивает. И крупным компаниям здесь сложнее, потому что у них часто одна вакансия висит на несколько отделов и собеседуют человека одновременно во все, т.е. задать вопросы по конкретному проекту не получается. А при этом оценить, как человек мыслит и подходит к решению задач, надо. И на это у них всего 10–15 вопросов.

Раз мир «охоты за головами» устроен именно так, кандидату остается готовиться к техническим собеседованиям.

Как именно готовиться?

Подход к подготовке — штука индивидуальная. Здесь вы найдете мнения четырех опытных специалистов, которые поделились своими практиками. Для тех, кто не хочет вчитываться, в самом конце подготовили краткое резюме.

Лид во фронтенде, ментор

Раз собеседования — самостоятельная задача, то и готовиться к ней надо отдельно, не смешивая это с рабочим проектом.

Можно пойти и посмотреть в интернете статьи вроде »30 вопросов по JavaScript». По моему опыту в них действительно встречаются вопросы, которые задают на технических собеседованиях. Но пересечение не 100% — где-то есть устаревшие версии, где-то надуманные, поэтому полностью доверять таким спискам я бы не стал. 

Сама подготовка — это чтение теории и решение задач, т.е. книги, статьи, задачи и онлайн-тесты на каком-нибудь javascript.ru, решение алгоритмов на codewars и т.п. Если мы говорим про фронтенд, надо посмотреть в первую очередь JS и основной фреймворк (react, vue, angular), при необходимости — освежить знания по вёрстке, да и в целом понять свои слабые места и закрыть их. Я рекомендую в качестве источника знаний видеозаписи прохождения реальных собеседований на YouTube, особенно если указана компания и чем она занимается (какой использует стек).

Можно также поработать с ментором. Сейчас есть масса сервисов для поиска тех, кто предоставляет услугу MOK-собеседования, т.е. проводит пробное интервью, спрашивая то же, что и в реальных компаниях. Самое ценное в таком опыте — развернутая обратная связь по итогам. Компании не всегда раскрывают, почему берут одних, но отказывают другим. А ментор может подсказать, какие темы кандидат знает недостаточно хорошо и помочь подтянуть. Минус этого только в том, что за услуги ментора придется заплатить какие-то деньги.

Ну и еще один подход к подготовке к техническим собеседованиям — это просто постоянно их проходить. Многие шутят, что есть отдельная «собеседовательная мышца», которую надо накачать. В реальной жизни она редко используется. Ты ее немного подкачиваешь, но не развиваешь по-настоящему, пока не ищешь работу. Чтобы ее развить, надо ходить на собеседования, выписывать для себя вопросы, которые показались сложными, пытаться запрашивать фидбек (хотя обычно и сам понимаешь, на что ты не ответил или ответил хуже, чем хотелось бы). Моя рекомендация — ходить по собеседованиям хотя бы раз в месяц, чтобы быть в курсе. В качестве побочного эффекта ты можешь случайно найти более интересную работу.

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

Я вижу, что для многих пройти собеседование, особенно на свою первую работу, — это проблема, поэтому сейчас запустил наставничество — веду группу ребят, которые обладают определенными знаниями во фронтенде, хотят хорошо пройти собеседование и устроиться на свой первый интересный проект. Также провожу индивидуальные консультации по карьере и развитию.

Александр
15+ лет в IT
Карьерный путь: сисадмин — backend — аналитик — руководитель проекта — фронт — frontend lead
прошел более 100 собеседований и в несколько раз больше провел сам в качестве руководителя
200+ учеников по программированию
https://t.me/sanya_ob_it 

Лид в мобильной разработке

За свою жизнь я прошел достаточно много технических собеседований и считаю, что к ним нужно готовиться, чтобы компенсировать постоянно увеличивающееся отставание от технологий. На это нужно выделить время. Кому-то достаточно нескольких дней, а кому-то лучше начать за пару недель.

Обычно в рамках подготовки я смотрю самый последний стек и прогугливаю его в поисках свежих статей и практик. Как правило, ссылки ведут на Хабр, где все довольно подробно расписано. Но лучшая подготовка — ходить по собеседованиям. Когда ты уже в процессе смены работы, мотивация выше — вступаешь в борьбу тогда, когда начинается драка, а не заранее.

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

В принципе, все эти подходы к техническим интервью описаны в интернете. Есть практики от компаний и даже открытые записи собеседований.

Не жалейте времени на подготовку. Результат не заставит себя долго ждать.

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

Старший разработчик Android

Честно говоря, в последние годы мой подход к подготовке изменился. Сейчас я стараюсь изучать новый материал вне зависимости от подготовки к собеседованиям, потому что это же как перед экзаменом в студенчестве — если ты весь семестр ничего не делал, накануне не вызубришь. Может быть тебе повезет и спросят то, что ты успел прочитать, а может и нет. Гораздо лучше все усваивается, если делать это постепенно. 

Стараюсь следить за официальными блогами Google, Android и т.п. Вышло обновление библиотеки или заметил новый тренд (например, все переходят из классического XML в Compose), отправляешься читать. 

В основном я перечитываю официальную документацию на Google Developers. Это первоисточник, а книги и статьи — уже переизложение того же материала другими специалистами, куда вполне может закрасться какая-то ошибка (или материал просто неправильно донесут). Ну и я к этому просто привык. Когда я заканчивал институт в 2005 году, книг по нужной тематике либо не было, либо они были для меня, как студента, дороговаты. А документация всегда была в бесплатном доступе. Так что книги я всегда оставляю на втором плане, если только это не материалы от создателей технологии (так это было, например с Kotlin in action).

Но даже в таком режиме готовиться к техническому этапу надо. Как правило, компании скидывают примерный набор вопросов, чтобы ты знал, в каком направлении смотреть. Немного освежить воспоминания можно и за день. В плане кода могу пробежаться по одному из своих проектов и вспомнить, например корутины. А когда ты долго не проходишь собеседования по данному стеку, придется потратить больше времени. В целом пары недель достаточно, даже если ты меняешь фокус с одного направления на другое или пытаешься устроиться в Яндекс с его фокусом на алгоритмах. Я в свое время так и переходил из бэкенда в Android. 

Юрий
11 лет опыт коммерческой разработки Андроид, старший разработчик

Старший разработчик Android

По моему опыту собеседования либо проходят по заготовленным спискам вопросов, либо в разговоре о текущем проекте. На мой взгляд, второй вариант лучше, поскольку у тебя здесь есть свежие воспоминания в голове, ты можешь рассказать какие-то нюансы. Вспомнить, как решал проблемы, а не просто односложно ответить на вопрос. Тут будет диалог. И людям, которые собеседуют, обычно тоже интересно — это же реальный, а не выдуманный кейс. К сожалению, так бывает далеко не всегда.

Я обязательно готовлюсь. Стараюсь раз в полгода — год ходить на какое-нибудь реальное собеседование, чтобы держать себя в форме. Собираясь на такое собеседование, ты примерно представляешь, что читать и зачем. Все это обретает смысл. Иначе мотивации нет, а воспоминания без использования на практике впоследствии окажутся бесполезны.

Собеседование дает встряску и новые знания — может быть там спросят о том, о чем ты раньше даже не думал. Отмечаю для себя вопросы, на которые не ответил или ответил плохо. А если так не получается, смотрю видео с собеседованиями — их сейчас очень много. При просмотре ставлю на паузу и сам отвечаю на те же вопросы. Если не знаю ответ, читаю документацию.

Никита
Более 6 лет опыта коммерческой разработки Андроид, Старший разработчик

Подводя итоги

  • Вопросы на технических собеседованиях часто выходят за рамки практик, используемых на реальных проектах.

  • Готовиться надо, потому что даже если с момента смены работы прошло всего полгода, технологии уже ушли немного вперед.

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

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

  • Подготовку может быть психологически комфортнее обсудить с ментором.

P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на нашу страницу в VK или на Telegram-канал, чтобы узнавать обо всех публикациях и других новостях компании Maxilect.

© Habrahabr.ru