Kako dobro testirati programerja ob zaposlovanju?
9 naročnikov
9 naročnikov
Zanimajo me vaše izkušnje in mnenja kako testirate programerjevo tehnično znanje ob zaposlovanju? Imate kakšne posebne trike/metode poleg klasičnih vprašanj oziroma reševanja nalog?
Če smo že pri temu, imate kakšne dobre tricky PHP naloge za razgovor za jih deliti?
Se poslužujete raznih online test toolsov? Če ja, katerih?
V naprej hvala za pomoč
10 odgovorov
Jaz najraje delam tako, da se dobiva na appear.in/ ali teamviewer, shera screen ... rečem tole je koda, tole je težava, kako bi rešil. Potem pa opazuješ ... a mu je smotano, če ne zna, kaj naredi ... gre na google ali hoče dokazat, da je najhujši in porab 1 uro, čeprav je na googlu rešitev 1 klik stran, ali zablokira, ali mu po 30 min pade koncentracija in začne neki druge teske gledat, menjat tabe (multi tasking) ... obupavanje, hitre rešitve ... kako dobro testira, pomisli na druge situacije. Pol ti je hitro jasno s kom imaš opravka. CV, primeri kode, da pripravi neko testno nalogo je za mene brezveze njegovega in mojega časa, ker je čist drugač kot realne situacije. Tam se lepo v miru pripravi, pošlje najlepšo kodo, prosi prijatelja za pomoč in tako naprej in tako naprej.
Pri nas je nekako tako da kandidati dobijo neki test task za narediti, običajno v nekem mikro frameworku, ki ga itak do takrat niso poznali, narediti morajo pa kar veliko kode.
Sicer sam task ni nič posebnega, uporabiš google in zdravo pamet in gre. Trik pri nas je ta, da recimo dobi task v petek popoldne, vrniti mora pa rešeno v pon. zjutraj. Cilj je torej da se vidi kako hitro se uči nove zadeve, kako dobro zna brati google in/ali ostale vire in seveda produkt ki ga na koncu vrne.
To nam za enkrat ustreza, je pa res da različne situacije terjajo različna preverjanja. Pri nas smo bolj agencijska firma in imamo temu primerne projekte v različnih frameworkih, različnih jezikih in različnih platformah.
lp
@Roky Ne vem če je ta način preveč dober, jaz recimo sovražim, če mi nekdo gleda pod prste . Zgubim vso koncentracijo in voljo za delo. Pa mislim da je dosti mojih kolegov, ki imajo podobno težavo.
Za moje pojme je najboljši način: reference + dober interview + testna naloga.
Reference: dobiš nek občutek, če se je sploh že kdaj reševal večje probleme.
Na interviewu lahko preveriš kako logično razmišlja, prašaš ga lahko po čisto konkretno kako bi kako zadevo rešil.
S testno nalogo se pa znebiš kvazi programerjev, ki mislijo da je HTML že programiranje.
Se popolnoma strinjam s pavartijem...
S tem, da bi pri referencah želel da izbere en kompliciran del kode in mi ga razloži.
Zdej če pa kandidat pošlje github profil in je ta zafilan z zanimivimi stvarmi, pa je krajši spoznavni sestanek več kot dovolj.
Roky:
Jaz najraje delam tako, da se dobiva na appear.in/ ali teamviewer, shera screen ... rečem tole je koda, tole je težava, kako bi rešil. Potem pa opazuješ ... a mu je smotano, če ne zna, kaj naredi ... gre na google ali hoče dokazat, da je najhujši in porab 1 uro, čeprav je na googlu rešitev 1 klik stran, ali zablokira, ali mu po 30 min pade koncentracija in začne neki druge teske gledat, menjat tabe (multi tasking) ... obupavanje, hitre rešitve ... kako dobro testira, pomisli na druge situacije. Pol ti je hitro jasno s kom imaš opravka.
Tole pa meni kot programerju pove ogromno o delodajalcu/naročniku: "Bejž stran kolikor imaš zaleta!".
Če pa česa ne prenesem, je pa to gledanje pod prste, štopanje časa in pregovarjanje "zakaj si pa za tole porabil 1 uro, če bi lahko samo naredil copy-paste prvega linka na Googlu?". Mislim ok, eno je, če iščeš "code monkey-a"... važno, da zdej dela. Bognedaj, da bo treba to čez mesec, 2, 6 popravljat - ti bo "programer" skočil z balkona. Iz šestega štuka. Na glavo.
Stvari se rešuje celovito in ne "namečeš par if-ov, switch/case/selectov, copy/paste s StackOverflowa in piči Miško".
Najbolj sprejemljivo se mi je vedno zdelo točno to, kar sta napisala @werky in @pavarti. No, razen tisti "petek popoldne - ponedeljek dopoldne" del... ljudje imajo/mo vikende za družino/hobije/ležanje na tleh sredi sobe/... Ampak ok, z mojega vidika to ni nek deal breaker.
Reference oz. delovne izkušnje -> razgovor/intervju -> testna naloga. Osebno mi je še najboljše, da je najprej testna naloga. Zakaj? Zato, ker je dev stack različen praktično od firme do firme (oz. včasih je še znotraj iste firme več stackov). In tudi, če jaz še nimam konkretnih izkušenj z npr. MongoDB, imam pa z nečim podobnim, se bom dokaj hitro uspel ujet in stvari naštudirat. Ali pa ne - in bom ugotovil, da to delo/projekt pa verjetno ni zame.
Tako se kmalu pokaže, če programer ustreza projektu (in obratno) in če ima naveza delodajalec-programer kakšen potencial, ali bodo sitnosti.
EDIT: Še tole sem pozabil omenit: celoten tale proces preverjanja je dvosmerna zadeva. Tako, kot ti ocenjuješ mene kot programerja, jaz ocenjujem tebe kot delodajalca/naročnika.
Mislim da se prevec izpostavlja tehnicno znanje, manj pa da ti to ne pomaga kaj dosti, ce je verjetnost koncanja naloge ranga % snovi v homeopatskem zdravilu in zanesljivost mizarska/obrtniska, ego pravniski in pricakovanja glede ugodja lajfa milijonarske :)
Predvsem pri 100% remote delu rabi clovek precej samodiscipline in organiziranosti.
Testne naloge so kriz - redko odsevajo cisto realno stanje oz. ekosistem. Osebno sem pristas konkretnih taskov na konkretnem projektu (jasno, ne na produkcijskem branchu).
Mi imamo mislim da tak sistem..
- Test4geeks en online test, da vidimo če je sploh programer
- Testni task, ki ga naredi doma ene 4 urni task z pomanjkljivo specifikacijo
- Če je 1+2 v redu oz. končano potem ga povabimo na intervju + prosimo da prinese CV
Intervju je "life oriented", vprašanja so v stilu:
Zakaj menjaš službo ?
S kakšno plačo bi bil srečen (srečen, ne zadovoljen)?
Kje bi rad bil karierno v roku 1, 5, 10 let ?
Koliko ti pomeni družina oz prijatelji (ali bi rajši manj denarja in več free časa, ali obratno ?
Če najde kaj zanimivega v CVju se še to vpraša.
@hanyo: tistole s pomankljivo specifikacijo je gold! Ker je tako potem 90% časa tako tudi ko službo dobiš :)
@Spartacus: Meni je bilo pa kot programerju najbolje, če sem direktno preskočil vrsto kandidatov, čakanje na odgovor, 1 --- 2 faza, razne testne naloge čez vikend in direktno skočil na projekt. V 90% sem takoj dobil službo, zaradi hitrosti/načina razmišljanja sem se zmenil za višjo urno postavko ... pa še res dober osebni filing sem dobil pri reševanju težav skupaj z delodajalcem, kakšna je ta oseba ali kakšna je ekipa tam.