Kako ukrotiti juniora?

Kako ući u veliku kompaniju ako ste junior? Kako zaposliti pristojnog juniora ako ste velika kompanija? Ispod reza, ispričat ću vam našu priču o zapošljavanju početnika na front end-u: kako smo radili kroz testne zadatke, pripremali se za intervjue i izgradili mentorski program za razvoj i onboarding novopridošlica, kao i zašto se ne postavljaju standardna pitanja za intervju. ne radim.

Kako ukrotiti juniora?
Pokušavam ukrotiti Juniora

Zdravo! Moje ime je Pavel, radim front-end u Wrike timu. Kreiramo sistem za upravljanje projektima i saradnju. Na webu radim od 2010. godine, radio sam 3 godine u inostranstvu, učestvovao u nekoliko startapova i predavao kurs o web tehnologijama na fakultetu. U kompaniji sam uključen u razvoj tehničkih kurseva i Wrike mentorskog programa za juniore, kao i njihovo direktno zapošljavanje.

Zašto smo uopće razmišljali o zapošljavanju juniora?

Do nedavno smo zapošljavali programere srednjeg ili višeg nivoa za frontend - dovoljno nezavisne da obavljaju zadatke proizvoda nakon onboardinga. Početkom ove godine shvatili smo da želimo promijeniti ovu politiku: tokom godine broj naših proizvodnih timova se gotovo udvostručio, broj front-end programera se približio stotini, a u bliskoj budućnosti će sve to morati ponovo udvostručiti. Posla ima puno, malo slobodnih ruku, a još ih je manje na tržištu, pa smo odlučili da se obratimo momcima koji tek počinju svoj put u front endu i shvatili da smo spremni uložiti u njihov razvoj.

Ko je junior?

Ovo je prvo pitanje koje smo sebi postavili. Postoje različiti kriterijumi, ali najjednostavniji i najrazumljiviji princip je ovaj:

Junioru treba objasniti koja karakteristika i kako se to radi. Srednjem treba objasniti koja je karakteristika potrebna, a on će sam shvatiti implementaciju. Sam sinjor će vam objasniti zašto ova funkcija uopšte ne treba da se radi.

Na ovaj ili onaj način, junior je programer koji treba savjet kako implementirati ovo ili ono rješenje. Na čemu smo odlučili da gradimo:

  1. Junior je neko ko želi da se razvija i spreman je da naporno radi za to;
  2. On ne zna uvek u kom pravcu želi da se razvija;
  3. Potreban mu je savjet i traži pomoć izvana - od svog vođe, mentora ili u zajednici.

Imali smo i nekoliko hipoteza:

  1. Biće bura odgovora na stav juna. Morate filtrirati nasumične odgovore u fazi slanja vašeg životopisa;
  2. Primarni filter neće pomoći. — potrebno je više testnih zadataka;
  3. Testni zadaci će sve uplašiti - nisu potrebni.

I naravno, imali smo cilj: 4 juniora za 3 sedmice.

Sa ovom spoznajom počeli smo eksperimentirati. Plan je bio jednostavan: počnite sa najširim mogućim lijevkom i pokušajte ga postepeno suziti kako biste mogli obraditi tok, ali ga ne smanjivati ​​na 1 kandidata tjedno.

Objavljujemo slobodno radno mjesto

Za kompaniju: Biće na stotine odgovora! Razmislite o filteru.

Za juniore: Nemojte se plašiti upitnika prije slanja biografije i testnog zadatka - to je znak da se kompanija pobrinula za vas i dobro postavila proces.

Prvog dana dobili smo oko 70 životopisa od kandidata „sa poznavanjem JavaScripta“. A onda opet. I dalje. Fizički nismo mogli pozvati sve u kancelariju na intervju i od njih smo odabrali momke sa najboljim projektima za kućne ljubimce, Github uživo ili barem iskustvo.

