2024. március 29., péntek

Gyorskeresés

Bejutni a Google-höz - Csavar

Írta: | Kulcsszavak: interview . algoritmusok . Amazon

[ ÚJ BEJEGYZÉS ]

Szóval sosem tűnt úgy, hogy lenne elég időm becsülettel felkészülni egy Google interview-ra, a munka, a családi ház felújítás, a család ... Így a dolog kínosan húzódott. Aztán egy ismerősöm startupjához keveredtem, ami nem váltotta be maradéktalanul a reményeimet, így nyitva tartottam a szemem a további lehetőségek iránt. Nem kellett nagyon keresni, LinkedIn-en jöttek folyamatosan az ajánlatok. Többek közt jelezte az Amazon, hogy turnéznak Budapesten, és szívesen látnak. Az eljárás alapos volt. Egy telefonos kör a HR-rel, utána 90 perces online kör két algoritmizáló feladattal (a felület elég béna volt, az automatikus tesztek futtatása után be is kellett küldeni a megoldást, és az elsőnek a végleges megoldását nem küldtem be, csak egy részeredményt, szerencsére a második volt a nehezebb, és az hibátlan lett). Aztán még egy HR-es kör, amikor meghívtak a személyes interview-ra, és küldtek egy csomó felkészítő anyagot. És utána jött a furcsa rész: egy órában egy másik HR-essel még egyszer végigmentünk ezen az anyagon, hogy biztosan értem-e, hogy milyen lesz a személyes interview, és hogy tudom-e hogyan kell felkészülni.

Végül persze felkészülni megint nem volt időm, úgyhogy erősen gondolkodtam, hogy menjek-e, mert vidékről kellett felutazni, meg a kieső munkanap, meg a szinte biztos kudarc. De aztán úgy döntöttem, hogy egy este és éjszaka a feleségemmel, meg a nyerhető tapasztalat megéri. Bejelentkeztem egy időpontra, szerencsére még volt szabad, foglaltam egy telekocsit, és mentem haza. A feleségem persze végül nem tudott eljönni a gyerekek mellől (vidéken nyaraltak), úgyhogy egyedül élvezhettem az üres házat és még készülhettem egy keveset. Az algoritmusoktól nem féltem annyira, viszont igértek rendszertervezés kérdést, ami kicsit aggasztott. De ahogy nézegettem a kiadott kérdés-válasz párokat, megkönnyebbültem, ilyet már csináltam, és a mintákban nem láttam olyan megoldásokat, amik ne jutottak volna eszembe. Ráadásul sokat segítettek a válasz strukturálásában, úgyhogy hasznos volt.

Másnap BKV-vel mentem a NewYork Palace-be, ahol az Amazon előretólt helyörséget alakított ki: itt szállt meg az interview-ztató csapat, itt foglalt tárgyalókat, és ide reptette be a közeli országokból hívott jelölteket. Egy járatkimaradás miatt elvesztettem a biztonsági bufferemet, de azért sikerült időben érkezni. Betereltek egy tárgyalóba, sok jegyzettömb, fehér tábla és víz fogadott, a HR-es felvázolta a továbbiakat, és magamra hagyott. 8-12-ig négy Amazonos jött egyesével, 5 perces szünetekkel. Három mérnökkel és egy managerrel beszéltem.

Az első három kör volt az algoritmizálós. Egy rövid beszélgetés során feltették a kötelező személyiségi kérdéseket: idézzek fel egy esetet, amikor időnyomás alatt a minőségből kellett feláldoznom, vagy olyat, amikor konfliktusom volt egy kollégával, egy felettesem elégedetlen volt velem, egy problémát proaktívan oldottam meg, egy ügyféllel tárgyaltam, stb. Ilyen kérdésből mind a négyen tettek fel ketőt-kettőt, úgyhogy jó mélyre kellett ásnom, de elégedettek voltak a történetekkel. Ezt követték a programozós feladatok. Fehér lapon kellett szintaxis helyes Java kódot írni egyszerű feladatokara. Az első kettő triviális volt, konkrét feladatot nem oszthatok meg, de a példák a HackerRank Easy kategóriájának a tetejéhez illeszkedtek. "Implementáltam" a naív megoldást, aztán megbeszéltük az idő és memóriakomplexitást, és belefért egy kis optimalizálás is, de ez már csak szóban. Nem kellett segíteniük, ment minden magától. A harmadik feladat trükkös volt. Elsőre látszott, hogy nincs annyira specifikálva, mint a többi, de ugyanúgy álltam hozzá, és adtam papíron egy optimális megoldást. És akkor jött a hideg zuhany. Megkérdezte az interview-ztató, hogy mi van akkor, ha az egyik megadott szabályt módosítjuk. Mondtam hogy az akkor egy másik feladat. És ekkor derült ki, hogy ez igazából egy architekturális feladat lett volna. Talán 10 percem maradt összerántani néhány osztályt és interface-t, ami megadja a kellő rugalmasságot. Megbeszéltük, hogy akkor viszont szuboptimális lesz a megoldás. Mondta hogy rendben, és a 8 percben sikerült lekörmölni a megoldást, és elmagyarázni, hogy hogyan valósítja meg a kért bővíthetőséget. Mindenki örült, én megtörölköztem.

A negyedik kör sétagaloppnak indult: olyan problémára kellett rendszertervet készíteni, amit már konkrétan megoldottam egy egyetemi projektben. Így inkább a kommunikáció jelentett kihívást, néha kicsit elbeszéltünk egymás mellett, és gyakran váltottunk látószöget: volt architektúra, technológia, adatbázis, algoritmus, REST API, de úgy éreztem sikerült minden kérdésre kielégítő választ adnom. A kávészünetet nem használtam ki, volt kávé meg süti, de nem szeretek ilyen helyzetekben enni, megtöri a lendületet. Utána hazafelé meg már azért nem volt kedvem, mert izgultam, hogy hogy fog sikerülni. Azt igérték, hogy egy héten belül válaszolnak.

Hozzászólások

(#1) UnA


UnA
Korrektor

"Ezt követték a programozós feladatok. Fehér lapon kellett szintaxis helyes Java kódot írni egyszerű feladatokara."

Ez számomra mindig rejtély volt, hogy ennek mi az értelme. Ami fontos, hogy érted és formalizálni tudod-e a feladatot, a többi már csak sallang.

(#2) Feruendios válasza UnA (#1) üzenetére


Feruendios
aktív tag

Vicces dolog ez, hogy hosszu szakmaban eltoltott ev utan is onnan indulsz az interview-on vajon tudod-e mi az az algoritmus :D
De sajnos van alapja, vannak olyan munkahelyek ahol 10 evet el lehet tolteni csak annyi tudassal, hogy a ceges codebase ide-oda hackelgetsz valamit.

Sajnos mar nincs magyar billentyuzetem :(

(#3) lajthabalazs válasza UnA (#1) üzenetére


lajthabalazs
senior tag

Sokan kritizálják a papíron, táblán kódolást, fõleg az öreg rókák, de a ngy cégeknél még mindig ez a beugró. Ahogyan továbbra is az iskolapéldákat kérik számon: rendezések, gráfalgoritmusok, dinamikus programozás...

(#4) lajthabalazs válasza Feruendios (#2) üzenetére


lajthabalazs
senior tag

Igen, nem nehéz webes/mobil alkalmazás fejlesztőként elkényelmesedni, és mindenben rábízni magad a keretrendszerekre. Magyar léptékben gyakran a teljesítmény sem számít, amíg nem hibázik nagyot az architekt. Az Amazon / Google / Facebook más szemlélet, milliárdos felhasználószámnál és végtelen adatmennyiségnél minden műveletet alaposan át kell gondolni, mert néhány milisec-nyi extra feldolgozási idő, vagy néhány kB-nyi extra adatlekérés is szépen felskálázódik.

Úgyhogy van logika abban, hogy alaposan számonkérik az algoritmikus alapokat meg a komplexitás számolást, még ha ez derogálhat is egy "senior" fejlesztőnek.

(#5) dabadab válasza lajthabalazs (#3) üzenetére


dabadab
titán

"Sokan kritizálják a papíron, táblán kódolást, fõleg az öreg rókák, de a ngy cégeknél még mindig ez a beugró"

Én mondjuk nagy cégnél (meg kicsinél sem) soha nem láttam ilyet és értelmét se látom.

DRM is theft

(#6) lajthabalazs válasza dabadab (#5) üzenetére


lajthabalazs
senior tag

Itthon a multik örülnek, ha írni-olvasni tudó informatikust találnak (fõleg ha egyetemrõl vesznek fel pályakezdõt), így tényleg nincs ilyen. Én a megjelölt hármasra gondoltam, ahol nagyjából bármit elvárhatnak a jelentkezõtõl, mert van elég. De úgy olvastam hogy az Apple-nél is táblán kell kódolni (igaz elég a pszeudo kód is) és a Cloudera-nál is elvárták volna, csak nem voltam felkészülve és nem sikerült jól.

(#7) UnA válasza Feruendios (#2) üzenetére


UnA
Korrektor

Oké, elmaradt a kiemelés: "szintaxis helyes" - ez az, ami teljesen felesleges. Erre nincs semmilyen értelmes magyarázat.

Arra, meg hogy ismert algoritmusokat elő tudsz húzni-e a tarsolyból... ez sem sokat mond el egy kreatív feladatokra keresett munkaerőről.

(#8) Feruendios válasza UnA (#7) üzenetére


Feruendios
aktív tag

Ki keres kreatív munkaerőt? :D
Ez a szakmánk, hogy a millió féle implementációs lehetőség közül minnél hamarabb találjuk meg az első optimálist. Egy senior ezt elsőre megteszi. Egy medior mondjuk 2x nekifut. Egy Junior-nak pedig el kell magyarázni, hogy mi miért nem lesz jó.
Ami még a Senior-ból is Lead Dev-et csinál, hogy képes fejben is megtervezni egy szintaxis helye algoritmust. Az ilyen emberekből szemezgethet aztán a BIG4.

Sajnos mar nincs magyar billentyuzetem :(

(#9) lajthabalazs válasza UnA (#7) üzenetére


lajthabalazs
senior tag

Azért nem bubble sort-ot kérnek, hanem olyan feladatot adnak, amihez meg kell találni egy megfelelő adatstruktúrát (szomszédsági mátrix, bináris fa, láncolt lista, stb) aztán azt kell karban tartani, keresni benne, aztán optimalizálni.

Szerintem azért kérnek egyébkánt szintaxis helyes kódot, mert akkor nincs félreértés, hogy a pszeudo-kód mit jelent neked, és mit jelent nekik. Nincs vita, hogy hogyan is futna le a kód, mert mindketten tudjátok fejben interpretálni (vagy fordítani) aztán futtatni. Meg látszik, hogy hogyan strukturálsz programot, hogyan nevezel el változókat. Google-nél még a formázási guide-line-okat is elvárják a táblánál. A megoldások általában 3-4 metódust igényeltek, az objektum orientált feladatnál egy osztály kellett, egy interface és annak két implementációja.

(#10) UnA


UnA
Korrektor

Már csak azt nem kérdeztem meg, hogy miért hsjszolod ezeket? A Google meg az Amazon is csak egy nagyvállalat, ami egyszer az életben lehet izgalmas, utána nem igazán. Persze lehet hinni benne, hogy ott történnek az izgalmas dolgok, de ma már ez csak töredékeiben igaz.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.