Как попасть на работу в гугл
Перейти к содержимому

Как попасть на работу в гугл

  • автор:

Как можно устроиться на работу в Google и другие IT-гиганты? Рекомендации узбекского программиста

Дархонбеку Маматалиеву 23 года. В 2015-2019 годах он обучался в Ташкентском университете ИНХА. Сейчас работает программистом-инженером IOS в международной компании UBER.

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

«Следует победить свою неуверенность»

— Было время, когда я сожалел, что поступил в Инха. Жалел затраченные средства, меня не устраивало качество образования. Но со временем моё мнение изменилось. Потому что в Инха я получил основное – нетворк, обзавёлся новыми знакомыми, друзьями. Это мне очень помогло в будущем.

Мой диплом сейчас лежит в Инха, я его ещё не получил. Когда устраивался на работу в UBER, о дипломе даже не спросили.

Я прошёл собеседование в компаниях Google, Amazon, Facebook, Apple, Robinhood, Uber, Reddit. Нигде не попросили диплом. Даже не задали вопрос, есть ли он у меня. Диплом может пригодиться при заполнении резюме, чтобы указать место учёбы. Но, даже если человек не укажет место учёбы, но у него будет большой опыт работы, то его, с большой вероятностью, примут.

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

Следует правильно оценивать свои способности и не прекращать работу над собой. Не надо думать: я не достоин работать в таких компаниях. Надо подавать документы ещё во время учёбы.

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

Самый худший сценарий, который может произойти – это слова «Извините, вы нам не подходите». Но это не означает, что вы больше не можете подать туда документы. Поэтому не нужно бояться делать попытки.

Что нужно для профиля в Linkedin?

— В США, в государствах с развитой инженерией активно используется платформа Linkedin. Это – профессиональная социальная сеть. У любого профессионала должен быть свой профиль в Linkedin. Он похож на паспорт.

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

Я хорошо заполнил свой профиль в Linkedin, по всем правилам. Поэтому со мной связались рекрутеры из Google, Facebook, Amazon.

Вот каким должен быть профиль в Linkedin:

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

Следует также написать о своих навыках, достижениях, сертификатах.

Алгоритм Linkedin выводит хорошо заполненные профили в верхние строчки поиска.

Три способа устроиться в крупные компании.

Существует три пути трудоустройства в крупные компании.

1. Вы можете подать документы в компанию. Но это – чёрная дыра, в которой всё исчезает. Так и ваше резюме просто потеряется. Потому что таким образом поступают тысячи документов.

Я так устраивался только один раз. Подал документы на 24 позиции в Apple, и только по одной из них пришёл ответ через три месяца.

2. Самый идеальный вариант для трудоустройства в гигантские компании – это когда с вами свяжутся рекрутеры. А рекрутеры ищут кандидатов в Linkedin.

3. Через реферера. При этом реферер рекомендует вас в компанию. Он отправляет ваше резюме на рассмотрение во внутреннюю систему. Если подать документы через реферера, то вероятность его рассмотрения рекрутерами гарантирована.

Как проходят собеседования по устройству на работу?

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

Потом он вам даёт онлайн-задание. Нужно решить 4 задачи за 1,5 часа. Если справитесь, то рекрутер пригласит вас на фон-скрининг. Инженер компании будет беседовать с вами по телефону 45 минут. В ходе общения вы без всяких инструментов должны выполнить задания в онлайн-блокноте.

На последней стадии происходит интервью онсайт. Вас пригласят в офис компании. Даже если вы находитесь в другом государстве, вам оплатят расходы на гостиницу и билет на самолёт.

Онсайт-беседа состоит из 5-6 небольших интервью, по 45 минут каждое. Там будут изучать ваше психологическое состояние, как вы ведёте себя в коллективе, ваше отношение к работе. Потом проверят ваши технические навыки. Дадут задания. Во время выполнения заданий также нужно говорить. Потому что в ходе работы в коллективе вам придётся общаться с другими программистами, сотрудниками.

Получить отказ – это нормально

— Я провалился на собеседованиях в Google, Amazon, Facebook, Apple. 14 раз я получал отказ в местах, куда подавал резюме. Это – нормально. При трудоустройстве в крупные компании вполне естественно провалиться на собеседовании или получить отказ. Нужно подавать документы снова и снова, накапливать опыт, и потом всё получится.

На первом собеседовании в Amazon мне было очень трудно. Потому что я не знал, как происходит процесс интервью, растерялся. Часто запинался, не понимал, чего от меня хочет интервьюер.

В Facebook я дошёл до стадии онсайт-беседы, но потом случился карантин. В Apple позиции, на которые они искали работников, не совпали с моими навыками.

Таким образом, неудачное собеседование не означает, что все двери теперь для тебя закрыты. Повышайте опыт, улучшайте навыки, и пробуйте снова. И если провалитесь на собеседовании, через 6-12 месяцев можно попробовать подать документы снова.

перевод: Вадим Султанов,
Анастасия Ткачёва

Как получить работу в Google

Филиалы Google находятся в 42 городах Европы. По мнению издания Glassdoor, эта компания — лучшее место для работы в Англии. Понятно, что получить работу в ней очень сложно. Но свои шансы можно повысить.

