Pohovor programátora

Nejdem písať o tom, ako sa na pohovor pripraviť. Idem písať skôr o tom, čo ťa na pohovore môže čakať. 

Ja osobne som pred každým pohovorom bol brutálne v strese. Prečo? Myslím, že preto, že som taká povaha a zároveň mi na tom záleží. Pokúsim sa ti (alebo sebe samému?) ukázať, že z pohovoru nemusíš mať extra stresy. Poviem ti, ako to na pohovore prebieha a čo ťa na ňom môže čakať. Prevažne pôjde samozrejme o pohovory na developerské pozície, ale niektoré veci sa dajú aplikovať aj na pohovory na iné pozície. 

TL;DR

Pri pohovore ide hlavne o to, aby obe strany navzájom zistili, či sú pre seba dobrý fit. Môžem byť najlepším programátorom na svete, ale keď si nesadnem s mojim budúcim projektovým managerom, tak by práca bola pre nás oboch veľmi nepríjemná. Takisto ide o kompromisy. Obe strany ich musia urobiť. Chceš veľa peňazí, flexibilnú pracovnú dobu, veľa seniorov okolo seba, preplatené nadčasy, nepreplatené nadčasy, príjemné prostredie, uvoľnenú atmosféru, …? Nikde nedostaneš všetko. Budeš si musieť vybrať. Výhodou programátora je, že je po ňom väčší dopyt, ako je ponuka. To znamená, že si môže vyberať. 

Disclaimer: bol som na 9. pohovoroch a z toho 8 na full-time pozíciu. Bol som v TapHome (ponuka, zobral som), Accenture (neozvali sa), Solition (drahý junior), NeoHealth (ponuka), Siemens (ponuka), Eset (príliš junior), Vacuumlabs  (ponuka, zobral som), Develogics (ponuka) a na random pohovore s recruiterkou (príliš junior). O jednotlivých pohovoroch napíšem inokedy.

Na túto tému sme už nahrali aj podcastovú epizódu.

O čo pri pohovore vlastne ide? 

Na pohovore ide hlavne o to, aby obe strany dostali nejaký základný obraz o tom, kto sú, čo vedia a čo robia. Keď som začínal, tak som bol v tom, že ja hľadám prácu a musím sa firme predať. Že vlastne môžem byť vďačný, že ma na pohovor zavolali. Nie je to úplne tak. Programátorov je málo a práce veľa. Tam však nechcem zachádzať. Teraz si uvedomujem, že pri hľadaní práce ide o vzájomnú spokojnosť a reálne by z tohto vzťahu mali vyjsť dvaja víťazi, inak to dlhodobo fungovať nebude.

Čo chcú oni?

Oni chcú zistiť, či si schopný/á. Nie je to však len o schopnostiach. Dôležité je aj to, ako dobre si sadnete. Buď s človekom, ktorý sedí oproti tebe, alebo ako ten človek vyhodnotí, že budete sedieť do svojho buducého tímu. Aj keď väčšinu času sedíme za počítačom, tak programovanie je predsa len stále aj práca s ľuďmi – so šéfom, s kolegami, s podriadenými. Google nebol nakódený jedným človekom.  

Z toho vyplýva, že môžem byť úplne top programátor, ale keď neviem pracovať s ľuďmi, tak nebudem pre tím prínosom t.j. nebudem prínosom pre firmu. A tak oni teda za ten čas pohovoru musia zistiť, či sa im oplatí riskovať a zobrať ťa na skúšobnú dobu. 

Čo chceš ty?

Ty zase za ten čas pohovoru chceš zistiť, čo firma robí, ako to robí, pre koho to robí a akí ľudia to robia. Ty by si si mal/a zistiť všetky pre teba dôležité informácie. Je pre teba dôležitý homeoffice? Určite sa na to opýtaj. V stredu potrebuješ pravidelne končiť o 2 hodiny skôr, ale nadrobíš si to iné dni? Radšej sa spýtaj, či to nebude dealbreaker. Neznášaš Javu a chceš robiť len C#? Jednak sa opýtaj, aká je šanca, že sa niekedy bueš musieť dotknúť Javy, ale zároveň sa zamysli, či to je naozaj také dôležité kritérium.

