Facebook - Amazon - Apple - Netflix - Google (FAANG)
Facebook - Amazon - Apple - Netflix - Google (FAANG)

От переводчика: Всем привет, меня зовут Максим Иванов, я frontend-разработчик в компании Т-Банк (Тинькофф). Сегодня мы поговорим с вами о лайфхаках, которые могут вам пригодиться, если вы хотите устроиться в Google. С автором данной статьи я был лично знаком, когда он еще работал в Тинькофф. Смею заметить, что этот человек не был рядовым разработчиком. Он был очень талантливым как инженер, так и руководитель. Значительная часть его опыта была связана с курированием отдела Frontend Core Tech в Тинькофф, а это 200 инженеров в подчинении. Он постоянно проводил встречи для разработчиков и распространял самые передовые знания на всю компанию. Обучал, помогал, решал самые сложные задачи, которые стояли перед отделом. Когда я наткнулся на его статью, то решил отдать дань уважения и сделать перевод. Спасибо, если дочитаете до конца и давайте начнем!

1. Вступление

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

2. Вам точно пригодится удача

Разумеется удача это важный аспект любого собеседования. Это как в игре Baldur's Gate 3, где мой персонаж мог умереть от какой-либо случайности. Так и здесь, вы можете провалить любое из возможных собеседований по какой-то нелепой случайности. Ведь это может произойти, например, из-за того, что у вашего интервьюера сегодня плохое настроение. Или задача просто оказалось сложной и к такому вы не были готовы. Или они уже сделали оффер какому-то кандидату до вас. А ваше собеседование это всего лишь часть процесса, который они не могут скипнуть. Ну или вы просто запасной вариант, если тот сольется. Есть сотни причин, по которым каждый из нас может провалить любое собеседование.

Отказ в приеме на работу - это нормальный рабочий процесс любого интервью. Если вы объективно не прошли собеседование, то это не повод отчаиваться. Это может быть просто сигналом для вас, что нужно где-то поработать над собой. Самое главное, чтобы неудача не влияла на вас как-то негативно. Потому что любое собеседование это хороший опыт. Как минимум вы могли узнать о себе что-то новое, о своих компетенциях. Может быть вам действительно не хватило хард или софт скиллов, кто знает. А знание о том, что вы хромаете в каких-то навыках, лишь повышает ваши шансы на прохождение уже следующего собеседования. Ведь поработав над своими изъянами, вы становитесь только сильнее.

От переводчика: Я абсолютно согласен с автором, без удачи в нашей жизни никуда. Однако, только на удачу полагаться разумеется нельзя, и дальше автор статьи нам обязательно об этом расскажет. Лично я хотел бы добавить, что для многих начинающих разработчиков, только, что вышедших из университета, провал равен смерти. А это и есть негативное влияние, которое может повлиять на вашу самооценку. Поэтому в наше время очень важно работать над своим ментальным здоровьем. Не давайте вашим внутренним тараканам завладеть разумом. Если вы ощущается присутствие мыслей о том, что если вы провалили собеседование в Яндекс, то после этого вы неудачник и больше вас никогда никуда не возьмут. То знайте, это неправда и ваш мозг просто обманывает вас. Для того, чтобы работать над собой вы можете как читать книги по психологии, так и записаться на консультацию к психологу. Сейчас есть огромное количество онлайн ресурсов. В свое время, я так и сделал, где я нашел психолога для того, чтобы справиться с тревогой. В этом нет ничего стыдного, главное не отчаиваться. Инвестируйте время не только в работу над техническими навыками, но и работайте над своей уверенностью, это важно. Тут главное, не попасть в ловушку, когда вы начнете принимать за чистую монету такое явление, как ошибка выжившего. В 2018 года я попал в Тинькофф чисто случайно, не проходя семи кругов ада. В тоже время, я знаю, что не я один такой, кто попал таким же способом. Не нужно равняться на таких людей. Удача не всегда на их стороне в будущем.

3. Тут важно готовиться