Кит Моран, бывший руководитель Google по набору нетехнического персонала в Европе, Средней Азии и Африки, рассказал, что в среднем между первым контактом с рекрутером и предложением о работе проходит 8 недель. Иногда процесс может длиться и 3 месяца. Каждый кандидат проходит отбор сначала рекрутерами, потом командой и потенциальным начальником. Этот пугающий многих процесс осложнён большой конкуренцией. Именно поэтому многие задаются вопросом «Как можно выделиться?».

Вот 8 советов, которые увеличат ваши шансы на получение заветной работы в Google:

  1. Подавайте заявление, даже если не отвечаете всем требованиям.

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

Гастон Тоурн, в прошлом главный маркетолог Лондоского филиала, ныне директор по маркетингу Appear Here, рассказал, что раньше считал себя поэтом. Он даже думать не мог, что окажется в отделе маркетинга такой огромной компании: «Google обычно пытается заглянуть внутрь своих кандидатов, кто они на самом деле такие и что могут предложить».

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

2. Выделите своё резюме на фоне остальных.

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

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

3. Не стоит чрезмерно подготавливаться к интервью: ожидайте неожиданного.

В процессе найма на работу в Google вы проходите 4 интервью. И это может занять много времени: возможно, придётся решать сложные проблемы, заниматься кодированием программ для инженеров или проводить презентации для маркетологов. И всё это до того как вы дойдёте хотя бы до первого из четырёх стандартных интервью. Для получения руководящей должности и вовсе придётся пройти 6 или 7 собеседований.

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

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

Нейл Дикинс, основатель и директор кадрового агентства IC Resources, утверждает, что «чем больше у вас знаний о них, тем больше шансов предугадать вопросы, которые, по вашему мнению, они вам зададут».

Морган утверждает, что в Google также стоит ожидать неожиданности, а значит, нет нужды судорожно заучивать ответы на стандартный список вопросов. «Будьте готовы адаптироваться и быстро реагировать на собеседование», — сказал он.

4. Задайте себе 4 вопроса перед интервью.

Эксперты утверждают, что эти четыре вопроса всегда встречаются во время интервью в Google:

  • Чем вы увлекаетесь? И почему?
  • Почему вы заинтересованы в этой работе?
  • Что вы можете дать компании Google?
  • Какие три самых больших достижения в вашей карьере? (Если вы столкнулись с препятствиями, будьте готовы обсудить, что вы могли бы сделать по-другому)

5. Поделитесь вашей самой яркой идеей.

Эксперты утверждают, что вам следует приходить на интервью, подготовив вашу самую грандиозную, самую яркую идею. Но перед тем как вы её озвучите, вспомните о правиле “10 раз”: представьте, что она в десять раз важнее и серьёзнее, чем сначала предполагали, а затем — в 10 масштабнее.

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

6. Покажите своё увлечение, даже если это что-то необычное.

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

«Просто убедитесь, что вы подчёркиваете любое из этих видов увлечений, которые у вас есть как у личности», — утверждает Дикинс.

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

7. Задавайте вопросы, будьте любопытными!

«Задавайте вопросы во время неловких пауз во время интервью», — советует Моран. «Я думаю, что именно в такие моменты становится понятно, что люди действительно увлечены чем-то интересным». Спросите, например, о том, что происходит за закрытыми дверями.

Тоурн, бывший глава маркетинга в Лондонском филиале Google, предлагает кандидатам подготовить три каверзных, неожиданных вопроса, которые помогут «бросить вызов» интервьюеру. Поскольку технологическая индустрия меняется быстро, единственное, что поможет вам добиться успеха, — это быть любопытным, интересоваться новинками и задавать вопросы.

8. Сделайте себя видимым как онлайн, так и офлайн.

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

Посещайте виртуальные мероприятия, форумы и семинары, организованные Google. Либо те, на которых будет присутствовать кто-то из компании. Представьтесь им. Неизвестно, когда можно будет использовать того или иного человека в качестве внутреннего реферала при заполнении заявления. По словам Морана, любой контакт с сотрудником Google за пределами вашего заявления на работу повышает шансы быть замеченным.

Alain Jocard/Getty Images
32K открытий
12 комментариев
Написать комментарий.

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

Развернуть ветку

«лучшее место для работы в Англии.»
Из всех попыток устроиться в крутые фирмы UK провалил 80% именно из-за уровня английского, хотя по тех части подходил на 150%.
Англичане терпеть не могут, когда не говоришь как носитель.
Вам объяснят, что из-за Вашего уровня английского не сможете быть частью команды и будут недопонимания.
При этом в фирмах из США или других стран Европы Вам такую дичь никто не скажет.
Когда раньше много слышал про космополитизм, специфический юмор, чопорность в UK — думал, что люди субъективны.

Развернуть ветку

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

Развернуть ветку

Хорошие рекомендации для соискателей. Спасибо

Развернуть ветку

насколько я знаю, пункт №1 чтобы попасть в гугл — найти друга-гуглера и попросить его написать рекомендацию.

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

но вообще-то на тех позиции готовиться надо максимально хорошо, чтобы не завалиться на формальной хрени типа сортировки хаха

Развернуть ветку

