Ako skrotiť juniora?

Ako sa dostať do veľkej spoločnosti, ak si junior? Ako najať kvalifikovaného juniora, ak si veľká spoločnosť? Pod článkom poviem náš príbeh o najímaní začínajúcich ľudí na frontend: ako sme vypracovali testovacie úlohy, pripravovali sa na pohovory a nastavovali mentorský program pre rozvoj a onboardovanie nováčikov, ako aj to, prečo nefungujú štandardné otázky na pohovoroch.

Ako skrotiť juniora?
Snažím sa skrotiť juniora

Ahoj! Volám sa Pavol, robím frontend v tíme Wrike. Vytvárame systém na riadenie projektov a spoluprácu. Webu sa venujem od roku 2010, 3 roky som pracoval na zahraničnej diaľkovej práci, podieľal som sa na niekoľkých startupoch a prednášal som kurz webových technológií na univerzite. V spoločnosti sa podieľam na rozvoji technických kurzov a mentorského programu Wrike pre juniorov, ako aj na ich nábore.

Prečo sme sa vôbec zamysleli nad najímaním juniorov

Do nedávna sme najať frontendových vývojárov na úrovni middle alebo senior – dostatočne samostatných na to, aby po onboardingu mohli plniť produktové úlohy. Na začiatku tohto roku sme si uvedomili, že chceme zmeniť túto politiku: za rok sa počet našich produktových tímov takmer zdvojnásobil, počet frontendových vývojárov sa priblížil k stovke a v blízkej budúcnosti by sa to malo opäť zdvojnásobiť. Práce je veľa, voľných rúk málo a na trhu ich je ešte menej, a tak sme sa rozhodli obrátiť sa na ľudí, ktorí len začínajú svoju cestu vo frontend, a uvedomili sme si, že sme pripravení investovať do ich rozvoja.

Kto je junior?

To je najprvšia otázka, ktorú sme si položili. Existujú rôzne kritériá, ale najjednoduchší a najjasnejší princíp je tento:

Juniorovi je potrebné vysvetliť, akú funkciu a ako spraviť. Middle potrebujú vysvetliť, aká funkcia je potrebná a on si s implementáciou poradí sám. Senior ti sám vysvetlí, prečo túto funkciu vôbec robiť nemusíš.

Tak či onak, junior je ten vývojár, ktorý potrebuje radu, ako presne realizovať to ktoré riešenie. Na čom sme sa rozhodli zakladať:

  1. Junior je ten, kto sa chce rozvíjať a je pripravený preto tvrdo pracovať;
  2. Nie vždy vie, ktorým smerom sa chce rozvíjať;
  3. Potrebuje radu a hľadá pomoc zvonku – od svojho lídra, mentora alebo komunity.

Mali sme ešte niekoľko hypotéz:

  1. Na pozíciu juniora bude búrka z reakcií. Musíme filtrovať náhodné reakcie už v etape odosielania životopisov;
  2. Prvotný filter nebude stačiť — potrebujeme ďalšie testovacie úlohy;
  3. Testovacie úlohy všetkých vystrašia — nie sú potrebné.

No a samozrejme, mali sme cieľ: 4 juniorov za 3 týždne.

S týmto uvedomením sme začali experimentovať. Plán bol jednoduchý: začať s čo najširšou funnel a postupne ju zužovať tak, aby sme stíhali spracovať prísun, ale aby sme ho nezredukovali na 1 kandidáta za týždeň.

Zverejnili sme inzerát na prácu

Pre spoločnosť: Budú stovky reakcií! Premyslite si filter.

Pre juniora: Nebojte sa dotazníka pred odoslaním životopisu a testovej úlohy — je to znak toho, že sa o vás spoločnosť stará a má dobre nastavený proces.

Hneď na prvý deň k nám prišlo okolo 70 životopisov od kandidátov „so znalosťou JavaScriptu“. A potom ešte. A ešte. Fyzicky sme nemohli pozvať všetkých na pohovor do kancelárie a vybrali sme medzi nimi chlapcov s najzaujímavejšími pet-projektmi, živým GitHubom alebo aspoň nejakým skúsenostiam.

Ale hlavný záver, ktorý sme si urobili už na prvý deň — búrka sa začala. Nastal čas pridať dotazník pred odoslaním životopisu. Jeho úlohou bolo odfilterovať kandidátov, ktorí nie sú ochotní vyvinúť minimálne úsilie na odoslanie životopisu, a tých, ktorí nemajú vedomosti a kontext aspoň v takej miere, aby si googleli správne odpovede.

Obsahoval štandardné otázky o JS, frontendovom vývoji, web, Computer Science — to vie každý, kto vie, čo sa pýta na pohovore na frontende. Aký je rozdiel medzi let/var/const? Ako použiť štýly len pre obrazovky menšie než 600px na šírku? Nechceli sme klásť tieto otázky na technickom pohovore — prax ukázala, že na ne môžete odpovedať po 2-3 pohovoroch, úplne bez znalosti vývoja. Ale dokázali primárne ukázať, či kandidát aspoň vo všeobecnosti rozumie kontextu.

V každej kategórii sme pripravili 3-5 otázok a deň za dňom sme menili ich súbor v dotazníku, kým sme nevyhodili najjednoduchšie a najťažšie. To umožnilo znížiť prísun — za 3 týždne sme dostali 122 kandidátov, s ktorými sa dalo dalej pracovať. Boli to študenti IT; chlapci, ktorí chceli prejsť z backendu na frontend; zamestnanci alebo inžinieri vo veku 25-35 rokov, ktorí sa zásadne rozhodli zmeniť svoj odbor a vynaložili rôzne množstvo síl na samoštúdium, kurzy a stáže.

Zoznámime sa bližšie

Pre spoločnosť: Testovacia úloha neodrádza kandidátov, ale pomáha skrátiť náborový proces.

Pre juniora: Nekopírujte testy — je to zjavné. A majte v poriadku svoj GitHub!

Keby sme pozvali všetkých na technické pohovory, museli by sme viesť asi 40 pohovorov týždenne len pre juniorov a len na frontende. Preto sme sa rozhodli overiť druhú hypotézu — ohľadom testovacej úlohy.

Čo pre nás bolo dôležité v teste:

  1. Vytvoriť dobrú škálovateľnú architektúru, ale bez nadmerného inžinierstva;
  2. Lepšie robiť dlhšie, ale poriadne, ako za noc vyrobiť niečo a poslať s komentárom „určite to dokončím“;
  3. História vývoja v Gite — inžinierska kultúra, iteratívny vývoj a to, že riešenie nie je úplne plagiát.

Dohodli sme sa, že chceme vidieť jeden algoritmický úloh a malé webové aplikácie. Algoritmy boli pripravené na úrovni laboratórnych prác z úvodných kurzov — binárne vyhľadávanie, triedenie, overenie anagramov, práca so zoznamami a stromami. Nakoniec sme sa zastavili na binárnom vyhľadávaní ako prvom testovacom variante. Webovým aplikáciou mali byť piškvorky s použitím akéhokoľvek rámca (alebo bez neho).

Testovaciu úlohu zvládla takmer polovica z zostávajúcich chlapcov — poslali nám riešenia 54 kandidátov. Neuveriteľný postreh — koľko implementácií piškvorky, pripravených na kopírovanie, je na internete?

Koľko?V skutočnosti sa zdá, že sú len 3. A vo väčšine riešení boli práve tieto 3 varianty.
Co se mi nelíbilo:

  • kopírovanie, alebo vývoj podľa jedného a toho istého tutoriálu bez vlastnej architektúry;
  • obidve úlohy v jednom repozitári v rôznych priečinkoch, pričom žiadna história commitov samozrejme nie je;
  • špinavý kód, porušovanie DRY, absencia formátovania;
  • zmiešanie modelu, pohľadu a kontroléra do jedného triedy dlhého stovky riadkov kódu;
  • nedostatok pochopenia jednotkového testovania;
  • Riešenie „na tvrdo“ — hardcodovanie matice výherných kombinácií 3x3, čo bude dosť ťažké rozšíriť na 10x10, napríklad.

A ešte sme si všimli susedné repozitáre — skvelé pet-projekty išli do plusu, a kopu testových úloh od iných spoločností sme vnímali skôr ako signál: prečo kandidát nezvládol prejsť tam?

Nakoniec sme našli skvelé varianty na React, Angular, Vanilla JS — nazbieralo sa ich 29. A ešte jedného kandidáta sme sa rozhodli pozvať bez testu za jeho veľmi cool pet-projekty. Naša hypotéza o prínose testových úloh sa potvrdila.

Technické pohovor

Pre spoločnosť: K vám prišli nie middli/seniori! Potrebujeme väčší individuálny prístup.

Pre juniora: Pamätajte, že to nie je skúška — nesnažte sa mlčať na trojku alebo zložiť profesora prúdom všetkých svojich možných vedomostí, aby sa zamotal a dal „výborne“.

Čo chceme pochopiť na technickom pohovore? Jednoduchú vec — ako kandidát uvažuje. Pravdepodobne má nejaké hard skills, ak prešiel prvými etapami výberu — zostáva zistiť, či ich vie aplikovať. Dospeli sme k trom úlohám.

Prvá — o algoritmoch a dátových štruktúrach. Pero, papier, pseudojazyk a pomocou obrázkov sme sa zaoberali, ako skopírovať strom alebo ako odstrániť prvok z jednoduchej Linked list. Nepatrné zistenie bolo, že nie všetci chápu rekurziu a to, ako fungujú odkazy.

Druhá — live coding. Navštívili sme codewars.com, vybrali sme si jednoduché úlohy ako triedenie poľa slov podľa posledného písmena a počas 30-40 minút sme sa spolu s kandidátom snažili nechať prejsť všetky testy. Zdalo sa, že od chlapcov, ktorí zvládli „krížiky-nulíky“, by nemali byť prekvapenia — ale v praxi nie všetci dokázali pochopiť, že hodnotu treba uložiť do premennej a funkcia by mala niečo vrátiť cez return. Aj keď úprimne dúfam, že to bol len stres, a chlapci sa dokázali s týmito úlohami vyrovnať v pohodovejších podmienkach.

Nakoniec, tretia — trochu o architektúre. Diskutovali sme, ako by sa dala vytvoriť vyhľadávacia lišta, ako pri tom funguje debounce, ako renderovať rôzne widgety v náhľadoch vyhľadávania, ako frontend môže interagovať s backendom. Našli sme množstvo zaujímavých riešení, vrátane server-side renderingu a webových socketov.

Urobili sme 21 rozhovor podľa tejto schémy. Publika bola úplne rôznorodá — pozrime sa na komiksy:

  1. „Raketa“. Nikdy sa neuspokojí, všade sa vtiera, a na rozhovore vás zasype prúdom myšlienok, ktoré priamo ani nesúvisia s položenou otázkou. Keby to bolo na univerzite, bola by to známá snaha demonštrovať všetky svoje znalosti, keď si pamätáte len to, že ste sa včera večer rozhodli ho nenaučiť — aj tak ho nezdvihnete.
  2. „Groot“. S ním sa je dosť ťažké skontaktovať, pretože je Groot. Na rozhovore trvá dlhšie, kým sa rozbehne, vytiahnuť odpovede slovo za slovom. Je dobré, ak to je len bezradnosť — inak vám potom v každodennej práci bude veľmi ťažko.
  3. „Drax“. Predtým sa zaoberal prepravou tovaru, a z programovania sa učil iba JS cez Stackoverflow, takže nie vždy rozumie, o čom sa vlastne hovorí na pohovore. Napriek tomu je dobrý človek, má najlepšie úmysly a chce sa stať skvelým frontendérskym programátorom.
  4. No a pravdepodobne, „Hviezdny lord“. Vo všeobecnosti nie zlý kandidát, s ktorým sa dá dohodnúť a vybudovať dialóg.

Na konci našich výskumov 7 kandidátov prešlo do finále, potvrdzujúc svoje hard skills skvelou testovacou úlohou a dobrými odpoveďami na pohovor.

Kultúrna zhoda

Pre spoločnosť: Budete s ním pracovať! Určite je kandidát pripravený pracovať extrémne veľa pre svoj rozvoj? Určite zapadne do tímu?

Pre juniora: Budete s nimi pracovať! Je firma pripravená investovať do rastu juniorov, alebo len zvalí na vás všetku špinavú prácu za nízku mzdu?

Každý junior okrem produktového tímu, ktorého líder musí súhlasiť, že ho zoberie, dostane mentora. Úlohou mentora je viesť ho trojmesačným procesom onboardingu a zdokonaľovania hard skillov. Preto sme na každú kultúrnu zhody prichádzali ako mentori a pýtali sme si sami seba otázku: „Beriem na seba zodpovednosť zdokonaľovať kandidáta za 3 mesiace podľa nášho plánu?“

Tento krok prebiehal bez osobitostí a nakoniec nám priniesol 4 ponuky, z ktorých boli 3 prijaté, a chlapci sa pripojili do tímov.

Život po ponuke

Pre spoločnosť: Postarajte sa o svojich juniorov, alebo to urobia iní!

Pre juniora: AAAAAAAAHHHHHHHHHHH!!!

Keď príde nový zamestnanec, je potrebné ho zaúčať — oboznámiť ho s procesmi, vysvetliť, ako to v spoločnosti a v tíme funguje a ako vlastne má pracovať. Pri junioroch je dôležité pochopiť, ako ich ďalej rozvíjať.

Keď sme nad tým premýšľali, zostavili sme zoznam 26 zručností, ktoré by podľa nášho názoru mal junior mať na konci trojmesačného zaúčenia. Zahrnuli sme technické zručnosti (podľa našich technológií), znalosti našich procesov, scrumu, infraštruktúry a architektúry projektu. Spojili sme ich do roadmapy rozloženej na 3 mesiace.

Ako skrotiť juniora?

Napríklad, tu je roadmapa môjho junióra

Každému juniorovi priraďujeme mentora, ktorý s ním pracuje individuálne. V závislosti od mentora a aktuálnej úrovne kandidáta sa stretnutia konajú 1 až 5-krát týždenne po 1 hodine. Mentormi sa dobrovoľne stávajú iniciatívni frontendisti, ktorí chcú robiť niečo viac, než len písať kód.

Časť záťaže z mentorov preberajú kurzy o našich technológiách — Dart, Angular. Kurzy sa pravidelne konajú pre malé skupiny 4-6 ľudí, kde sa študenti vzdelávajú bez prerušenia práce.

Počas 3 mesiacov pravidelne zbierame spätnú väzbu od juniorov, ich mentorov a lídrov a proces individuálne upravujeme. 1-2-krát za celé obdobie sa vykonáva kontrola zručností, podobná kontrola prebieha na konci — na ich základe sa vytvárajú odporúčania, čo by sa malo zlepšiť.

Záver

Pre spoločnosť: Má sa investovať do juniorov? Áno!

Pre juniora: Hľadajte firmy, ktoré starostlivo vyberajú kandidátov a vedia, ako ich rozvíjať

Za 3 mesiace sme prešli 122 dotazníkmi, 54 testovými úlohami a uskutočnili 21 technických pohovorov. To nám prinieslo 3 skvelých juniorov, ktorí už prešli polovičnou cestou svojich roadmapov zaúčenia a akcelerácie. Už riešia skutočné produktové úlohy v našom projekte, kde len na frontend je viac ako 2 000 000 riadkov kódu a viac ako 400 repozitárov.

Zistili sme, že proces pre juniorov môže a musí byť dostatočne zložitý, ale nakoniec ním prejdú len tí, ktorí sú skutočne pripravení tvrdo pracovať a investovať do svojho rozvoja.

Našou hlavnou úlohou je teraz dokončiť trojmesačné roadmapy rozvoja pre každého juniora v režime individuálnej práce s mentorom a spoločných kurzov, zhromaždiť metriky, spätnú väzbu od lídrov, mentorov a samotných chlapcov. Na tomto mieste bude možné považovať prvý experiment za dokončený, vyvodiť závery, zlepšiť proces a znovu ho spustiť na výber nových kandidátov.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster