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

 Публичный пост

Привет, клубни! Как вы готовитесь к собеседованиям? Составляете ли план, может уже есть готовые гайды?

51 комментарий 👇
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Nikita Tanygin Technical Product Manager 21 мая 2020

Мне кажется, что подготовку к собеседованиям можно поделить hard-skills, soft-skills и процессные вопросы.
Про хард (как готовиться к тому, чтобы вертеть деревья), тут уже отлично расписали, я хочу написать про софт и процессы. Тем более что довольно удивительно, что про них не пишут.

Я не чистый разработчик, но SDET это моя основная специализация, я нанимался/нанимал людей, и с разработкой там очень многое пересекается.

Если быть простым линейным разработчиком, то наверное можно хорошо вертеть деревья и этого хватит. Если это лидершип или миксованная роль, то деревья будут вертеть другие. Все очень сильно зависит от компании, но если хочется не в FAANG, то часто важен cultural fit. Писать код могут многие, а вот _решать проблемы_™ и быть тем, с кем приятно работать — далеко не все.

Мои шаги по подготовке:

  1. Составляю общий профайл компании, которая заинтересовала, и пытаюсь понять, это вообще fit или нет. Гиперпараметры это продукт, индустрия, рынок, количество человек, где офисы, remote friendly или нет, отзывы на glassdoor, отзывы пользователей о продукте.

Это позволяет рано понять, стоит ли в принципе тратить время. Или можно ли сэкономить на интервью, расслабиться и провести его ради спортивного интереса.
2. Тыкаю продукт, если это возможно :) Позволяет не казаться долбоебом и ВСЕГДА добавляет бонусы и темы для обсуждения на всех этапах интервью. Людям с другой стороны приятно осознавать, что ты не очередняра за баблом, а хотя бы понял, что за продукт. При выборе между двумя чуваками всегда выберут неравнодушного.
3. Имею подготовленные ответы на типовые вопросы, которые часто задают на скрининг колле. Вопросы из серии:

  • чем вы гордитесь
  • какую самую сложную задачу вы решали
  • что вы хотите и что не хотите делать на текущей позиции
  • как вы менеджите стейкхолдеров
  • расскажите про ваш самый эпичный fail и как вы с этим дальше жили
  • расскажите про ситуацию, когда вы были не согласны с коллегой, и что вы с этим делали

Эти вопросы могут звучать как поебота, но нормальные пацаны используют их для того, чтобы составить первичный профайл личности, потому что других якорей просто нет. Например, любой QA хорошо должен уметь в conflict management. PM хорошо должен уметь в stakeholder management. При найме разработчика обычно хочется понять, что он умеет в problem solving, и решает проблемы, а не создает их. Поэтому хороший рекрутер всегда явно или неявно спросит что-то похожее. А первое впечатление можно произвести только один раз. Поэтому подготовьте уже что-нибудь :) Если ничего нет, соврите!
4. Имею подготовленные общие вопросы про важные моменты о компании. Там куча всего, от технических деталей и процессов до визовой поддержки и релокационных пакетов. Могу зашарить, если кому-то будет интересно.
5. Стараюсь узнать, чего ждать от технической части. Обычно достаточно просто спросить — рекрутеры с радостью делятся инфой. В моем опыте даже были случаи, когда сами рекрутеры говорили, что конкретно будут спрашивать :) Работает все — спросить что будет, узнать у знакомых в компании, посмотреть отзывы на Glassdoor
6. Готовлюсь к технической части. Без энтузиазма, но вспоминаю штуки, на которых будет стыдно наебаться, стараюсь сделать pet project или написать какой-то код без подготовки. Если есть какие-то нюансы
7. Если роль лидовая, а в интервью замешаны фаундеры, начинается другая история. Хорошие и грамотные вопросы фаундеру могут перевесить вообще все проблемы и недостатки по техническим частям, особенно если компания небольшая. Но тут уже все сильно зависит от компании и роли.

