Kako dobiti praksu u Googleu

Prije tjedan dana razgovarali smo o naše obrazovne programe , gdje su nam komentari ukazali na važnost prakse i praktičnog iskustva. Nemoguće je ne složiti se s tim, budući da se teorijsko znanje mora konsolidirati praksom. Ovim postom otvaramo seriju članaka o ljetnim praksama za studente: kako dečki stignu tamo, što tamo rade i zašto je to dobro.

U prvom članku ću vam reći kako uspješno proći sve faze intervjua i dobiti praksu u Googleu.

Kako dobiti praksu u Googleu

Nekoliko riječi o sebi

Student sam 1. godine magistarskog studija na kampusu HSE St. Petersburg; završio sam diplomski studij strojnog učenja na Akademskom sveučilištu. Tijekom preddiplomskog studija aktivno sam se bavio sportskim programiranjem te sudjelovao na raznim hackathonima. Možete pročitati o potonjem ovdje, ovdje и ovdje.

O pripravničkom stažu

Prvo, želim vam reći nešto o tome kako stažiranje u Googleu izgleda iznutra.

Svaki pripravnik koji dođe u Google dodijeljen je timu. To može biti tim koji razvija internu infrastrukturu za koju ljudi izvan tvrtke nikad nisu čuli ili proizvod koji koriste milijuni ljudi diljem svijeta. Takvi proizvodi mogu biti dobro poznati YouTube, Google Dokumenti i drugi. Budući da su deseci, pa čak i stotine programera uključeni u razvoj ovih projekata, završit ćete u timu koji je specijaliziran za neki uži dio toga. Na primjer, u ljeto 2018. radio sam na Google Docs, dodajući novu funkcionalnost za rad s tablicama.

Budući da ste pripravnik u tvrtki, imate menadžera koji se zove domaćin. Ovo je običan full timer koji sam razvija proizvode. Ako nešto ne znate, ne možete riješiti ili imate bilo kakvih problema, obratite se njemu. Obično se zakazuju tjedni sastanci jedan na jedan na kojima možete razgovarati o trenutnoj situaciji u projektu ili razgovarati o nečemu što potpuno nije povezano. Osim toga, domaćin je jedan od onih koji će ocjenjivati ​​rad koji ste odradili tijekom prakse. Također će ga ocijeniti drugi, dodatni recenzent. I naravno, zainteresirani su da uspijete.

Google će vam usaditi, ali to nije sigurno, dobru naviku pisanja dizajnerskog dokumenta prije nego što počnete bilo što raditi. Za one koji ne znaju, projektni dokument je dokument koji ocrtava bit postojećeg problema, kao i detaljan tehnički opis njegovog rješenja. Dokument dizajna može se napisati za cijeli proizvod ili samo za jednu novu funkcionalnost. Nakon čitanja takve dokumentacije, možete razumjeti svrhu za koju je proizvod zamišljen i kako je implementiran. Također često u komentarima možete vidjeti dijaloge između inženjera koji raspravljaju o različitim načinima implementacije nekog dijela projekta. To daje dobro razumijevanje svrhe svake odluke.

Ono što ovo stažiranje čini posebnim je to što možete koristiti neke od nevjerojatnih internih razvojnih alata kojih Google ima u izobilju. Nakon što sam radio s njima i razgovarao s mnogim ljudima koji su prethodno radili u Amazonu, Nvidiji i drugim poznatim tehnološkim tvrtkama, mogu zaključiti da ovi alati imaju velike šanse biti najbolji alati s kojima ćete se susresti u životu. Na primjer, alat pod nazivom Google Code Search omogućuje vam ne samo pregled cijele vaše baze koda, povijesti promjena svake linije koda, već vam također daje mogućnost kretanja kroz kod na koji smo navikli u modernim razvojnim okruženjima kao što su kao Intellij Idea. A za ovo vam je potreban samo preglednik! Loša strana povezana s ovom istom značajkom je da će vam nedostajati ti isti alati izvan Googlea.

Što se tiče dobrih stvari, tvrtka ima cool urede, dobru hranu, teretanu, dobro osiguranje i druge stvari. Ovdje ću ostaviti samo nekoliko fotografija iz ureda u New Yorku:

Kako dobiti praksu u Googleu
Kako dobiti praksu u Googleu
Kako dobiti praksu u Googleu

Kako dobiti ponudu?

Pregled