К сожалению, без труда не выловить рыбку из пруда, особенно если вы хотите пройти собеседование в компанию топ-уровня . Я почти уверен, что среднестатистический FAANG-разработчик, проработавший там более 10 лет, не сможет пройти собеседование в свою же собственную компанию без подготовки. Как правило на определенные позиции, на которые вы хотели бы претендовать, от вас требуется знание алгоритмов и умение проектировать системы (system design).

Работая в Тинькофф в течение четырех лет, я был интервьюером и провел более 200 собеседований. Мне всегда было интересно, как кандидат подошел к своему собеседованию. Я спрашивал его, изучал ли он алгоритмы и решал ли задачи на LeetCode. Получив некоторое представление о кандидате, я всегда адаптировал первую задачу под его технический бэкграунд. И на самом деле, если кандидат и вовсе не готовился к собеседованию, у него был не велик шанс пройти собеседование даже на уровень medium+, хоть у него и был 10-летний опыт работы за плечами. Я много раз видел, как кандидаты знали базовую теорию, например, как работает бинарный поиск. Но при этом не знали как реализовать его в коде. Все потому что, они изучили лишь голую теорию 5, 10 или 15 лет назад, а после лишь поверхностно вспоминали как работает тот или иной алгоритм. Поэтому к собеседованию лучше подготовиться основательно.

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

От переводчика: Понятное дело, что если вы идете на позицию junior, то скорее всего вас не будут спрашивать как реализовать в коде алгоритм красно-черного дерева. Но и такое тоже бывает, если вы идете стажером сразу после университета в Big Tech компанию. Ведь как правило там ищут либо людей с опытом, либо олимпиадников или талантов без опыта. Лично я работаю в Т-Банк (Тинькофф) уже больше 5 лет и согласен с автором, что не смогу пройти собеседование в свою же компанию. Так как это естественно требует обширных знаний по алгоритмам и архитектуре различных систем. Но, чтобы заполнить вакуум в своей голове знаниями, вы можете проводить собеседования уже сейчас на своей работе. Таким образом вы совместите приятное с полезным. Приятное еще и потому, что в крупных компаниях, как правило, тех кто проводит собеседования, их всячески поощряют. Например, в Т-Банк (Тинькофф) люди, которые являются интервьюерами, получают больший процент к прибавке в зарплате на ежегодных пересмотрах, чем те кто их не проводит. Я лично не провожу собеседования, поэтому утверждение о том, что я не пройду собеседование остается все также верным, если я не начну заниматься. Что касается ресурсов, которые могли бы вам быть полезным. Например, у Яндекса есть очень хороший лендинг, у Т-Банк (Тинькофф) также своя страничка с различными инструкциями, в других компаниях принцип тот же.

3. Знание английского языка

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

Написание кода

Некоторые компании используют целые лонгриды, в которых черным по белому написан текст с описанием самой задач, а теперь внимание, вам нужно прочитать и правильно понять. Это сложно сделать с плохим английским, особенно без переводчика в руках. А еще вам также нужно уметь хорошо говорить. Ведь вам нужно будет рассказать как вы поняли задачу, как ее решали, в чем была ее алгоритмическая сложность. Все это требует умения владеть языком. Однажды у меня возникли проблемы с текстом такой задачи, в описании которой использовалось слово «produce». Изначально я думал, что «produce» это синоним «sum».

Кроме того, интервьюер попытается помочь вам, если вы начнете испытывать трудности с задачей и не укладываться по времени. Сможете ли вы понять его?

Системный дизайн

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

Behavioral-интервью

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

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

  • Для вас — вы будете тратить много энергии на общение, а любая стрессовая ситуация снижает вашу способность говорить, да еще и не на родном языке.

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

Что мне помогло:

  • Много уроков с преподавателем английского. Последние 5 лет у меня было 2-3 занятия в неделю. Но смею заметить, пять лет назад я вообще не говорил на английском, потому что не изучал его в школе и университете. Преподаватель английского языка также помог мне подготовиться и к самим собеседованиям. Он проверял меня на то, как я могу рассказать о себе, адаптировал мои ответы, улучшал их структуру. Мой преподаватель за все время подготовил меня на более чем 50 вопросов к behavioral-интервью.

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

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