Нетворкинг, конечно, один из самых эффективных способов, чтобы попасть вообще в любую компанию. Не совсем понимаем, в чем странность и странность остальных пунктов, если все они взяты из интервью бывшего руководитель Google по набору нетехнического персонала в Европе, Средней Азии и Африке, а не взяты из воздуха?
В статье не сказано, что вопросы к интервью готовить не нужно, в пункте 4 указаны 4 вопроса, которые всегда задаются при приеме на работу, но все остальные вопросы предугадать очень сложно, так как их содержание будет зависеть только от вашего интервьюера (стоить по возможности что-то узнать о вашем интервьюере, чтобы было легче). Речь идет о том, чтобы не готовиться в стандартному списку вопросов, а лучше ожидать что-то неожиданное.
Кит Моран (после интервью которого мы и написали эту статью) — бывший руководитель Google по набору нетехнического персонала, о чем говориться в самом начале статьи, поэтому естественно, что он дает советы, которые больше относятся именно к нетехническому персоналу, но что-то пойдет и для тех персонала. Но тех персоналу к вопросам, естественно, стоит тщательнее подготовиться, чтобы как вы правильно выразились, не завалиться

Развернуть ветку

Ну не так уж плохо. Но задача не очень сложная. Рекомендую для тренировки написать статью — как осуществить мечту и попасть рядовым в армию РФ. Можно даже премию Тома Сойера назначить за такую статью.

Развернуть ветку

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

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

Ну а статью «как осуществить мечту и попасть рядовым в армию РФ» мы можем написать специально для вас, раз вы так заинтересованы этим вопросом и вы лично вручите нам премию Тома Сойера.

Развернуть ветку

Ловлю на слове. Это будет намного посложнее чем данная статья. Но и полезнее. Возможно вас тогда сам Евгений Викторович на работу пригласит или на подряд возьмет.

Развернуть ветку

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

Развернуть ветку

Я предлагаю прийнять мене в компанію Google и зделать Google Станцію и добавить ветреки

Развернуть ветку

Интересно, а какое у тебя образование, это важно?))

Как попасть в Google

Как попасть в Google

Корпорация Google — настоящий символ интернет-эпохи, одна из технологичных компаний «большой четверки», один из лучших работодателей. Неудивительно, что многие хотят здесь работать: каждый год в компанию поступает около 3 млн резюме! Но в штат принимают всего 0,2% кандидатов. Как им удаётся попасть в Google, и что надо сделать, чтобы оказаться в их числе? Рассмотрим схему действий для готовых и будущих специалистов, а также для тех, кто только мечтает о работе в Google.

  • Если вы — готовый специалист
  • Если вы — студент
  • Если вы только окончили школу

Если вы — готовый специалист

Хорошая новость: Google сам очень заинтересован в новых сотрудниках. Если вы действительно хороший специалист, рекрутер может выйти на вас сам! (Поэтому снабдите свой профиль в LinkedIn ключевыми словами и регулярно обновляйте его.) Но и в этом случае вас ждёт длительный (до двух-трёх месяцев) процесс отбора.

Соискатель проходит несколько интервью, во время которых, как выразился бывший главный маркетолог Лондонского филиала Моран Тоурн, Google «пытается заглянуть внутрь своих кандидатов» — то есть понять, кто они такие и что могут предложить.

Конкретные вакансии всегда публикуются на официальном сайте. Вы можете подать заявки на три вакансии в течение каждых 30 дней. Рекомендуем подготовить отдельное резюме для каждой должности.

Как пройти строгий отбор?

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

Выделите ключевые пункты и не забудьте добавить индивидуальности: включите в резюме факты, которые одновременно характеризуют вас и как человека, и как потенциального сотрудника.

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

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

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

Если вы — студент

Google постоянно предлагает студентам и недавним выпускникам оплачиваемые технические и бизнес-стажировки — они могут стать пропуском на постоянную работу.

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

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

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

interview_job.jpg

Если вы только окончили школу

Офисы Google (на данный момент их 85) работают во всех регионах мира. Ближайшие к российским кандидатам офисы, помимо московского, находятся в Европе. Европейская штаб-квартира Google расположена в Дублине (Ирландия). Это одна из причин, по которой абитуриенты, мечтающие о карьере в IT, решают получать высшее образование в Ирландии. Возможно, это самый долгий, но всё-таки наиболее лёгкий способ получить работу в Google. Причина — в преимуществах, которые даёт студентам обучение в Ирландии:

  • Сильнейшая академическая подготовка. Ирландские университеты входят в 1% лучших научно-исследовательских институтов мира по 19 научным направлениям. С середины прошлого века ирландское правительство работает над развитием высоких технологий в стране, и сегодня местные вузы находятся в авангарде подготовки лучших IT-специалистов мира.
  • Стажировки в лучших IT-компаниях. В ирландских вузах делается большой акцент на практику, и все студенты ещё во время учёбы осваивают профессию изнутри. А главный плюс в том, что стажироваться они могут в мировых корпорациях. Именно в Ирландии находятся европейские штаб-квартиры Apple, Facebook, Google, Twitter и других компаний, где ждут высококвалифицированных айтишников, а талантливых ребят присматривают ещё в университете.
  • Возможности для поиска работы. Благодаря программе Third Level Graduate Scheme, которая действует для выпускников-иностранцев, после бакалавриата Ирландии можно на год остаться для поиска работы, а после магистратуры — на два года. Ну а для тех, кто мечтает о стартапе, в Ирландии создан максимально благоприятный климат.
  • Свободный английский. За годы в университете вы подтянете язык до уровня, который позволит спокойно работать в англоязычных офисах.