Sada je vrijeme da razgovaramo o nečem ozbiljnijem: kako do pripravničkog staža?

Ovdje nećemo govoriti o Googleu, već o tome kako se to događa u općenitom slučaju. U nastavku ću pisati o značajkama postupka odabira pripravnika u Googleu.

Proces intervjua u tvrtki vjerojatno će izgledati otprilike ovako:

  1. Molba za pripravnički staž
  2. Natjecanje na Hackerrank/TripleByte kvizu
  3. Probirni intervju
  4. Prvi tehnički razgovor
  5. Drugi tehnički razgovor
  6. Onsight intervju

Molba za pripravnički staž

Očito, sve počinje vašom željom da dobijete staž. Da biste to učinili, morate to izraziti ispunjavanjem obrasca na web stranici tvrtke. Ako vi (ili vaši prijatelji) imate prijatelje koji tamo rade, možete pokušati ući preko njih. Ova opcija je poželjnija jer vam pomaže da se istaknete iz gomile drugih učenika. Ako to nije moguće, prijavite se sami.

Pokušajte se ne uzrujati previše kada primite e-poruke sa sadržajem poput "ti si tako cool, ali izabrali smo druge kandidate". I evo imam nekoliko savjeta za vas:

Kako dobiti praksu u Googleu

Natjecanje na Hackerrank/TripleByte kvizu

Ako se regrutu svidio vaš životopis, za 1-2 tjedna primit ćete pismo sa sljedećim zadatkom. Najvjerojatnije će vam biti ponuđeno sudjelovanje u natjecanju na Hackerranku, gdje ćete morati riješiti algoritamske probleme u dodijeljenom vremenu, ili TripleByte kvizu, gdje ćete morati odgovoriti na razna pitanja u vezi s algoritmima, razvojem softvera i dizajnom low- razina sustava. Ova faza služi kao početni filter u procesu selekcije kandidata.

Probirni intervju

Ako je test uspješan, tada ćete imati screening intervju, tijekom kojeg ćete razgovarati s regruterom o svojim interesima i projektima koje tvrtka nudi pripravnicima. Ako pokažete interes i vaše prethodno iskustvo odgovara očekivanjima tvrtke, dobit ćete zeleno svjetlo. Po mom iskustvu, ovo je najnepredvidljivije mjesto u cijelom procesu i uvelike ovisi o regrutu.

Ako ste prošli ova tri testa, onda je većina slučajnosti već iza vas. Zatim, tu su tehnički razgovori, koji više ovise o vama, što znači da možete više utjecati na njihov ishod. I ovo je dobro!

Tehnički razgovori

Slijede tehnički razgovori, koji se obično vode preko Skypea ili Hangoutsa. Ali ponekad postoje egzotičnije usluge koje zahtijevaju instalaciju dodatnog softvera. Stoga unaprijed provjerite radi li sve na vašem računalu.

Format tehničkih intervjua uvelike se razlikuje ovisno o poziciji za koju intervjuirate. Ako govorimo o poziciji Software Engineering Intern, tada će vam se najvjerojatnije ponuditi nekoliko algoritamskih problema čije će rješenje trebati kodirati u nekom online uređivaču koda, npr. codepad.io. Također vam mogu postaviti pitanje o objektno orijentiranom dizajnu kako bi vidjeli koliko dobro razumijete dizajn softvera. Na primjer, od njih se može tražiti da dizajniraju jednostavnu internetsku trgovinu. Istina, nikada nisam naišao na takav zadatak po čijem bi se rješenju doista moglo prosuditi ovo umijeće. Na kraju intervjua vjerojatno ćete imati priliku postavljati pitanja. Toplo preporučam da ovo shvatite ozbiljno, jer kroz pitanja možete pokazati svoj interes za projekt i pokazati svoju kompetenciju u temi. Obično unaprijed pripremim popis mogućih pitanja:

  • Kako teče rad na projektu?
  • Koji je najveći izazov koji ste morali riješiti u posljednje vrijeme?
  • Koliki je doprinos programera konačnom proizvodu?
  • Zašto ste se odlučili raditi za ovu tvrtku?

Ne intervjuira vas uvijek osoba s kojom ćete raditi u budućnosti. Stoga potonja pitanja mogu pružiti uvid u ono što se događa u poduzeću kao cjelini. Meni je, recimo, bitno da imam utjecaj na krajnji proizvod.

Ako uspješno položite prvi razgovor, bit će vam ponuđen drugi. Od prvog će se razlikovati po anketaru i shodno tome zadacima. Format će najvjerojatnije ostati isti. Nakon što prođu drugi intervju, mogu ponuditi treći.

Onsight intervju

Ako do sada niste odbijeni, čeka vas razgovor na uvid, kada kandidat bude pozvan na razgovor u ured tvrtke. Obično se sastoji od nekoliko tehničkih intervjua i jednog bihevioralnog intervjua. Tijekom bihevioralnog intervjua s voditeljem razgovarate o svojim projektima, o tome koje ste odluke donosili u različitim situacijama i slično. Odnosno, ispitivač pokušava bolje razumjeti vašu osobnost i detaljnije razumjeti vaše iskustvo. Neke tvrtke koje provode 3-4 tehnička razgovora nude samo jedan bihevioralni intervju na daljinu umjesto intervjua na uvid.

Sada preostaje samo čekati odgovor regruta. Ako je sve prošlo glatko, sigurno ćete dobiti pismo s dugo očekivanom ponudom. Ako nema ponude, nemojte se uzrujavati. Tvrtke sustavno odbijaju dobre kandidate. Pokušajte se sljedeće godine ponovno prijaviti za praksu.

Intervju za kodiranje

Pa, čekaj... Još nismo obavili nijedan intervju. Upravo smo saznali kako cijeli proces izgleda i sada se moramo dobro pripremiti za intervjue kako ne bismo propustili priliku za ugodno i korisno ljeto.

Postoje resursi kao što su Codeforces, TopCoder и Hackerrankkoje sam već spomenuo. Na ovim stranicama možete pronaći velik broj algoritamskih problema, a također i poslati njihova rješenja na automatsku provjeru. Sve je ovo super, ali me više podsjeća na pucanje vrabaca iz topa. Mnogi zadaci na ovim resursima dizajnirani su tako da im treba dugo vremena za rješavanje i zahtijevaju poznavanje naprednih algoritama i struktura podataka, dok zadaci u intervjuima obično nisu toliko složeni i dizajnirani su da traju 5-20 minuta. Stoga, u našem slučaju, resurs kao što je Leteno kod, koji je nastao kao alat za pripremu tehničkih intervjua. Ako riješite 100-200 problema različite složenosti, najvjerojatnije nećete imati problema tijekom intervjua. Ima ih još vrijednih Facebook Code Lab, gdje možete odabrati trajanje sesije, na primjer, 60 minuta, a sustav će za vas odabrati skup problema za čije rješavanje u prosjeku nije potrebno više od sat vremena.

Mnogi također preporučuju čitanje knjige “Cracking the Coding Interview" I sam sam samo selektivno čitao neke dijelove. Ali vrijedi napomenuti da sam tijekom školovanja riješio mnogo algoritamskih problema. Tko nije imao takvo iskustvo neka barem prolista ovu knjigu.

Također, ako ste u životu imali nekoliko tehničkih razgovora sa stranim tvrtkama, onda se preporučuje da odete na par probnih. Ali što više, to bolje. To će vam pomoći da se osjećate samopouzdanije tijekom intervjua i manje nervozni. Lažni intervjui mogu se dogovoriti na kolica.

Bihevioralni intervjui

Kao što sam spomenuo, tijekom bihevioralnog intervjua, ispitivač pokušava saznati više o vašem iskustvu i razumjeti vaš karakter. Što ako ste izvrstan programer, ali niste dobri u radu u timu? Bojim se da to mnogima neće odgovarati. Na primjer, moglo bi vam se postaviti sljedeće pitanje: "Koja je vaša slabost?" Osim pitanja ove vrste, od vas će se tražiti da govorite o projektima u kojima ste imali ključnu ulogu, o problemima s kojima ste se susretali, kao i njihovim rješenjima. Vrijedno je napomenuti da vas u prvim minutama tehničkih razgovora također mogu pitati o tome. Kako se pripremiti za takve intervjue dobro je napisano u jednom od poglavlja u “Cracking the Coding Interview”.

Google

Sada kada smo shvatili kako općenito izgleda proces selekcije pripravnika i kako se pripremiti za intervjue, vrijeme je da razgovaramo o tome kako to funkcionira u slučaju Googlea.

Popis dostupnih praksi možete pronaći ovdje. Ako planirate ići na ljetnu praksu, trebali biste se početi prijavljivati ​​već u rujnu.

