Как да намерим работа на софтуерен инженер в Google и други водещи технологични компании

Здравейте всички!

Вече говорих за това как аз лично намерих работа на софтуерен инженер в Google в няколко видеоклипа в моя канал за програмиране и обучение в YouTube, наречен CS Dojo.

Въпреки това много хора все още ме питат как да си намеря работа в Google като софтуерен инженер. И така, ето моята статия, обясняваща стратегията, която бих използвал.

Можете да използвате същата стратегия, за да получите работа за софтуерно инженерство не само в Google, но и в други топ технологични компании като Amazon, Microsoft и Facebook.

В тази статия ще ви покажа шестстепенния процес за намиране на работа в една от тези компании. По пътя ще обсъдя и:

  • Как да се научите да кодирате на първо място
  • Какво да научите, след като се научите да кодирате
  • Как да получите първата си работа за кодиране или стаж
  • Най-добрите начини да кандидатствате за работа на софтуерен инженер
  • Как най-добре да се подготвите за интервюта за програмиране
  • Важно ли е да получите степен по компютърни науки?
  • Важно ли е да отидете в топ университет?

Добре, да започнем!

Стъпка 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, Станфорд, Карнеги Мелън и т.н.?

Отново краткият отговор е отрицателен. Вероятно помага малко, но далеч не е необходимо.

Ласло Бок, бивш старши вицепрезидент на People Operations в Google, също е съгласен.

Според книгата, която той е написал, Work Rules !, Google предпочита най-добре представящите се ученици в по-малко известни училища пред посредствените ученици в най-добрите училища като MIT.

Мисля, че това има смисъл, защото ако си умен и отдаден, не би трябвало да има голямо значение в кое училище си ходил.

Трябва ли да имам висок среден успех?

Краткият отговор е не, отново.

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

Всъщност, съгласно Правилата за работа!, В миналото Google се грижеше много за GPAs на кандидатите. Те обаче откриха, че наличието на висок среден успех не е силно свързано с постигането на силни резултати на работното място в дългосрочен план. След тази констатация те спряха да поставят толкова силен акцент върху GPA.

Какво ми трябва тогава?

По принцип всичко, от което се нуждаете, е силно кодиране и умения за решаване на проблеми, добро разбиране на основите на CS и интересни проекти и опит, които да покажете във вашето резюме.

Ще можете да изградите всичко това, ако следвате 6-те стъпки, които обясних по-горе.

Чакай, как мога да напиша добро резюме обаче?

Ако искате, можете да използвате резюмето, което използвах, за да кандидатствам в Google като шаблон.

  • Ето PDF версията.
  • Ето този за Word.
  • Ето този за Pages.

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

Допълнителни ресурси за написване на резюме :

  • Тук има хубав преглед на тази тема в CareerCup.
  • Моят приятел Zhia Hwa Chong, който е софтуерен инженер в Twitter, има хубава статия за това тук.

Добре, късмет и благодаря, че прочетохте тази статия!

Ако имате някакви въпроси, моля, уведомете ме в коментар по-долу или в Instagram или Twitter (@ykdojo и за двата).