2 typy pohovorov (ktoré som zažil)

Z tých deviatich pohovorov, na ktorých som bol, boli skoro všetky typu 1. S typom 2 som sa stretol iba v spoločnosti VacuumLabs a ako vyplynie ďalej, nie som jednoznačne naklonený pre jednu stranu.

Typ 1 – Klasika – Testovanie znalostí a pokec 

Prídem, ako sa máte, kávička, čaj? Niektorá strana začne rozprávať. Buď sa záujemca snaží predať, alebo proste povedať kto je, čo doteraz robil, čo vie robiť, čo ho baví robiť a tak 

Alebo začne hovoriť druhá strana o tom, kto , aké projekty robia, koľko majú ľudí, ako by vyzeral tvoj budúci tím, a tak. V podstate prebehne také zoznamovacie kolečko, aby obe strany vedeli na čom . Netreba to vôbec nejak siliť a netreba sa preceňovať (ale ani podceňovať). Proste povedz jak to je a bude to ok. 

Ja som na pohovore nikdy neklamal, netváril som sa, že všetko viem. Keď prišla otázka na SQL joiny, tak som povedal, že viem, že existujú, od výšky som ich nevidel a tak úplne presne neviem ako  fungujú. Zároveň som však dodal, že po 2 minútach googlenia a 4 minútach skúšania by som vedel, čo ktorý join robí a či to je to, čo chcem použiť. Hm, keď nad tým teraz rozmýšľam, možno aj to je jeden z dôvodov, prečo ma konkrétne do tejto firmy nakoniec nezobrali, hah. 

Po tomto úvodnom kolečku príde priestor na otázky. Buď sa môže záujemca pýtať na nejaké veci, čo ho o firme/pozícii zaujímajú, ktoré ešte neboli povedané, alebo vlastne na čokoľvek, alebo sa oni začnú záujemcu pýtať otázky.  

C# interview question
Príklad takejto otázky z guru99.com

Otázky, ktoré sa mňa pýtali, boli na 90% zobraté z rôznych “TOP 50 [dosaď jazyk] questions” stránok. Samozrejme, že som tieto otázky mal zakomponované v mojej príprave a tak väčšinou nebol problém na ne odpovedať. Zároveň však musím povedať, že na 90% týchto otázok som vedel odpovedať aj bez prípravy (nechválim sa, len som tým chcel povedať to, že v praxi sa tie veci človek naučí – a hlavne – chváliť sa s 90%? Čo tých zvyšných 10?…pome ďalej).

Môže to znieť zo strany firmy dosť naivne, že dáva takéto otázky. Ale keď si predstavím, že ja robím ten pohovor, tak mi naozaj nezáleží na tom, či mi kandidát dokáže dať správnu odpoveď. Skôr ma zaujíma, akým štýlom odpovedá. Ako sa vyjadruje. Je veľmi v strese? Je nabiflený a vlastne netuší o čom hovorí? Bavia ho tie otázky, alebo by najradšej bol niekde inde? Budí o nás záujem? Záleží mu na tom, aby podal dobrý výkon? Veľmi dôležité je podľa mňa aj to, ako človek zareaguje keď nevie. Skúša to nejak škaredo zahovoriť, alebo pekne prizná, že nevie a skúsi možno chvíľu porozmýšľať? 

Stratégia “keď si predstavím, že ja robím ten pohovor” je podľa mňa super vec. Predstav si, že máš firmu a hľadáš ľudí do tímu. Čo od neho očakávaš? Čo chceš na  pohovore zistiť? Aké odpovede by sa ti páčili? Takto sa k tomu skús postaviť aj ty. 

Typ 2  – Testovanie rozmýšľania 

Na Slovensku trochu rarita a tento typ pohovoru som zažil iba vo VacuumLabs. Tieto typy pohovorov robia aj slávne FAANG (facebook, apple, amazon, netflix, google) spoločnosti. Ide o to, že kandidát dostane nejakú algoritmickú úlohu a musí ju na mieste vyriešiť za cca 2 hodiny. (tu spominám zdroje, kde sa dajú algoritmy naučiť praxou – Codility a CodeSignal sú moje obľúbené)

Na základe toho, ako človek pristupuje k riešeniu danej úlohy vie opäť pohovorujúci niečo vyzistiť. záujem úlohu vôbec riešiť? Vie o čom hovorí? Pozná dátové štruktúry? Zložitosť algoritmov? Zasekol sa – spýta sa o pomoc, alebo sa bude trápiť 

Cracking the Coding Interview obalka
Super zdroj na algoritmy a dátové štruktúry (nie len na pohovory)

Človek úlohu samozrejme nemusí vyriešiť úplne sám. Ja som v oboch kolách s pohovorujúcim v podstate diskutoval a postupne sme sa dopracovali k správnemu riešeniu. Kľúčovu úlohu som mal ja, ale inak sme k tomu došli spoločne.  

Pri týchto úlohách je podľa mňa pekne vidno, čo človek robí, keď je pod tlakom a nevie sa pohnúť ďalej. Tiež je tu vidno, či je človek úplne stratení, alebo aspoň tuší, čo má robiť. Tiež si ale myslím, že aj keby tam došiel človek, ktorý úplne neovláda algoritmy, tak sa môže stať, že pohovorom prejde. Ak sa z toho, ako sa pýta, vyjadruje a tak ďalej, dá usúdiť, že nie je úplne hlúpy a môže byť šikovný, tak ho aj kľudne zoberú, alebo posunú ďalej. 

Opäť je fajn pozrieť sa na to z pohľadu pohovorujúceho. Čo by ťa zaujímalo, keby si na jeho strane? Ak sa ti to v tomto prípade ťažšie predstavuje, skús si spraviť takýto pohovor s kamarátom. Nájdi si nejakú algoritmickú úlohu, poriadne si ju naštuduj a skús spraviť pohovor s kamarátom. Ja som to zatiaľ síce nikdy neurobil, ale viem si predstaviť, že ti to perspektívu. 

Čo je lepšie? 

Ktorý z týchto prístupov je lepší? Neviem. Ja osobne by som asi zvolil kombináciu oboch. Pokec + riešenie algoritmickej úlohy. Problém však je, že pohovory sú veľmi drahé a čím viač času sa zabije pohovorom, tým menej času môže pohovorujúci pracovať. Pohovory väčšinou robia ľudia, ktorý sú seniornejší t.j. drahší. Preto ich treba robiť efektívne. 

Podľa mňa oba typy pohovorov majú niečo do seba a z oboch vie dobrý pohovorujúci vytiahnuť to, čo potrebuje. Zlý pohovorujúci si ani z toho najlepšieho systému nič nezoberie, pretože nebude vedieť, čo má vlastne hľadať. Dobrý phovorujúci vyzistí o kandidátovi všetko čo potrebuje a kandidát o tom ani nebude vedieť. Psychology, b**ch! 

Plat 

Mal som túto tému celkom rozpísanú a potom som si povedal, že to nepatrí do tohto článku. Na túto tému sa dá totiž toho toľko povedať, že to pôjde do samostatného článku (ktorý niekedy v budúcnosti snaď možno napíšem).  

Čo však určite chcem spomenúť je, ako táto časť na pohovore vyzerá. Väčšinou sa k tejto téme prichádza na konci pohovoru. Myslím, že na všetkých pohovorch sa najprv pýtali oni mňa na platové očakávania. Ja som im ho povedal a tvárili sa, že si pýtam veľmi veľa. Možno tomu tak aj bolo. 

Tiež sa mi zdá, že som niekedy na túto otázku odpovedal proti otázkou, že čo mi vedia ponúknuť. Žial nepamätám si, ako to dopadlo. Vždy som sa však pýtal, či to je príliš veľa, alebo že ako to vidia. Reakcia bola iba raz taká, že to znie rozumne. Inak sa vždy tvárili, že či som sa nezbláznil (fakt netuším, či to hrali, alebo som si fakt pýtal veľa). Toto je jediná časť pohovoru, ktorá sa mi nepáči, pretože sa to celé mení na takú divnú hru.

Asi by to nebolo ono, keby som nespomenul, koľko som si pýtal. Po skončení vysokej školy s 2 ročnou praxou ako brigádnik som si pýtal (podľa mňa odvážne) 2300 eur v hrubom ako fulltime C# junior developer. To bolo asi trochu veľa, ale predsa len som dostal ponuku na 2100 eur – zostal som však na vtedy aktuálnej pozícii. O rok a pol neskôr som si pýtal 2500 eur, dostal som dve ponuky na 2300 eur a 2100 eur. Tieto boli aj s trinástym platom + ďalšie benefity. Nezobral som ich, išiel som do VacuumLabs. Najväčší problém bol v tom, že som nemal žiadne pracovné skúsenosti s ASP.NET (web framework v C# svete) a všetko to boli pozície hlavne pre web development. 

Benefity 

Na juniorskej úrovni si uchádzač benefity väčšinou nevyberá. Firma má pravdepodobne dané nejaké benefity, ktoré poskytuje všetkým zamestnancom a tie dostane aj junior. Musím povedať, že väčšinou boli tie benefity fakt na úrovni. Taký štandard je: 

  • Flexibilná pracovná doba 
  • Povolený (aspoň občasný) home office 
  • (neobmedzené) Sick days – keď ti je zle, tak kľudne ostaň doma, ale nenakaz mi celý office
  • Príspevky na stravu – či už gastrolístky, alebo zabezpečená strava (hm, není benefit, ako benefit)
  • Multisport karta 
  • Nejaké teambuildingy 
  • Platený čas na vzdelávanie 
  • Nejaká forma ročných odmien – 13. plat, menší 13. a 14. plat 

Ak má uchádzač nejaké špeciálne požiadavky, ako napríklad už spomínané skoršie odchádzanie v stredu, tak sa väčšinou dá všelijak dohodnúť. Ja som sa zatiaľ vždy stretol s ústretovosťou a nie úplne absúrdne veci sa dali dohodnúť. Ako programátori to naozaj nemáme zlé.  

Záver 

Pohovory vedia byť veľkým strašiakom. Pre mňa vždy boli a asi aj budú. Je to však naozaj iba o tom, aby obe strany zistili, či si vedia spolu predstaviť pracovať a či sa vedia dohodnúť na vhodných podmienkach. Dôležité je nebyť namyslený, ale zdravo sebavedomý. Neklamať, ale všetko radšej na rovinu povedať. Nebyť drzý a nezdvorilí, ale zároveň nie prehnane milý.  

Ešte by som chcel dodať, že naozaj som bol pred každým pohovorom dosť v strese. Avšak z drvivej väčšiny z nich som, bez ohľadu na môj výkon, odchádzal s dobrým pocitom z príjemného stretnutia. Vždy ma to veľmi prekvapilo.

Chcel/a by si o pohovor vedieť viac? Spýtaj sa v komentoch, alebo sa pridaj na náš DISCORD a spýtaj sa rovno tam! Budeme radi za každú otázku alebo komentár!


6 Replies to “Pohovor programátora”

    • Gabriel Kerekes

      Čauko, super otázka, trochu ma mrzí, že som to nespomenul v článku.

      Pri IT na tom podľa mňa až tak nezáleží. Ja som si vždy dal iba slušnejší sveter (bežne chodím v mikinách ;)) a vyzeralo to byť väčšinou vhodné. Pokiaľ nejde o nejaký korporát/banku, kde všetci nosia obleky, tak je to celkom jedno pokiaľ neprídeš v pyžame.

      Tiež sa ale môžes dopredu opýtať, či majú nejaký preferovaný dresscode.

  1. Peter

    Super clanok. Nemyslim, ze si si pytal vela. Firmy by boli najradsej kebyze robis za 1000 eur. K tomu VacuumLabs, pozeral som tu firmu a premyslam ze by som tam skusil pohovor. Vies dat hint, ako prebieha? Inak plat odzrkadluje to co maju na webe? Zobrali Ta ako juniora? Dik ta pripadne odpovede.

    • Gabriel Kerekes

      Vdaka za pochvalu 🙂 Urcite skus, nie som si ale uplne isty, ako to je s hirovanim pocas korony 🙁 Ale oni sa ozvu ked tak neskor 🙂

      Pohovor je prave ten druhy typ pohovoru. Najprv dostanes domacu ulohu, ktoru mas za dve hodiny vyriesit – ta je relativne jednoducha a kazdy by to mal byt schopny vyriesit – mne to trvalo asi 40 minut.

      Potom su dalsie dve kola uz osobne. Na kazdom dostanes algoritmicku ulohu a spolu s pohovorujucim sa ju snazis vyriesit. Super priprava je pozriet Cracking the Coding Interview a napr. Codility, alebo podobnu stranku. Je to tazsie ako normalny pohovor, ale s trochou pripravy sa to da. Ako pisem v clanku – pohovorujuci chce zistit kto si, nie ta potopit/strapnit. Takze sa bude snazit ta naviest, ak sa stratis.

      Platy sedia, hej. Bol som prijaty ako mid.

      Firma je inak super. Zatial mam pocit, ze kazdy, kto tu je, tu aj chce byt a realne sa tu pracuje. Je sa co a aj od koho ucit 🙂

  2. Matusko

    Dakujem velmi pekne za skvely clanok 🙂
    Chystam sa do Accenture na pohovor, VS skolu nemam a C# som sa ucil sam doma, mam aj nejake projekty spravene, niektore su v progrese – skor je to ako moja referencia a forma samostudia, takze som celkom zvedavy ako to bude fungovat na tom pohovore..
    Taka otazka, chcem sa dostat na Junior poziciu kedze si myslim ze kodiť by som dokazal len nemam ziadnu prax ako sa programuje v korporacii – profesíjne – vzdy som si vsetko robil sam – SQL, backend, fronend.. Co by som si okrem tych TOP 50 otazok mal nastudovat este?

    • Gabriel Kerekes

      Nazdar, ďakujem za pochvalu 😉

      Super, že to ideš skúsiť! Ak sa ideš hlásiť na ASP.NET pozíciu, tak by si mal mať za sebou aspoň nejaký menší projekt v tomto frameworku. Niečo s autentifikáciou a autorizáciou, entity frameworkom, nejaké GET-y, POST-y, prípadne niečo málo s Razor Pages. V C# ako takom by si mal mať odskúšané Task-y, Thread-y – napr. čitateľ zapisovateľ, mal by si byť zoznámený s LINQ-om. To sú možno také úplne základné veci. Ak niečo z toho nevieš, tak nevadí, všetko sú to len plusové bodíky, môžu ťa zobrať aj tak. A ideš na juniorskú pozíciu tak by to mohlo byť OK 😉

      Ak by si sa chcel popýtať konkrétnejšie, tak sa kludne pridaj na náš Slack a napíš mi súkromnú správu, alebo napíš mail na gabriel@streetofcode.sk.

      Držím palce!

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená.