Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

Petr Lazecký

Chorobovýplody

Něco o tom, jak je těžké najít talent za půl dne

Během posledních tří let jsem se v našem teamu vypracoval na jednoho z hlavních náborčích. Za tu dobu jsem se účastnil okolo stovky příjímacích pohovorů. Feedback, který jsem dostal od úspěšných kandidátů mi dodal odvahy napsat tento článek.

Prvně je třeba říci, že provést přijímací pohovor tak, aby byl co nejvíce objektivní je nesmírně těžká věc. Na přijímací pohovor jsem se musel vždy připravit. Přípravu na přijímací pohovor vidím dle svých zkušeností ve třech bodech:

  • Seznámení se kandidátem. Především výpis klíčových či zajímavých údajů z životopisu kandidáta. Za povšimnutí rozhodně stojí web aplikace, na kterých kandidát v minulosti pracoval.
  • Seznámení se s rolí, na kterou bude úspěšný kandidát přijat. V tomto případě je vhodné naplánovat schůzku s vedoucím, který bude kandidáta přijímat (pokud to zní zvláštně, tak čtěte dále). Důležité je mít jasno ve vstupních očekáváních (s čím by měl kandidát přijít do firmy, s jakými znalostmi, zkušenostmi, vzděláním apod.), s náplní práce úspěšného kandidáta a s kariérním růstem, který je s danou pozicí spojen.
  • Strategie otázek při pohovoru.

Příjímací pohovory ve firmě Microsoft

Pokud byste měli zájem pracovat ve firmě Microsoft, tak zde je šablona přijímacího pohovoru, kterou budete muset projít. Vlastní příjímací pohovor se skládá ze tří, popřípadě čtyř samostatných pohovorů. U každého pohovoru jsou za firmu Microsoft dva přísedící. Celého procesu se za firmu Microsoft účastní šest, popřípadě osm různých lidí. Tito lidé jsou vybrání tak, aby pokryli různé role ve firmě.

První pohovor je zaměřen na technické znalosti (hard skills) a základní komunikační vlastnosti kandidáta (soft skills). Právě těchto pohovorů jsem se účastnil. Pokud je kandidát ze zahraničí, tak jsou technické pohovory dva, telefonický a další poté, co je kandidát přizván k osobnímu pohovoru. Následuje pohovor ze zástupci personálního oddělení. Tito lidé se především zaměřují na komunikační schopnosti klienta. Výsledkem těchto dvou pohovorů je doporučení pro vedoucího, který je odpovědný za danou otevřenou pozici. Pokud personální oddělení a účastníci technického pohovoru doporučí daného kandidáta, je kandidát pozván k pohovoru, kterého se účastní samotný vedoucí a jím zvolený přísedící.  Na základě tohoto pohovoru je kandidát přijat či poslán na další doplňující pohovor, který obvykle provádí osoba na úrovni řízení vedoucího. Každý takovýto pohovor trvá zhruba hodinu až hodinu a půl.

Ze strany firmy Microsoft se můžete spolehnout na naprostou korektnost vlastního přijímacího řízení. Existují otázky, na které se vás nikdo nikdy nezeptá. Otázky typu kolik je vám let, odkud jste, zda máte rodinu a podobně jsou naprostým tabu. Na školení, které jsem kdysi absolvoval, nám dokonce říkali, že i tak nevinná otázka jako "Jak dlouho jste sem jel?" může být vnímána jako diskriminační a žalovatelná. Radši si s kadidátem při cestě ve výtahu povídám o fotbale nebo o nějakém novém filmu, zkrátka o něčem naprosto neutrálním.

Grif technického pohovoru

Jedna z nejtěžších věcí na příjímacím pohovoru je multitasking. Zde je seznam, který musíte mít jako zkoušející souběžně na zřeteli:

  • Dovídám se danou otázkou něco nového o kandidátovi? Každá otázka by měla nějakým způsobem vést k  jednoznačnému závěru pro přijetí či nepřijetí kandidáta. 
  • Jaká bude další otázka? Jak budu v pohovoru pokračovat?
  • Odpovídá kandidát na otázku? Odpovídá správně?

Na pohovor je obvykle vyhrazen daný čas a vše probíhá poměrně rychle. To, že musíte při pohovoru poslouchat, co vám kandidát odpovídá, a zároveň si musíte připravovat další smysluplnou otázku, je opravdu velmi náročné.

Nejlepší obranou proti multitaskingu je pohovor ve formě dialogu. V tomto případě se snažíte kandidáta "nastavit" tak, aby vás poučil. Otázka je pak postavena v tomto tónu: "Zajímavé. To jsem nevěděl. Nesetkal jste se tím, jak by se to dalo vyřešit pomocí více vláken?" Kandidát, pokud ví, získá sevěvědomí a odvahu se s vámi pustit do debaty. Pak pokračujete: "A řešil jste někdy přístup více vláken aplikace do databáze?"

Dostat se do atmosféry debaty je ale nesmírně těžké a zdaleka ne vždy se mi to povedlo. Prvním problémem je, že kandidát musí spolupracovat :-). A tedy něco vědět. Druhým problémem je to, že jako zkoušející jste přece jen vnímán jako boss, ten kdo má vždycky pravdu a všechno ví a všechno zná. Postavení kandidáta a zkoušejícího při pohovoru není rovné. Třetím problémem je cvik. Tím, jak rostou vaše zkušenosti z minulých pohovorů, se dle mých zkušeností mění způsob vedení celého pohovoru. Představuji si to takto:

Na počátku cesty je důraz kladen na seznam otázek. Každý si tím musí projít. Mé první pohovory byly především o tom, abych měl zásobu "správných" otázek. Otázky jsem kladl v daném pořadí a jednoduše jsem si dělal fajfky na co mi kandidát odpověděl a na co ne. To bylo mé stádium "Vyptávání" - jinak řečeno, otázky jsou nadevše, otázky jsou Bůh. Postupně jsem došel k tomu, že některé otázky jsou těžší než jiné a nemá smysl je klást tehdy, pokud kandidát neznal odpověď na nějakou jednodušší otázku. Tento filtr "težší" a "lehčí" je zcela určitě subjektivní, ale s tím, jak zkoušíte více a více kandidátů získáte přehled o tom, na co jsou schopni kandidáti odpovědět. "Težší" a "lehčí" se tedy časem stává spíše "Méně pravděpodobné, že kandidát bude znát odpovět" a "Vice pravděpodobné, že kandidát bude znát odpověť".

S rostoucími zkušenostmi se posouváte z fáze "Vyptávání" do fáze "Naslouchání". Čím více jste schopni naslouchat, tím více je pohovor interaktivní. Otázky zde nehrají až tak klíčovou roli. Důležité je spíše schopnost poslouchat a přímo reagovat na to, co kadidát říká. Otázky přestávají mít absolutní formu typu: "Co je to deadlock?". Místo toho jsou otázky více neurčité: "Proč si to myslíte? Co se stane v případě, když budete mít vlákna dvě?"

Dalším problémem z pohledu zkoušejícího je "syndrom svalové horečky". Pokud jste někdy chodili do posilovny tak víte, jaké to je, když si po pravidelném cvičení dáte i sebemenší, několikadenní přestávku. Pak musíte počítat s tím, že vás při prvním následném tréningu bude všechno bolet. S pohory je to dle mých zkušeností podobné. V jednu dobu jsme měli otevřeno pět pozic a to v praxi znamenalo tak třicet pohovorů. Dva denně, několik týdnů za sebou. Po určité době je to rutina. Pak ale nastane hladové obdoví. Přeci jen, nové spolupracovníky nepřijímáte zase až tak často. Pak příjde nová vlna. Během období půstu však odezní automatika, grif schopnosti naslouchání se oslabí. Naštěstí to není tak, že byste úplně ztratítili vaše předchozí zkušenosti. Spíše je to něco podobného, jako když přestanete na delší dobu řídit auto. Nezapomenete řídit, ale na určitou dobu ztratíte jistotu, cit pro situaci.

Struktura pohovoru

Možná čekáte na to, jaké jsou mé oblíbené otázky a jaká je struktura mého pohovoru. Díky pohovorům, kterých jsem se zůčastnil mám sice jisté seběvědomí, ale rozhodně se necítím na to, abych o sobě tvrdil, že jsem v tomto borec. Naopak, výše uvedené myšlenky měly být spíše o tom, že udělat dobrý pohovor, a to především znamená rozpoznat talent, potenciál, je nesmírně těžké. Zde je tedy několik mých oblíbených témat.

Náš team je složen z několika pracovních skupin, které vyžadují různou kvalifikaci. Na jedné škále se jedná o stážisty. Ti u nás obvykle pracují jeden rok. Firma Microsoft je sponzorem programu, jehož snahou je umožnit studentům IT získat praxi v oboru. Další skupinou jsou kolegové, kteří maji na starosti automatizaci testování produktu Office. Od těchto lidí se očekává aspoň dvouletá praxe. Třetí skupinou jsou kolegové, kteří buďto vyvíjí interní nástroje pro testování a lokalizaci, a nebo vyvíjí Office Add-iny specifické pro daný trh. Od těchto lidí se očekává aspoň pět let praxe, znalost C++ je v tomto případě častou podmínkou (tito lidé obvykle pracují s kódem Office).

V mém repertoáru otázek jsou zásadně otázky koncepční. Otázky typu "Vyjmenujte mi třídy, které můžete použít k nastavení formátu pro serializaci" či "Namalujte mi UML diagram návrhového vzoru Strategy" považuji za nic neříkající a nefér. A to hlavně proto, že tyto otázky nesimulují problémy, se kterými se vývojář v praxi zabývá. Na obě otázky existuje snadná odpověď - první odpověď je MSDN\Reflector a druhá odpověď je kniha GoF. Smysluplnější otázka by pak mohla být: "Kde můžu najít seznam tříd, které mohou použít k nastavení formátu pro serializaci?" Sami cítíte, že takto položená otázka nemá žádný smysl, protože nic neřekne o kvalitě kandidáta. Z tohoto důvodu považuji "encyklopediční" otázky za nic neříkající.

Jaké otázky tedy považuji za smysluplné? Zde je příklad, jak by mohl vypadat můj pohovor. "Můžete mi řict, jaký je rozdíl mezi statickou virtuální metodou?" Pokud nemá kandidát problém s odpovědí, pokračuji. "Dobrá, a může být statická metoda zároveň metodou virtuální?" Pokud nemá kandidát problém s odpovědí, pokračuji. "Proč ne, můžete mi to vysvětlit?" Tím se dostanu až do bodu, kdy kadidát ví, jak fungují virtuální metody. Pak mohu pokračovat dále, podle kontextu: "Jaká virtuální funkce v hierarchii tříd se zavolá, pokud provedu volání této virtualní funkce z destruktoru v jazyce C++?"

Jiný příklad. "Můžete mi říci, k čemu slouží v .NET idiom Dispose()?" Pokud kandidát ví, tak pokračuji. "Co je to tedy garbage collector?" Pokud kandidát ví, tak pokračuji: "A víte, jak funguje garbage collector v .NET?" Pokud kandidát ví, pokračuji "Může být finalizator volán vícekrát?", "Ano, v jakém případě?" Error handling je další oblast, ve které lze nalézt celou řadu otázek, od jednodušších až po záludnější.

Další mé oblíbené otázky jsou otázky srovnávací: "Jaké rozdíly vidíte mezi programovacími jazyky Java a C#?" (kontext: mnoho uchazečů uvádí znalost C# a Java), "Znáte nové funkce jazyka C# (verze 2.0). O kterých jste slyšel?", "Jaké rozdíly vidíte mezi šablonou v C++ a generic v CLR?", "V jaké situaci byste použil návrhový vzor Strategy a v jaké situaci byste použil Decorator?", "HTTP je bezstavový protokol. Řekněte mi všechny způsoby, které znáte, pro uchování stavu mezi klientem a serverem." (kontext: uchazeč deklaruje zkušenost s ASP\ASP.NET).  

Další skupinou otázek jsou otázky praktické. "Potřebujete krokovat kód v určité iteraci cyklu. Jakým způsobem můžete zastavit program tak, aby došlo k "záseku" přesně v požadované iteraci?", "Jakým způsobem byste ladil vyjímku Access Denied?" Oblíbené otázky jsou otázky s otevřeným koncem, otázky, na které v podstatě neexistuje  jednoznačná odpověď. Nejlepší otázky tohoto typu jsou otázky kontroverzní. Ano všichni je známe: "Je lepší uložit data do databáze jako binární BLOB nebo jako referenci na zkutečná data?", "Co si myslite o použítí bloku catch {}. Použil byste ho někdy?"

Nakonec je to kód. Uchazeč je postaven před určitý rozumně složitý problém. Například setřídit pole, rozpoznat palidrom apod. Nebo je uchazeči předložena ukázka existujícího kódu s cílem najít v kódu chybu. Například "Co je špatně na tomto kódu?" 

Zveřejněno Monday, September 11, 2006 9:21 AM by lazo
Vedeno pod:

Upozornění na nové komentáře

Pokud chčeš dostávat upozornění emailem na změny u toho příspěvku,tak se zaregistruj zde.zde

Odebírat komentáře k tomuto příspěvku pomocí RSS

Komentář

 

georgem napsal:

Vcelku souhlas, až na drobnost - ze srdce nesnáším pohovory, kde musím psát nějaký kód, byť i naprosto triviální (a to z obou stran, jak "zkoušejícího" tak i "zkoušeného").

Podle mne to má tak malou vypovídací schopnost o programátorských dovednostech daného člověka, že čas který nad tím strávíme raději budu věnovat otázkám podobným jako jste uvedl výše v textu.

Maximálně totiž můžu výsledný kód posoudit z hlediska toho, jak "upravený" je, zda se autor věnuje komentářům styl ošetřování chyb/vyjímek a podobně. A to jsou obvykle části, které jsou v takovýchto testovacích prográmcích vynechávané = nepoznám nic z toho co mě primárně zajímá.

Z druhé strany - ze strany kandidáta - pokud nepoužiju např. svůj vlastní notebook, může pro mě být psaní kódu na jiné "mašině" sérií frustrujícíh událostí - jinak nastavené klávesové zkratky, chybějící knihovny na které jsem zvyklý (c++), obskurní verze nápovědy, příšerná/žádná myš, žádný přístup k internetu...

To co mě zajímá - udržovatelnost uchazečova kódu - můžu snáze poznat z nějakého kousku kódu, který si donese daný člověk s sebou a nad kterým můžeme případně i rozvést další diskusi. Nejlépe, pokud je to nějaký kousek na který je obzvláště hrdý (např. načtení setřízení a znovuuložení texového souboru na jednom řádku c kódu :-) to hned vím na čem tak asi jsem).