Ali glavni zaključak koji smo sami sebi napravili već prvog dana je da je oluja počela. Sada je vrijeme da dodate obrazac za upitnik prije nego što pošaljete svoj životopis. Njen cilj je bio da odvoji kandidate koji nisu bili voljni da ulože minimum truda da predaju životopis, te one koji nisu imali znanja i konteksta da barem izguglaju tačne odgovore.

Sadržao je standardna pitanja o JS-u, izgledu, webu, informatici - svi koji zamišljaju šta pitaju na front-end intervjuu znaju ih. Koja je razlika između let/var/const? Kako mogu primijeniti stilove samo na ekrane manje od 600px širine? Ova pitanja nismo željeli postavljati na tehničkom intervjuu - praksa je pokazala da se na njih može odgovoriti nakon 2-3 intervjua bez razumijevanja razvoja. Ali oni su nam na početku mogli pokazati da li kandidat, u principu, razumije kontekst.

U svakoj kategoriji pripremili smo 3-5 pitanja i dan za danom mijenjali njihov set u obrascu za odgovore dok nismo eliminisali najprohodnije i najteže. To nam je omogućilo da smanjimo protok - primili smo za 3 sedmice 122 kandidata, sa kojim bismo mogli dalje da radimo. To su bili studenti informatike; momci koji su hteli da pređu na front sa bekenda; radnici ili inženjeri, 25-35 godina, koji su radikalno željeli promijeniti zanimanje i ulažu različite količine truda u samoobrazovanje, kurseve i praksu.

Da se bolje upoznamo

Za kompaniju: Testni zadatak ne odvraća kandidate, ali pomaže u skraćivanju toka.

Za juniore: Nemojte kopirati i zalijepiti probne - to je primjetno. I održavajte svoj github u redu!

Kad bismo sve pozvali na tehnički razgovor, morali bismo obaviti oko 40 intervjua sedmično samo za juniore i to samo na front endu. Stoga smo odlučili testirati drugu hipotezu - o testnom zadatku.

Šta nam je bilo važno na testu:

  1. Izgradite dobru skalabilnu arhitekturu, ali bez pretjeranog inženjeringa;
  2. Bolje je potrajati duže, ali to dobro odraditi, nego preko noći sastaviti zanat i poslati ga uz komentar “Svakako ću ga završiti”;
  3. Istorija razvoja u Gitu je inženjerska kultura, iterativni razvoj i činjenica da rješenje nije otvoreno kopirano.

Složili smo se da želimo da pogledamo jedan algoritamski problem i malu web aplikaciju. Algoritamske su pripremljene na nivou laboratorija osnovnog nivoa - binarno pretraživanje, sortiranje, provjera anagrama, rad sa listama i stablima. Na kraju smo se odlučili na binarno pretraživanje kao prvu probnu opciju. Web aplikacija je morala biti tik-tak-toe koristeći bilo koji okvir (ili bez njega).

Gotovo polovina preostalih momaka je završila testni zadatak - poslali su nam rješenja 54 kandidata. Nevjerovatan uvid - koliko implementacija tic-tac-toe, spremnih za copy-paste, mislite da postoji na internetu?

Koliko?Zapravo, čini se da ih ima samo 3. I u velikoj većini odluka bile su upravo te 3 opcije.
Šta mi se nije dopalo:

  • copy-paste, ili razvoj zasnovan na istom tutorijalu bez vlastite arhitekture;
  • oba zadatka su u istom spremištu u različitim folderima, naravno ne postoji istorija urezivanja;
  • prljavi kod, DRY kršenje, nedostatak formatiranja;
  • mješavina modela, pogleda i kontrolera u jednu klasu dugu stotine linija koda;
  • nedostatak razumijevanja jediničnog testiranja;
  • “head-on” rješenje je hardcode 3x3 matrice dobitnih kombinacija, koju će biti prilično teško proširiti na 10x10, na primjer.

Obratili smo pažnju i na susjedna spremišta - cool projekti za kućne ljubimce bili su plus, a gomila testnih zadataka iz drugih kompanija više je bila poziv za buđenje: zašto kandidat nije mogao doći tamo?

Kao rezultat toga, pronašli smo cool opcije u Reactu, Angularu, Vanilla JS - bilo ih je 29. I odlučili smo pozvati još jednog kandidata bez testiranja za njegove vrlo cool projekte za kućne ljubimce. Naša hipoteza o prednostima testnih zadataka je potvrđena.

Tehnički intervju

Za kompaniju: Nisu ti došli srednji/stariji! Potreban nam je individualniji pristup.

Za juniore: Zapamtite da ovo nije ispit - ne pokušavajte šutjeti za C ili bombardirati profesora strujom svog mogućeg znanja kako bi se zbunio i dao "odlično".

Šta želimo razumjeti u tehničkom intervjuu? Jednostavna stvar - kako kandidat razmišlja. Vjerovatno ima neke teške vještine ako je prošao prve faze selekcije - ostaje da se vidi da li ih zna koristiti. Dogovorili smo se oko 3 zadatka.

Prvi se odnosi na algoritme i strukture podataka. Olovkom, na komadu papira, na pseudo-jeziku i uz pomoć crteža, shvatili smo kako da kopiramo stablo ili kako da uklonimo element sa jednostruke liste. Neugodno otkriće je da ne razumiju svi rekurziju i kako reference funkcioniraju.

Drugi je kodiranje uživo. Otišli smo u codewars.com, odabrao je jednostavne stvari poput sortiranja niza riječi po posljednjem slovu i 30-40 minuta zajedno sa kandidatom pokušavao da prođe sve testove. Činilo se da ne bi trebalo biti iznenađenja od momaka koji su savladali tic-tac-toe - ali u praksi nisu svi mogli shvatiti da vrijednost treba pohraniti u varijablu, a funkcija treba vratiti nešto putem return. Mada se iskreno nadam da je to bila trema, a momci su se snašli sa ovim zadacima u lakšim uslovima.

Konačno, treći je nešto o arhitekturi. Razgovarali smo o tome kako napraviti traku za pretraživanje, kako funkcionira debounce, kako renderirati različite widgete u savjetima za pretraživanje, kako front end može komunicirati sa stražnjim dijelom. Bilo je puno zanimljivih rješenja, uključujući renderiranje na strani servera i web utičnice.

Obavili smo 21 intervju koristeći ovaj dizajn. Publika je bila potpuno raznolika - pogledajmo stripove:

  1. "raketa". Nikada se ne smiruje, uključuje se u sve, a tokom intervjua će vas zatrpati strujom misli koje nisu ni direktno vezane za postavljeno pitanje. Da je na univerzitetu, ovo bi bio poznat pokušaj da demonstrirate, pa, sve svoje znanje, kada se sve što se sećate o ulaznici na koju ste naišli jeste da ste sinoć odlučili da je ne studirate - još uvek ne možete da dobijete to van.
  2. "Groot". Prilično je teško stupiti u kontakt s njim jer je on Groot. Tokom intervjua, morate provesti dugo vremena pokušavajući da dobijete odgovore riječ po riječ. Dobro je ako je samo omamljenost - inače će vam biti jako teško u svakodnevnom radu.
  3. "Drax". Radio sam u transportu tereta, a što se tiče programiranja, naučio sam JS samo na Stackoverflowu, tako da ne razumijem uvijek o čemu se priča na intervjuu. U isto vrijeme, on je dobra osoba, ima najbolje namjere i želi postati odličan front-end developer.
  4. Pa, vjerovatno "Star Lord". Sve u svemu, dobar kandidat s kojim možete pregovarati i graditi dijalog.

Na kraju našeg istraživanja 7 kandidata dogurali do finala, potvrdivši svoje vještine odličnim testnim zadatkom i dobrim odgovorima na intervjuu.

kulturno uklapanje

Za kompaniju: Radite s njim! Da li je kandidat spreman da se izuzetno trudi za svoj razvoj? Hoće li se zaista uklopiti u tim?

Za juniore: Radite sa njima! Da li je kompanija zaista spremna da ulaže u razvoj juniora ili će jednostavno sav prljav posao baciti na vas za nisku platu?

Svaki junior, pored proizvodnog tima, čije vodstvo mora pristati da ga preuzme, dobija mentora. Zadatak mentora je da ga vodi kroz tromjesečni proces onboardinga i nadogradnje tvrdih vještina. Stoga smo na svaki kulturni fit došli kao mentori i odgovorili na pitanje: „Hoću li preuzeti odgovornost za razvoj kandidata za 3 mjeseca prema našem planu?“

Ova faza je prošla bez ikakvih posebnosti i na kraju nas je dovela 4 ponude, od kojih su 3 prihvaćena, a momci su ušli u timove.

Život nakon ponude

Za kompaniju: Vodite računa o svojim juniorima ili će drugi!

Za juniore: AAAAAAAAAAAA!!!

Kada se pojavi novi zaposlenik, potrebno ga je uključiti - upoznati sa procesima, reći mu kako sve funkcioniše u kompaniji i timu i kako treba da radi uopšte. Kada se pojavi junior, morate razumjeti kako ga razviti.

Kada smo razmišljali o tome, došli smo do liste od 26 vještina koje bi, po našem mišljenju, junior trebao imati do kraja tromjesečnog perioda upisa. To je uključivalo teške vještine (prema našem stacku), poznavanje naših procesa, Scrum-a, infrastrukture i arhitekture projekta. Kombinirali smo ih u mapu puta, raspoređenu na 3 mjeseca.

Kako ukrotiti juniora?

Na primjer, evo mape puta mog juniora

Svakom junioru dodjeljujemo mentora koji radi sa njim pojedinačno. U zavisnosti od mentora i trenutnog nivoa kandidata, sastanci se mogu održavati od 1 do 5 puta sedmično u trajanju od 1 sata. Mentori su volonteri front-end programeri koji žele učiniti nešto više od pukog pisanja koda.

Dio tereta za mentore skidaju kursevi na našem stacku - Dart, Angular. Kursevi se održavaju redovno za male grupe od 4-6 osoba, gdje studenti uče bez prekida u radu.

Tokom 3 mjeseca periodično prikupljamo povratne informacije od juniora, njihovih mentora i voditelja i individualno prilagođavamo proces. Napumpane vještine se provjeravaju 1-2 puta tokom cijelog perioda, ista provjera se provodi na kraju - na osnovu njih se formiraju preporuke šta tačno treba poboljšati.

zaključak

Za kompaniju: Isplati li se ulagati u juniore? Da!

Za juniore: Tražite kompanije koje pažljivo biraju kandidate i znaju kako ih razviti

Tokom 3 mjeseca pregledali smo 122 upitnika, 54 test zadatka i obavili 21 tehnički intervju. Ovo nam je dovelo 3 sjajna juniora koji su sada završili polovinu svojih planova za ukrcavanje i ubrzanje. Oni već završavaju stvarne proizvodne zadatke u našem projektu, gdje postoji više od 2 linija koda i više od 000 spremišta samo na prednjem dijelu.

Saznali smo da lijevak za juniore može i treba biti prilično složen, ali na kraju kroz njega prolaze samo oni momci koji su zaista spremni da se jako trude i ulažu u svoj razvoj.

Sada je naš glavni zadatak da završimo tromesečne razvojne mape za svakog juniora u režimu individualnog rada sa mentorom i opštim kursevima, prikupimo metrike, povratne informacije od vodećih, mentora i samih momaka. U ovom trenutku se može smatrati da je prvi eksperiment završen, da se mogu izvući zaključci, da se proces može poboljšati i da se može ponovo pokrenuti izbor novih kandidata.

izvor: www.habr.com

Dodajte komentar