От переводчика: Для разных людей английский язык может быть ахиллесовой пятой. Лично для меня он таковым и является. Когда-то давно в школе, мне казалось, что английский не такой важный предмет. Что он не нужен будет мне в дальнейшей жизни, это оказалось ошибкой. В школе я получал тройки по английскому языку и ненавидел его всеми фибрами души. В университете, так как я уже его ненавидел из школьных предубеждений, у меня была возможность отказаться от английского языка в пользу любого другого, например, французского. Но на них мы валяли дурака, как я помню. И вот, когда я вошел во взрослую жизнь, без знаний английского языка, мне было сложно. Я все также жульничаю и использую Google-translate, а сейчас уже ChatGPT. Конечно, несколько раз я пытался подойти к изучению английского языка, но каждый раз сливался, так как терял мотивацию из-за слабых успехов и внутренних тараканов в голове. Сейчас мне уже 30 лет, и мой уровень владения все еще A1. Я не горжусь этим, но просто хочу предостеречь молодых людей, которые только-только поступают в университет и мечтают работать в IT. Первым языком, который вам следует начать изучать - это английский язык, а потом уже и все остальное. Разумеется, если же вашей целью не обязательно будет устроиться в FAANG, это не означает, что вам не следует бросать изучение английского языка. Ведь с его помощью на вашем пути будет много дверей, ключом от которых является английский. Например, мне много раз предлагали устроиться в англоязычную компанию, переехать в страну с хорошим уровнем жизни. Всегда я отказывался, потому что не верил в себя. Любые путешествия заграницу были титаническим трудом, которым мне приходилось преодолевать в своей голове. Поэтому я всегда ездил за компанию с друзьями, которые знали английский. Английский язык очень важен, прошу не забивайте болт на него. Иначе есть вероятность, что вы будете корить себя за то, что не взялись за голову раньше.

4. Компании бывают разными

Я могу разделить их как минимум на 3 уровня и это будет далеко не полный список:

  • Level 1 — Крупные технологические компании, такие как Meta (Facebook), Google, Apple и Microsoft. У них часто есть название FAANG или по-новому MANGA. Они хорошо платят, имеют очень много сотрудников, и при этом более узконаправленные роли. Например, вряд ли вы найдете Developer Advocate в какой либо среднестатистической компании;

  • Level 2 — Небольшие компании, которые работают над хорошими продуктами и также хорошо платят. Но обычно у них меньше открытых вакансий и менее популярный бренд;

  • Level 3 — Небольшие компании, которые платят не так много, как крупные топы;

  • Level 4 — Обычно это какие-то либо стартапы, компании, где IT не является приоритетом, а лишь инструментом для заработка денег.

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

У меня был опыт работы с компаниями 3 и 4 уровня. Когда я к ним приходил, они давали мне задачи на написание цикла for, или выполнения простых операций, таких как увеличение или умножение чисел. Эти задания были похожи на задачи уровня Easy с LeetCode. И каждый раз я приходил в замешательство, потому что не верил, что такое возможно. Но это так.

Принимаю во внимание то, что разные компании по-разному подходят к тому, как проводить собеседования. А потому и предъявляют разные требования к кандидатам.

  • Level 1-2 — у таких компаний есть матрицы компетенций, поэтому они знают как должен выглядеть идеальный кандидат. Они точно знают, что ожидают от вас, так как вы должны удовлетворять этой системе оценки. Однако, интересно отметить то, что у каждой компании такие матрицы бывают разными. Например, одна компания может оценивать вас по тому, какие пограничные случаи (edge cases) вы учли в своем коде, в то время как другая ожидает, что вы пройдете собеседование по проектированию систему на высший балл. Или, например, в одной компании могут ожидать от вас, что вы сразу напишите production-ready код, а другая компания просто ожидает хороших ответов на behavioral-интервью. Поэтому стоит позаботиться заранее о том, чтобы разузнать, как обычно проходит процесс найма в той или иной компании, чтобы увеличить свои шансы на успех;

  • Level 3-4 — как бы то ни было, там нет четких процессов по найму, и все зависит от человека, который проводит собеседование. И, как правило, у них нет жестких требований.

4. Стандартизированного процесса не существует, ну почти

В свое время, я проходил собеседования на три разные позиции: frontend, backend и fullstack-разработчика, и вот что заметил.

Frontend

Большинство компаний все же дают задачи, связанные с Web-спецификой, но не все. Вот что вы можете ожидать:

  • В обычных случаях вы будете решать задачи, связанные с Web. Например, напишите простое приложения на React. Или вас могут попросить написать функцию, использующую Web API для работы с анимациями, или что-то на CSS, HTML (без теоретических вопросов), что-то связанное с accessibility, а также что-то из списка задач BFE. В случае system design вам нужно будет разработать компонент;

  • В каких-то ситуациях мне доводилось писать игру «Сапер». Ваша задача реализовать логику за 35 минут. В такой задаче вы должны будете продемонстрировать свои алгоритмические навыки, например, обход графов (BFS/DFS). Что касается system design, то вам необходимо будет разработать веб-приложение со всеми вытекающими;

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

Backend

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

Fullstack

Обычно тоже самое, что и на роль Backend Software Engenier. Многие компании не задают вопросов, связанных с Web-спецификой.

5. Программирование

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

  • Коммуникация — тут важно то, как вы общаетесь и какие вопросы вы задаете интервьюеру;

  • Problem-solving — тут важно то, какие подходы вы используете для решения задачи и сможете ли найти хорошее решение;

  • Написание кода — важно то, как вы пишете код. Можете ли вы написать код без ошибок. Как быстро вы пишете код и каково он качества;

  • Тестирование — проходит ли ваш код проверки, содержит ли он ошибки, и насколько сложно его покрыть тестами.

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

  • Спокойно прочтите, обдумайте и сформулируйте в голове, что от вас требуется в этой задаче. Самое важно, задайте вопросы об ограничениях (память, время выполнения) и пограничных случаях (edge cases);

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

  • Расскажите свою идею решения вашему интервьюеру, как вы будете решать данную задачу (оцените сложность вашего алгоритма, при решении данной задачи);

  • Пишем код;

  • Продебажьте в своей голове код построчно, не запуская его;

  • Расскажите интервьюеру конечную сложность вашего алгоритма (худший и наилучший случай);

  • Приступайте к следующему заданию.

Обычно у вас есть менее 40 минут на решение двух задач. Поэтому вам нужно научиться решать их достаточно быстро. Ведь любая запинка может стать причиной нехватки времени. В компаниях Level 1-2 обычно дают две задачи Medium сложности. Бывает одна Medium и одна Hard. В очень редких случаях, бывает сразу две задачи уровня Hard. Отсюда следует, что вам нужно научиться решать Medium задачи менее чем за 20 минут.

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

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

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

От переводчика: Лично мне такая стандартизация напоминает ЕГЭ, где у меня было ограниченное количество времени, и любое промедление гипотетически снижает ваши баллы. Но если вы подготовились к ЕГЭ, прорешали много вариантов заданий, вам будет легче. А потому, знание алгоритмов очень важно для уверенности в себе. Современные собеседования больше не обходятся без них, если вы идете в компанию Level 1-2. Еще каких-то 10 лет назад, мне просто везло и я обходился без алгоритмов. Теперь мне тяжело проходить современные интервью, потому что я не тренируюсь. А это снижает не только ваш личностный рост, но и карьерный. Вам будет тяжело менять компании, если вы будете желать больше зарабатывать денег. Моя первая работа была на галере в 2014. Сейчас даже там вас могут спросить любую задачу с LeetCode. Поэтому будучи студентом не теряйте время, решайте задачи как можно чаще, сделайте это привычкой в вашей жизни и дальше. Так вы сможете всегда держать свой мозг в тонусе. И у вас будет уверенность, что придя на очередное собеседование, вы не провалите его с треском.

6. Мой личный опыт подготовки к собеседованиям по программированию

Только на LeetCode я выполнил в общей сложности более 175 задач (52 easy, 106 medium и 17 hard), некоторые из которых повторил более 3 раз. Помимо LeetCode, я создал себе репозиторий, в котором решил 80 задач premium уровня. А также прошел много курсов, связанных с алгоритмами, структурами данных. Просмотрел бесчисленное количество видеороликов, лекций. В качестве рекомендации предлагаю присмотреться к Blind 75 LeetCode Questions, которые основаны на базовых структурах данных и алгоритмах.

7. Проектирование систем (system design)

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

Проектирование систем - это самый важный этап собеседования на позицию Senior-разработчика. Как правило, system design и behavioral-интервью показывают кто вы есть на самом деле. Решать любые задачки по алгоритмам и структурам данных должен уметь каждый Middle-разработчик. А потому, если вы Senior, компания ожидает от вас умения проектировать системы.

Существуют различные секции по проектированию систем, с которыми вы можете столкнуться:


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

Давайте вернемся к реальным примерам, допустим нам дали задание спроектировать мессенджер. Основной упор необходимо сделать тут на то, как будут отправляться сообщения между пользователями.

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

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

Как обычно проходит секция по system design

  • Осмысление, дополнительные вопросы - на это максимум 10 минут;

  • Проектирование (20 минут):

    • Верхнеуровневая детализация основных компонентов;

    • Детальная проработка сценариев;

      • Каким будет ваше API;

      • Модель данных.

  • Обсуждение узкий мест в системе (Bottlenecks).

Также важно:

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

  • В конце, вы можете обсудить альтернативы. Причины использовании технологии A вместо технологии B.

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

Как я готовился к этой секции

На просторах интернета доступно множество видеороликов и материалов по system design, но в основном они все уровня Middle-разработчиков. Для позиции Senior/Staff вам необходимо обладать более глубокими знаниями и без реального опыта порой не обойтись. Главное фильтруйте контент при подготовке, а лучше всего найти материалы и блоги тех разработчиков, которые работают в компаниях, в которые вы хотите попасть. Например, если вы хотите понять, как реализовать свой собственный клон Netflix. Вам стоит найти как можно больше публичных выступлений о том, как делать подобные системы.

А также mock-интервью (имитация реального собеседования) всегда может вам помочь набраться опыта. Вы всегда можете порепетировать вместе с другом, чтобы вы лучше подготовились и меньше стрессовали. Так вы научитесь держать нужный вам темп и контроллировать время, так как будете лучше чувствовать сколько у вас уходит времени на то или иное действие. В свое время я был на платных и бесплатных mock-интервью. Вы можете найти большое количество людей, которые также как и вы хотят подготовиться к собеседованию по system design на различных сайтах и группах, связанных с подготовкой к собеседованию.

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

8. Behavioral-интервью

При поведенческом интервью (behavioral interview, BI, бихевиоральное интервью) кандидата обычно спрашивают не о гипотетических проблемах, а о реальных, которые кандидат решал в своей работе. На таком интервью выявляют то, как кандидат справляется с определенными рабочими задачами. Иногда поведенческое интервью также называют интервью по компетенциям.
При поведенческом интервью (behavioral interview, BI, бихевиоральное интервью) кандидата обычно спрашивают не о гипотетических проблемах, а о реальных, которые кандидат решал в своей работе. На таком интервью выявляют то, как кандидат справляется с определенными рабочими задачами. Иногда поведенческое интервью также называют интервью по компетенциям.

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

Стоит ли вам быть честным в своих ответах? Это непростой вопрос. Потому что иногда на собеседовании вас могут просто попросить солгать. Например, «Почему вам нравится Crypto и Web 3.0?» Если я отвечу честно, я не пройду это собеседование, потому что на самом деле я не думаю, что Crypto или Web 3.0 - это хорошо. Я так и сделал, ответил честно и получил отказ. Но давайте представим, что я если бы я солгал и прошел бы это собеседование. Тогда я бы начал работать в компании, которая мне не подходила бы по моим внутренним убеждениям, и это повлияло бы на мою жизнь. Лично я считаю, что честность - лучший выбор, который вы можете сделать. Так вы найдете ту компанию, которая лучше для вас подходит.

На данном этапе как и всегда важно хорошо подготовиться и рассказать о своих проектах. Так вы не будете выглядеть глупо, будто вы Junior/Middle-разработчик. Ведь в действительности вы должны быть хорошо осведомлены и понимать, как работает ваша система на прошлом проекте.

Как я готовился к этой секции

Для того, чтобы подготовиться к этой секции, вам подойдет техника - STAR (S - Situation, T - Task, A - Action, R - Results).

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

Я подготовил более 20 историй из своего личного опыта.

9. Заключение

Я трижды пытался пройти собеседование в FAANG. В первый раз это было в 2021 году. Я провалился, потому что недостаточно подготовился, а мой английский был не очень хорош. Во второй раз многие собеседования были отменены из-за волны увольнений, в 2022 году. В третий раз в 2023-2024, я, наконец, прошел собеседования в разные компании FAANG.

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

От переводчика: Мне кажется эта статья должна быть полезной многим начинающим junior-разработчикам. Поскольку они только начинают свой путь после долгих лет обучения и не искушены большими деньгами, не впали в какую-то либо зону комфорта и у них еще есть время прежде, чем выгореть. А если вы мыслите о том, как бы получить не просто международный опыт, а впитать культуру и знания крупных технологический компаний, то вообще супер. При этом даже если вы не нацелены на то, чтобы работать в FAANG, я уверен, нельзя списывать со счетов все то, что здесь написано. Английский язык, это сейчас must have, как говорят в народе. А без знания алгоритмов и умения решать такие задачки будет тяжело устроиться в любую компанию. Рано или поздно вы просто впадете в уныние, если у вас не будет получаться. Притом, даже если вы уже далеко не junior, вам все равно нужно тренироваться, потому что «соскуфиться» можно даже в знаниях вашей области. При этом подчеркну, что ходить на собеседования это не просто нормально, а необходимость. Так как вы попросту можете потерять чувство рынка, а ваша зарплата будет расти максимум по ленточке инфляции. Старайтесь развиваться, смотреть подкасты, новые способы решения задач. Иначе вы попросту окажетесь в собственном болоте. Ибо есть два типа людей те у кого за плечами 10 лет опыта, и те, у кого есть один год опыта, повторенный десять раз. Не будьте вторыми. Пожелаю удачи вам на следующем собеседовании. Пока!

Комментарии (16)


  1. megamrmax
    10.06.2024 14:27
    +7

    2024 -  FAANG  массово выпинывает сотрудников, глава Гугл в письме сотрудникам в мае сообщает, что скоро выкинут еще кучку, "но вы не волнуйтесь, бонусы будут хорошими".... на Хабре опять появляются статьи "как упороться и попасть в гуглу". Кстати забавное наблюдение - кто смотрел Кремниевую долину возможно помнят в первом сезоне глава компании смотрит в окошко и удивляется почему "сотрудники программисты всегда ходят группами". У меня рядом с домом есть офис полный индусов-программистов и манагеров-американцев (численное приемущество в пользу последних). Их всех после ковида загнали обратно в офис (офис дорогой, удобный - не должен простаивать), но вот последний примерно год они (программисты) практически перестали выходить днем мини-группами на прогулку. Максимум по 2 человека и не вольяжным шагом - а скорее пугливой рысцой. Видимо поприжали сильно.


    1. ViacheslavNk
      10.06.2024 14:27
      +2

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


  1. kozlov_de
    10.06.2024 14:27

    автор предлагает упороться