Šta je novo?

Priprema za intervjue za Microsoft/Amazon/Google/Facebook/Uber/Netflix

mi105

Poštovan
Učlanjen(a)
01.09.2021
Poruke
194
Poena
50
Da li se je neko spremao ozbiljnije za intervjue za ovakve kompanije? Ja sam malocas uzeo leetcode pretplatu i sastavljam polako neki plan ucenja.
Generalno, plan je proci i navezbati:

Algoritme i strukture podataka - trenutni skill mi je da vecinu easy na leetcode mogu resiti uspesno, solidan deo medium i pokoji hard. Dobru osnovu imam vec, treba uci u formu.

Sistem dizajn: Tu slabije stojim, poznajem tehnologije u kojima sam radio i nesto sire od toga, ali moram dodatno prosiriti opseg poznavanja aktuelnih tehnologija i arhitektura. Priprema ovoga ce se uglavnom zasnivati na https://github.com/donnemartin/system-design-primer

Osnove racunarstva: Tu stojim solidno, ali valja obnoviti koncepte iz operativnih sistema, mreza, distribuiranog programiranja, arhitekture i organizacije racunara, oop i gof design patterns. Relacione baze podataka poznajem odlicno, nerelacione trebam malo prouciti.

Behavioural: Ovo iskreno prezirem sto uopste moram spremati, ali ocito da HR sluzbe ovakvih kompanija moraju osmisliti nacin da dodatno daju sebi na vaznosti, te su napravili listu pitanja i tacnih odgovora koji se moraju dati kako bi zakljucili da je neko pristojno ljudsko bice i "cultural fit". I sad se to mora bubati. Pitanja tipa "Sta bi petoro vasih kolega koji vas ne poznaju blize reklo o vama?" i slicna. Zesca glupost, ali sta je, tu je.

Sitne detalje nekog odredjenog programskog jezika necu spremati, jer koliko vidim fokus na ovim intervjuima nije na tome.

Nekih 6 meseci po 10-15 sati nedeljno planiram izdvojiti za pripremu, polako krecem. Nadam se da to bude dovoljno.

Svaka razmena iskustva je vise nego dobrodosla, kao i komentari na plan ucenja.
 
Pa lepo od tebe da malo obnovis neke stvari, ali zasto bi ikad zeleo da radis za gore pomenute kompanije ?
Da budes jos jedan u nizu koji ce da umire na poslu da bi neki sef ispunio bonus ?
Tamo se radi crnachki, imas puno iskustava na netu od bivsih programera, jos nisam cuo neko pozitivno...
Sve se svodi da provedu godinu dana u takvim kompanijama, pa odlaze u manje startapove da "prodaju cv"...
Meni to bas odbojno...
 
Imam više razloga, ali ne bih sad ovde u detalje, neki su i lične prirode.

Neka ostane na tome da bih probao da upadnem tamo iz nekih tajanstvenih ličnih razloga.

Inače, da, svestan sam da se radi mnogo u istima, da nisu fit za svakog, da mnogi pregore i da to isto može i meni da se desi.

Povrh svega toga i dalje bih da se okušam.
 
Poslednja izmena:
Ako misliš da više vrediš zbog toga što češ dobiti posao u nekoj od tih kompanija, odmah da ti kažem da grešiš ;) Nema to mnogo veze. Isto je i za druge velike kompanije iz drugih industrija. Jedino što pravi razliku je mogućnost da radiš na najvećim i najnovijim projektima sa neograničenim budžetom. A ni to ne govori mnogo o znanju i pameti tih ljudi. Zaista ne omalovažavam ničiji trud i znanje, ali nemoj da misliš da više vrediš ako dobiješ posao tamo, ili da manje vrediš ako ne dobiješ. U svakom slučaju, vredi pokušati, takvo iskustvo je značajno svakako
 
Zaista ne omalovažavam ničiji trud i znanje, ali nemoj da misliš da više vrediš ako dobiješ posao tamo, ili da manje vrediš ako ne dobiješ. U svakom slučaju, vredi pokušati, takvo iskustvo je značajno svakako
Naravno da ne mislim, vidi, meni je iz odeljenja iz srednje škole, dvojica drugara u Microsoft-u, jedan u Google-u, drugarica u Amazonu…
To su ljudi koje odlično poznajem i ne osećam se ništa manje, nit više vredno od njih. No eto, prošao sam već startup, firmu od stotinak zaposlenih, rad u jednoj velikoj korporaciji ovde kod nas. Jedino gde nisam radio su ovi tech giganti.
Prilično dobro sam upoznat već s time šta se i kako se radi tamo i prosto hteo bih malo da odem i vidim sveta i doživim to iskustvo, ako mi se za to pruži prilika.
 
Podržavam te svakako, iako nisam od pomoći i nemam odgovore na pitanja. Ali mene toliko nerviraju te korporativne gluposti da je jedino što me drži u takvom orkuženju (nije IT, bar ne moj deo) je mogućnost rada na zanimljivim projektima. Samo je pitanje do kada to čovek može da izdrži :d Čini mi se da su firme od 100-200 zaposlenih najbolje mesto za rad, ali da ne skrećem sa teme.

Jedan dobar savet koji sam dobio za te HR gluposti je - oni hoće samo da vide da nisi fašista. A možda najbolji je - znaj da taj što sedi preko puta nije ništa pametniji od tebe :d

E sad, ja sam imao sreću da sam i u školama i na svakom poslu imao sjajne kolege i odlične ljude oko sebe, pa nisam ni imao nekih loših situacija. I na poslednjem razgovoru kada su me pitali kako rešavam veće konflikte u timu, morao sam da kažem da nikada nisam bio u takvoj situaciji :| Druga stvar su problemi sa poslom i projektima, to je već tehničko pitanje.
 
Ja sam imao intervju za posao u Amazon Web Services, iliti AWS, za ulogu senior support engineer-a u njihovoj kancelariji u Irskoj. Prvi deo je lagan, radi se online i to je najosnovniji filter. Kada taj deo prođeš dolazi do intervjua sa jednim od njihovih zaposlenih koji radi taj posao. Zovu te telefonom i taj deo traje oko sat vremena (tu ja nisam prošao dalje). Moraš da pokažeš jako dobro znanje i da znaš njihova načela i da prikažeš sebe u situacijama (realnim) koje si imao a da se mogu podvesti pod neka od njih. Takođe, tvoje znanje mora biti na visokom nivou (konkretno za ovaj posao to su mreže i mrežni protokoli, linux i poznavanje funkcionisanja računara i servera). Ukoliko prođeš ovaj deo (a mogu biti i 2, čak i 3 ovakva intervjua) dobijaš poziv i plaćen put u njihovu centralu gde imaš razgovore sa ključnim ljudima u oblastima koje pokriva tvoja rola u AWS. Ako i to prođeš (a kada su te već pozvali znači da su 90% spremni da te prime i da samo trebaju potvrdu), dogovaraš početak rada i to je to, osim ako zezneš nešto u tim finalnim razgovorima. Mene je kotaktirao njihov regruter i poslao mi je sve smernice za posao, iako sam se ja prijavio za junior support engineer-a prebacili su me na senior, a da ja toga nisam bio svestan. Svakako se treba dobro pripremiti, obnoviti znanje i ozbiljno shvatiti intervju. Pre 2 meseca sam dobio poziv od njih na dodatnu trodnevnu obuku online, međutim zbog mog trenutnog radnog vremena nisam mogao da prisustvujem, inače bih vrlo rado prošao tu obuku zato što je to veliki plus kod njih.
 
Par komentara od nekog sa skoro pa dvocifrenim brojem godina u jednoj od kompanija sa liste i ko je bio na intervjuima sa obe strane stola:
1) Za junior poziciju ja bih se skoncentrisao na algoritme, core computer science (tipa kako radi threading u OS-u, memory management, file system, networking ako se igra na tu kartu) ili matematiku (ako se igra na data science/ML kartu).
2) Veliki plus i nesto sto bi te izdvojilo od ostalih kandidata su uglavnom stvari koje pokazuju da te stvarno zanima neka oblast - ako imas vremena izguraj neku vecu celinu i okaci na github (igra, mini OS, mini compiler, physics engine, sta te vec zanima) ili napravi contribution u neki open source projekat za koji postoji sansa da je interviewer cuo.
3) Behavioural - ja bih ovo skroz izignorisao ako si jak u prethodne dve tacke. Potrudi se da ti je engleski razumljiv i to je to. Naravno, ako imas istetoviran kukasti krst na celu, nekontrolisano psujes ili imas potrebu po svaku cenu da izneses svoj stav o tome da je zemlja ravna onda to mozda treba nekako prikriti :)
4) Mislim da je bitno znati da ne postoje nikakve crne liste tako da uvek mozes ponovo da pokusas. Ne treba gledati na interview kao na proces koji je pravedan (nije) niti kao objektivnu ocenu tvog znanja (ili jos gore kao ocenu tvoje licnosti). Jednostavno, ako negde ne uspes pokusaj ili u nekoj drugoj kompaniji ili pokusaj opet u istoj za 3-6 meseci. To sto pokusavas vise puta samo znaci da ti je stalo.
 
S obzirom da imam šest godina iskustva, po dve u navedenom startup-u, mid-size kompaniji i korporaciji, ne bih se baš svrstao u juniore.

Bio sam do sad dvaputa u MDCS-u ovde u Bg, poslednji put pre dve godine, dolazio do zadnjeg kruga oba puta(prošao pisani test i bio na intervjuima usmenim onim sa 4 kruga i 4 intervjuera, ali oba puta nisam dobio ponudu - dobio mejl tipa, ovog puta niste prošli, ali ste ostavili dobar utisak i ohrabrili bi vas da se iduće godine ponovo prijavite (vrv da je to default odbijenica što se svima šalje koji ne prođu).

Moja greška je da se oba ta dva puta nisam uopšte spremao - dakle tu sam išao na ono koliko znam u tom trenutku, znam. Zbog toga mi je učinak na ta dva puta po četiri intervjua uglavnom bio polovičan, nešto bih rešio uspešno, nešto ne i onda mislim da zato i nisam prošao. Ovog puta bih se ozbiljnije spremao, te se nadam i bolje prošao.

Što se tiče engleskog, isti sasvim lepo i tečno pričam. Tu nema problema.
 
Poslednja izmena:
Par komentara od nekog sa skoro pa dvocifrenim brojem godina u jednoj od kompanija sa liste i ko je bio na intervjuima sa obe strane stola:
Inače, s obzirom da si s obe strane stola duži niz godina, imam i jedno konkretno pitanje - tvoje mišljenje na temu korišćenja poznatih struktura podataka.

Primer, odlučim se za C#, u .Net Framework imamo u System.Collections.Generic Dictionary klasu. Recimo, meni je to korisno za rešavanje konkretnog zadatog problema, naravno gde taj problem nije implementacija ovakve strukture, već je samo koristim da rešim zadatak.

Imam dva pristupa, mogu koristiti ovaj Dictionary, koji je generički i zgodan/jednostavan za korišćenje.

Ili mogu pisati neku svoju on the fly implementaciju Dictionary-a i onda to koristiti.

Prvi pristup mi čuva dosta vremena koje onda mogu posvetiti samom zadatku, drugi pokazuje da to dublje razumem i znam implementirati, no onda trošim dragoceno vreme na nešto što je opšte poznata struktura podataka.

Koji pristup se više ceni? Ili je to nešto što bih trebao na početku pitati intervjuera, jer razni intervjueri verujem da imaju razne preference?
 
Pa mislim da je pravi korak pitati interviewer-a. Opet, taj intervju je dvosmerna ulica i ako se svede na "osnovna skola" sablon onda je to poprilicno los intervju. Moje ocekivanje bi bilo:
1) Prolazak kroz problem na papiru/tabli bez akcenta na jezik/biblioteke.
2) Kada se dogovorimo oko pristupa (akcenat na dogovorimo, bitno je da se obe strane sloze), kandidat predlaze implementaciju (tipa C#, standardne/nestandardne biblioteke)
3) O tome razgovaramo - zasto bas C# a ne neki native jezik/scripting jezik, koliki overhead unosi JIT/GC, da li je ok da se koristi Dictionary, ako ga koristis sta ce ti biti hash, ako ti u buducnosti treba finiji locking da li je dictionary pravi izbor, da li ce ti u buducnosti trebati neki scaleout, da li hoces da razdvojis processing i data layer itd.
4) Kodiranje.

Inace, za nekog sa 6 godina iskustva, veliki deo intervjua bi trebalo da bude o tome sta je sve uradjeno za tih 6 godina - prolazak kroz tvoje uloge na svim projektima, ocena da li kandidat samo odradjuje svoje delice ili prati siru sliku, eventualan prolazak kroz biznis deo itd. Takodje, meni je uvek neobicno kada ljudi zaneme na pitanje na sta su najvise ponosni ili sta im je bilo najizazovnije u dosadasnoj karijeri. Ali, ako neko sa ponosom moze da me provede kroz sve detalje, onda i ja pozelim da radim sa tom osobom.
 
Nazad
Vrh Dno