programmer-girl.jpg

Как поступить в ирландский вуз на IT-направление?

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

Вот несколько университетов с сильными программами по подготовке IT-специалистов:

Augmented and Virtual Reality

Computing in Games Development

Computing in Software Development

Games Design & Development

Internet Systems Development

Computer Networks & Systems Management

Data Analytics & Cyber Security

Institute of Technology Carlow

Cybercrime and IT Security

Computing in Interactive

Digital Art and Design

Information Technology Management

Требования для поступающих

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

  • Сертификат языкового экзамена IELTS (минимальный балл – 5.5-6)
  • Сведения об успеваемости
  • Рекомендации преподавателей
  • Портфолио (для некоторых программ)
  • Для некоторых специальностей предусмотрены вступительные испытания.

ireland _ nature.jpg

Другие преимущества обучения в Ирландии

Мультикультурность и европейский опыт. В Ирландию приезжают учиться студенты со всех концов света, а благодаря тому, что страна входит в Евросоюз, во время учёбы можно спокойно ездить по всей Европе. Дублин — одно из популярных туристических направлений.

Цена и уровень жизни. Обучение в Ирландии на 20-30% дешевле, чем в Великобритании. По качеству жилья и благополучию окружающей среды эта страна превосходит многие страны Западной Европы. В Ирландии высокие зарплаты, качественная медицина, благоприятный климат для предпринимательства и очень низкий уровень преступности.

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

Карьера мечты с Allterra Education

Чтобы узнать, как поступить в ирландский университет или любой другой вуз мира, обратитесь к специалистам Allterra Education. Мы помогаем построить образовательный маршрут, выбрать подходящий университет и подготовиться к успешному поступлению.

Как попасть в Google: инструкция по подготовке

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

Сергей Сема, Software Engineer в команде Google в Цюрихе, рассказал на dou.ua о своём опыте трудоустройства

Я постараюсь описать весь свой опыт и те подводные камни, которые я встретил при подготовке к собеседованию в Google и другие компании Долины (Microsoft, Amazon, Snapchat, Evernote, Cruise Automation, Uber и др.). Я ставил цель получить оффер от Google или Facebook, а еще лучше от обеих, все остальные компании были из разряда «ну если там будет очень интересно, то можно». С первого дня, когда я начал подготовку, до момента, когда я получил оффер от Google, прошло 1 год и 5 месяцев. Первый оффер я получил после 1 года и 2 месяцев подготовки. Всего было 7 онсайтов (интервью в офисе компании), из них 3 оффера (Google, Evernote, Cruise Automation). Таки приступим.

Предыстория

Я был вендором в Google в Mountain View на протяжении полутора лет. Там же было несколько гуглеров, которые тоже были вендорами до этого. Конечно, мозг постоянно подсказывал, что они «другие», что они «умнее-лучше-круче», чем я. А мой удел — быть вендором. Я даже один раз попробовал решить задачку на LeetCode. Осилить я смог 5-ю easy задачку, которая получилась на 120 строк кода и в результате так и не прошла тесты. На это ушло 5 часов прекрасного субботнего калифорнийского дня. Я окончательно понял, что вот всем вокруг «дано», а мне нет.

Но все же, проводя с друзьями-гуглерами много времени, я понял приблизительный алгоритм — что и как нужно делать. Я сделал в точности, как они сказали, и получил оффер (чему был немало удивлен). Второй нюанс — в Google я делал front-end, все мои друзья были back-end, и подготовку они описывали именно для back-end. Я подумал и решил: «А back-end тоже хорошо (я же когда-то писал на .NET, хотя и давно), буду идти в точности как они, но сделаю больше, чем они, и тогда точно получу оффер».

Как попасть в Google: инструкция по подготовке 1

Мотивация

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

Что я имею в виду

Подготовка требует много времени: приблизительно 2-3 часа каждый рабочий день и каждый выходной полностью. То есть, по сути, все свободное время. Я был без жены и детей, и было проще, с одной стороны, — никто не требует постоянного внимания. С другой — никто и не поддерживает.

Я считаю, с людьми, с которыми ты тесно связан, нужно договариваться «на берегу», чтобы они знали, чего ожидать, разделяли цели, помогали в трудные периоды (они будут, у всех они были).

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

Пример 1: «Я хочу в Google, потому что это круто», «Я хочу в Facebook, потому что там много денег» — это для себя. В любой момент можно найти статью о том, что Google — это тлен, что денег там дали меньше, чем в другой компании, что там скучно, много политики. И что? И все, мотивация упала, книжки с алгоритмами летят в окно.

Пример 2: «Я хочу в Google, чтобы вывезти свою семью в США и дать детям хорошее образование», «Я смогу, имея деньги от Facebook, сделать это и это». В моем случае мотивация звучала так: «Я хочу быть ближе к дому». Я рассматривал переезд в Лондон либо Цюрих. Когда я начал подготовку, я себе так сказал: «Пацан, ты следующий раз полетишь домой, когда получишь оффер, и только так». Домой хотелось, и это давало энергию. Я думаю, это работает не для всех и не всегда, но для меня сработало.

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

Процесс в общем

