Як отримати роботу інженера-програміста в Google та інших провідних технологічних компаніях

Привіт всім!

Я вже говорив про те, як я влаштувався на роботу інженером-програмістом в Google, у кількох відео на своєму програмово-освітньому каналі YouTube під назвою CS Dojo.

Однак багато людей все ще запитують мене про те, як влаштуватися на роботу в Google інженером-програмістом. Отже, ось моя стаття, що пояснює стратегію, яку я б використав.

Ви можете використовувати ту саму стратегію, щоб отримати роботу в інженерії програмного забезпечення не тільки в Google, але і в інших провідних технологічних компаніях, таких як Amazon, Microsoft та Facebook.

У цій статті я збираюся показати вам 6-етапний процес влаштування на роботу в одну з цих компаній. По дорозі я також збираюся обговорити:

  • Як навчитися кодувати в першу чергу
  • Чого навчитися, навчившись кодувати
  • Як отримати першу роботу з кодування або стажування
  • Найкращі способи подати заявку на роботу інженера-програміста
  • Як найкраще підготуватися до програмування співбесід
  • Чи важливо отримати ступінь інформатики?
  • Чи важливо вступати до провідного університету?

Добре, давайте почнемо!

Крок 1: Навчіться кодувати

Це абсолютна мінімальна кваліфікація, необхідна для того, щоб стати інженером-програмістом.

Для цього я рекомендую вам розпочати роботу з інтерактивним веб-сайтом, таким як Codecademy та freeCodeCamp. Ви можете вивчити більшість основ програмування на цих сайтах. Я також чув, що SoloLearn теж хороший.

Після цього я б використовував відеоуроки для вивчення більш просунутих тем. Для цього я рекомендую такі веб-сайти, як YouTube, Pluralsight, Lynda.com та Udemy. На цих веб-сайтах ви зможете знайти підручники з таких тем, як:

  • веб-розробка
  • Мобільна розробка
  • Розробка ігор

залежно від вашого інтересу.

Але почекайте, яку мову програмування мені слід вивчити в першу чергу?

Моєю короткою відповіддю буде вибір JavaScript або Python, але це насправді залежить від ваших інтересів. У цьому відео у мене є довша відповідь на це питання.

Крок 2: Попрацюйте над кількома особистими проектами

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

Для цього вам слід знайти те, що вам цікаво будувати.

Наприклад, якщо вам подобається фотографія, можливо, ви можете створити портфоліо-сайт для всіх своїх фотографій. Якщо вам подобається торгувати акціями, можливо, ви можете створити систему, яка аналізує для вас графіки акцій. Або, якщо вам подобається вирішувати проблеми, ви можете спробувати взяти участь у змаганні з кодування.

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

Крок 3: Отримайте першу роботу з програмування або стажування

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

Отримати свою першу роботу можна в одній з провідних технологічних компаній, але набагато простіше і частіше отримати її спочатку у менш відомій компанії.

Найкращі способи подати заявку на роботу інженера-програміста

Просто подання заявки на роботу в Інтернеті - не обов’язково найкраща стратегія, адже це те, що роблять майже всі інші.

Натомість я рекомендую використовувати LinkedIn та особисту мережу, щоб отримати свою першу роботу з програмування.

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

Для персональних мереж я б рекомендував веб-сайти, такі як Meetup, зустрічатись з інженерами та рекрутерами в місцевих компаніях.

Чекай, чекай, але це ще не все.

Використання LinkedIn та персональних мереж добре працюють, якщо ви подаєте заявки на малі та середні компанії. Однак я виявив, що ці стратегії менш ефективні для таких популярних компаній, як Google та Facebook.

Натомість для цих великих компаній я рекомендую поєднати наступні три стратегії:

  1. Ярмарки кар’єри та рекрутингові заходи в сусідніх університетах.
  2. Зверніться до вас із друзями, які працюють в одній із цих компаній
  3. Просто подайте заявку через Інтернет.

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

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

Крок 4: Вивчіть структури даних та алгоритми

Провідні технологічні компанії, такі як Google та Microsoft, часто ставлять запитання щодо структур даних та алгоритмів у своїх інтерв’ю. Отже, вам слід їх вивчити, якщо ви ще цього не зробили.

Щоб навчитися основам, я б порекомендував свою серію відео про структури даних та алгоритми. Це все на YouTube. Я зробив ці відео, щоб максимально спростити ознайомлення з цією темою.

Оскільки в цій серії лише 7 відео, вам знадобиться більше матеріалу, щоб вивчити більш просунуті теми.

Для цього існує кілька популярних варіантів, серед яких:

  • Ці Стенфордські курси на Coursera
  • Цей курс MIT на YouTube
  • Посібник з проектування алгоритму Скіени (книга)
  • Алгоритми (інша книга)

Вам слід спробувати кілька з них і продовжити ту, яка вам найбільше подобається.

Крок 5: Підготуйтеся до кодування співбесід

Інтерв’ю з кодуванням у таких компаніях, як Google та Microsoft, важко, але підготуватися до них досить просто.

Як тільки ви добре зрозумієте структури даних та алгоритми, я рекомендую ці три ресурси для практики:

  • Leetcode - інтерактивна платформа для відпрацювання задач кодування співбесіди.
  • Cracking the Coding Interview - популярна книга про кодування інтерв’ю.
  • Щоденна проблема кодування - список розсилки, який дає вам одну проблему на день.

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

Як робити фальшиві інтерв’ю

По суті, поєднуйтесь зі своїми друзями та задавайте одне одному проблеми із ресурсів, про які я згадав вище.

Потім вирішіть кожну проблему на папері або в документі Google. Поясніть своє рішення своєму другові.

Переконайтеся, що ви практикуєтесь як співбесідник, так і інтерв’юер, щоб ви могли побачити, як це бути на місці інтерв’юера.

Після того, як ви зробите 20 або кілька фіктивних співбесід, ви повинні бути готові розпочати співбесіду з компаніями, в яких ви хочете працювати.

Крок 6: Подайте заявку, подайте заявку та подайте заявку ще раз :)

Використовуйте три стратегії, про які я згадав вище, щоб застосувати до провідних технологічних компаній:

  • набір заходів / ярмарок кар'єри
  • змусити друзів направити вас
  • та подання заявок через Інтернет.

Якщо ви не потрапили в перший раз, не хвилюйтеся. Насправді слід очікувати деяких невдач, оскільки потрапляння в будь-яку з цих компаній є конкурентоспроможним.

Мені особисто мені потрібно було подати заявку в Google 5 разів, перш ніж влаштуватись там на роботу інженером-програмістом.

Це воно! Ось короткий підсумок:

  • Крок 1: Навчіться кодувати
  • Крок 2: Попрацюйте над кількома особистими проектами
  • Крок 3: Отримайте першу роботу з програмування або стажування
  • Крок 4: Вивчіть структури даних та алгоритми
  • Крок 5: Підготуйтеся до кодування співбесід
  • Крок 6: Подайте заявку, подайте заявку та подайте заявку ще раз :)

Зачекайте, це справді так просто?

Так. Проте, щоб пройти всі 6 етапів, потрібно багато часу та відданості.

Ще кілька приміток:

Чи потрібно отримувати ступінь інформатики?

Коротка відповідь - ні. Однак отримання ступеня інформатики дуже допомагає. Якщо ви берете надійну програму CS, вона піклується про більшість кроків 1, 2, 3 та 4 (навчання кодуванню, виконання особистих проектів, отримання першої роботи з програмування або стажування та вивчення структур даних та алгоритмів).

Не здобуваючи ступінь CS, вам просто потрібно буде дізнатися більше самостійно.

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

Чи потрібно мені вступати до провідних університетів, таких як MIT, Stanford, Carnegie Mellon тощо?

Знову ж таки, коротка відповідь - ні. Можливо, це трохи допомагає, але це далеко не потрібно.

Ласло Бок, колишній старший віце-президент з питань діяльності людей у ​​Google, також погоджується.

Згідно з написаною ним книгою "Правила роботи!", Google віддає перевагу найкращим учням у менш відомих школах, а не посереднім студентам у таких провідних школах, як MIT.

Я думаю, що це має сенс, адже якщо ти розумний і відданий справі, не повинно мати великого значення, в яку школу ти ходив.

Чи потрібно мати високий середній бал?

Коротка відповідь - ні, знову ж таки.

Наявність високого середнього балу, мабуть, трохи допомагає і для отримання співбесіди, але, мабуть, набагато важливіше мати вагомий практичний досвід та цікаві проекти, щоб показати їх у своєму резюме.

Насправді, згідно з Робочими правилами! Раніше Google багато піклувався про середній бал кандидатів. Однак вони виявили, що високий середній бал не суттєво пов'язаний з високою ефективністю на робочому місці в довгостроковій перспективі. Після цієї знахідки вони перестали робити такий сильний акцент на ГПД.

Що мені тоді потрібно?

В основному, все, що вам потрібно - це сильні навички кодування та вирішення проблем, добре розуміння основ CS та цікаві проекти та досвід для показу у своєму резюме.

Ви зможете побудувати все це, якщо виконаєте 6 кроків, які я пояснив вище.

Зачекайте, як я можу написати хороше резюме ?

Якщо ви хочете, ви можете використати резюме, яке я застосовував до Google як шаблон.

  • Ось версія у форматі PDF.
  • Ось той для Word.
  • Ось той для Pages.

Це фактичне резюме, яке я використовував, щоб влаштуватися в Google інженером-програмістом. Це справді мала бути одна сторінка, тому я б сказав, що моє резюме було занадто довгим. Тим не менш, сміливо використовуйте це як вихідну точку.

Додаткові ресурси для написання резюме :

  • Тут є приємний огляд цієї теми на CareerCup.
  • Мій друг Чжіа Хва Чонг, інженер-програміст у Twitter, має тут приємну статтю.

Добре, удачі, і дякую, що прочитали цю статтю!

Якщо у вас є які-небудь питання, будь ласка, повідомте мене про це в коментарі нижче або в Instagram або Twitter (@ykdojo в обох).