Моя история подготовки к интервью в FAANG

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Обо мне

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

Моя история

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

Первым делом я принялся за поиск платформы, которая помогла бы мне попрактиковаться и полноценно подготовиться к интервью. Мне понравились две: hackerrank.com и leetcode.com, я нашел отзывы про каждую и решил остановиться на leetcode, хотя в целом они не сильно отличаются.

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

Потратив неделю и решив(большинство с помощью подсказок из гугла) около 5 задач на случайные темы я понял, что если я собираюсь успеть подготовиться за месяц мне нужен структурированный план. В тот же день я обнаружил раздел Learn, который содержит задачи, распределенные по категориям вместе с теоретическим материалом. С помощью него я сделал диаграмму Ганта на ближайший месяц.

Мой план выглядел довольно плотным, так как я работал полный рабочий день и мог уделять на подготовку только выходные и вечера. В итоге мне удавалось решать в среднем 3-5 задачи каждый день, и в плюс к этому изучать базовую теорию по каждой теме. Чтобы получить доступ ко всем курсам из Learn, а еще к списку часто используемых задач распределенным по компаниям мне пришлось купить premium за 35$(который в итоге полностью окупился).

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

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

Статистика и примеры

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

  • https://leetcode.com/problems/max-consecutive-ones/ [easy]

  • https://leetcode.com/problems/number-of-provinces/ [medium]

  • https://leetcode.com/problems/graph-valid-tree/ [medium/premium]

А вот так выглядит моя статистика на leetcode:

Результаты

Хотел бы рассказать пару слов о том, как прошли сами интервью. У меня было 3 кодинг сессии по 45 минут каждая с разными интервьюерами. Я сильно волновался, особенно первый раз, так как не считал себя полностью подготовленным. На каждом интервью было по 2 задачи easy/medium уровня. Самое интересное, что результат прохождения каждой сессии соответствовал одному паттерну: я успевал объяснить и написать код решения для одной задачи, а так же объяснить и успеть написать примерно 70% кода для второй задачи. Помимо кодинга, конечно, было еще system design интервью и общение с менеджером, но это уже другая тема. Ни смотря на то, что ни на одном интервью я так и не смог полностью закончить кодинг, офер все равно был получен и успешно принят.

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

Источник: https://habr.com/ru/post/682358/


Интересные статьи

Интересные статьи

Я изучаю Битрикс где-то пару недель. Зачем?.. Хотелось чего-то новенького, тут подвернулась учёба. Даром, с наставниками, с возможным трудоустройством дальше хотя бы на пару месяцев - на испытательный...
Как-то в голову пришла мне идея игры: человеку приходят 4 очень похожие друг на друга кнопки и ему нужно выбрать верную за короткий промежуток времени. Так же я любил ходить в рейды в ММОРПГ-играх (я ...
Ранее мы рассказали о том, как появились речевые синтезаторы — поговорили о первых механических и электрических установках. Продолжаем обсуждение тем, что было в эпоху мейнфреймов. Ч...
Привет Хабр! Меня зовут Ильдар. Мне 29 лет. Программирую с 2003 года. За свою жизнь создал 4 фреймворка и язык программирования. В этом посте я поделюсь своим опытом, инсайтами, которые я получил...
Это вторая часть статьи про историю микропроцессоров для космического применения. Первая часть – вот здесь. В ней на примерах американских и европейских микросхем мы посмотрели на историю развити...