Весь путь можно разделить на несколько этапов:

  1. Решение задач на LeetCode или InterviewBit.
  2. Изучение алгоритмов и структур данных.
  3. Повторение решенных задач на LeetCode.
  4. Подготовка к дизайн-интервью.
  5. Mock-интервью (телефонные и на вайтборде).
  6. Реальные интервью.
  7. Оффер и алкогольное забвение.

Решение задач

Это самая важная и самая длительная часть подготовки.

Сколько задач нужно решить? Я считаю — 200-250, из которых 40-50% easy, 40-50% medium, 10-20% — hard. Я решил около 300, мои друзья — 120-160.

А что если сначала пройти курс по алгоритмам, а потом решать задачки? Это была моя первая идея, спасибо друзьям, отговорили. Задачки уровня easy не требуют знания сложных алгоритмов, а простые можно дочитать в процессе решения задач.

А что если я сначала прочитаю всю книжку «Cracking Coding Interview» с решенными задачками и уже весь подготовленный пойду в бой? Не стоит:) Решение, которое я просто прочитал, я не мог вспомнить даже под конец того же дня, не говоря уже через несколько дней.

Можно прочитать начало «Cracking Coding Interview». Там хорошо описан сам процесс интервью, как общаться, базовые вещи об алгоритмах и структурах данных, как анализировать сложность алгоритмов и т. д. К примеру, как анализировать сложность рекурсивных алгоритмов я понял именно из нее.

Перед тем как начать решать задачки на определенную тему можно прочитать решение схожих задач в «Cracking Coding Interview». Причины тут две:

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

А какие вообще существуют задачи, какие темы нужно покрыть?

Понять, какие вообще тематики существуют, можно с InterviewBit. Мне не очень понравилось там решать задачи, но вот общее представление я получил. Ну и кроме того, можно полистать «Cracking Coding Interview».

В какой последовательности стоит решать задачи?

Нужно идти от простых тем к сложным (InterviewBit подскажет порядок). В каждой теме решать задачки до тех пор, пока не начнет хоть чуть-чуть получаться, и в этот момент сразу переключиться на следующую тему. Начинать, конечно, с уровня easy. Я пытался решать каждую задачу на протяжении около получаса-часа. Если не смог — шел смотреть решение. На LeetCode к каждой задаче есть форум, где люди постят свои решения, обсуждают, голосуют. Я выбирал топ решений и изучал их, так и учился. Наверное, эти форумы — самое ценное место для обучения. Далеко не все решения просто понять, даже те, под которыми стоят комментарии «This is absolutely awesome. ».

Например, начал я решать задачи на строки. 1-я — не решил, пошел смотреть решение, 2-я… 5-я — то же самое. 6-я, 7-я — решил. Значит, пора переключиться на следующую тему. Секрет такой — переключаться между темами нужно как можно чаще, так лучше запоминается. Но если переключиться до того, как начнет получаться, то через несколько тем можно демотивировать себя полостью. Мозг услужливо подскажет: «Ну раз ты ничего не можешь решить — то иди выпей пивка и посмотри футбол, это просто не твое». Нужно быть готовым к тому, что самооценка и настроение будут как американские горки: получается — мы несемся вверх, не получается — унываем и падаем вниз. Просто нужно помнить, что и первое, и второе — это временно, нужно продолжать. Если долго нет результата — брать задачки проще.

Как происходит решение задачи?

Конечно, можно просто взять и решать задачки на LeetCode и не заморачиваться с тем, что я опишу ниже. Но результат будет куда лучше, если использовать следующий алгоритм, поскольку он полностью повторяет шаги на реальном интервью:

  1. Читаем условие задачи, ни в коем случае не пытаемся придумать решение до того, как условие прочитано до конца. Это важно. Мозг пытается найти похожую задачу, решение которой он знает, и выдать за требуемое.
  2. Пытаемся придумать уточняющие вопросы.Пример 1: есть задача, в которой нужно как-то трансформировать строку. Что спрашивать? — Какие символы могут быть в строке — ASCII или Unicode? Могут ли рядом стоять несколько пробелов? Могут ли быть пробелы в начале или конце строки? Есть ли спецсимволы типа -,.^/ ? Есть ли разница для анализа между большой и маленькой буквами? Насколько длинная входная строка? Помещается ли она в память машины?Пример 2: есть массив из Integer, в нем нужно что-то найти. Вопросы: есть ли повторяющиеся элементы? Есть ли отрицательные числа? Что если в результате подсчета мы получим больше, чем Integer.MAX_VALUE?
  3. Рисуем примеры, лучше парочку — один классический, второй с corner cases. После этого мы +/- должны быть уверены в том, что задачу мы поняли правильно.
  4. Придумываем решение «в лоб» и оцениваем его сложность. Сложность решения нужно уметь определить всегда.
  5. Придумываем более оптимальное решение, оцениваем его сложность.
  6. Разрабатываем API решения — какие будут методы (приватные и публичные).
  7. Пишем код в тетрадке.
  8. Дебажим код по тетрадке на новом примере. Не нужно брать один из примеров, который мы рисовали в начале. В этом случае очень высока вероятность, что мы написали решение именно для этого случая, а не для всех возможных. Лучше взять новый пример с corner-кейсом, такой, чтобы потенциально мог решение сломать.
  9. Перебиваем код в любимую IDE, при этом не смотрим в бумажку. Таким образом, мы повторяем решение два раза.
  10. Копируем код из IDE в LeetCode и запускаем. В случае идеального выполнения должно cработать правильно с первого раза. У меня такое получалось в 10% случаев.

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

А что же делать, если задачка не решается?

Когда я не смог придумать решение за полчаса-час (сначала бывало, что я по полдня страдал над одной задачей), то шел смотреть лучшие решения на форуме. Разбор решения — почти всегда непростая задача и требует времени: нужно пересмотреть и понять несколько решений, понять сложность, дочитать ссылки на алгоритмы, которые указывают авторы решений. Большинство алгоритмов я нашел и изучил после того, как встретил их в реальных решениях. А что же дальше с этим делать? А дальше нужно повторить с этой задачкой все шаги, которые я привел выше. И куда лучше сделать это на следующий день или как минимум под конец этого дня.

Все свои решения я заливал на GitHub. Хорошо видна статистика, и всегда есть доступ к коду. Это я начал делать после того, как LeetCode затер все мои решения. Так что LeetCode — не лучшее место для хранения своих решений.

Важно вести статистику (вот моя), в которой будет следующее:

  • что когда решил;
  • Group A — список задач, которые не решил самостоятельно;
  • Group B — список задач, которые решил самостоятельно, но при этом очень страдал.

Это я считаю критически важным, так как задачи нужно будет повторить, и в первую очередь нужно повторять A, за ними — B.

Ноу-хау «дверь»

После того, как я решил порядка 230 задач (это был мой изначальный план), я переключился на изучение алгоритмов (об этом позже). Когда я прокачался в алгоритмах, что заняло около двух месяцев, пришло время задачи повторять. И вот здесь получилась интересная штука: повторить задачу — по времени не многим меньше, чем решить ее (так как шаги нужно использовать те же, только код из тетрадки не переписывать в IDE). И тут пришла долгожданная демотивация — не чувствует организм, что делает что-то полезное, и все тут. Я стал думать, как проблему решать, понял, что я визуал и мне нужно визуальное подтверждение своей деятельности. И оно нашлось. Каждую задачу, которую повторил, я записывал на стикере: номер задачи, сложность (easy, med, hard), тема и краткое решение. Краткое решение — это не код. Как оказалось, код запомнить почти невозможно, а вот простые шаги типа «1. Создаем мапу с каунтерами, 2. Находим в ней Х …»- вполне. Задачи из одной темы попадают в один ряд, сложность можно отмечать цветами (это я понял позже).

Цель была следующая — все решенные задачи должны быть повторены и появиться на двери как стикеры. Когда я наклеил первые 10 стикеров и это отняло несколько дней, честно скажу, хотелось плакать. Мозг подсказывал: «До 230 осталась бесконечность».

В результате на моей двери появилось 218 наклеек. Некоторые задачи я так и не успел повторить.

Как попасть в Google: инструкция по подготовке 2

Алгоритмы

Я изучал алгоритмы по курсам дедушки Седжвика на Coursera (часть 1, часть 2). Видео этих курсов можно найти на торрентах.

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

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

Дизайн-интервью

Дизайн-интервью состоит из так называемых открытых вопросов по дизайну, типа «как задизайнить YouTube». По началу я совсем не мог понять, что требуется и как это должно выглядеть. Потом я нашел курс «Grokking the System Design Interview», который мне открыл глаза. Он стоит свои 80 баксов.

Вот еще одно видео от Джексона (Facebook guy), которое даст понимание процесса. Хорошее обсуждение на Quora.

Еще очень полезно почитать примеры реальных проблем, например, на High Scalability. Если у компании, в которую идем на собеседование, есть инженерный блог, его точно стоит почитать.

Behavioral-интервью

Можно писать много, но за меня хорошо скажет Джексон. В моей практике такое интервью было только в Facebook. Задача интервьюера — понять, что ты собой представляешь как личность, будет ли с тобой комфортно работать, как ты себя будешь вести в условиях конкретной компании.

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

Mock-интервью

Mock-интервью — это то же самое, что и обычное интервью с той разницей, что его проводят друзья, коллеги или специальные компании. А потом дают свой отзыв — что хорошо, что нужно поправить. Это тоже критически важный шаг, упускать его не стоит. Конечно, будучи в Долине, сделать это в разы проще. Вокруг меня было много друзей гуглеров, действительно клевых ребят, которые мне провели порядка 20-ти mock-интервью. Я был как Том Сойер, который взялся красить забор, а в результате красили забор все. Интервью мы проводили, конечно, на английском на вайтборде со строгим ограничением по времени.

Телефонные mock-интервью (а потом и реальные) я проходил на interviewing.io. Я просто полюбил этот ресурс, ребята реально молодцы. Но они сейчас заточены под США и предоставляют этот сервис по США. Бывали дни, когда у меня в неделю было около 7-8 собеседований на interviewing.io.

Сначала было страшно и некомфортно. Но к 10-му разу я привык, и стало нравиться. Первые интервью я валил, потом стало получаться. Средняя конверсия была 50%, то есть половину прошел, половину — нет. Всего телефонных собеседований (реальных и mock) было около 30-35.

Как подаваться

Самый простой и самый малоэффективный метод — заполнить форму на сайте компании. Но иногда и он дает результаты. К примеру, я заполнил форму на сайте Snapchat, и на следующий день со мной связался рекрутер, мы договорились о телефонном интервью. С Google, я думаю, это абсолютно бесполезно, так как эту формочку заполняют тысячи раз в день.