Хочу еще отдельно написать про technical challenge (то, что многие разрабы считают унизительным и хотят поминутной оплаты). Если вкратце, то нет более гарантированного способа запороть собес, чем недоделанная домашка.
Несколько пунктов, которые обычно очень влияют на восприятие и ничего не стоят:

  1. Код должен работать не только на вашей локальной тачке. Рандомный чувак должен мочь запустить кусок этого кода и получить результат, а не ебаться 3 часа с версиями условного питона. Обязательно напишите подробную инструкцию, как именно это запустить.
  2. Напишите нормальный README, который будет рассказывать про решенную задачу, ограничения и нюансы. Это всегда +100 очков
  3. Напишите тесты (ну хотя бы какие-то), если не указано иного. Даже если задание — это реализация алгоритма, то неплохо иметь пруфы, что ваша поделка вообще работает
  4. Если задание теоретическое (например, сравнить Х подходов к задаче и пояснить, почему конкретный подход лучше или хуже), то один абзац ответа это не ответ :)
  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@ganqqwerty, на самом деле тут сильно зависит и конечно можно договориться :)
У меня бывали случаи когда ради меня вообще скипали домашку. И я ее так же скипал ради охуенного кандидата (ну потому что видно, что незачем).

  Развернуть 1 комментарий

отовленные общие вопросы про важные моменты о компании. Там куча всего, от технических деталей и процессов до визовой поддержки и релокационных пакетов. Могу зашарить, если кому-то будет интересно.

Интересно увидеть твой список вопросов. Выложишь?)
У меня есть свои для HR и тимлида, но всё время кажется что я упускаю что-то

  Развернуть 1 комментарий

Лично для меня план следующий:

  • интервью в yet another galera:

    1. У меня как-то сложилось так, что 4/5 интервью чисто на опыте вывозятся. Вопросы типа там про язык/фреймворк/базу реализацию того-или иного компонента etc. Так что здесь просто за день/два до тех интервью вспоминаю все что делал, почему реализовывал так а не иначе, какие проблемы были etc.
    2. За пару дней до тех интервью также гуглю "Top interview questions X", где Х заменить на язык/технологию, это для того, чтобы не тупить на вопросах типу "а что если в js строчку и инт добавить, а может ли ключем в обьекте быть строчка с пробелом и т.д."
    3. Реально еще помогает быть интервьюером, как-то сам натаскиваешся на вопросах
  • интервью в faang и подобные:

    1. leetcode as much as you can, если ты не олимпиадник какой-то, тогда наверное без надобности :)
    2. почитать:
      • elements of programming interviews in python -- книга чтобы в алгоритмы
      • cracking the coding interview -- также книга алгоритмы
      • Designing Data Intensive Applications -- книга чтобы в систем дизайн
      • Grokking System Design Interview -- годный курс, также в систем дизайн
      • много линков на всякое полезное https://github.com/resumejob/system-design-algorithms
    3. посмотреть разборы задач
  Развернуть 1 комментарий

спасибо! я за несколько дней как раз к такому же списку пришёл, и к тем же даже книжкам и курсам - до пункта 2.5 :)

Заценю разборы задач - мне, как не разработчику, особенно интересно.

  Развернуть 1 комментарий

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

Все в стиле айтишников: взять тему, (((рационально))) перезаморочиться максимально (см. GTD/учет финансов/таблички иммиграции/психиатрия-коучинг) и на выходе получить либо просто нормальный результат либо (чаще) ничего. Зато энергии потрачено -- мое почтение! А на самом деле, все как обычно -- чем больше ты перезаморачиваешься о чем-то, тем меньше выхлопа получаешь за единицу потраченного усилия.

Как это делают все известные мне люди, получающие стабильно отличные офферы:

  • либо вообще ничего (я так получил три оффера как раз недавно)
  • либо пару недель вечером решают по задаче-две литкода и лениво листают system design primer

P.S. если человек не может решать easy/(большинство) medium задач на leetcode это должно называться не "подготовка к собеседованию", а "изучение базовой алгоритмики и проблем солвинга". Не надо путать одно с другим.

  Развернуть 1 комментарий

Если говорить про технические собеседования, то на вакансии мидл/синьор в основном мне попадались вопросы 2 групп.

  1. Знание основной технологии (ООП, джаваскрипт, верстка, браузеры)
  2. Знание какой-нибудь специфики, которая есть в компании и про которую желательно что-то знать (например, css-модули или Граф Куэл)

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

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

Конечно, есть вакансии, где важен опыт. Архитекторы, аналитики. К ним вас будет готовить сама жизнь :)))

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

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

Ах да, иногда просят задачу решить на бумажке или прям в уме (когда собес по телефону), но там обычно задачки простые, главное не теряться ;—)

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

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Автор не указал, на кого собеседование, но в общем кмк: успешное прохождение любого собеседования --- результат практики.
Если это FAANG (Яндекс) ну или кто-то, кто считает себя тоже важным, то без решения LeetCode-задач туда не залететь. А так всегда стоит уметь общаться и правильно преподносить свои скиллы (мне так умные дядьки вроде Баруха на ютубе говорили).

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

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

можно ссылочку на Баруха?

  Развернуть 1 комментарий

@EgorMikhalchenko, тут речь про "бренд", но это немного и софт-скиллов касается )

  Развернуть 1 комментарий

@ganqqwerty, Я.FAANG

  Развернуть 1 комментарий

Первое интервью, 2002й год: я мог читать баш с листа, уже годен.
Второе интервью, 2012 год: мы договорились с владельцем и я хорошо выполнил тестовое задание, мне самому оно очень понравилось (посчитать открытие нового офиса в ОАЭ).
Третье интервью, 2016 год: я его провалил. Очень хотел, по этому нервничал и нес чушь. В итоге по стечению обстоятельств взяли.
Четвертое интервью, 2018 год: я был с похмелья, я им был больше нужен, чем они мне, вел себя очень нагло, взяли.
Пятое интервью, 2019 год: сделал тестовое задание, пообщался, взяли.

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

  Развернуть 1 комментарий
Gleb Reys Автор и технический консультант 10 июня 2020

Отличная тема!

В рамках ресёрча по FAANG вижу ещё одну рекомендацию часто:
https://www.amazon.co.uk/Linux-Kernel-Development-Developers-Library/dp/0672329468 товарища Robert Love.

И не удержался, купил-таки вместе с нею дорогущую https://www.amazon.co.uk/Linux-Programming-Interface-System-Handbook/dp/1593272200 - отзывы положительные и книга толковая, но рекомендовать пока не могу - нужно прочитать.

Такие книги рекомендуются для более глубокого изучения Linux и подготовки к Technical интервью (обычно это второй раунд телефонных интервью) - то есть это именно глубокое понимание современного Linux до уровня системных вызовов для супер-точной и тонкой настройки производительности.

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

  Развернуть 1 комментарий

Никак не готовлюсь, я их провожу)

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

О книге The Linux Programming Interface: A Linux and UNIX System Programming Handbook ещё Julia Evans (bork) - автор достаточно известных комиксов на IT тематику - хорошо отзывалась. Чот да, книга периодически всплывает то тут, то там.

  Развернуть 1 комментарий

Да? Интересно. Джулия - большая молодец, комиксы супер полезные для быстрого понимания или повторения материала

  Развернуть 1 комментарий
Anna Lopatinski Full Stack Web Ninja автор 30 апреля 2020

Можно каналы в телеге?

  Развернуть 1 комментарий
  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

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

Если совсем странная второстепенная технология указана в резюме - скорее всего, почитаю, что это и зачем. Может, даже туториал пройду.

С удовольствием прошла бы десяток собеседований для практики, но в моем городе нет столько позиций по моему профилю.

  Развернуть 1 комментарий

Сильно зависит от того, на кого ты претендуешь и в какую компанию стучишься. Собеседование на какого-нибудь мидла джависта в крупную продуктовую компанию будет очень сильно отличаться от собеса на джуна фронтендера в студию. Общие советы есть, разумеется, но дальше них всё очень индивидуально.

  Развернуть 1 комментарий

Есть даже каналы в телеге, посвящённые этому. Знакомые ребята горячо рекомендуют.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Для интервью по системному дизайну читаю рекомендованные книги.
Для интервью по алгоритмам повторяю leetcode.

  Развернуть 1 комментарий

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб