8. listopadu 2012

Jak dělám Java pohovor

Už je to nějaký čas, co jsem četl výbornou knížku Managing Humans, na kterou mne kdysi upozornil post Lukáše Křečana Vedeme lidské bytosti (můj post Manažerem humorně a kousavě). Jedna z kapitol, která mě zaujala (a inspirovala) pojednávala o tom, jak Rands (autor) řeší pohovory s kandidáty.

Už delší dobu si pohrávám s myšlenkou, že bych něco pododbného sepsal taky - jednak, pro lidi, kteří jdou na podobný pohovor, protože takových informací moc není a jednak, abych si udělal jakési interní review. Když před nedávnem o něčem podobném psal Dagi (Jak si (ne)zruinovat životopis), řekl jsem si, že to je správný impuls, podívat se na toto téma zevrubněji.

Abych to uvedl trochu do kontextu, řeknu něco o tom v jaké roli v tom figuruju já. Ač nejsem na manažerské pozici, tak určitá míra neustále se zvyšující seniority :-) mě přivedla k tomu, že lidé z HR, salesu/businessu a naší outsorcové agentury (naše firma mám vlastní) mě začali zvát na pohovory s javistama jako technického přísedícího, což se postupně vyvinulo (v rámci hiringu) v regulérní technické java pohovory. V současnosti tak dělám cca  25 java pohovorům ročně.

CV

Než jdu na pohovor, tak samozřejmě dostanu k dispozici CV. Než se CV dostane ke mně, projde rukama ještě jiných lidí, kteří mají různá kritéria výběru, ale podle čeho se rozhoduje paní z HR, nebo pán z agentury, to vám věru neřeknu. Nicméně mě zajímá:

Jméno. První co udělám s novým CV, podívám se, jestli má daný člověk (říkejme mu kandidát) profil na LinkedIn. Tam se dají občas zjistit zajímavý (profesní) věci, které v CV nejsou. Třeba doporučení. Nebo že někdo, koho znám já, zná toho kandidáta. Nebo projekty, který v CV nejsou.

Projekty. Projekty jsou pro mne gró celého CV. Dá se z toho odvodit, pro jaké firmy a zákazníky kandidát pracoval, jak dlouho byl na daném projektu, někdy jeho role, technologie a domény se kterými se mohl setkat apod.

Většinou mám nějakou představu, na jaký náš projekt by kandidát šel, nebo proč ho vůbec chceme přijmout, takže si v CV podtrhnu inkriminované technologie a ptám se na ně u pohovoru. Taky si můžu podtrhnout technologie, které mne zajímají ve spojitosti se senioritou - pokud je někdo senior, tak očekávám že u SVN umí víc než komit a checkout. Zrovna tak u Mavenu čekám, že bude umět víc jak mvn clean install. Naopak, pokud si junior napíše do CV continuous integration, tak je nejspší jasný, že to používali na projektu, ale nastavit to neumí.

Školení a certifikace. Tohle je pro mne míň podstatné. ale je to střípek do mozaiky. Dělá někdo certifikace? Evidentně na sobě pracuje. Chodí někdo na školení? Evidentně má zajem se vzdělávat a umí si to zařídit. S těma školeníma je to docela zajímavý - spousta lidí má kvanta školení, který rázem končí rokem 2007. Pak přišla krize a šmitec. Pokud má někdo školení po roce 2008, je dost pravděpodobné, že si to musel vybojovat.

Tak, to bylo, co mě zajímá. A co mě vůbec nezajímá:

Vzdělání. Ze zvědavosti se kouknu, ale nepřikládám tomu žádný význam. Obecně, v životě už jsem viděl příliš mnoho vysokoškolsky vzdělaných idiotů. Pokud se budu držet tématu, je tady jakási trojka škol, které by měly kralovat IT - Matfyz, FEL a FI MUNI. Ale v praxi neznamená škola vůbec nic. Viděl jsem výborného vývojáře z VŠE, nebo excelentního vývojáře bez vejšky. (jo, taky jsem takovej bejval :-)

Zájmy. Ze zvědavosti se někdy kouknu a nepřikládám tomu žádný význam. Že hraje někdo fotbal? Hm, spíš než "týmového hráče" vidím, že budu v openspace poslouchat jak zase hrála Sparta nebo Barcelona :-/ Má někdo rád literaturu? Hm, co to znamená? Sci-fi, fakta, fantasy, historie, Viewegh, Kierkegaard? Hm, hm, taky čtu knížky (jako miliarda dalších).

Summary. Takový to: 15 let praxe, bla, bla, bla... Zcela ignoruju a nikdy nečtu.

Pohovor

Ještě před pohovorem si nechám od kandidáta poslat ukázku jeho kódu dle vlastního výběru. Kód si natáhnu do IDE, projdu ho a pomocí TODO si označím, na co se budu ptát u pohovoru (většinou tak kolem pěti věcí). Pak už přijde ten velký den a sejdeme se s kandidátem v jedné místnosti.

Po formalitách - podání ruky, kafíčko/voda/čaj a ev. přeptání se na cestu, pokud je zdaleka - zasedneme ke stolu a jdeme na to. Pohovor mám naplánovaný na hodinu a má následující agendu, kterou zmíním hned na začátku:
  1. představím se já,
  2. [updated] prostor pro kandidátovy otázky, [/updated]
  3. projdeme kandidátovo CV,
  4. podíváme se na kandidátův kód,
  5. podíváme se na můj kód,
  6. překvapení na závěr ;-)

Podrobněji:

1. představím se já. velice krátce vysvětlím svoji roli a pozici ve firmě. Něco jako: "Já jsem Guido, solution architect a leader Java kompetence, bla, bla." Celkem 3-4 věty.

2. [updated] prostor pro kandidátovy otázky. Tady se mně kandidát může na cokoliv zeptat. Bývám velmi otevřený, ovšem jsem schopen zodpovědět pouze technické a projektové otázky. Věci finanční a alokační se řeší v jiných kolech pohovoru. Z osobní zkušenosti můžu říct, že se lidé ptají velmi málo. To, že by někdo měl připravené otázky dopředu se stává velmi výjimečně. Pokud se tak však stane, je to jasné plus.[/updated]

3. projdeme kandidátovo CV. Požádám kandidáta, aby se představil z hlediska posledních projektů, které dělal, nebo z hlediska projektů, které mají vztah ke konkrétní požadované znalosti (např. integrace). Tady většinou podrobněji projdu roli, kterou kandidát na projektu měl a vůbec jeho orientaci v tom, jak byl projekt nastavený - týmy, role, struktura, metodiky apod.

Pak si popopvídáme o technologiích, které jsem si předtím podtrhl v CV (viz Projekty výše). Můžu se zeptat např. na JPA: co to je, jak to funguje, nějaký detail. Můžeme jít dost do hloubky, záleží na okolnostech. V této fázi se jasně obnaží, jak moc je CV "vyšperkovaný". Taky je to část, kdy si začnu dělat názor na kandidátovu senioritu.

4. podíváme se na kandidátův kód. Promítnu kandidátův kód, tak aby ho všichni viděli a formou diskuze se pobavíme nad věcmi, které jsem si v kódu předtím označil pomocí TODO. Většinou si označím věci, které považuju za (potenciální) chyby, chybný design, věci kterým nerozumím, nebo věci který mě zaujmou. Tady vycházejí najevo věci, které jsou hodně technického charakteru. A z jejich severity si opět skládám kandidátovu senioritu.

Jak jsem psal výše, jde o kód dle kandidátova vlastního výběru. Předpokládám tedy, že kandidát svůj kód zná a případné dotazy dokáze zodpovědět a rozhodnutí obhájit. Taky předpokládám, že když jde o pohovor, tak pošle ten nejlepší kód, kterým se může prezentovat. Pokud tomu tak není, tak to o něčem vypovídá a pro mne jsou to jasné body dolů.

5. podíváme se na můj kód. Před časem jsem dělal jeden "rozsáhlý refactoring", ehm, bylo potřeba přepsat třetinu aplikace. Protože aplikace byla už nasazená na produkci, byl od zákazníka velký tlak na korektní provedení a review nové verze. Proto vznikl prvně prototyp, který ověřil nový koncept a po jeho akceptaci se teprve implementovala nová verze. Proč o tom mluvím? Ten prototyp je hrozně vymazlený, doslova briliantový - krystalicky čistý design, kvanta statické analýzy kódu, Javadocy atd.

Právě tenhle prototyp (celý, ne moc velký projekt), natažený v IDE a opět promítaný, dám na notebooku k dispozici kandidátovi a nechám ho nahlas komentovat a nahlas přemýšlet, co ho na projektu/kódu zaujme, co si o tom myslí atp. Tady mám opět nějaká, senioritou daná očekávání, třeba že zkušenější člověk může (sám od sebe) něco říct o layoutu projektu, nebo nastavení Mavenu. Pokud řeč vázne, trošku debatu směruju k nějakému zajímavému tématu.

V téhle části nemám dopředu připravené konkrétní věci, které bych chtěl slyšet, nebo na které se ptát. Improvizuju. Což si, myslím, můžu dovolit - ten kód velmi dobře znám a už předešlá diskuze nad kandidátovým kódem by měla navodit komunikativní atmosféru.

6. překvapení na závěr. Posleních cca 10 minut pohovoru a... vytáhnu hlavolam 8-o Mám rád hlavolamy japonské firmy Hanayama a dva z nich si beru na pohovor. Kupuju si ty s těžší řešitelností a jelikož nejsem žádný genius, trvá mi jejich vyřešení hodiny až dny. Postavím tedy dva hlavolamy před kandidáta a hned na úvod ho uklidním, že v žádném případě nechci, aby nějaký z nich vyřešil. Pokud by se mu to náhodou povedlo, byl by to příjemný, ale zcela nepodstatný bonus.

Následně mám pro kandidáta dvoudílné zadání: ať si vybere hlavolam, se kterým mu půjde to zadání lépe naplnit a zkusí slovně popsat:
  1. samotný hlavolam - z čeho se skládá, na jakém principu může fungovat apod.
  2. postup, jak by hlavolam šel vyřešit. Ideálně tak, aby podle tohoto postupu jej byl schopen vyřešit někdo jiný.
Hlavolam je tady samozřejmě zástupným problémem. Smyslem téhle části je, jestli je kandidát schopen poslouchat zadání a zkusit ho naplnit. A ne se vrhnout na řešení problému, to zadavatel nechtěl.

U první části navíc pobízím kandidáta, aby se nebál říct byť triviální věci. Ono se může zdát hloupé říct, že nějaká část je kovová, nebo stříbrná. Protože když člověk "drží" problém v ruce "je to přece jasné". Ale pokud to máte někomu jinému vysvětlit (třeba businessu), tak už to tak zřejmé být nemusí.

Pokud se kandidát začne odchylovat od zadání druhé části, zkusím ho navést zpátky příkladem z vodopádového vývoje - analytik nebo architekt něco zanalyzuje a předá to vývojáři a ten podle toho vyvíjí. Teoretických postupů, jak hlavolam může být řešen je mnoho a fantazii se meze nekladou.

No a to je všechno. Pak už jsou jenom takové ty závěrečné formality a pak sepíšu hodnocení. Ale to už je jiný příběh.

Závěr

Myslím, že jsem svůj postup popsal celkem otevřeně a dokážu si představit, že někdo nevěřícně kroutí hlavou, proč někdo vyzrazuje své know-how, ba dokonce může ohrozit věrohodnost a smysluplnost celého procesu. Takový přístup chápu, nicméně nejsem jeho stoupencem. Naopak.

Jsem odkojenej open source a i v manažmentu (v mém případě spíš teamleadingu) vyznávám přístup založený na šíření informací, než na jejich zadržování. Stejně tak i ve vývoji, mám rád, když se informace sdílí - pokud senior mentoruje juniory, tak to není o tom, že jim zadarmo předá svoje znalosti (zkušenosti jsou nepřenosné), ale že tím obohatí i sám sebe. Myslím si, že sdílení znalostí je znakem vyšší formy seniority. V reálu to sice má své hranice (a ani já nejsem libertarián), ale je to legitimní způsob života.

Na a jestli si nějaký budoucí kandidát tenhle postup přečte a připraví se podle toho na můj pohovor? Říkám: skvěle! Pokud se někdo jakýmkoliv (korektním) způsobem připraví na pohovor, je vidět, že chce uspět a to je jednoznačné plus.

A úplným závěrem. Budu moc rád, pokud se v diskuzi podělíte o své názory a zkušenosti, ať už z jedné nebo druhé strany pohovoru.

41 komentářů:

  1. Hlavolam bych si půjčil domů :-)

    Pohovory teď naštěstí dělám zřídka, téměř vůbec. Přesto se lidí, kteří měli vliv na rozhodnutí, ptám, proč se rozhodli tak a tak a jak se na to dívají dnes.

    OdpovědětVymazat
  2. AHOJ,
    děkuji za článek, zde pár mých stříplů. V podobných případech většinou procházím co pohovorovaný měl za technologie, snažím se mít jednu jednoduchou a jednu složitou otázku. U Oraclu je má oblíbená co dělá merge :), zvláštní že každý si do cv píše jako db oracle, tuto otázku zodpoví tak 10%. U seniorů očekávám rozhled, ale ne všichni mohou znát všechno. Případně s nimi řeším nějaký problém z poslední doby. Třeba problém času v globální aplikaci.

    OdpovědětVymazat
    Odpovědi
    1. Vy asi myslite merge join ;) Ja bych se ptal radsi na prakticke veci, pokud bych chtel opravdu vedet jestli je schopnej se zanorit do hloubek db. Jednoduzsi by trebas bylo, tady mas select, navrhni indexy. Nebo, tady mas trace z DB, co bys udelal s deadlockem co tam je. Nebo tady mas dotaz, o tabulkach XYZ vis to a to, navrhni poradi joinu.

      Vymazat
    2. Ten MERGE jako otázka na ORACLE mi přijde trochu scestná, spíš to vyznívá jako snaha uchazeče nachytat na švestkách. Navíc pokud je to Javista a používá ORM, tak je mu to k ničemu. Já se ptám spíš jestli uchazeč někdy slyšel o normálních formách, zda ví že existuje více druhů indexů, exekuční plán apod. Takže se snažím spíš zjistit hloubku, kam až se ponořil v dané problematice.

      Vymazat
    3. Asi to myšlený tak, že merge je otázka pro databázistu. Přiznám se, že já jsem ho doposud taky neznal.

      U javisty by mě z databází zajímalo, jestli umí nějaké ORM, JDBC, ev. psát uložené procedury a ne jestli umí konkrétní databázi.

      Vymazat
  3. Hezky napsáno. Odstavec "Jsem odkojenej..." bych vytesal, naprosto s ním souhlasím, mám na věci shodný pohled. Musím pochválit i celý blog, který si rád čtu.

    ad VŠ: uznávám, že naše školství je ve stavu, který "VŠ vzdělané idioty" (kteří opisovali semestrálky a teď mávají tituly) produkuje celkem snadno. Na druhou stranu člověka, který na sobě pracuje, ovlivní VŠ pozitivně. Osobně jsem s tímto přístupem absolvoval FEL s červeným diplomem, ale nikdy by mě nenapadlo očekávat z toho nějakou výhodu. Podle mne je důležité rozpoznat, jak dokáže absolvent využít vzdělání pro řešení problémů v praxi. Chlubit se jen titulem je jako vytahovat se tím, že dokážu sníst kilo vepřovýho, a pak nevydržet fyzickou práci. Dnes už jsou mi samozřejmě k ničemu tehdejší "průmyslové" znalosti, ale formace, která se projevuje přístupem k řešení problémů, zůstala, aspoň mi to říkají lidé v mém okolí. U bodů 2 a 3 píšete, že si dáváte práci a jdete do hloubky, abyste rozlišil seniorskou úroveň kandidáta. V případě vzdělání se už tedy nevyplatí ztrácet čas rozlišením, zda VŠ v kandidátovi něco nechala?

    OdpovědětVymazat
    Odpovědi
    1. S tím pozitivním ovlivněním VŠ souhlasím. Myslím, že jedním z nejvěších benefitů je, že škola naučí učit se. Znalosti zastarají, ale to že to ve mně probudí hlad po vědění je napořád. :-) Vždycky jsem nádával, proč mám (tehdy ještě) jako vývojář 4 semestry matematiky a 3 semestry statistiky. Ale ono se to v člověku nějak usadí a i když už nevím, jak vypadá chí kvadrát, tak pořád to tam někde je a nějak mě to ovlivňuje.

      S tím rozebíráním VŠ u pohovoru se budu muset zamyslet, je to zajímavý postřeh. On je člověk dost omezený časem a tak se zaměřuje na to, co je pro něj důležitý. Myslím, že u seniorů škola až takový význam nemá (pokud je nějak ovlivnila, tak už to přešlo do jejich přístupu k práci). U absolventů a juniorů krátce po škole si nechávám někdy poslat diplomku a u pohovoru ji krátce probereme (namísto chybějící praxe).

      Vymazat
    2. mysliet si, ze skola nauci ucit sa je scestne. budme presnejsi: skola velku vacsinu ludi nauci sa nieco nabiflovat bez nejakeho vztahu k rieseniu realnych problemov.

      Vymazat
  4. Jano:
    Pri pohovore u teba by som mal zrejme problém dodať nejaký kód, ktorý je aspoň trochu komplexný a je môj. Kód od zákazníka, kde som pracoval alebo pracujem vynášať nebudem a doma si maximálne tak skúšam nové technológie alebo robím nejaký jednoduchý PoC, kde je kód minimalistický a cieľom je len vyskúšať danú vec a následne ho zahodiť.

    OdpovědětVymazat
    Odpovědi
    1. Ten kód nemusí být komplexní. Je to dle vlastního výběru, takže pokud je komplexní, tak to tak asi kandidát chtěl. Občas někdo pošle jen jednu, dvě třídy. I s tím se většinou dá pracovat a pokud je toho málo, tak si připravím nějaké praktické otázky do zásoby, třeba unit test nebo nějaký jednoduchý design pattern a zkusíme si to rozebrat na papíře.

      Co si tak vzpomínám, tak kandidáti poslali nějaký kód vždycky. Pokud by to byl problém, tak bych vymyslel nějakou alternativu.

      Vymazat
  5. Váš článek mě zaujal, docela se s uvedeným postupem pohovoru ztotožňuji. Kdybych náhodou někdy ještě dělal pohovor, byl bych docela rád, kdyby to takto proběhlo :)

    OdpovědětVymazat
  6. Ja bych se uchazecu asi jeste ptal na to, co je bavi na poli IT a cemu se venuji ve svem volnem case (pokud je to vubec neco z IT, v pripade, ze by byl cas, tak bych se ptal i na to, co je bavi celkove, jestli se vubec pro neco dokazou nadchnout). Dal by me zajimalo, jestli clovek prispiva do nejake opne-source projektu (kdyz uz ne commity, tak jestli aspon reportuje bugy nebo radi ostatni ma mailing listech). Na druhou stranu certifikace a podobne veci (jako profil na LinkedIn) by me osobne vubec nezajimaly (a sam bych si to ani do zovotopisu nepsal, ostatne CV delsi jak A4 bych asi necetl nebo jen s krajnim odporem:-)
    vjur

    OdpovědětVymazat
    Odpovědi
    1. S tím volným časem bych byl opatrný, protože to není moc objektivní - věnovat se třeba programování po práci, to může někdo, kdo na to má čas. Což určitě není někdo s rodinou.

      S názorem, že je hodnotné kontribuovat do open source samozřejmě souhlasím, ale myslím, že to dělá minimum lidí. Já jsem na pohovoru ještě nikoho takového nepotkal. Reportování bugů a mailing listy, to už je trochu jiná disciplína, na kterou bych se ptal uchazeče na QA.

      A certifikace a LinkedIn? To je samozřejmě subjektivní. Já to dělám tak a někdo jiný jinak.

      Vymazat
    2. Je mozne, ze to, co jsem napsal je uplne mimo misu - ja u pohovoru s uchazecem nikdy nesedel (to jen pro info). V podstate jsem chtel jen vyjadrit svuj dojem, ze vyvojari, co se programovani venuji i ve svem volnem case (i kdyz jej neni treba mnoho a je to jen cetba knihy v MHD cestou do prace) byvaji o poznani kvalitnejsi a proto bych se na to u pohovoru ptal.

      To, ze lidi, co maji rodinu, maji mnohem mene volneho casu je bezpochyby pravda, ale tvrdit, ze to znamena, ze pak nemam cas si po nocich neco programovat je IMHO pomerne odvazne tvrzeni.

      Co se tyce rad na mailing listech a reportovani bugu, IMHO to zadna jina disciplina neni, ale chapu, ze toto je dost subjektivni a bylo by to asi na delsi diskuzi (nicmene souhlasim s tim, ze je to relevantnejsi u uchazece o QA pozici).
      vjur

      PS. s tim, ze jsi nikdy na pohovoru nepotkal nikoho, kdo prispiva/prispival do OSS - hm, asi ziju jeste vic mimo realitu, nez jsem si myslel:-)

      Vymazat
    3. S tím určitě souhlasím, že pokud se někdo věnuje programování ve volném čase, čte knížky, píše blogy :-) atd., tak jde nesporně o (technicky) velmi kvalitního člověka. To je přesně můj pohled na věc.

      To že nepotkávám kontributory open source je daný spíš segmantem, kde se pohybuju - přece jenom, agilní a open source lidi se do enterprise oblasti moc neženou.

      Vymazat
  7. Dobrý den, u vás by mě asi pohovor bavil, takže bych se mohl rozpovídat. Vždycky jsem nesnášel zkoušení, mluvit uměle o něčem me prudilo. Jediné zkoušení, které se mi líbílo, byla státnice z fyziky. On věděl, že mě nemusí zkoušet, tak dával zajímavé otázky - problémy, které potřebovaly nadhled a pochopení, ne znalosti.

    S kódem dle vlastního výběru by to bylo horší. Na programování čas moc nemám, v práci jsem v čisté javě dělal hodně málo. A open sourcy vznikaly postupně, jak jsem musel proráže nějaké probémy. Dneska se za ten kod docela stydím a chtěl bych ho refaktorovat. Ale nejsou lidi...

    D9k za článek. Chtěl jsem jen říct, že vývojář si rád popovídá o zajímavém problému než o umělém příkladu.

    Miloš

    OdpovědětVymazat
    Odpovědi
    1. Ano, jdu cestou diskuze. Vždycky jsem na pohovorech nesnášel psaní testů. Takže když jsem byl povolán k Java pohovorům, tak první co jsem řekl našim manažerům, že nebudu používat testy (byť je ve firmě máme už nachystaný).

      Mimochodem, testy mají dost velkou režii. Je potřeba je vytvořit, udržovat aktuální, mít je pro různé seniority, vyhodnocovat je atd.

      Vymazat
  8. Na pohovoru davame ulohu na objektovy navrh k nejakemu problemu - velmi dobre se na tom ukaze, jak kandidat uvazuje, jestli miri na cil nebo sam sebe rozptyluje, jestli dokaze zahodit vlastni nedokonale reseni a prijit s necim lepsim atd., vyborna vec. Jsou lidi, kteri jsou za 5min hotovi s dobrym resenim a jindy to treba trva pul hodiny a je to jen trapeni bez vysledku, cili dobre meritko...

    Dalsi dulezita vec je pristup k IT a programovani. Je obrovsky rozdil pokud clovek dela na svych soukromych projektech, zkousi novinky, premysli jak delat sw lepe nebo jen odkrouti svych 8h a nezajima ho co bylo vcera a bude zitra.

    Co se tyce konkretnich technologii, probirame jen letem svetem, uz na prvni pohled v CV je videt jestli ma nejaky rozhled, pokud ano, konkretni veci se snadno douci. V drtive vetsine kandidati nelzou o mire zkusenosti s konkretni technologii.

    K VS vzdelani - chapu co chtel autor rici. Jsou pozice, ktere se bez VS obejdou, ale je dobre mit na pameti, ze clovek bez VS vetsinou nema jakysi vseobecny rozhled, teoreticke zaklady apod. Projevuje se to pak tim, ze veci resi sloziteji, obcas jakoby vynaleza kolo, nevim jak to presne popsat. Kazdopadne je potreba na to myslet a ve chvili kdy to dotycny potrebuje, tak si musi aspon nejaky zaklady doplnit...

    Ty hlavolamy me zajimaj :-)

    OdpovědětVymazat
    Odpovědi
    1. To je taky zajímavý přístup. Návrhy a patterny dávám architektům (nebo vývojářům s arch. přesahem), kdy má pohovor trochu jiný průběh.

      Kandidáti sice většinou nelžou o své zkušenosti, ale občas mají nekritický (nadsazený) pohled na své schopnosti.

      Ty hlavolamy jsou fakt výborný. Je požitek je už jen držet v ruce. A většinou mají krásné geometricko-prostorové řešení.

      Vymazat
  9. Celý článek hrozně moc sráží jazyk a forma. Snaha být formální smíšená s hovorou češtinou a vulgaritami nepůsobí profesionálně. Takhle bych si jako člověk, který vede pohovory, nikdy nedovolil vystupovat.

    OdpovědětVymazat
    Odpovědi
    1. Výhrady chápu. Ovšem vzhledem k tomu, že se neživím ani HR, ani outsourcingem, ale SW inženýrstvím, tak mi forma přijde odpovídající. Byť rozumím tomu, že to nemusí někomu sedět. Pokud to někde zní formálně, není to úmyslně - celý zápis je myšlen neformálně a je daný mám subjektivním způsobem vyjadřování.

      Smyslem postu rovněž nebylo působit profesionálně. Jedná se o soukromý blog a to, jak vystupuju pracovně, bych si dovolil striktně oddělit.

      Vymazat
  10. Vysoka skola neni zas tak dulezita, zazil jsem velmi dobre programatory jen se stredni. Ale to je kuli tomu, ze is to dostudovali. U stredoskolaka bych necekal ze bude vedet neco o big O, a u vysokoskolaka ano. Pritom je to pri praci s kolekcema nutnost.

    OdpovědětVymazat
  11. BTW, u pohovoru se da rozcupovat kazdej a to skoro i tim nejvesim blbeckem :)

    Nejlepsi by bylo, kdyby se pohovor delal "obousmerne". Tak jako zamestnavatel hleda kvalitniho kandidata, tak i kandidat chce pracovat v kvalitnim kolktivu. Takze na jednu otazku z daneho tematu, jedna protiotazka smerovana na zkousejiciho ;)

    OdpovědětVymazat
    Odpovědi
    1. Tak tohle není vůbec špatný nápad - jenom nevím, jak na to budou kandidáti koukat. Asi nebudou připraveni na to, že by se také měli na něco ptát. Dík za inspiraci.

      Vymazat
    2. Myslím, že kandidáti skoro vždycky dostanou prostor pro otázky (někdy možná jen formální). Já ho dávám taky - koukám, že jsem to zapomněl napsat :-/ ale z vlastní zkušenosti můžu říct, že se ptá naprostý minimum lidí a z tohohle pohledu bývají kandidáti skoro vždycky nepřipravený. Kolikrát mám skoro potřebu jim poradit, na co se zeptat :-)

      Tady bych zmínil na začátku uvedené Managing Humans - když dělá Rands pohovor, tak úplně nejdůležitější otázka z celého interview je: "Máte nějaké otázky?". Doslova říká:

      If you don't have a list of questions lined up for me, all I hear is: You don't want this job.

      Takhle striktní já nejsem (přece jenom najímám jiné lidi než Rands :-) ale pokud má kandidát připravené otázky, je to jasné plus.

      Vymazat
    3. Doplnil jsem: pohovor, bod 2.

      Vymazat
    4. Otázky pro případného zaměstnavatele si připravuji vždycky. Chci vědět, kde a s kým bych pracoval, navíc to působí, jako že o to fakt máte zájem.

      Vymazat
    5. To se delava. Muj soucany zamestnavatel na to mel (IIRC) dokonce vyhrazeno samostatne kolo pohovoru ("Minule jsem se ptali my, dneska se budete ptat vy. Muzete na co chcete. Zacnete")
      vjur

      Vymazat
  12. Zdravim Guido,

    musim povedat ze ma celkovo zaujal tvoj blog hlavne co sa tyka technologickej urovne. Nemohol by si prezradit pre ktoru spolocnost pracujes?

    OdpovědětVymazat
    Odpovědi
    1. Děkuji.

      Ohledně společnosti - pojal jsem to jako soukromý blog, takže bych svého zaměstnavatele nerad referencoval. Nicméně pokud bys hledal práci, tak mi napiš a já ti dám info. Ale Atlassian asi nebude špatný :-)

      Vymazat
  13. Hladam, bolo by super ;) Vies mi poslat blizsie info na email? Dik

    OdpovědětVymazat
  14. To ptaní se do hloubky na nějaký framework a z toho dělat závěry se mi moc nelíbí. Protože častokrát to sklouzne k tomu, že se dotazovatel ptá na nějaký špek, který zrovna zná a je dost o náhodě, jestli jej uchazeč také zná. A z náhody si dělat obrázek o senioritě je dost nahouby.

    Já tvrdím, že informace si člověk najde, frameworky naučí. Lepší je zjistit, jestli uchazeč dokáže přemýšlet.

    Byl jsem překvapen, když jsem dával jednoduchoučký algoritmický příklad s chybou, který měli uchazeči opravit. Tam se totiž ukázalo, že hromada těch, co znali X frameworků totiž nedokáže myslet.

    OdpovědětVymazat
    Odpovědi
    1. Tak to záleží na každém, jestli někdo špeky dává. Já ne (krom toho, kandidáty "nezkouším", ale diskutuju s nima). A myslím, že dobrá znalost nějaké technologie je základ, na kterém teprve můžu stavět něco dalšího. Ptát se na něco do hloubky rozhodně není o náhodě - když mi někdo tvrdí, že 3-4 roky dělá se servlety a přitom nikdy neslyšel o kontextech, tak to rozhodně není náhoda (real story).

      Jinak je otázka, co chci od uchazeče zjistit - pokud mě zajímá, jestli "dokáže přemýšlet", tak se ho nebudu ptát do hloubky na konkrétní FW. Pokud hledám člověka na konkrétní projekt, kde bude bouchat třeba backend, tak mě bude zajímat, že danou/příbuznou technologii umí, nebo aspoň v rozumné míře ví, o čem to je.

      Občas se setkávám s názorem, že stačí najmout chytré a šikovné lidi, oni se to bez problémů naučí a vystřihnou to diamantově. Tak úplně jednoduché to není. Občas, abych byl schopen uspět, tak je nutné znát danou business a technologickou doménu. Takže být jenom chytrý a schopný nestačí.

      Další věc je učící křivka. Pokud mi projekt trvá 6-12 měsíců, tak to že někdo stráví 1-2 měsíce učením se FW, tak je docela velká zátěž a ztráta. A nejde jen o to, že to někdo za 14 už "umí". Ještě pořád bude týdny psát špatný design.

      Vymazat
    2. Líbí se mně, že s kandidáty diskutuješ. To je totiž asi ten klíč k úspěchu.

      Jsou totiž hackeři, kteří knížky nečtou (čtou zdrojáky), názvy návrhových vzorů neznají (a přitom je správně používají), hromadu fíčur frameworků neznají (a přesto ty frameworky patchují) a přesto tvoří naprosto úžasné technologie a jsou klíčové postavy firmy (real story).
      Při diskuzi nejsou slyšet a strašně se podceňují.

      Nevzít takového kandidáta by byla přitom kardinální chyba.

      Vymazat
    3. Presne vim o kom hovoris :)

      Vymazat
  15. Ano, takto nejak by mal pohovor vyzerat. Momentalne posledne 2 tyzdne lietam intenzivne po pohovoroch a stretol som sa s roznymi pristupmi. Rozdelit by sa dali zhruba takto:

    1. dostanes test a my sa Vam ozveme. Toto xmrti nenavidim, pretoze zvacsa nic o firme a ani otvorenej pozicii neviem a uz mam travit 2 hodiny casu, ktore mozu vyjst na zmar. Pokial mam viac rozjednanych veci, z pravidla sa na druhe kolo uz nedostavim.

    2. prebehne otukanie s personalistom ( 20-30 min ), clovek popise projekty a veci ktore robil a s cim sa stretol ( ale vyjde to nazmar, za hodinu to bude cele opakovat znovu ), dostane test, ale neni zbytocne zlozity, tak na 20-30 min. Nasledne prebehne pohovor s niekym od fachu, kde sa v rychlosti zopakuje omacka, ktora sa riesila s HR a potom sa prejde na vzajomne nasavanie informacii. Prejde sa test, pri jeho obhajobe ma obcas trkne, cele to skrtnem, ospravedlnim sa a vyriesime to ustne. Toto je najcastejsia forma s ktorou som sa stretol.

    3. Omacky sa vyriesia briskne po telefone. Na pohovore sedi clovek od fachu, zvacsa sef vyvoja. V rychlosti prebereme zivotopis, projekty, technologie. Nikto sa nesnazi na nic hrat, takze ak mam v CV napr. JMS, poviem, ze som ho videl posledne na projekte pred 5 rokmi a uz by som ho asi z fleku nedal. Padne kontrolna otazka, napr. rozdiel topic/queue a dalej sa to nepitva. Sef sa popyta na nejake vseobecne veci, napr. ake stavy pokryvame unit testom, prejdu sa trosku navrhove vzory ( tu nemam skolu, takze to bereme z logiky veci a nedokazem to vzdy spravne pomenovat ). Prebehne nejake nasavanie informacii. Dobre je, ze sa uz dozviem, co sa vyvija, s cim sa vyvija, na com sa vyvija... To su pre mna cennejsie informacie ako kopa roznych HR kecov o bonusoch a odmenovacom systeme...

    Takze tak. Mimochodom, hlavolamy neznasam, najma ak su 3D, posobil by som ako retard :-)

    A este jeden detail - zavisi aky ma clovek den. Mal som pohovor, ktory vysiel na blby den a z ktoreho som odchadzal so sklopenymi usami, cervenajuc sa a premyslajuc kde sa prihlasit ako kopac kanalov. Test som totalne zvoral a na poslednu chvilu som to lapajuc po dychu zachranoval pri jeho hodnoteni. Druhy den online test na 98%, pohovor v pohode, vzajomne sympatie. Ale to je holt zivot ...

    OdpovědětVymazat
    Odpovědi
    1. Pěkně shrnutý. Pohovory prvního typu jsem vždycky nesnášel a byl hrozně naštvaný kvůli ztrátě času. Přesně jak píšeš, člověk vůbec neví, jestli by pro ně chtěl pracovat a přitom má investovat svůj vlastní čas do psaní testu. Kdyby se mi to stalo dneska, tak bych rovnou řekl, že je to omyl, vzájemné plýtvání časem a odkráčel bych středem :-)

      Vymazat
    2. Ano, ale tento pristup sa da aplikovat len v casoch relativnej hojnosti. Keby to bola jedina ponuka, tak asi sklopim usi a tie 2-3 kola tam odkrutim. Ale kedze nebola, tak to, ci mohla byt pozicia pre mna zaujimava, sa uz nedozviem, pretoze ponuky mam uz na stole, casu zostava malo a sil/chuti na dalsie pohovory postupne ubuda ...

      Vymazat
    3. ... nehovoriac o leveli, ktory tomu celemu vacsinou predchadza - personalna agentura. Onehda som jednej personalistke vysvetloval, ze pokial mi nepovie meno klienta, nemame sa o com bavit. A druhej, ze k nim fakt nemam cas ist na pohovor o nicom a nech posle zivotopis priamo klientovi pokial ma zaujem. Nakoniec sme spravili kompromis - 20 min telefonat ( z ktoreho podla mna zachytila slova "spring", "hibernate" a "samostatne funkcne celky" ) a ten zivotopis potom bez kecov preposlala.

      Vymazat