Как да получите работа на софтуерен инженер в 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
  • Ръководство за проектиране на алгоритми от Skiena (книга)
  • Алгоритми (друга книга)

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

Стъпка 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, също се съгласява.

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

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

Трябва ли да имам висок GPA?

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

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

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

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

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

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

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

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

  • Ето версия на PDF.
  • Ето този за Word.
  • Ето тази за Страници.

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

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

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

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

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