Кацнах стаж във Facebook. Ето няколко съвета, които научих.

Наскоро приех оферта от Facebook след интервю с Google, Microsoft, Dropbox, Yelp и други. Взех малко да се замисля и да помисля какво ми помогна да се откроя. Ето няколко съвета, категоризирани по различни части на процеса.

Получаване на интервю: Възобновяване на изграждането

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

Изследвания . Мисля, че това ми отвори много повече врати - получих около 75% повече отговори от компании през семестъра, след като започнах да правя изследвания. Ако имате възможност да работите при преподаватели или аспиранти, вземете го. Не само научавате безумно много за кратък период от време и получавате наставничество от някои от най-ярките хора в тази област, но (във вашето резюме) вие също демонстрирате страст и стремеж към учене, който се простира отвъд класната стая.

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

Отворен код . Проектите, по които работите и допринасяте, също могат да бъдат с отворен код, още един плюс за вашето приложение. Ако не можете да намерите изследователска позиция, допринесете за отворен код. Като цяло на отворения код се гледа много положително и компаниите се хвалят колко допринасят за него. Това ви дава възможност да работите върху нещо, което е от полза за общността като цяло и да добавите към проект, който може да е много по-голям от вас самия.

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

Разработването на вашия личен уебсайт установява вашата лична марка и показва, че имате основни познания отпред. Отделихте време да научите HTML и CSS и да използвате използваната от вас уеб рамка - още един знак, че наистина се интересувате от разработването на софтуер.

Подготовка за интервюто

Така че сте получили имейл от рекрутер. Сега какво? Време е за подготовка!

Обикновено има две части на интервюта за софтуерно инженерство: поведенчески и технически.

Поведенческа подготовка

Подгответе 1–2 мин. Пилинг върху себе си. Какво прави миналото лято? Какви класове взехте, за да ви хареса напълно? По какви страхотни проекти сте работили наскоро? Не забравяйте да включите и своите изследвания и опит с отворен код.

Обикновено интервютата продължават между 45–60 минути, така че има максимум 15 минути, за да се говори за нетехнически подробности. Преди да интервюирам всяка компания, разгледах уебсайта й и свързаните блогове, за да науча повече.

Какво е готино за всяка компания? Какво всъщност правят те? Има ли по-малко известни клонове, които вършат работа, която ме привлича повече?

Намерете и обсъдете неща, които показват, че сте отделили време за проучване. Запишете тези неща някъде по време на първоначалното проучване, за да можете да ги посочите по-късно (като точно преди интервюто!). Всяко малко нещо може да ви разграничи от следващите 20 кандидати.

Интервюиращият обикновено се представя, може би говори за това каква е мисията на компанията и какво прави тя, и след това ви моли да говорите за себе си. Бъдете готови да рецитирате това, което сте подготвили.

Техническа подготовка

Технически неща, е, добре, технически - трябва да отделите време, за да научите материала. Ето няколко чудесни ресурси, които използвах, за да ми помогна да се подготвя за интервютата си:

  • бяла дъска. Често интервюиращият може да е написал код или код на нещо като документ на Google, който няма да се компилира. Тоест няма да имате представа, ако правите синтаксични грешки. Опитайте да напишете код на бяла дъска, когато се подготвяте. Това е много по-различно от кодирането в нормална среда за разработка. Можете също да използвате бяла дъска, за да скицирате и визуализирате идеите си.
  • Пробиване на интервюто за кодиране. Има кратки рецензии по повечето теми, обхванати в интервюта, и куп проблеми, вариращи в затруднение. Купих си хартиен носител. Това ми позволи да подчертая важни бележки в съдържателните раздели и да начертая няколко диаграми до въпросите. Разделите за съдържание имат страхотни обобщения по различни теми като структури от данни, сортиране, динамично програмиране и т.н., за да освежите паметта си. Всъщност видях няколко въпроса в интервюта, взети направо от тази книга. Може би най-големият ресурс там.
  • LeetCode. LeetCode, подобно на Cracking the Coding Interview, има въпроси от различни нива, с които можете да практикувате. Но LeetCode предоставя онлайн среда, в която можете да въвеждате код и където вашият код ще се компилира и изпълнява. Това е добър начин да проверите дали вашият код действително се изпълнява и добра платформа за практикуване на отстраняване на грешки. (Забележка: възможността бързо да разберете къде в кода ви има грешка е ключова. Това ще ви помогне много по време на действителното интервю). Всеки въпрос има и дискусионен форум, където можете да видите как другите са подходили към въпроса. Винаги е готино да видиш какви други начини можеш да решиш даден проблем.
  • HackerRank. Много компании използват HackerRank за предизвикателства при кодирането и HackerRank е съставил комплект за подготовка на интервюта, за да ви помогне да се подготвите за интервюта. Комплектът разглежда много от същите теми, които прави Cracking the Coding Interview, но ви дава платформа за прилагане на концепциите чрез физическо кодиране. Това ще ви помогне да свикнете с онлайн среда за кодиране, много подобна на тази, използвана в действителните интервюта.

Действителното интервю

Вашето интервю е тук. Поведенческата част дойде и си отиде. Време е.

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

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

Малък съвет: Ако не си спомняте точния синтаксис на специфична за даден език функция, попитайте дали можете да я потърсите. От моя опит обикновено можете или интервюиращият ще ви даде подписи за функции, които можете да използвате.

Най-добър късмет!

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

Ако искате някакви лични насоки, не се колебайте да ми пишете в LinkedIn. Добавете малка бележка, отнасяща се до тази статия, за да знам, че не просто се опитвате да увеличите броя на връзките си. Благодаря за четенето! Късмет!