Второй способ — сайты работ типа Hired.com. Ты заполняешь все данные о себе, а потом компании, которым ты подходишь, сами с тобой связываются. Сервис ориентирован на рынок США. Без H1 или грин-карты там делать нечего.

Способ третий — interviewing.io, о котором я упоминал выше, и схожие сервисы. Они работают так: сначала ты проходишь на их платформе телефонные mock-интервью. Как только ты успешно проходишь два, они дают тебе возможность проходить анонимные телефонные интервью с реальными компаниями на их платформе. К примеру, сотрудник Uber и ты заходите в одно и то же время, и он тебя собеседует. Если прошел — дальше онсайт. Mock-телефонное и реальное телефонное интервью не отличаются вовсе. Минусов в interviewing.io несколько. Первый — они больше сотрудничают со стартапами, больших компаний мало. Второй — ориентированы на Штаты (нужна H1 или грин-карта).

Опубликован список наиболее популярных слов в исходных кодах — автор проанализировал 2 ТБ данных

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

Резюме

Резюме инженера в Долине и Украине очень отличается. Оно должно быть кратким (лучше не выходить за рамки двух страниц), показывать, что ты реально сделал (твой импакт для компании).

Лариса, инженер в Google, много пишет на тему интервью, Google, Долины в своем блоге. У нее есть интересный раздел «Резюме на проверку». Здесь люди открывают доступ к Google doc со своим резюме, Лариса и другие читатели его комментируют и пытаются улучшить.

Телефонное интервью

Стандартное телефонное интервью включает в себя общение голосом (по телефону, скайпу, hangouts и т. д.) и написание кода в shared Google doc или shared online IDE. Занимает по времени 1 час либо 45 минут, это нужно уточнить заранее.

Первые пару минут уходят на знакомство — интервьюер расскажет немного о себе, соискатель в ответ тоже должен рассказать, кто он и что он. У меня сначала с этим было туго, потом я написал и отточил self-presentation на 2 минуты, отрепетировал ее с помощью диктофона. Это, по сути, первое впечатление о тебе, и лучше его не испортить.

Дальше интервьюер копирует в shared doc условие задачи и несколько примеров. Сразу стоит уточнить, сколько дается времени на решение задачи, поскольку задач может быть одна, две или даже три. Часто это две задачи — одна простая для старта и вторая уже более серьезная. Иногда это одна задача, но после того, как готова первая часть, интервьюер усложняет исходную задачу дополнительными условиями. После всех уточнений нужно идти по плану, который я приводил для решения задачи.

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

Самый эпический пример этой ошибки у меня случился на онсайт-интервью в Evernote. Задача была следующая — распарсить CSV-файл с расписанием поездов и написать программку, которая будет подбирать оптимальный поезд по определенным условиям. Можно гуглить. Я до этого код для работы с файлами на джаве не писал и растерялся. Решил так, я сейчас быстренько с файлами разберусь, а там уже как-то алгоритм построю. Времени на все — 1 час 15 мин. Я полчаса строил красивые врапперы вокруг чтения из файла, пучок сущностей, описывающих поезда, маршруты и прочий мусор. При этом мало представлял, как алгоритм выбора будет работать. Дальше я понял, что я не успеваю, не понимаю, как строить алгоритм, подступила паника. За 12 минут до конца собеседования я понял, как оно должно быть. За 15 минут (с опозданием в 3 минуты) я написал код (с парой ошибок, правда). Так быстро я не писал код никогда в своей жизни.

Онсайт-интервью

Если телефонное интервью прошло успешно, следующий шаг — онсайт. Компания покупает тебе билеты на самолет, оплачивает отель, и ты летишь к ним в гости. Я так летал в Лос-Анджелес на интервью в Snapchat.

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

Какие бывают типы интервью на онсайте и как к ним подготовиться

Классическое техническое интервью с задачами

Тут все относительно понятно — то же самое, что и на телефонном. Нужно держать в голове следующий факт — уложиться нужно в ⅔ времени и ⅓ оставить на непредвиденные обстоятельства, поверьте они будут. В Google одно интервью 45 минут, это означает, что после знакомства у вас есть 25 минут на все. Из них 2-5 минут на то, чтобы понять задачу и нарисовать примеры, 2-5 — чтобы придумать решение и 15-20 на написание кода и дебаггинг. Во время дебаггинга, конечно, всплывут ошибки, и их нужно быстро и красиво пофиксить. Именно на это и нужна та заветная ⅓.

Нюанс — всегда нужно идти на интервью со своим лэптопом. Первым делом нужно спросить, можно ли кодить на нем. В Facebook меня спросили: есть лептоп? хочешь на нем кодить? Ответ — конечно, да! Это быстрее, и вероятность ошибки в разы ниже. К тому же, переписывать код на вайтборде и в IDE — это две большие разницы. У меня неоднократно была ситуация, когда я исправлял ошибки на вайтборде, в результате чего код становился абсолютно нечитаемым (и, скорее всего, с новыми ошибками). Интервьюеры смотрели на это с грустью и слезами.

