Как получить работу программного инженера в Google и других топовых IT компаниях

NOP
NOP::Nuances of Programming
7 min readAug 4, 2018

Перевод статьи YK Sugi: How to Get a Software Engineer Job at Google and Other Top Tech Companies

Всем привет!

На своем образовательном YouTube канале (CS Dojo) я уже говорил о том, как получить должность инженера программного обеспечения в Google.

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

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

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

Давайте же начнем!

Шаг 1: Учитесь кодить

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

Именно поэтому я рекомендую начать свой путь с таких сайтов, как Codecademy и freeCodeCamp. На них вы узнаете всю необходимую базу. Также я слышал неплохие отзывы о сайте SoloLearn.

Для более продвинутых тем мы будем использовать видеоуроки. Для этого отлично подойдут YouTube, Pluralsight, Lynda.com и Udemy. На данных платформах вы сможете найти уроки на различные темы, а именно:

  • Веб-разработка
  • Разработка мобильных приложений
  • Разработка игр

Все зависит от ваших интересов.

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

Если совсем уж кратко: выбирайте JavaScript, либо Python. Ну а если отвечать развернуто: выбирайте то, что вам по душе и посмотрите ролик по этой теме на моем Youtube канале.

Шаг 2: Поработайте над несколькими проектами

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

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

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

Шаг 3: Получите свою первую работу или стажировку

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

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

Как и где подавать заявку на собеседование?

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

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

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

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

Это еще не все!

Перечисленные стратегии работают только в том случае, если вы устраиваетесь в маленькую компанию. Для компаний гигантов, вроде Google и Facebook — такой трюк не прокатит.

Поэтому я предлагаю воспользоваться сразу же 3 стратегиями одновременно, и наконец-таки получить письмо или звонок из Google или любой другой крупной компании:

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

Используйте эти три стратегии — это увеличит ваши шансы на трудоустройство в крупной IT компании.

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

Шаг 4: Изучите структуры данных и алгоритмы

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

Чтобы разобраться с базовыми принципами структур данных и алгоритмов, вы можете посмотреть на моем Youtube канале небольшой цикл видеороликов по этой теме. Когда я записывал этот мини-курс, я старался объяснить эту тему максимально простым языком.

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

-Эти курсы из Стэнфорда на Coursera

-Этот курс MIT на YouTube

-Руководство по разработке алгоритмов. Автор Стивен Скиен (книга)

-Алгоритмы (другая книга)

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

Шаг 5: Подготовьтесь к собеседованию

Успешно пройти собеседование в таких компаниях, как Google или Microsoft достаточно сложно, однако к ним достаточно легко подготовиться.

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

  • Leetcode — интерактивная платформа, где вы сможете ознакомиться с теми задачами и проблемами, которые будут ставиться перед вами на собеседовании.
  • Cracking the Coding Interview — популярная книга о том, как успешно пройти собеседование в качестве разработчика.
  • Daily Coding Problem- ресурс, который будет присылать вам одну проблему/задачу в день для последующего решения.

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

Как мне сделать тестовое собеседование?

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

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

Шаг 6: Подавай заявку на собеседование снова и снова :)

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

  • Посещайте различные рекрутинговые мероприятия, хакатоны, различные ивенты и так далее…
  • Если кто-то из ваших друзей уже работает в той или иной IT- компании, то попросите их замолвить о вас словечко
  • Отправьте в интересующую вас компанию свое резюме онлайн

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

Я, например, получил свою работу в Google, в качестве программного инженера, только с пятого раза!

Вот и все! Повторим все пройденные шаги:

Шаг 1: Учитесь кодить

Шаг 2: Поработайте над несколькими проектами

Шаг 3: Получите свою первую работу или стажировку

Шаг 4: Изучите структуры данных и алгоритмы

Шаг 5: Подготовьтесь к собеседованию

Шаг 6: Подавай заявку на собеседование снова и снова

Постойте! Неужели все действительно так просто?

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

И еще пара моментов:

Обязательно ли мне знать базовый курс по информатике и иметь соответствующий диплом?

Мой ответ: нет! Тем не менее, получив образование и соответствующий диплом, вам будет намного проще в дальнейшем при устройстве на работу и к тому же, вас не шибко побеспокоят первые четыре шага из моего списка(), возможно, вы их даже пропустите и сразу перейдете к двум последним шагам!

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

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

Обязательно ли мне поступать в университет, например: MIT, Stanford, Carnegie Mellon и т.д.?

Опять же, мой ответ: нет!

Лазло Бок, некогда бывший вице-президентом по работе с людьми в Google подтвердит это!

В своей книге «Правила работы» он писал, что компания Google предпочитает нанимать топовых сотрудников, выпустившихся из менее известных университетов, чем посредственных работников из лучших ВУЗов, например, таких как Массачусетский технологический институт.

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

Нужен ли мне высокий средний балл в дипломе?

Ответ — нет! Конечно, высокий средний балл поможет вам при назначении собеседования, однако гораздо важнее иметь солидный опыт и интересные проекты, над которыми вы работали и которые отразили в своем резюме.

На самом деле, согласно книге Лазло Бока «Правила работы», раньше средний балл кандидата имел весомое значение при устройстве на работу в Google. Однако, затем в Google пришли к выводу, что высокая продуктивность не зависит от того, насколько высокий балл стоит у тебя в дипломе и затем они просто перестали уделять так много внимания баллам в дипломе.

Что же мне тогда нужно?

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

Всего этого можно добиться, выполнив все 6 шагов из этой статьи.

А как же мне написать хорошее резюме?

В качестве шаблона вы можете использовать письмо, которое я отправлял в Google.

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

Дополнительные ресурсы для написания резюме:

Вот и все пожалуй. Удачи вам и спасибо за прочтение!

Если у вас возникли вопросы, обращайтесь! Мои контакты: Instagram и Twitter.

--

--