Devet “smrtnih” grehova tehničkog intervjua

Ono što treba da utvrdite tokom tehničkog intervjua jeste da li kandidat zna da programira. Evo nekoliko korisnih saveta koji će vam pomoći da izbegnete najčešće zamke i greške koje se dešavaju tom prilikom.

Aleksandar Sabo - 9. Novembar, 2017.

Moguće je da ste već bili u ovoj situaciji: radite na poziciji programera u firmi, a kolege iz HR-a ili vlasnici firme su vas zamolili da obavite tehnički intervju sa potencijalnim kolegom. Vi to nikad niste radili ranije, a želite da ostavite dobar utisak.

Iako je još uvek više programera koji su bili intervjuisani, postoji značajan broj nas koji smo u prilici da intervjuišemo druge. Ovo nije nimalo lak zadatak, pa treba obratiti pažnju na nekoliko čestih grešaka koje mogu da pretvore čitavo iskustvo u pakao. Za obe strane.

Šta vam je činiti?

Osnovna stvar na razgovoru je jednostavna — sve što treba da uradite jeste da utvrdite da li kandidat zna da programira. Međutim, to je lakši deo posla. Ono što je zaista važno je da tokom razgovora ostavite dobar utisak. Kandidat je već pod stresom što je došao na razgovor za posao, pa nema potrebe da unostite dodatnu frustraciju. Sigurno ne želite da učestvujete u kreiranju loših anegdota koje će se prepričavati u zajednici i time dozvoliti da firma izađe na loš glas.

Kako biste predupredili ovakve situacije evo nekoliko korisnih saveta koji će vam pomoći da izbegnete najčešće zamke i greške koje se dešavaju prilikom tehničkih intervjua.

1. Ne postavljajte pitanja čije odgovore morate da potražite online

Jednostavno izbegavajte pitanja na koja ni sami ne znate odgovor, ako ih pre toga ne izguglate. Niko od nas ne drži u glavi sve konfiguracione parametre Laravel frameworka ili kompletan API za integraciju bilo kog sistema za plaćanje karticama. Ako vi, kao intervjuer, ne znate odgovor na pitanje bez pomoći Google-a, onda to pitanje sigurno nije bitno za posao.

Detalji kao što su API komande i framework parametri su veoma dobro dokumentovani i niko od nas nije lud da ih uči napamet. Umesto da kandidata kog intervjuišete ispitujete takve (nebitne) detalje bolje je da proverite kako se snalazi u čitanju dokumentacije i koliko brzo može da pronađe informaciju i resurse koji su potrebni da se problem reši.

2. Ne pravite se pametni

Imao sam prilike više puta da slušam priče kako su ljudi bili na razgovoru za posao i da su pošto im je postavljeno pitanje na koje nisu znali odgovor, dobili kompletan elaborat na zadatu temu. Jasno mi je da imate potrebu da ispričate sve što znate o Angularu, ali imajte na umu da ovo nije prilika za tako nešto. Nije na vama da edukujete kandidata, a još manje je potrebno da to radite tokom intervjua za posao.

Vaš zadatak je da saslušate šta kandidat ima da kaže na postavljeno pitanje, a ako nema odgovor pokušajte da se lagano prebacite na sledeće pitanje dok ne dođete do onoga što ta osoba zna. Zapamtite: tokom razgovora za posao vaš zadatak je da utvrdite koliko kandidat zna o programiranju, a ne koliko ne zna.

3. Ne dozvolite da kandidat ispadne budala

Velika potražnja za programerima i mali broj njih na tržištu, dovelo nas je u situaciju da se često na oglas za posao programera javi mali broj kandidata. U ovakvim slučajevima se uglavnom ne radi preselekcija nego se svi kandidati pozovu na razgovor. To može da vas uvali u nezgodnu situaciju, jer se ponekad tokom intervjua utvrdi da kandidat nema potrebna (a ponekad i nikakva) znanja za ovu poziciju.

Ako se ikad nađete u ovakvoj situaciji, nikad nemojte pokušati da objasnite kandidatu da nema pojma i da uopšte nije trebalo da se javi na tu poziciju. Takođe, nemojte dozvoliti sebi da na bilo koji način učinite da se kandidat oseća glupo što ne zna baš to što ste vi umislili da treba da zna ili što nije dao odgovor koji ste očekivali.

Uvek imajte na umu da je potrebno učiniti da se kandidat oseća prijatno na intervjuu, bez obzira na znanje koje ima. Ovaj intervju je jedno njegovo iskustvo u kontaktu sa vašom firmom koje će on/ona sigurno podeliti sa nekim od svojih prijatelja. Ako to iskustvo bude negativno, onda ste samo napravili štetu svojoj firmi koju je veoma teško popraviti.

4. Ne blokirajte internet prilikom intervjua

Jedna od najboljih praksi intervjuisanja je kada pustite kandidata da na licu mesta reši neki programerski problem. Ovakvom metodom možete saznati jako puno o načinu rada kandidata (koliko koristi miš prilikom programiranja, koliko je analitičan/na, da li ume da se snađe u situaciji, kakav kod piše, itd.) Da bi ovo imalo maksimalni efekat, potrebno je stvoriti uslove što približnije realnom radnom okruženju.

Ukoliko isključite internet, napravićete potpuno nerealnu situaciju. U takvom okruženju vi zahtevate od kandidata da drži u glavi sve ono što bi na netu pronašao za nekoliko sekundi. Koga briga da pamti redosled parametara u funkciji str_replace? Bitnije je da zapamti gde tu informaciju može da pronađe, zar ne?

5. Ne radite tehnički intervju preko telefona

Ovo je potpuno gubljenje vremena. Da podsetim, vaš cilj je da otkrijete da li kandidat zna da piše kod. Kako to mislite da izvedete preko telefona?

Sada ćete vi pitati kako onda da zaposlite nekoga remote ili da date šansu nekome ko dolazi iz drugog grada? Jednostavno zakažite i obavite online intervju putem Skype-a ili nekog drugog sličnog alata koji će vam dozvoliti da podelite ekran sa sagovornikom i pogledate šta i na koji način tamo piše.

6. Izbegavajte intervjuisanje na beloj tabli (tzv. whiteboard interview)

Jedina stvar koja je gora od isključivanja interneta prilikom intervjua je oduzimanje računara programeru. Nema ništa gore od “programiranja” na papiru ili beloj tabli markerima. Imao sam neke profesore na fakultetu koji su nas terali da programiramo na papiru prilikom polaganja ispita, pa su onda proveravali da li smo ispravno koristili terminator naredbi (čitaj tačku zarez na kraju komande). Ni tada se nisam osećao komforno u ovakvoj situaciji, tako da mogu zamisliti kako to izgleda kandidatima na intervjuu za posao.

Ovakav način provere znanja je danas potpuno outdated. Ako znamo da su razvojni alati za programiranje danas toliko napredni da nam u realnom vremenu prikazuju grešku ukoliko nedostaje tačka zarez na kraju reda, detektuju ako smo pozvali nepostojeću funkciju, pa čak i automatski formatiraju napisani kod u stilu koji odaberemo, kod na papiru i tabli su potpuna budalaština.

Umesto da proveravate takve sitnice i stvari koje dobar alat može rešiti, bolje je da fokus prebacite na neke druge stvari. Recimo nije loše proveriti koliko kandidat poznaje prečice na tastaturi, jer će mu one omogućiti da više vremena posveti problemu koji želi rešiti, umesto da se zamara sa semantikom programskog jezika.

7. Ne koristite algoritme prilikom intervjuisanja

– Ford – Belmanov algoritam za pretraživanje optimalne rute?
Kandidat odmahuje glavom. Ne razume šta ga pitate.

– Kruskalovo minimalno drvo razapinjanja?
I dalje odmahuje glavom.

– Sortiranje?

– Da, znam. – reći će konačno – Koristim onu funkciju usort kad sortiram nizove.
Sad vi odmahujete glavom, jer niste dobili odgovor koji ste očekivali.

Opet se pravite pametni? Nema potrebe za tim. Jednostavno zaboravite na algoritme tokom intervjua. Ovo je put u propast i siguran način da iskombinujete sve loše iskustvo koje kandidat može da ima na razgovoru za posao.

8. Ne zapošljavate za Google

Kada ne znate kako da vodite intervju za posao, vi pogledajte kako to rade nabolji pa učinite isto. Kada to uradite videćete da je internet prepun anegdota i primera pitanja koja Google postavlja na svojim intervjuima za posao. Najčešće ćete naleteti na pitanja koja se postavljaju kandidatima za programerske pozicije. To su pitanja tipa “koliko žele bombona stane u Fiat Punto?” ili “koliko je težak pančevački most?”

Da, ovo su interesantna pitanja koja mogu da vam otkriju kako osoba razmišlja i da li ume da primeni analitiku. Ali, odgovori na ova pitanja vam ne otkrivaju da li ta osoba zna da programira, a to je glavni razlog zbog kog razgovarate sa njom. Da se ne lažemo, ovakva pitanja su zabavna, ali su potpuno gubljenje vremena, jer vi ipak (još uvek) ne zapošljavate za Google.

PS. Inače, i Google je prestao da koristi takva pitanja u svojim intervjuima. :)

9. Ne izigravajte psihologa

Još jedna česta zamka jeste igranje psihologa. Naime, često se dešava da osobu koju imate prilike da intervjuišete pokušavate da smestite u neki kalup i uradite njenu psihološku procenu, samo na osnovu kratkog razgovora, tokom kog bi trebalo da pričate o tehnici.

Nemojte upadati u ovu zamku. Vi niste psiholog i niste dovoljno stručni za donošenje ovakvih zaključaka. Ovaj posao ostavite stručnjacima i svojim kolegama iz HR tima. Oni su ti koji imaju adekvatna znanja i koji će moći da naprave psihološki profil potencijalnih novih kolega. S druge strane, ni vi verovatno ne biste voleli da vam neko iz HR-a kaže kako treba da kodirate, zar ne?

Možda je ovaj tekst dovoljan da vam ukaže na stvari koje biste mogli da popravite kada radite tehnički intervju, a ako pak želite da saznate više i naučite kako da budete stvarno dobri u ovom poslu pridružite nam se 2. decembra na treningu posvećenom isključivo tehničkom intervjuu.