[Примечание автора: При объеме почти в 5 000 слов, вам, вероятно, не стоит пытаться читать эту статью на мобильном устройстве. Сохраните ее в закладках и вернитесь позже].
Я инженер-программист, работавший в Microsoft и Google. Некоторое время назад я отправился в 120-дневный путь поиска работы, прошел более 30 собеседований и получил несколько предложений.
Во время подготовки и бесед с другими кандидатами я обнаружил, что, хотя информации о собеседовании очень много, некоторые важные детали упущены или спрятаны глубоко внутри постов. Такие детали, как донесение своей истории, донесение своего уровня с помощью системного дизайна или переговоры о предложении, когда приходит время.
Если кто-то из читателей знает меня лично, то я люблю все организовывать, и я вел записи всех ресурсов и шагов, которые помогли мне получить несколько предложений от крупных технологических компаний. В этой статье будут собраны все ресурсы, которые я использовал, и опыт, который я приобрел.
Моя цель — создать план и дорожную карту, которую может использовать любой кандидат при поиске работы.
Первоначально опубликовано на сайте https://jinesh.codes 21 февраля 2022 года.
Целевая аудитория
- Опытный инженер-программист
- Претендующие на роль индивидуального разработчика в крупных технологических компаниях (например, Google, Meta, Microsoft, Apple, Amazon и т.д.).
- Нацелены на средний и старший инженерный уровень
Примечание: Если вы заинтересованы в подобном посте для младших разработчиков, пожалуйста, напишите об этом в комментариях или напишите мне. Если будет много желающих, я подумаю о том, чтобы сделать подобный пост и для младших разработчиков.
Мотивация
Большинство людей, с которыми я общаюсь, ненавидят процесс поиска работы и собеседования. Основная причина, которую я слышал, — «процесс несовершенен, и я хочу покончить с ним как можно скорее».
Я согласен, что процесс собеседования несовершенен, но мы можем использовать несовершенную систему в своих интересах с помощью систематического планирования и последовательных усилий.
Кроме того, четкая мотивация заключается в том, что если вы будете следовать плану, описанному в статье, то при смене работы вы сможете:
- Выровнять свою компенсацию. Я видел, как люди увеличивали свою компенсацию от 30 до 200% при смене работы.
- Выровнять свою карьеру. Рассказав свою историю и успешно пройдя собеседование на должность системного дизайнера, вы сможете достичь уровня на вашей нынешней работе или выше.
- Найдите работу, которая вам действительно интересна.
Основываясь на своих наблюдениях за тем, как все мои друзья находили новую работу, я твердо убежден, что если вы хорошо справляетесь со своей нынешней ролью, вы получите новую работу, которая вам понравится. Одной из причин этого является то, что в настоящее время рынок кандидатов находится в состоянии ажиотажа: все крупные технологические компании набирают сотрудников.
Не верите, что сможете получить более высокую зарплату? Вы можете ознакомиться с анализом, проведенным Мэтью Дином в этой статье здесь.
Вам потребуется немного больше времени, чтобы следовать этому плану, но это стоит того, чтобы потратить время и усилия.
Обзор процесса собеседования
Процесс собеседования будет выглядеть следующим образом:
звонок рекрутера → телефонный экран → собеседование на месте (4-6 сессий) → этап предложения
Звонок рекрутера
Как правило, это 15-30-минутный разговор с рекрутером для обсуждения ваших интересов в компании. Перед разговором с рекрутером у вас уже должна быть ясность в отношении ваших целей на следующей работе. (Которые вы перечислили в своей истории). Цель этого звонка — рассказать об этих целях и вашей истории, а также обсудить потенциальное взаимное соответствие.
Также помните, что после того, как рекрутер назначит для вас собеседования, он станет вашим главным союзником и другом на протяжении всего процесса. По крайней мере, до тех пор, пока не начнутся переговоры. (Надеюсь, вы понимаете, что они заинтересованы в том, чтобы вы успешно прошли собеседования и подписали предложение).
Вы должны чувствовать себя свободно и просить их о любой помощи или ресурсах, которые вам нужны. Большинство ресурсов и ссылок в этом блоге предоставлены рекрутерами, с которыми я работал во время поиска работы.
После этого звонка вы перейдете к телефонным экранам.
Телефонный экран
Это собеседование обычно представляет собой 45-60-минутный видеозвонок с инженером-программистом, во время которого вы должны будете поделиться своим экраном и написать код в текстовом редакторе. Скорее всего, вы будете работать над проблемой DS/Algo. Для большинства компаний этот раунд является отборочным, поскольку цель состоит в том, чтобы решить, должна ли компания пригласить вас на собеседование на месте (в своем кампусе).
Примечание: Вам следует уточнить у своего рекрутера, чего ожидать.
Перед проведением этих собеседований вы должны тщательно подготовиться к собеседованию по алгоритмам. Ваша цель на этом собеседовании — продемонстрировать свои технические способности, задать проницательные вопросы интервьюеру после части кодирования и перейти к собеседованию на месте.
Собеседования на месте
Обычно очное собеседование длится от 4 до 6 раундов в кампусе компании, но глобальная пандемия заставила проводить его виртуально. Это является преимуществом для кандидата, поскольку теперь мы можем распределить время проведения собеседований на удобное для нас время и не быть вынужденными использовать дни отпуска для каждого собеседования.
Вам предстоит пройти собеседования по алгоритму решения проблем, проектированию систем, а также поведенческие и опытные собеседования. Вы должны быть рады познакомиться с большим количеством людей и с энтузиазмом продемонстрировать свои технические навыки. Цель собеседования — дать сильные положительные сигналы и данные для перехода к этапу предложения.
Этап предложения
Вы зашли так далеко, ура! На этом этапе все, что вам нужно сделать, это определить, подходит ли вам эта возможность, и договориться о пакете услуг, который сделает вас счастливым и радостным подписать контракт и присоединиться к компании.
Расписание на неделю
Я взял на себя смелость составить расписание на 15 недель, предполагая, что вы будете постоянно готовиться и проводить собеседования неполный рабочий день. Вы можете сократить или удлинить этот график в зависимости от вашей ситуации.
Неделя 1: Подготовка и понимание процесса
- Составьте свою историю и отшлифуйте резюме, чтобы обозначить целевой уровень и масштаб.
- Изучите компании, которые могут быть вам интересны
- Понять процесс собеседования и получить представление о диапазоне зарплат от уровня.fyi
- Обновите «открыт для поиска новой работы» с уровнем конфиденциальности, так как на LinkedIn только рекрутеры.
Неделя 2-4: Основы DS и алгоритмов
- Изучите раздел «Сеть, рефералы и связи с рекрутерами».
- Заведите Todo list для подготовки алгоритмов и ежедневно вычеркивайте что-то из списка.
- Каждый день решайте 2 задачи по алгоритмам.
- Поговорите с рекрутерами и запланируйте телефонные скрининги на 7 или 8 неделю.
Неделя 5-7: Основы системного проектирования
- Подготовьте Todo по системному дизайну и ежедневно вычеркивайте что-нибудь из списка.
- Продолжайте решать 2 задачи по алгоритмам каждый день.
- Пройдите контрольную точку готовности к проектированию системы, чтобы понять, на каком этапе вы находитесь.
Неделя 8-9: Технические телефонные экраны и имитационные собеседования
- Завершите телефонные скрины для большинства компаний
- Начните проходить собеседования на сайте pramp.io по системному дизайну и алгоритмам.
- Продолжайте изучать системный дизайн на основе отзывов.
- Подготовьте примеры STAR для поведенческих раундов.
- Начните планировать собеседования на месте.
Неделя 10-13: победа на очном собеседовании
- Сохраняйте спокойствие и сосредоточенность, и желаю удачи
- Попросите рекрутера дать вам обратную связь через день после любого очного собеседования.
Неделя 14-15: Стадия предложения
- Изучите раздел блога, посвященный этапу получения предложения.
- Как только вы подпишетесь, пришлите мне заметки о том, как можно улучшить этот план.
Если вы любите использовать контрольные списки/списки дел, вы можете найти вышеупомянутый график в формате контрольного списка в этом документе google doc. (Не стесняйтесь сделать свою собственную копию и отмечать все по мере выполнения).
Начните здесь
Я рекомендую следовать еженедельному расписанию, скопировав этот google doc и отмечая дела по мере их выполнения.
Ваша история
Теперь, когда вы решили начать процесс поиска работы, давайте поговорим о том, какой вы хотите видеть свою карьеру. Я рекомендую подготовить ответы на следующие вопросы, которые мы будем называть вашей историей:
- Почему вы пришли в свою последнюю компанию?
- Чем вы занимались на последнем месте работы?
- Почему вы уходите? И почему именно сейчас?
- Какие вещи вы хотели бы продолжать делать на новой работе?
- Что еще вы ищете на новой работе?
Возможно, сейчас это выглядит не так, но многое в последующих шагах будет зависеть от того, как вы ответите на эти вопросы. Вот пример моей истории, когда я начал поиск работы.
Определите и составьте короткий список компаний.
Исходя из вашей истории и целей, составьте список из 7-10 компаний, в которых вы хотите пройти собеседование. Некоторые компании покажутся вам более интересными, чем другие. Рассортируйте список по двум категориям: резервные и целевые компании. Эти группы пригодятся вам при составлении графика собеседований на месте.
Уровень и компенсация
Получите представление об уровнях и компенсациях на сайте levels.fyi. Если вы не уверены, на какой уровень вам следует ориентироваться, поговорите со своими знакомыми в этой компании до подачи резюме, чтобы понять, на какой уровень вам следует ориентироваться.
Несколько слов о резюме
Убедитесь, что вы составили чистое и отполированное резюме. В идеале, большинство пунктов в резюме должны соответствовать формату XYZ.
«Достиг [X] по показателю [Y], сделав [Z]».
Похожие ресурсы:
- Youtube: Как: Работа в Google — советы по составлению резюме
- Youtube: Создайте свое резюме для Google: Советы и рекомендации
- Статья: Формула выигрышного резюме
Сеть и Linkedin
Я полагаю, что большинство моих читателей уже зарегистрированы в Linkedin и имеют профиль LinkedIn «все звезды». Если нет, то первое, что вы должны сделать, это создать свой профиль в LinkedIn.
Я так много внимания уделяю профилю LinkedIn, потому что во время поиска работы со мной связались более 35 рекрутеров через LinkedIn, в результате чего я начал переговоры с 6 компаниями.
Раз уж мы затронули эту тему, я бы рекомендовал всем вам пойти и включить открытые возможности с настройкой конфиденциальности как только рекрутеры на вашем LinkedIn. Вы можете найти шаги здесь. [Убедитесь, что в настройках приватности указано «только рекрутеры», а не «публично»].
Вторая причина иметь достойный профиль в Linkedin — это создание сети, которая поддерживает вас и может иметь связи, способные направить вас в интересующие вас компании. Рефералы — лучший способ привлечь внимание и начать процесс. Затем следует начать разговор с рекрутерами, которые обращаются к вам. Прямые заявки должны быть вашим последним средством.
Советы по разговору с рекрутером
Обычно это первый разговор, который вы ведете с компанией. Как уже упоминалось в предыдущем разделе, ваш рекрутер будет вашим союзником и другом на протяжении всего процесса. По крайней мере, до тех пор, пока не начнутся переговоры. Вы должны понимать, что не все рекрутеры созданы одинаково, и некоторые из них лучше других. Но вы должны помнить, что всегда нужно быть веселым, вежливым и стильным. Сделайте рекрутера частью своей команды и работайте с ним, чтобы получить желаемый пакет услуг.
На этом этапе рекрутер может спросить, какая компенсация вас ожидает. Я бы лично не рекомендовал называть какие-либо цифры так рано. Вместо этого сосредоточьте обсуждение на определении взаимного соответствия и выравнивании уровней. Лучше обсуждать цифры на этапе предложения. Если рекрутер продолжает настаивать, вы можете назвать ему диапазон на верхнем уровне вашего уровня* и обязательно подчеркнуть, что вы знаете, что компания конкурентоспособна, и уверены, что можно достичь взаимного согласия.
*Вы можете воспользоваться сайтом levels.fyi, чтобы получить представление о том, каковы диапазоны зарплат для вашего уровня.
Кроме того, если вам нужна дополнительная информация, обратитесь к разделу о переговорах в этой статье.
Точка зрения интервьюера
Если вы когда-нибудь были по другую сторону стола для собеседования или в комитете по найму, вы знаете, что при принятии решения часто упоминаются два слова: сигнал и точка данных. Если нет, не волнуйтесь, я здесь, чтобы объяснить.
Задача интервьюера — получить как можно больше сигналов и точек данных. Итак, теперь вы спрашиваете, что это за сигналы? Сигнал — это часть информации, которая демонстрирует ваши конкретные навыки, знания и опыт.
Например, когда я провожу собеседование, я бы искал следующие сигналы:
Сигнал о способности к обучению: Этот сигнал показывает, насколько хорошо кандидат реагировал на подсказки и обратную связь, был ли он открыт для обратной связи и использовал ли он обратную связь для улучшения своего решения. Этот сигнал обычно анализируется во время собеседований по решению проблем и проектированию систем.
Сигнал кодирования: Этот сигнал учитывает — насколько глубоко кандидат понимает, и насколько эффективно он кодирует? Этот сигнал анализируется во время собеседования по решению проблем.
Проектирование системы: Этот сигнал учитывает — имеет ли этот кандидат опыт и способность проектировать и руководить большой технической системой? Это анализируется во время собеседования по проектированию систем.
Сигнал «Сотрудничество и управление»: Этот сигнал учитывает — способен ли данный кандидат работать с группой людей или управлять ею. Этот сигнал также учитывает опыт кандидата в сотрудничестве или управлении большими командами. Это анализируется в ходе поведенческого интервью/интервью на основе опыта.
Есть еще несколько сигналов, на которые обращают внимание разные компании. Например, такие компании, как Google и Amazon, ищут сигнал, учитывающий умение ориентироваться в неоднозначной ситуации.
Теперь вы знаете, на что обращают внимание интервьюеры во время собеседования. Ваша задача во время каждого собеседования — излучать сигналы, которые покажут, что вы подходите на эту роль, и продемонстрируют вашу компетентность.
Структуры данных, алгоритмы и решение задач Подготовка к собеседованию
Собеседования по техническим вопросам трудны. Представьте себе, что вас оценивают с точки зрения реализации оптимальных решений при изложении своих мыслей в течение нервного 45-минутного интервью.
Хорошо то, что вы можете стать лучше в них благодаря подготовке и практике. Подготовка включает в себя:
- Понимание ожиданий от собеседования.
- Усвоение основ DS и алгоритмов.
- Научиться придерживаться структурированного подхода, чтобы хорошо общаться.
Решение задач Ожидания на собеседовании
Языки программирования: Большинство компаний не требуют от вас знания какого-либо конкретного языка программирования перед собеседованием на техническую должность, но знакомство со значимым языком, как правило, является необходимым условием успеха. Вы должны знать не только синтаксис языка, но и некоторые нюансы языка, например, как работает управление памятью, наиболее часто используемые коллекции или библиотеки и т.д.
Структуры данных: Вы должны понимать внутреннюю работу распространенных структур данных и уметь сравнивать и сопоставлять их использование в различных приложениях. Вы должны будете знать время выполнения распространенных операций и использование памяти.
Алгоритмы: Ваше собеседование не будет сосредоточено на заучивании, однако понимание наиболее распространенных алгоритмов, вероятно, значительно облегчит решение некоторых вопросов, которые мы зададим. Знание времени выполнения, теоретических ограничений и основных стратегий реализации различных классов алгоритмов важнее, чем запоминание конкретных деталей того или иного алгоритма.
Кодирование: Ожидайте, что вас попросят написать синтаксически правильный код — никакого псевдокода. Несколько пропущенных запятых или опечаток здесь и там — не такая уж большая проблема, но цель состоит в том, чтобы написать код, максимально приближенный к готовому к производству. Это ваш шанс продемонстрировать свои способности к кодированию.
Похожие ресурсы:
- Youtube: Пример собеседования по кодированию в Google (24 мин)
- Youtube: Ask a Google Engineer — What is the Interview Process at Google? (2 мин)
- Как подготовиться к собеседованию с инженером Google (7 мин)
Структура данных и основы алгоритмов
Мои рекомендации
Я рекомендую сначала разобраться в структуре собеседования, затем понять основы и концепции и, наконец, глубоко погрузиться в алгоритмы. Вот рекомендуемый план:
- Первый шаг — понять основы решения задач. Cracking the Code Interview (CTCI) — лучший ресурс для этого. Прочитайте главы с 1 по 7. В этих главах подробно описана схема решения интервью по алгоритмам. Усвойте эти главы и применяйте эту методологию при решении любого вопроса по алгоритмам на собеседовании.
- Проанализируйте основы, прочитав следующие главы в CTCI или EPI. Вот некоторые темы из тех, что я помню: Строки, массивы, связанные списки, стеки, очереди, кучи, деревья, хэш-таблицы и карты, поиск и сортировка, рекурсия, динамическое программирование, жадные алгоритмы, графы и обходы графов.
- Глубокое погружение в алгоритмы:
- Если вам нужно начать с чистого листа или вы давно не просматривали алгоритмы:
- Coursera — Algorithms, Part 1 — Следуйте лекциям и кодируйте алгоритм, ds в word doc после каждой лекции. [я рекомендую смотреть в 2 раза]
- Coursera — Algorithms, Part 2 — Это необязательно, так как только пара компаний (например, Google и Directi) ожидают продвинутых концепций алгоритмов.
- Если вы недавно изучали DS и алгоритмы и только просматриваете концепции, то просмотрите несколько лучших статей по каждому DS и алгоритму на geeks for geeks.
- Geeks for geeks — Структуры данных
- Geeks for geeks — Алгоритмы
Другие ресурсы по DS, Algo и основам кодирования
- bigocheatsheet
- Книга: Красивый код
- Книга: Элементы программирования Интервью
- Университет интервью по кодированию
- Курс: Udacity — Intro to Algorithms
- Открытый курс MIT — Введение в алгоритмы (не очень эффективный)
- Google Style Guides для: C++, Python, Java
Практика кодирования
Когда вы практикуетесь, не используйте IDE. Вы должны уметь писать разборчивый, компилируемый код без помощи в отношении расположения или написания имен классов/методов стандартной библиотеки. Я предлагаю решать алгоритмические/DS-задачи в документе word или на бумаге, чтобы имитировать реальное собеседование.
Примечание: некоторые компании могут иметь встроенную IDE в окне браузера, но большинство нет, поэтому безопаснее практиковаться на обычном документе word.
Мои рекомендации
Если вы новичок в DS и кодировании алгоритмов, следуйте курсу программирования «Бит интервью».
В противном случае, вы можете просто решить слепой список: 75 тренировочных вопросов на leetcode. Этот список задач охватывает различные темы, чтобы подготовить вас к любому собеседованию по кодированию.
Кроме того, мне нравится ежедневно решать случайную проблему кодирования, помимо подготовки и практики, и для этого я подписался на https://www.dailycodingproblem.com/.
Другие ресурсы для дополнительной практики:
- Codeforces
- HackerRank
- Topcoder
- Google Code Jam
Подготовка к собеседованию по проектированию системы
Ваш интервьюер, проводящий собеседование по проектированию системы, скорее всего, будет старшим инженером, который задаст вам открытый вопрос, например, «Реализовать систему бронирования авиабилетов» или «Создать ленту для Instagram».
Ваша цель — вести разговор в течение следующих 60 минут, уточнить требования к проблеме и разработать систему, которая ее решит. Это шанс продемонстрировать свои навыки, знания и опыт в техническом руководстве.
Образ мышления на собеседовании по проектированию системы
После множества бесед с людьми, готовящимися к этому собеседованию, я понял, что большинство людей приходят с мыслью, что это упражнение по созданию гипотетических систем. Я вижу это, когда кандидаты говорят такие вещи, как «они бы не сделали этого в реальной жизни», и в итоге могут игнорировать некоторые более значительные технические проблемы, которые они видят, думая, что это, в конце концов, просто упражнение. Но это подает неверный сигнал интервьюеру, который может подумать, что вы не заметили этой технической проблемы. (Как показано в приведенном выше меме).
Вам нужно изменить этот образ мышления; вместо того чтобы строить гипотетические системы, давайте построим реальную систему. Представьте, что вы ведете реальную рабочую встречу в начале собеседования. Цель встречи — решить поставленную задачу путем мозгового штурма дизайна и дорожной карты.
В конце этого 1-часового собеседования ваша цель — получить дорожную карту дизайна и план, разделенные в виде задач между командой. (Это цель Northstar, но для большинства собеседований может быть достаточно просто технического дизайна с компромиссами).
Это небольшое изменение в мышлении изменит ваш подход к собеседованию. Вместо того чтобы участвовать в гипотетическом обсуждении, вы возглавите дискуссию и разработаете гораздо более реалистичный дизайн.
Дизайн высокого уровня
Структура собеседования HLD
{:.no_toc}
Лично я придерживаюсь схемы разделения этого интервью на 3 фазы.
- Сбор требований
- Технический дизайн и компромиссы
- Глубокое погружение и возможные улучшения
Это лучше объясняется в этом пошаговом руководстве.
Ожидание знаний в области HLD
{:.no_toc}
Базы данных
Чем больше вы знаете о том, как работают реляционные и нереляционные базы данных и какие компромиссы существуют между ними, тем лучше вы будете подготовлены. Однако большинство компаний не предполагают какого-либо определенного уровня знаний.
Распределенные вычисления и масштабирование
Хотя большинство компаний имеют внутренние инструменты, которые помогают в масштабировании, важно понимать несколько основных концепций распределенных вычислений. Понимание таких тем, как сервис-ориентированные архитектуры, map-reduce, распределенное кэширование, балансировка нагрузки и т.д., может помочь вам разработать лучший дизайн для некоторых более сложных вопросов распределенной архитектуры, с которыми вы можете столкнуться.
Темы Интернета и сетевых технологий
Большинство компаний ожидают, что наши инженеры будут знакомы с основами работы Интернета. Возможно, вы захотите узнать, как работают браузеры на высоком уровне, от поиска DNS и TCP/IP до сокетных соединений. Они не требуют квалификации сетевого инженера, но твердое понимание основ работы Интернета является обязательным требованием.
Рекомендуемое обучение
{:.no_toc}
Попробуйте решить вопросы в Grokking the system design interview, а затем изучите предложенные в них решения. Этот ресурс — действительно отличный способ узнать и усвоить, как вести отличные дискуссии по системному дизайну.
Курс: Hired in Tech — System Design — также отличный ресурс, если вам нужно дополнительное обучение.
Контрольная точка готовности к собеседованию HLD
{:.no_toc}
Попробуйте ответить на все следующие вопросы, прежде чем переходить к подготовке и началу имитационных собеседований:
- В каких случаях вы бы предпочли БД SQL, а не No SQL?
- Какие существуют различные типы хранилищ данных для хранения изображений? На какие ключевые моменты вы бы обратили внимание при выборе хранилища данных для изображений?
- Длинный опрос против веб-сокетов.
- Какая техника позволяет ускорить повторные вызовы чтения?
- Недостатки кэширования.
- Что такое CDN? Когда следует использовать CDN?
- Что такое теорема CAP?
- Какова относительная производительность для HDD, SSD, RAM и сетевых вызовов.
- Что такое доступность и надежность? Как их измерить для системы?
- Что происходит за кулисами, когда вы открываете ссылку в браузере? Знаете ли вы, что означают эти термины: TCP/IP, поиск DNS?
Другие ресурсы:
высокая масштабируемость — примеры
Низкоуровневый дизайн
Примечание: не во всех компаниях есть этот раунд, поэтому проверьте, задают ли эти вопросы интересующие вас компании. Я сталкивался с вопросом LLD в Google и Amazon.
Вы должны обладать рабочими знаниями нескольких распространенных и полезных паттернов проектирования и уметь писать программное обеспечение объектно-ориентированным способом, с соответствующим использованием наследования и объединения. Скорее всего, вас не попросят подробно описать, как работают конкретные паттерны проектирования, но ожидайте, что вам придется защищать свой выбор дизайна.
Ресурсы:
{:.no_toc}
- Refactoring Guru — Design patterns
- Книга: Head First Object-Oriented Analysis and Design
Контрольная точка готовности к LLD Mock interview
{:.no_toc}
- Что такое параллелизм? Понимаете ли вы, что такое связность и согласованность?
- Знаете ли вы, как использовать хотя бы следующие паттерны проектирования:
- паттерн стратегии
- паттерн наблюдателя
- Метод фабрики
- паттерн синглтон
- Наследование против агрегации
Инсценированные интервью
Инсценированные интервью — лучший способ войти в ритм собеседования. Я рекомендую проводить несколько пробных собеседований по кодированию и проектированию систем каждую неделю подготовки. Это позволит вам понять, как вы справляетесь с заданиями и какие области следует улучшить. Вы можете использовать следующие сайты для проведения пробных собеседований:
- pramp.com — бесплатные пробные собеседования по решению проблем и проектированию систем HLD
- interviewing.io — платный
Общие советы по прохождению собеседования
К этому моменту вы уже должны были собрать все советы, которыми я планирую поделиться, пройдя CTCI и Grokking system design. Вот некоторые важные моменты, если у вас не было достаточно времени на их изучение:
- Проговаривайте ход своих мыслей по поводу задаваемых вам вопросов. На всех собеседованиях интервьюеры оценивают ваши технические способности, а также то, как вы подходите к проблемам и как пытаетесь их решить.
- Задавайте уточняющие вопросы, если вы не понимаете суть проблемы или нуждаетесь в дополнительной информации. Многие вопросы на собеседовании намеренно неконкретны, потому что интервьюеры хотят увидеть, как вы подходите к решению проблемы. В частности, они хотят увидеть, какие области проскакивают в вашем сознании как наиболее важные части представленной вами технологической головоломки.
- Подумайте о том, как можно улучшить решение, которое вы представите. Во многих случаях первый пришедший на ум ответ не является самым элегантным решением и может потребовать доработки. Безусловно, стоит рассказать о своих первоначальных мыслях по поводу вопроса, но немедленное представление решения методом грубой силы будет воспринято не так хорошо, как время, потраченное на составление более эффективного решения.
- Вы должны подготовить несколько вопросов для интервьюера. Если вы проявите инициативу и изучите компанию перед собеседованием, это принесет вам много пользы.
Другие ресурсы:
Рекрутеры Google делятся советами по техническому собеседованию (30 мин)
Поведенческое интервью и интервью с опытом работы
Большинство моих знакомых не особо готовятся к этому собеседованию. Им кажется, что вопросы случайны, и я понимаю, что это трудно сделать приоритетным среди всех остальных дел, но я считаю, что это собеседование может принять решение о приеме вас на работу.
Интервьюер хочет понять две вещи:
- Подходите ли вы по культуре?
- Какой уровень вам подходит?
Я рекомендую подготовить 5-6 сильных примеров работы и историй, которые содержат данные с сильными положительными сигналами. Это позволит вам ответить на вопрос интервью, сохраняя при этом отличный поток информации. Эти примеры работы не обязательно должны быть вычурными или сложными. Самое главное, чтобы пример был хорошо воспринят и понят интервьюером. Кроме того, хорошо подготовленные истории убедительны, интервьюер видит ваши чувства и может резонировать с ними. Кроме того, истории — это отличный способ проиллюстрировать свой опыт, что имеет решающее значение при определении уровня.
Вот примерный вопрос, в котором вы можете продемонстрировать свой опыт применения клиентской одержимости:
Расскажите о случае, когда вы пошли на большее ради клиента?
Существует несколько способов ответить на вышеприведенный вопрос; я рекомендую следовать методу STAR при ответе на любые вопросы, связанные с принципами лидерства. STAR расшифровывается как «Ситуация — Задача — Действие — Результат», подробнее о методе STAR.
Когда эти примеры будут хорошо подготовлены, попробуйте ответить на перечисленные здесь поведенческие вопросы для практики.
Совет: это список всех вопросов, к которым я готовился, и я абсолютно успешно прошел все поведенческие и опытные интервью.
Ресурсы:
Заметка в моем блоге — Ace the Amazon Leadership Principle interview questions
Метод STAR
Этап предложения
Похвально, что вам удалось пройти этот этап! После того как вы получили предложение, вы можете провести собеседование с командой и компанией. Возможно, вы захотите встретиться с менеджерами и членами команды несколько раз, прежде чем принять решение.
Чтобы это было понятнее, приведу один пример: Прежде чем принять решение о выборе команды, я встретился с 7 разными менеджерами в Google. После встречи с ними у меня были последующие встречи/беседы с теми, кто меня заинтересовал. То есть, по сути, это было обратное собеседование.
Если ваш менеджер действительно хочет вас видеть, то у рекрутера появляется союзник, который может предложить вам более подходящее предложение.
Примечание: В некоторых компаниях, таких как Amazon, вы сможете встретиться только с командой/менеджером по подбору персонала на ту должность, на которую вы подали заявку. Это связано с тем, что в таких компаниях прием на работу осуществляется в основном командой, а не на уровне всей компании.
Перед встречей с менеджерами по найму вам следует составить список из 7-10 вопросов, которые вы хотели бы задать, если позволит время. Эти вопросы могут варьироваться от общих до специфических для конкретной команды или технологии. Эти вопросы должны быть направлены на сбор дополнительной информации о команде, технологии и менеджере, чтобы принять обоснованное решение.
Переговоры о лучшем предложении
Час-другой изучения вопроса о ведении переговоров может принести вам дополнительные 10-30% прибавки к зарплате. Я бы сказал, что на это стоит потратить время!
Я хочу многое рассказать о переговорах, но мне кажется, что для вас будет лучше, если вы прочтете те же статьи, которые я использовал для начала, и услышите все из уст лошади:
- Десять правил ведения переговоров о предложении работы
- Как не провалить переговоры по предложению
После того, как вы прочитаете вышеупомянутые статьи, вот несколько моментов, которые я хочу еще раз подчеркнуть:
- Знайте свою стоимость и целевой уровень (используйте levels.fyi)
- Лучше вести переговоры по электронной почте, чем по телефону.
- Лучшие переговорщики — это те, кто готов уйти.
Другой отличный (но длинный) ресурс: Переговоры о зарплате
После подписания предложения
- Вечеринка, вечеринка и еще раз вечеринка! Вы это заслужили.
- Отправьте записку всем участникам (возможно, даже поддерживайте связь через LinkedIn).
- Сообщите другим компаниям, что вы решили пойти другим путем.
- Напишите мне сообщение с любыми отзывами/улучшениями по этому плану.
Совет на прощание
- Поговорите со своим рекрутером. Они могут помочь вам уникальными знаниями и ресурсами для успешного прохождения собеседований.
- Будьте добры к себе. Процесс собеседования — это стресс, и легко винить себя, когда что-то идет не так. Помните, что это еще не конец. Есть еще много компаний, и будьте добры к себе.
- Всегда будьте позитивными и стильными.
- Будьте любознательны, чтобы учиться и задавать вопросы.
Агрегированный список рекомендуемых ресурсов
- Cracking the Code Interview (CTCI)
- Coursera — Алгоритмы, часть 1
- курс по программированию на битном интервью
- слепой список: 75 обязательных вопросов по leetcode
- Собеседование по проектированию систем
- pramp.com — бесплатные имитационные интервью
- Вопросы для собеседования по опыту
- Метод STAR
- Десять правил ведения переговоров по предложению о работе
- Как не провалить переговоры по предложению
Не стесняйтесь читать другие посты, связанные с подготовкой к собеседованию и опытом на jinesh.codes/interview
Первоначально опубликовано на https://jinesh.codes 21 февраля 2022 года.