Z tohoto hlediska, ač nerad musím říct, že mnohdy jsou tzv. soft skills důležitější než ty hard. Například rozdíly mezi virtuální a statickou metodou se mohu snadno naučit, pokud opravdu chci. Pokud ale odmítám příjmout jiné řešení než to moje nejlepší jak jsem je právě naprogramoval, tak asi budu mít těžké chvíle při týmové spolupráci, pokud se to tak bude dát ještě nazývat.

Ještě na okraj - s tím mívám osobně potíže - např. vaše otázka o destruktorech a virtuálních metodáchz nich volaných by mi dala vcelku zabrat, protože už dobře 10let mám někde v hlavě velký nápis "DON'T!" takže bych musel hodně přemýšlet proč vlastně mám v hlavě velký zákaz takové věci dělat :).

omlouvám se za dlouhý komentář, ale je to oblast, která mě mj. zajímá, takže si rád podiskutuji.
September 11, 2006 2:33 PM
 

Borek napsal:

Výborný článek, díky za něj.
September 11, 2006 4:14 PM
 

Pazu napsal:

Klasický a promyšlený návod na pohovroy s programátory (ale nejen) je zde: http://www.joelonsoftware.com/articles/fog0000000073.html
Zjistil jsem, že je nutné, aby uchazeč napsal aspoň kus kódu, a to jednoznačně na papír. Už z toho jak to dělá, případně jestli to je náhodou správně, se pozná velmi hodně. Z otázek o destruktorech se totiž nepozná jedna dost podstatná věc, a totiž jestli ten člověk je vůbec schopen algoritmizovat úlohu. Pokud nedá dohromady ani program na 6 řádek, nemá smysl ho brát - bude bojovat s elementaritami. A kupodivu spoustu lidí dokáže uělat MSFT zkoušku, ale nejsou schopní napsat triviální algoritmus správně.
September 11, 2006 4:40 PM
 

Petr Lazecky napsal:

>> mnohdy jsou tzv. soft skills důležitější než ty hard

S timto tvrzenim naprosto souhlasim. Pracovat s Einstainem, ze kterym se nedomluvite neni v zajmu teamu - on zkusenosti tezko predava a mene zkuseni jedinci "nerostou", neuci se od nej. Pak to dopadne tak, ze tento silny jedinec hraje na sebe.

Me osobne pri pohovorech nad kodem nezajima vlastni kod. Jinak receno, uchazec muze napsat algoritmus treba slovy, pokud chce. Vlastni kod ve smyslu kodu daneho programovaciho jazyka neni podstatny. Stejne tak neni podstatny error handling. Spise jde o to, jak je uchazec schopen algoritmizovat ulohu, jak poznamenal Pazu. Chtit po kandidatovi napsat na papir bezchybny kod je dle meho nazoru nefer a hlavne je to akadamicke cviceni, ktere neodpovida realite.
September 11, 2006 5:17 PM
 

Bobris napsal:

No nevim jake mate zkusenosti vy, asi to je u MS lepsi, ale naprosta vetsina uchazecu ani nenapise vypocet faktorialu (samozrejme je neprijmeme). Ale prekvapuje me odvaha tech lidi prijit uchazet se na misto programatora v C++. Proto ukazat ze umi napsat kod je naprosto prioritni, i kdyz treba velmi jednoduchy.
September 11, 2006 7:35 PM
 

georgem napsal:

To Petr Lazecky