На лэптопе должны быть любимая IDE и проектик с типовыми шаблонами:

  • работа с файлами;
  • парсинг CSV-файлов;
  • считывание по http;
  • HTML- документ с подключенными стилями.

Еще помните мой печальный опыт с Evernote? Так вот, на следующем онсайте меня тоже попросили распарсить CSV, это заняло 3 минуты. Интервьюеры не против, если ты используешь такие шаблоны — это экономит время, и они понимают, что ты способен нагуглить, как распарсить файл.

Важный момент — нужно всегда контролировать время. На одном из интервью в Google мой интервьюер, парень лет 25-ти, задал мне хитрую задачку на динамическое программирование. Я нашел способ, как ее решить за квадратичное время, на что он спросил: «А лучше можно»? И я начал искать, как это сделать, подступала паника, но решение «лучше» найти я не мог. Наш диалог дальше:

Я: Не могу придумать решение лучше. Может, напишем мое решение и после этого подумаем?
Он: Давай еще 10 мин подумаем. Если не найдешь, напишем твое.
Я: Мне кажется, что времени может быть мало. Давай все же напишем мое сначала.
Он: Ну ок.

Я успел дописать свое решение с опозданием в 5 минут. Если бы послушал его, то не написал бы ничего и провалил интервью на 100%. А после такого в космонавты не берут. Штука в том, что он прикидывал, сколько времени нужно ему для написания задачки на доске, зная решение досконально.

Рассказ о предыдущем проекте

К этому вопросу нужно хорошо подготовиться заранее, продумать, что рассказывать. Можно даже подготовить небольшую презентацию в Google Slides и рассказывать по ней, параллельно рисуя диаграммы на вайтборде. Здесь нужно показать важность решения (для чего все это) и сложность решения.

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

Дизайн-интервью

Это отдельный зверь, не очень страшный, но специфический. Здесь тебе дают очень общие начальные условия типа «Нужно построить Dropbox» и смотрят, как ты продираешься через терновые кусты неопределенности. Какие вопросы ты задаешь, как анализируешь проблему.

Мои выводы по этому типу интервью:

  • Первым делом нужно собрать требования. Очень четкие и конкретные требования, которым должна отвечать система. Типовые вопросы, которые можно задать: how many users, active users, time zones (one or few). Acceptance criteria — network bandwidth (in-going/ out-going traffic), RAM, storage, latency, battery life (for mobile) etc.
  • Представь, что интервьюер — это твой заказчик (или пользователь), для которого строится система. Что ему нужно? А что можно предложить сверх этого (сбор статистики, админпанель)?
  • Какие будут пользователи у этой системы? Часто их несколько — general users и administrators. И требования для них могут быть кардинально разные. Понимая это, нужно собрать все use cases. Один use case будет отвечать одному методу в API.
  • Определяем три ключевых элемента — UI (если таковой имеется), API, DB schema. Часто, рисуя UI, можно найти новые use cases и обговорить их.
  • Оценить все, что только можно, — number of users, requests (queries) per second (QPS), latency, API latency, disk space you need (for 5 years for instance), cache space, in-going/out-going traffic.
  • Отдельно оценить read-write ratio. Наша система read heavy или write heavy? В зависимости от этого, как мы будем писать и читать данные?
  • Как будет организовано хранилище данных, кеширование? Возможно, нужна очередь для обработки дорогостоящих операций? Как будут организованы replicas и shards (нужно хорошо понимать различие между этими понятиями)?
  • Для упрощения понимания сначала можно построить систему для 100 пользователей. После того как интервьюер согласится с таким дизайном, можно подумать, как будем его масштабировать до тысяч и миллионов пользователей.
  • Найти trade-offs и обсудить их. К примеру, это может быть trade-off между consistency и speed. Что важнее в данном контексте? Как этого добиться?
  • Когда мы рисуем диаграммы, ни один блок не должен быть в единичном экземпляре, это всегда сет из многих. При падении одного узла его тут же должен заменить его клон. Нужно продумать, какие могут быть аварийные ситуации и как мы будем с ним бороться.
  • И самое главное — внимательно слушать интервьюера и никогда-никогда с ним не спорить. Это кажется очевидным, но многие (и я среди них) об этом забывают.

Как попасть в Google: инструкция по подготовке 3

Вопросы интервьюеру

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

Пример плохих вопросов: на каком языке программирования вы пишете? На каком клауде у вас стоит инфраструктура? Какая у вас СУБД? В чем тут проблема — компания нанимает универсального солдата, который за месяц-два должен разобраться в технических деталях. То есть это, по сути, не важно, это как-бы слишком узко.

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

За 10 дней до важного онсайта

У меня было два самых важных онсайта — Google и Facebook. Google был первым, и я достаточно сильно переживал. За 10 дней до онсайта я составил расписание на каждый день, что нужно сделать. Оно содержало следующее: повторение алгоритмов, типовых задач, задач, которые встречались на собеседованиях в Google, вопросы по дизайну. 5 дней до интервью я не ходил на работу и ушел в подготовку с головой.

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

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

Финал

Через несколько дней после онсайта мне позвонил рекрутер. Поздравил, сказал, что я молодец, все прошло хорошо. Мне нашли команду в Швейцарии в Цюрихе. Официальная позиция — Software Engineer. Я выдохнул. Голова была абсолютно пустой, я добежал. Забег в 1 год и 5 месяцев объявляется закрытым.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *