Хочу в FAANG 2. Первый контакт

Dimka Maleev
3 min readMar 11, 2019

--

Это продолжение первой части, которую вы можете найти тут.

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

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

Получение моего первого офера — потребовало несколько проваленных интервью, и жесткой подготовки перед первым полученным. Обычно, если ты провалил интервью — то сможешь податься на него через пол-года — год. Сам понимаешь, ставки достаточно высоки. Ещё раз хочу тебя сказать — не волнуйся. Ты не можешь быть к нему 100 процентно подготовлен, потому как это вообще не отнимает факта лотереи, или твой мозг внезапно откажется думать. Для этого даже термин есть — brain freeze. И про него знают все:) Максимум что ты можешь сделать — не боятся и готовится. Ибо везёт только подготовленным спортсменам.

В самом начале тебя будет ждать coding interview. Чаще всего это алгоритмические задачки. Любишь алгоритмы? Ага :) Это интервью супер легкое для любого человека, который в своё время занимался спортивным программированием, и очень тяжелое для таких как я. Никто из нас в практике не реализует quick sort или merge sort. Практически все алгоритмы из книги Кнута уже реализованы, потому мяско проходит мимо нас. А тут его спрашивают. Оно проходит достаточно стандартно:

  1. С помощью скайпа или другой системы типа google hangout, blue jeans, zoom ты присоединяешься на звонок
  2. Открывается приложение типа coderpad

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

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

5. Решаешь, рассказываешь, обсуждаешь.

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

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

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

Алгоритмические вопросы — это не 100% гарантия. К примеру, на YouTube меня спрашивали какой-то очень специфический вопрос про кодировку видео. Хоть я и не решил этот вопрос, но предложил несколько решений, которые удовлетворили моего интервьювера, и в результате меня пригласили на on-site интервью.

Совет:

  • Самый главный только один: решайте как можно больше задачек. Такие ресурсы как leetcode или hakerrank должны вам заменить вечера с сериалами на время подготовки.
  • Тренируйтесь писать без подчеркивания синтаксиса и автозаполнений
  • Книга Cracking The Coding Interview — должна быты прочитана / перечитана
  • Если у вас есть больше времени — обязательно посмотрите 2 курса по алгоритмам Сейджвика на Coursera
  • Структуры данных, базовые алгоритмы должны быть перечитаны, и вы в них должны отлично ориентироваться
  • Сложности алгоритмов должны отскакивать от зубов
  • Ещё раз повторю — задрочить алгоритмы — это must.

Если вас нужно привезти, и следовательно потратить на вас чуть больше времени — часто бывает ещё одно интервью. Обычно, это инетрвью по дизайну структур данных или какой-то простой системы. Его важно тоже не провалить, и помнить, что вас будут спрашивать скорее об интерфейсах, чем о самой реализации. И конечно же, и там надо задавать много вопросов. Потому как интервьювер ищет дискуссии, а не монолога. Например при интервью в Amazon, мне просили задизайнить просто сервис трансформации данных с одной системы в формат другой системы.

В следующем выпуске мы обсудим on-site interview, и как к нему готовиться!

--

--