> Vlastni kod ve smyslu kodu daneho programovaciho
> jazyka neni podstatny. Stejne tak neni podstatny
> error handling.

No já bych řekl, že v produkčním kódu je to velmi důležitá věc, která se při umělém testu moc nepozná. Ono, když to doženu do extrémů, algoritmus může být napsaný s chybou, stejně tak jako úplně chybně ale je důležité aby se v tom výsledném kódu někdo vyznal a byl schopen to opravit i případně někdo jiný než jenom původní programátor. V případě psaní produkčního kódu považuji jeho udržovatelnost sa vcelku důležitou metriku. Ale to jen pro upřesnění mé předchozí poznámky.

Zda uchazeč uvažuje algoritmizace úlohy považuju lépe zjistitelné rozhovorem na dané téma - "jak by jste udělal XY" což obvykle skončí různým čmáráním na papír. Takže si myslím, že po ujasnění ve vašem komentáři se na tom naprosto shodneme pokud různě propojené obdélníky a šipky budeme považovat za jistou formu kódu ;). Ale nikdy bych to slovo před uchazečem neřekl, protože v ten moment se celý pohovor dostává z roviny diskuse dvou profesionálů do roviny diskuse zkoušený-zkoušející.

Ad Pazu
Obávám se, že v tomto je joel nekonzistentní - dovolím si citovat z jednoho z jeho posledních článků:

I’ve frequently heard the suggestion of including a programming quiz of some sort in the application procedure. This does work, in the sense that it reduces the number of applications you get, but it doesn’t work, in the sense that it doesn’t really improve the quality. Great developers have enough choices of places to work that only require the usual cover letter/resume application to get started; by inventing artificial hoops and programming tests and whatnot simply to apply, you’re just as likely to scare away good programmers as weak programmers. Indeed, you may be more likely to scare away the best programmers, who have the most alternatives, and get left with a pool of fairly desperate candidates who are willing to do extra work to apply simply because they don’t have any alternatives.

Ad Bobris
Ano máte v zásadě pravdu, ale můj osobní názor je, že zde narážíme na základní problém našeho školství - zjednodušeně - někteří uchazeči by možná dokázali faktoriál zalgoritmizovat, ovšem bohužel netuší co to tak alespoň zhruba je. Otázkou pak je, zda neznalost základních matematických termínů je diskvalifikační pro daný obor ve kterém vaše firma pracuje. Například já se přiznám, že faktoriál jsem počítal naposled při "mentálním cvičení" na téma rozvoj šablon. Nikdy jindy jsem s takovou věcí od vysoké školy nepřišel do styku.

Proto si myslím, že ideální pohovor by se měl co nejvíce pohybovat v rovině naslouchání.
September 12, 2006 6:14 AM
 

Lucius napsal:

No musím se připojit k ostatním. V dnešní době výkoných vývojových nástrojů a jiných jazyků je spíše vhodné testovat zájemce v "pseudokódu" než v kokrétním jazyce. Nevím jak vy, ale vesměs já osobně jsem zvyklý využívat schopnosti psaní kódu ve studiu maximálně. A z hlavy by jsem určitě né všechno syntakticky napsal správně..
September 12, 2006 8:15 AM
 

Petr Lazecky napsal:

Ad georgem

Podobne jako Vy vidim problem s kodem v tom, ze vzhledem k casu a tlaku, pod kterym kandidat je, nema moc smysl po uchazeci chtit vyresit nejaky slozity problem. Souhlasim s Vama, ze toto cviceni je umele. V praxi to nikdy neni tak, ze za Vami prijde sef a rekne "Vyres mi tento problem za deset minut a mas k tomu jenom papir a tusku." Otazka "Implementuje link-list" je pro zkuseneho a sebevedomeho kandidata jednoducha a odpovedi na tuto otazku se moc noveho o kandidatovi nedozvite. Osobne toto dilema resim tak, ze pokud je prede mnou "silny" kandidat, tak misto implementace jednoducheho problemu necham uchazece hledat chyby v existujicim kodu, ktery mam pro tento pripad vytisten. Na nic lepsiho jsem zatim nedorost a pokud mate tip tak by me Vas nazor urcite zajimal.
Co se tyce robustnosti kodu, tak tuto oblast je IMHO lepsi pokryt otazkami nez kodem. Napriklad otazka "Pouzivate v programu Assert a pokud ano tak jaka je Vase strategie?" nebo "Jakym zpusobem testujete kod, ktery ma v programu osetrovat vyjimky?" vam rekne vice nez rychla implementace na papire. Pri pohovorech jsem se setkal s tim, ze uchazeci meli pomerne casto problemy s tim, jakym zpusobem probublavaji vyjimky kodem a jaky je "flow" kodu pri vyskytu vyjimky. Otazky na error handling rozhodne patri do meho arzenalu.
Schopnost kandidata napsat robustni implementaci je dle meho nazoru velmi tezke zjistit primo pri pohovoru. To se spise dozvite az ve zkusebni dobe. Napsat robustni kod neni otazka deseti minut a to je IMHO problem pohovoru. Tot aspon muj nazor.
September 12, 2006 9:17 AM
 

georgem napsal:

Vidím že v diskusi se úplně shodneme :). Možná to bylo jen z mé strany nepochopené vyjádření se v článku - konkrétně: "Nakonec je to kód ... palidrom apod."
z čehož mi vyplynulo že každý uchazeč je podroben testu psaného kódu :).

následně ve zkratce, ve všech IMHO bodech se naprosto shodneme, možná sem to jen blbě popsal v komentech, ale váš názor je naprosto shodný s mým.

Nechci působit nějak negativisticky nebo tak něco, snažím se jako každý najít nějaký rozumný kompromis s využitím zkušeností které mám z obou stran barikády.
Uznávám, že na rozdíl od vás můžu těžit z výhody, že nepříjmáme tisíce uchazečů (obrazně) ale spíše jednotky za rok takže je na to trochu víc času.

Abych jen tak nekecal o ničem, tak přihodím ze svých tipů. Možná jsem naivní a jednou se mi to vymstí, ale tak nějak vždy předpokládám že daný člověk umí programovat když už se na danou pozici hlásí (vím že to není pravda) takže se k němu tak minimálně ze začátku stavím a spíše je diskuse směřována na jeho předchozí zkušenosti z projektů (if any), pokud se daný kandidát chce pochlubit (a může) tak optimálně nad nějakým kouskem jeho zdrojáku. Tedy spíše do úrovně diskuse rovných než zkoušený-zkoušející.

Pak si projdeme naše zdrojáky s tím, že je důležité jak uchazeč reaguje na ty kecy kolem toho, např. nahozené udičky o "štábní kultuře", "tady jsme měli problém s touto vyjímkou", "tady je to vyřešené takto a takto, ale nejsem s tím obzvlášť spokojený, poradíte?" a pod. Myslím, že v každém alespoň trochu rozsáhlém kódu se taková temnější zákoutí "vyhrazeno pro příští code-cleanup" najdou a imho to působí mnohem přirozeněji.

Pokud v této fázi máme navzájem ze sebe ještě dobrý dojem, tak se zkusíme domluvit a kandidát dostává "domácí úkol" - naprogramovat nějaký reálný, byť triviální úkol který bude v případě úspěchu použit v kódech produktu. To mu umožňuje na jedné straně poznat naše vývojové prostředí, standardy atp. na straně druhé má dostatek času a soukromí na to aby vyprodukoval alespoň určitou betaverzi produkčního kódu. Pochopitelně, že např. v případě že vyrobí něco co použijeme, tak to má zaplacené i v případě, že se pak rozhodne, že k nám nenastoupí. Ale takový případ pokud vím nenastal - buď se dotyčný už více neozval, nebo dodal nějakou totální nepoužitelnost nebo dodal něco rozumného nad čím jsme případně dále podiskutovali a pak se z nás stali kolegové.

hmm, nejdelší přispivatel :)
September 12, 2006 3:09 PM
 

georgem napsal:

jen pro upřesnění - abych to řekl zcela explicitně pokud to není z těch příspěvků zřetelné - všechny moje narážky na zkoušející-zkoušený se pochopitelně netýkají vašich pohovorů, ale spíše mých zkušeností ze strany zájemce o práci, kdy některé pohovory měly tendenci se spíše posunout do úrovně zkoušky z programování na VŠ.
September 12, 2006 4:42 PM
 

frantik napsal:

No ja som sa za par minut dozvedel, ze niesom talent ... neviem co je palidrom ani nepoznam knihu GoF (h?). Uprimne ked sa niekto potrebuje ohadzovat slovnikom cudzich slov, tak by som asi nezodpovedal ziadnu otazku.

No nic, v Microsofte CZ robit nebudem :)
September 12, 2006 9:50 PM
 

frantik napsal:

GoF som uz nasiel .. Harry Potter: Goblins of Fire :)))
September 12, 2006 9:59 PM
 

Petr Lazecky napsal:

ad Frantik

:-). GoF znamena "Gang Of Four" a jedna se o zkratku, ktera se pouziva jako odkaz na knihu "Design Patterns - Elements Of Reusable Object Oriented Software", kterou spolecne napsali ctyri uznavani autori. Proto "Gang of Four" - gang ctyr. Tento termin je dle meho nazoru do cestiny neprelozitelny (tak aby byl srozumitelny). Rozhodne nemam zajen se tu nejak exponovat pouzivanim cizich slov :-), nektere obraty se ale z anglictiny zkratka prelozit nedaji, tot aspon muj nazor. A pokud daji tak ja jsem rozhodne mizerny prekladatel. Prosim tedy o trpelivost :-). Jinak s Harry Potterem jste zabodoval :-).

Ne kazdy vi, co to je polidrom a na tom urcite neni nic neobvykleho. Polidrom je slovo, ktere se cte zepredu i pozadu. Napriklad ROTOR je polidrom, protoze at ho ctete zepredu ci zezadu tak je to porad stejne slovo. Pohovor pro programatora samozrejmne neci zkouskou z linguistiky. Pokud byste nerozumel otazce, tak by Vam samozrejme byla vysvetlena! Takze se klidne prihlaste :-)
September 13, 2006 12:15 AM
 

Jan Seda napsal:

Ahoj Petre. Zajimavy clanek, ale po precteni te diskuze si rikam, ze porad chybi u mnoha lidi nadhled. Za tech mnoho let, co delam v IT mi stale mene prijde dulezita znalost a psani nejakeho kodu a spise je podle mne dulezite soustredit se na soft-skills toho daneho cloveka. Zazil jsem to mockrat i ve svem byznysu, ze pokud tahle oblast je spatna a spatne zvolis nekoho ke spolupraci, tak tohle se ti vymsti tisickrat vic a to v dusledku hlavne financne, nez to, jestli nekdo pouzije GoF vzory (coz je opet jen dalsi modni "hype" slovo, jinak jsou i jine vzory nemene dulezite nez GoF) nebo nebude znat nejakou oblast z algoritmizace (to si klidne ohlidam sam a nebo to toho dotycneho naucim ja nebo nejaky kolega).
Proto pro mne osobne neni uz tak casto vubec dulezity nejaky "testovaci" rozhovor a testovani kodu, ale primarne se ridim ze dvou veci: zkusenosti a REALNE projekty, na kterych clovek delal a jsou dohledatelne (idealne open source) a pak doporuceni cloveka od nekoho pro me duveryhodneho (tenhle model v MS funguje taky na zaklade doporuceni kandidata od FTE a dokonce HR ti za nej zaplati, tusim ze 500USD/kandidat? ;) ). To jsou podle me mnohem lepe vypovidajici informace ohledne kvalifikace, nez nejake pseudotestovani (jedine, co pak "testuji" jsou ony softskills).
September 13, 2006 5:21 AM
 

georgem napsal:

To Jan Seda

naprostý souhlas, i když si myslím že v této diskusi je nadhledu relativně dost, pokud teda nepočítám sebe a své mizerné vyjadřovací schopnosti. To že soft-skills jsou ta důležitější část jsme se shodli asi všichni.

Reference jsou výborná věc, ale bohužel jsou nedostatkovým zbožím. Navíc to částečně diskvalifikuje např. absolventy - záleží zda o ně máte zájem. Procházení projektů je ale výborný nástroj, kde se dá srovnat s pomocí volné diskuse údaje napsané v CV s realitou.

GoF je výborná myšlenka ale veřejností mnohdy špatně pochopená a je z toho děláno zlaté tele což vadí i samotným autorům. Ale to není téma této diskuse.

Jak jsem si to znovu pročítal, tak jsem se možná v některých věcech špatně vyjádřil, takže to zkusím programátorsky stručně a jasně:

