3. PRAKTICKÝ TEST PRAKTICKY – TAK JAK TEDA NA TO?

interview-icon

Po dvou předchozích článcích (tady a tady), kde jsem shrnul nejčastější chyby firem při hledání nových programátorů, se konečně dostávám k pomyslnému jádru pudla a sepíšu zde, jak se to snažím dělat já.

Hned na začátek řeknu, že pohovory a nejen praktická část, bohužel nedokáží odhalit, zda je kandidát 100% vhodný nebo ne. Při pohovoru totiž může působit přátelsky, může mít znalosti a skill celého světa, ale nakonec se může stát, že nebude absolutně schopný pracovat v týmu a takového člověka samozřejmě nechceme. Nebo zase bude chtít všechen kód doručit co nejlépe a přes všechno to vymazlování a refaktoring nebude schopný dodávat věci včas. Toto zní sice velice super a sám bych uvítal, kdyby na takové věci mívali klienti více času, ale firma má své krátkodobé a dlouhodobé cíle a vše se musí tak nějak vybalancovat.

S myšlenkou, že stejně nemůžeme zjistit veškeré vlastnosti kandidátů, které by se nemusely shodovat se záměry firmy, jsem sepsal zadání testu, ve kterém se snažím otestovat pouze ty nejdůležitější schopnosti.

Můžete ho najít zde: https://github.com/bouchal/php-code-interview

Už jsem tady párkrát nakousl, že nejdůležitější při programování složitějších systémů jsou tyto věci:

Abstrakce kvůli znovupoužitelnosti a snadnější budoucí implementaci.
Izolovanost, protože nechceme neustále zjišťovat, zda jsme při refaktoringu jedné strany nerozbili něco na straně druhé.
přehlednost protože stále pracujeme v týmu a nejde o to, abychom vymysleli co nejoptimalizovanější hlavolam na co nejméně řádků, ale abychom se měli rádi a neházeli si zbytečné klacky pod nohy, protože po půl roce bychom o ten klacek taky mohli zakopnout sami.

Tyto věci mají společné hlavně to, že nejdou nafejkovat při testu a taky se nedají naučit v nějakém rozumném čase a člověk do nich musí tzv. vyrůst. To ale může u někoho trvat i celý život.

Když totiž příjmeme programátora, tak nám nevadí, že mu třeba bude pár týdnů trvat, než se přeorientuje na jiný jazyk, naučí se nové knihovny nebo splyne s vývojovou flow. Předpokládáme totiž, že s ním budeme spolupracovat hodně dlouho a proto se taková časová investice a trpělivost nakonec vyplatí.

Co naopak v mém testu nenajdeme jsou věci absolutně nic neříkající. I developer, co PHP před tím viděl jenom z rychlíku, dokáže bez problému test udělat. Naopak i nejlepší PHPkář na světě, co zná všechny frameworky od začátku až do konce, to může představovat oříšek, pokud to byl vždy vlk samotář nebo pracoval v agentuře, které samozřejmě záleželo jenom na rychlém odbavování zakázek.

Dále v něm nejsou žádné chytáky, nutnost znát nejpodobnější definice ani žádný nudný kód, který by urazil i juniora.

A protože žijeme v době, kdy schopní lidé znají cenu svého času, tak asi nejdůležitější na tomto zadání je to, že testuje všechno na čem záleží a zabere i se seznámením 10-20 minut. A pokud firma není dostatečně zajímavou výzvou, nikdo nechce trávit víc než nutné množství času, při plnění zadání. S množstvím nabídek, co dnes v Česku IT specialisté mají, by jinak hledání práce byl full time job.