Intervjui

Ovdje proces izgleda malo neobično. Imat ćete intervju za provjeru i dva tehnička razgovora. Ako se u njima dobro pokažete, prijeći ćete u fazu traženja projekta. Morat ćete ispuniti prilično dugačak upitnik u kojem ćete navesti sve svoje trenutne vještine, kao i izraziti svoje preferencije o temi projekta i lokaciji na kojoj želite obavljati praksu.

Vrlo je važno dobro i marljivo ispuniti ovaj obrazac! Potencijalni domaćini koji traže ljude koji bi im se pridružili na projektu pregledaju dostupne pripravnike i dogovore razgovore s kandidatima koji im se sviđaju. Oni mogu filtrirati studente prema lokaciji, ključnim riječima, kvačicama u obrascu za prijavu i sortirati prema rezultatima intervjua.

Tijekom razgovora, intervjuer govori o projektu na kojem će se raditi te se upoznaje s kandidatovim iskustvima. Ovo je izvrsna prilika da saznate kako će zapravo izgledati proces rada jer komunicirate s osobom koja će vam biti domaćin. Nakon intervjua, napišite pismo regrutu sa svojim dojmovima o projektu. Ako vam se projekt sviđa, a anketar volite vas, onda vas čeka ponuda. U suprotnom ćete očekivati ​​naknadne pozive, koji mogu biti 2-3-4, a možda ih uopće neće biti. Vrijedno je pojasniti da čak i ako ste dobro prošli intervjue, ali vas u fazi traženja projekta niti jedan tim nije odabrao (ili možda nitko nije ni razgovarao s vama), tada ćete, nažalost, ostati bez ponude .

Amerika ili Europa?

Između ostalog, morat ćete odlučiti gdje ćete obavljati praksu. Imao sam izbor između SAD-a i EMEA. I ovdje je važno znati o nekim značajkama. Na primjer, postoji osjećaj da je teže doći do SAD-a. Prvo, morat ćete sudjelovati u dodatnom natjecanju od 90 minuta u kojem ćete morati rješavati algoritamske probleme, kao i još jednom 15-minutnom kvizu koji pokušava otkriti vaš karakter. Drugo, prema mom iskustvu i iskustvu mojih prijatelja, u fazi traženja timovi su manje zainteresirani za vas. Primjerice, 2017. sam imao samo jedan razgovor, nakon čega je ekipa izabrala drugog kandidata i nisam dobio ponudu. Dok su dečki koji su se prijavljivali u Europu imali 4-5 projekata. 2018. su mi našli ekipu u siječnju, što je dosta kasno. Dečki su radili u New Yorku, svidio mi se njihov projekt i pristao sam.

Kao što vidite, u SAD-u su stvari malo kompliciranije. Ali tamo sam više želio nego u Europu. Plus u SAD-u plaćaju više.

Kako dobiti praksu u Googleu

Što učiniti nakon?

Na kraju stažiranja imate dvije mogućnosti:

  • Dobijte staž za iduću godinu.
  • Prođite dva tehnička intervjua kako biste dobili posao na puno radno vrijeme.

Ove dvije opcije su dostupne pod uvjetom da ste uspješno završili svoj trenutni projekt. Ako vam ovo nije prvo stažiranje, možda vam čak bude ponuđeno radno mjesto s punim radnim vremenom bez intervjua.

Stoga se javlja sljedeća situacija koja se može opisati jednom slikom:

Kako dobiti praksu u Googleu

Budući da mi je ovo bila prva praksa, odlučio sam proći dva tehnička razgovora kako bih dobio posao na puno radno vrijeme. Na temelju njihovih rezultata pristali su mi dati ponudu i krenuli u potragu za timom, no ja sam tu opciju odbio jer sam odlučio završiti magisterij. Malo je vjerojatno da će Google nestati za 2-3 godine.

Zaključak

Prijatelji, nadam se da sam na pristupačan i razumljiv način objasnio kako izgleda put od studenta do pripravnika. (i onda natrag...), a ovaj će materijal naći svog čitatelja kojem će biti od koristi. Kao što vidite, ovo nije tako teško kao što se čini, samo trebate ostaviti po strani svoju lijenost, svoje strahove i početi pokušavati!

PS Imam ga i ovdje kanal u kolicima gdje možete pogledati.

Izvor: www.habr.com

Dodajte komentar