1. jsem striktně a jasně proti tvoření nějakého kódu v době pohovoru
2. Co mě zajímá na uchazečově kódu je jeho robustnost => ve stresových a umělých podmínkách nějakého testu je nezjistitelné => test kódem při pohovoru je zbytečný. Nikdy by mě ani nenapadlo při pohovoru nějak testovat robustnost právě napsaného kódu. Snažil jsem se říct, že díky tomuto bodu je psaní kódu při pohovoru zbytečné - stejně nic nezjistím.
3. pro mě je důležité vést diskusi na úrovni rovný s rovným a primárně předpokládat, že uchazeč mluví pravdu a je takový jaký napsal do CV. Ve volné diskusi (tedy jakémsi testování soft-skills) se většinou pravda alespoň částečně objeví, je třeba pouze dávat pozor.
4. snažit se nepokládat "testové" otázky. Např. výše zmíněné "Pouzivate v programu Assert a pokud ano tak jaka je Vase strategie?". Tím mj. uchazeči naznačuju, že mě Asserty nějakým způsobem trápí a jsou pro mne důležité, což může i změnit jeho odpověď. Lépe je si postěžovat, např. že mi programátoři občas nacpou do assertu výkonný kód a pak se diví i ušima že v release to nechodí. Pak se uchazeč buď chytí nebo ne, ale z jeho reakcí na podobné podněty se dá vysledovat mnohé a je to pro něj přirozenější - nepostaví kolem sebe ochranné bariéry a je větší pravděpodobnost že bude upřimný.
5. uvědomit si, že ze strany uchazeče je náš vztah ze začátku podvědomě většinou vnímán jako podřízený-nadřízený. Tím, že mu ukážu že i my máme problémy a tuhle a tohle prostě nefunguje a nebát se to říct z něj tuto obavu obvykle sejmte a dostanete se na žádanou úroveň rovný s rovným.
6. Kvízové otázky jsou povoleny pouze u "technologických" prvků - konkrétně tím myslím např. "Používal jste SCM jako např. SourceSafe, Subversion, CVS nebo tak něco?" atp. Tyto nijak neovlivňují výsledek pohovoru a max. pro mě znamenají připravit školení na používání SCM pro nového kolegu...

asi tak nějak
September 13, 2006 6:18 AM
 

Petr Lazecky napsal:

ad Honza Seda

Take souhlasim s tim, ze soft skills jsou dulezitelsi nez hard skills. Spise proto, ze soft skills se nemeni v case tak casto jako hard skills (stale se je treba ucit novym technickym vecem). Osobnost cloveja je od jisteho veku dana a nemeni se tak casto jako technologie.
Problem s referencemi vidim v tom, ze v EU existuji zakony, ktere omezuji moznosti co je mozne a co neni mozne o kadidatovi rici. Nevim, jaka je v tohle smeru legislativa *a* praxe u nas. V praxi to pak vypada tak, ze se dozvim jen ty pozitivni ci neutralni informace. Osobne si myslim, ze reference jsou i castecne kontroverzni, protoze nemas sanci vedet kontext, v jakem je dana reference podana. Suma sumarum, z mych osobnich zkusenosti jsou reference malo vypovidajici faktor.
Dokoncene projekty? Ano, proc ne. Ale i ty jsou casto tezce dohledatelne, zvlaste v dnesnim agresivnim konkurencnim a promennem prostredi. Osobne jsem v minulosti delal na dvou pomerne velkych web projektech pro firmy, ktere jiz dnes neexistuji. Je to moje chyba? Mozna jo :-)
September 13, 2006 10:37 AM
 

Jan Seda napsal:

Petre, shodneme se ;) A co se tyka tech referenci, tak to jsem myslel tak, ze obvykle se mi stava, ze moji kamaradi a znami mi doporuci cloveka a ja jim duveruji.
A ad tvoje webove projekty - to znam, sam to mam s mnohyma stejne. No pokud si mam rypnout i do sebe, tak odpovedi je: delat na open source projektech ;) (min. svych).
September 13, 2006 12:31 PM
 

Iluze napsal:

Ad. reference - po poslední osobní zkušenosti - nesporně důležitý nástroj k posouzení kandidáta... Pro některé ze zúčastněných stran možná i nepříjemná záležitost - ověřování informací u bývalého zaměstnavatele a mnohdy i možnost poškození kandidáta... ale vhodně položenými otázkami se toho dá částečně vyvarovat. Do budoucna to ušetří spoustu času a možných dalších nákladů na řešení situace. Osobní zkušenost - během zkušební doby zpětná vazba od odpovědných pracovníků na daného zaměstnance - samá chvála na odborné znalosti, jen občasné problesknutí na komunikační problémy. Po uplynutí ZK - konflikty, prosazování osobního názoru i na úkor technického řešení, nespolehlivost vůči zákazníkům. Po finančně náročném "rozloučení se" náhodné zjištění u bývalého kolegy naprosto té samé situace. Vzhledem k tomu, že již byl umístěn personální agenturou u nového zaměstnavatele a jeho stejné chyby - dá se očekávat, že se na jobs.cz do půl roku opět setkáme ;-) P.S. Díky za zajímavé náměty k pohovorům...

January 11, 2007 3:43 PM
 

tonda napsal:

zkus se podivat sem www.vsudebyl.cz

October 26, 2007 11:40 AM

Vytvoření nového komentáře

(povinný) 
(nepovinný)
(povinný) 
Opiš čísla, která vidíš na obrázku:
Odeslat
Powered by Community Server (Personal Edition), by Telligent Systems