Coding interview – az egyetlen dolog, ami közted és az álommunkád között áll

Egy recruiter felhív egy pozícióval álmaid cégénél. Nagyon izgatott leszel, és érdeklődsz a felvételi folyamatuk iránt. Azt a választ kapod, hogy „semmi különös, öt coding kör lesz a senior tech csapattal, csak a szokásos táblánál kódolás. Ennek hallatára nyilvánvaló hazugságokkal ecseteled, hogy mennyire szereted a jelenlegi munkádat, és majd talán később megpróbálod.”



Ha ismerős a szituáció, akkor folytasd az olvasást!


Rengeteg okos, találékony, megbízható és sok függőség ellenére is jól boldoguló szoftverfejlesztővel találkoztam már. De a táblánál kódolós interjúknak csak a gondolata félelemmel tölti el őket. Ezen emberek többsége azt hiszi, hogy sosem tudnának átmenni egy ilyen interjún, és ez csak a zseniknek van, akik 12 éves koruk óta versenyszerűen programoznak. Távolabb nem is állhatnának az igazságtól. Ezeket a tévhiteket szeretném most eloszlatni, és egy utat mutatni ezen interjúk sikeréhez.



Miért?


Először is meg kell értenünk, hogy a cégek miért alkalmazzák ezt a típusú felvételi eljárást.




Hogyan?


Nézzük, hogyan állj neki a felkészülésnek.


Válassz egy nyelvet



Maga a választott nyelv nem számít! Amíg te kényelmesen kódolsz az adott nyelven, és támogatja az adatstruktúrákat és az algoritmusokat (STL, Collections), addig minden rendben.


A legnagyobb hiba, amit az embereknél látok, hogy egy fancy nyelvet választanak az interjúztató lenyűgözésére, majd küzdenek az implementációval. Ez olyan, mintha a saját sírodat ásnád. Az egyetlen dolog, ami számít, hogy hogyan tudsz megvalósítani egy megoldást az általad választott nyelven, nem a nyelv csillogása.



Használd ki a választott nyelvet


Otthonosan kell mozognod a beépített adatstruktúrák és algoritmusok kezelése során. Ez lehet STL, Collections, vagy bármi más. A lényeg, hogy a teljes ismeretük lehetővé teszi, hogy a probléma megoldására koncentrálj a megfelelő konstrukciók kiválasztásával és használatával, és gyorsan kódolj az interjún.



Idősáv: 1 hét.


Ismerkedj meg az elmélettel


Csak körülbelül egy maroknyi dolog az, amit tudnod kell az interjúkon.




Amiket meg kell értened, azok a különböző implementációk, idő – és helykomplexitások, és hogy mikor használd őket és mikor ne. Erre a célra erősen javaslom a „The algorithm design manual”-t.



Idősáv: 2-3 hét, előzetes tapasztalattól függően.


Ne ugord át az idő- és térbeli komplexitásokat! Ezek a legnagyobb elvárások egy coding interjú során. Elvárják tőled, hogy megvizsgáld és fontolgasd a különböző implementációk közti kompromisszumokat, és ehhez értened kell a komplexitásokat.


Szerezz gyakorlati tapasztalatot!


Most, hogy már rendelkezel egy biztos alappal az adatstruktúrák és algoritmusok terén, belevetheted magad a problémamegoldásba. Erre a célra használhatod a Leetcode és az InterviewBit felületét. Mindkettő lehetővé teszi típus szerint csoportosított problémák megoldását, mindezt széles skálán. Ne a minőségre, hanem a mennyiségre koncentrálj! Próbáld meg saját kútfőből megoldani őket, és ha mintát fedezel fel közben, jegyezd le, és később ezeket is felhasználhatod. Ha inkább könyvet szeretnél használni, akkor a Cracking the code interview-t, vagy a Data structures and algorithms made easy-t tudom javasolni.



Idősáv: 8-12 hét.


A legrosszabb dolog amit itt tehetsz, hogy megpróbálsz utánaolvasni a problémának, ha elakadsz. Akármennyire csábító, próbáld meg elkerülni. Csak akkor folyamodj ehhez ha már több, mint két órája próbálkozol. Ugyan eltölt az elégedettségérzés, hogy tanultál valami újat, de a valóságban nem fogod tudni megoldani a problémát, ha máshol belefutsz.



Álinterjúk


Ha megfelelően követted a fenti lépéseket, akkor mostanra ismerős lenne a problémák nagy része, és meg is tudnád a legtöbbet oldani. De bármit is csináltál eddig, az interjúkörnyezet teljesen más. Azzal is meg kell ismerkedni, szóval próbálj meg álinterjúkon gyakorolni. A Pramp például biztosít ingyenes álinterjúkat egy másik féllel. Ha szeretnél egy álinterjút szakmabeli és részletes visszajelzéssel, akkor vedd fel a kapcsolatot.



Ez tulajdonképpen egy lépésről lépésre lebontott recept az interjúk teljesítéséhez. Ugyanezt az utat követtem, és az általam ismert legtöbb ember is. Egyszerűen kemény munka, semmi köze az előzetes tudáshoz vagy okossághoz.


Következő lépések


Különböző témákat feldolgozó cikksorozatot tervezek írni a közeljövőben, az olyan dolgokról, mint a verem, queue, fák, stb., külön-külön, és mindegyikben feldolgozni az ahhoz kapcsolódó problémákat. Ha érdekel, kövess be, hogy mihamarabb értesítést kapj róla, ha kijön a cikk.


(Forrás)

***
Ha Te is kreatív, kihívásokkal teli mérnök állást keresel minoségi munkáltatónál, jó helyen jársz, mert a Schönherz Bázis épp azért jött létre, hogy Neked segítsen.
Gyere, nézz szét aktuális állásaink között!


2019.07.26