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

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

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

51 комментарий 👇

Я перед самим собеседованием слушаю AC/DC - Thunderstruck и настраиваю себя на то, что я этой компании нужнее, чем компания мне.

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

  Развернуть 1 комментарий
Yury Katkov в шаббатикале 21 мая 2020

Сейчас готовлюсь к FAANG. Планирую за годик-полтора прокачать алгоритмы и system design, ибо дохера лет опыта в галерах и ателье по пошиву CRM-ок ни хрена не помогают ни на интервью, ни, как я слышал, на работе в гуглах-фейсбуках.
Система подготовки большая и развесистая и напоминает подготовку к Олимпийским играм или полету в космос. Начал пару недель назад так что это всего лишь наполеоновский план:

  • Очень много mocked interview с другими подготавливающимися (штук 15 в месяц), ежемесячные интервью с FAANGоидами, собеседования в другие компании с похожим подходом к собесам. Выслушивание и выбивание от всех фидбека о своих слабых и сильных сторонах.
  • Дроч leetcode. Это база. Дроч не тупой, а с постоянным сбором статистики о том, на каких типах задач я запарываюсь, какие типы ошибок допускаю, как долго ищу решение, сколько багов в коде, который пишу на бумажке. В соответствии со статистикой давать себе задачки, устраняющие мои слабости. Цель - сделать 150 задач. Stretch-цель - около 230 задач.
  • Пара курсов, пара книжек, все знают каких.
  • Реализация низкоуровневых штук. Я фронтенд поэтому в моем случае это проекты на ванильном js, реализация промисов, async/await'a на генераторах, observabl'ов в rx, всяких там контроолов и библиотек UI-компонентов, фреймворков. Ну и разумеется реализация простых структур данных, как на первых курсах универа.
  • Дроч обычных вопросов на обычных собеседованиях фронтов, ну тут совсем все просто, три года назад я с нуля стал экспертом за два месяца подготовки, да еще и соответствующий продукт успел запустить.
  • Мотивационная система. Я лично не способен на голом энтузиазме херачить что-либо более 2-3 месяцев, значит этот момент надо предвидеть и выстроить систему, при которой херачинг бы продолжился в отсутствие внутренней мотивации. Пока что хорошей выглядит идея Дэна Ариэлли. Как только ты видишь, что запал пропал - блокируешь в банке существенную сумму денег. Если продолжишь херачить - получишь право потратить ее на что-то приятное и хорошее - помощь котикам или что там тебе нравится. Если не продолжишь - она будет переведена на крайне противные тебе цели - в общество по отстрелу котиков или что ты там не любишь. Разумеется, автоматически.
  • Психологическая система. Разные упражнения, позволяющие тебе оставаться в тонусе. Ну этого навалом. Пиши сочинения, прорабатывай страхи, занимайся визуализацией, читай книжки, выписывай плюсы, мечтай. Держи тело в тонусе, чтобы гормоны правильные текли и энергия была. Сделай отпуск, возьми саббатикал и отдохни от этого говна, чтобы потом броситься в него с удвоенной силой.
  • Изучение культуры целевых компаний, общение с их сотрудниками на эвентах, хакатонах, конференциях, просто онлайн.
  • Работа над улучшением процесса подготовки. Консультироваться с экспертами в области качества запоминания и качества осмысления. Ну вот самое простое - как часто надо повторять уже пройденные задачки? Создавать и улучшать хорошие тулы для отмечания прогресса и сбора информации о своих минусах и плюсах. Может быть, нанять virtual assistants для рутинной работы. Может быть, найти где-то менеджера-надзирателя, который бы следил за процессом, менторов в разных областях, которые бы делились мудростью, а то и сваху-коннектора, который помогал бы находить и общаться с правильными людьми.
  Развернуть 1 комментарий

FAANG сами ищут или отдают вакансии агентствам?

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

@MarinaK, пока не понял, но показалось, что не агентствам. Есть какие-то рекрутеры, но находятся ли они в штате - хз

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

Оно того стоит? Про F слышал, что они берут на 1 позицию 2 Ph.d. не просто, а с хорошими работами на тему их позиции, устраивают им социалистическое сорвенование, а потом одного гонят.

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

Вписался бы также в мок собесы, фронт

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

@AndreyBondarenko, ну скажем так, на ближайший год у меня нет вещей, которые развивали бы меня больше, чем это.

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

Вот читаю это всё и думаю а получу ли я профита от работы в FAANG пропорционально количеству времени которое надо угрохать на подготовку

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

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

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

@ganqqwerty, у меня конечно не огромная куча опыта, но 90% задач которые я встречал на своём недолгом пути это забрать жсон/другой формат байтиков в одном месте и отдать этот жсон/другой формат байтиков в другое место. никакой романтики о которой я в школе мечтал. так же не особо рокет саенс где нужно деревья каждую минуту вертеть.

а нетворкинг и новые знакомства определённо крутые вещи.

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

спасибо за толковую стратегию. а где и как искать других подготавливающихся? очень интересная идея.

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

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

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

@greys, есть пара групп в телеге, pramp.com, https://t.me/FaangInterview https://t.me/coding_interviews

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

Кстати, по mock-interview пока что у меня за месяц набралось, ровно 30. До четверга еще помокаю дважды в день, а дальше надо разбирать завал - я получил весьма неплохую предварительную клиническую картину того, что у меня развито хорошо, а что катастрофически страдает. Упражнения на отстающие стороны подобрать несложно, осталось только прилепить жопу и делать. Для гарантии прилепления жопы я придумал learning groups - 3-5 раздолбаев договариваются встречаться на полтора часа и ковырять актуальные для себя задачки. Поглядим, как взлетит.

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

@greys, вот вроде неплохой сервис https://www.pramp.com/ для тренировки прохождения интервью. Я правда всего несколько раз им пользовался ради интереса. Может у кого то еще есть опыт работы с этим сервисом или подобным.

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

@ganqqwerty, это всё на тех чатах столько находится? я правильно понимаю, что mock interview - это видео-звонок с кем-то знающим, кто задаёт тебе сразу много неудобных вопросов по техническому направлению? круто

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

Пара курсов, пара книжек, все знают каких.

Можно ссылки?

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

@argz, Cracking the coding interview, Segwewick Algorithms, leetcode, может быть еще interview cake и grokking system design interview.

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

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

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

@ganqqwerty, и как спустя год?

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

@skenline, чувствую, что примерно понял основные типы вопросов)

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

@ganqqwerty, напишешь пост? 🙏

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

@lopin, да там со времен Сережи Семы ничего не поменялось. Бесконечный дроч литкода и прокачивание до уровня когда ты не просто можешь написать работающий без багов DP-алгоритм, но еще и сделать вид, что ты его только что придумал, задать красивых вопросов и постоянно улыбаться интервьюеру. Типа как жонглирование на уницикле.

  Развернуть 1 комментарий
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 комментарий

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

  Развернуть 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 комментарий

А объясните, пожалуйста, простыми словами, что за деревья там у вас нужно уметь мастерски вертеть непременно?)

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

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

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

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

FAANGЯ

  Развернуть 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 комментарий
Yury Katkov в шаббатикале 21 мая 2020

Поначалу боялся собеседований и чувствовал себя на них зажато и боязливо. Помимо посещий десятков и десятков собесов помогало следующее:

  • почувствовать свои ноги. Всякие вариации на тему Ошовской ебанутой медитации, ну или хотя бы поприседать. Идея о том, что мы, кодеры, проводим слишком много времени в своей башке, подчерпнута мной у Elliott Hulse. Ты - это не только твой мозг, ты - еще и тело. Breathe into your balls!
  • непосредственно перед собеседованием сделать какую-нибудь социальную активность. Пока был неженатым - просто брал по дороге в офис первую попавшуюся симпатичную девушку и пытался поднять ей настроение, замечая что-нибудь хорошее в ней или окружающем мире. Не пикапа ради, а раскрепощения для. Наверное, можно помочь туристу куда-нить пройти, подарить цветочек и поговорить с бабулькой, положить рядом с метро шапку и спеть-сыграть чего-нибудь. Ну короче, почувствовать, что люди тебя не убьют, если ты выделишься из толпы и начнешь с ними взаимодействовать.
  Развернуть 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 комментарий
Yury Katkov в шаббатикале 9 мая 2020

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

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

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

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

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

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

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

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

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

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

нативочка пошла!

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

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

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

😎

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

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


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