Kako ukrotiti juniora?

Kako ući u veliku tvrtku ako si junior? Kako zaposliti pristojnog juniora ako ste velika tvrtka? Ispod presjeka, ispričat ću vam našu priču o zapošljavanju početnika na front endu: kako smo radili na ispitnim zadacima, pripremali se za provođenje intervjua i izgradili mentorski program za razvoj i uvođenje novopridošlica, kao i zašto standardna pitanja za intervjue ne ne radi.

Kako ukrotiti juniora?
Pokušavam ukrotiti Juniora

Zdravo! Moje ime je Pavel, radim front-end rad u Wrike timu. Stvaramo sustav za upravljanje projektima i suradnju. Radim na webu od 2010., radio sam 3 godine u inozemstvu, sudjelovao u nekoliko startupa i predavao kolegij o web tehnologijama na sveučilištu. U tvrtki sam uključen u razvoj tehničkih tečajeva i Wrike mentorskog programa za juniore, kao i njihovo direktno zapošljavanje.

Zašto smo uopće razmišljali o angažiranju juniora?

Donedavno smo zapošljavali programere srednje ili više razine za sučelje - dovoljno neovisne da obavljaju zadatke proizvoda nakon uključivanja. Početkom ove godine shvatili smo da želimo promijeniti ovu politiku: tijekom godine broj naših proizvodnih timova gotovo se udvostručio, broj front-end programera približio se stotini, a u bliskoj budućnosti sve će to morati ponovno udvostručiti. Posla je puno, slobodnih ruku malo, a na tržištu ih je još manje, pa smo se odlučili okrenuti dečkima koji tek počinju svoj put u front end i shvatili da smo spremni uložiti u njihov razvoj.

Tko je junior?

Ovo je prvo pitanje koje smo si postavili. Postoje različiti kriteriji, ali najjednostavniji i najrazumljiviji princip je sljedeći:

Junioru treba objasniti koja je značajka i kako to učiniti. Middle-u treba objasniti koja je značajka potrebna, a on će sam smisliti implementaciju. Signor će vam sam objasniti zašto ovu značajku uopće ne treba raditi.

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

  1. Junior je netko tko se želi razvijati i spreman je naporno raditi za to;
  2. Ne zna uvijek u kojem smjeru se želi razvijati;
  3. Treba savjet i traži pomoć izvana - od svog voditelja, mentora ili u zajednici.

Imali smo i nekoliko hipoteza:

  1. Bit će bura odgovora na Junein stav. Morate filtrirati nasumične odgovore u fazi slanja životopisa;
  2. Primarni filtar neće pomoći. — potrebno je više testnih zadataka;
  3. Testni zadaci će sve prestrašiti - nisu potrebni.

I naravno, imali smo cilj: 4 juniora u 3 tjedna.

S ovom spoznajom počeli smo eksperimentirati. Plan je bio jednostavan: započnite s najširim mogućim lijevkom i pokušajte ga postupno suziti tako da možete obraditi tok, ali ne smanjiti ga na 1 kandidata tjedno.

Objavljujemo konkurs

Za tvrtku: Bit će stotine odgovora! Razmislite o filteru.

Za juniore: Nemojte se bojati upitnika prije slanja životopisa i testnog zadatka - to je znak da se tvrtka pobrinula za vas i dobro postavila proces.

Prvog dana primili smo oko 70 životopisa kandidata “sa znanjem JavaScripta”. I onda opet. I dalje. Fizički nismo mogli pozvati sve u ured na razgovor i od njih smo odabrali dečke s najcool pet projektima, live Githubom ili barem iskustvom.

Ali glavni zaključak koji smo za sebe zaključili već prvog dana je da je oluja počela. Sada je vrijeme da dodate upitnik prije slanja životopisa. Cilj joj je bio izdvojiti kandidate koji nisu bili voljni uložiti minimalan napor da pošalju životopis, te one koji nisu imali znanja i konteksta da barem guglaju točne odgovore.

Sadržavala je standardna pitanja o JS-u, izgledu, webu, informatici - znaju ih svi koji zamišljaju što pitaju na front-end intervjuu. Koja je razlika između let/var/const? Kako mogu primijeniti stilove samo na zaslone manje od 600 piksela? Ova pitanja nismo htjeli postaviti na tehničkom razgovoru - praksa je pokazala da se na njih može odgovoriti nakon 2-3 razgovora bez da se uopće razumije razvoj. Ali oni su nam u početku mogli pokazati razumije li kandidat u načelu kontekst.

U svakoj kategoriji pripremili smo 3-5 pitanja i iz dana u dan mijenjali njihov skup u obrascu za odgovore dok nismo eliminirali najprohodnija i najteža. To nam je omogućilo smanjenje protoka - za 3 tjedna smo dobili 122 kandidata, s kojim bismo mogli dalje raditi. To su bili studenti informatike; dečki koji su se htjeli pomaknuti u prednju stranu iz pozadine; radnici ili inženjeri, 25-35 godina, koji su radikalno željeli promijeniti svoje zanimanje i uložili različite količine truda u samoobrazovanje, tečajeve i praksu.

Bolje upoznavanje

Za tvrtku: Ispitni zadatak ne odvraća kandidate, već pomaže skratiti tok.

Za juniore: Nemojte copy-paste testne - to se primijeti. I održavajte svoj github u redu!

Kada bismo sve pozvali na tehnički razgovor, morali bismo obaviti oko 40 razgovora tjedno samo za juniore i to samo na front endu. Stoga smo odlučili testirati drugu hipotezu – o testnom zadatku.

Ono što nam je bilo važno u testu:

  1. Izgradite dobru skalabilnu arhitekturu, ali bez pretjeranog inženjeringa;
  2. Bolje odužiti se, ali dobro odraditi, nego preko noći složiti zanat i poslati ga uz komentar "Sigurno ću ga završiti";
  3. Povijest razvoja u Gitu je inženjerska kultura, iterativni razvoj i činjenica da rješenje nije otvoreno kopirano.

Složili smo se da želimo pogledati jedan algoritamski problem i malu web aplikaciju. Algoritamske su pripremljene na razini laboratorija osnovne razine - binarno pretraživanje, sortiranje, provjera anagrama, rad s listama i stablima. Na kraju smo se odlučili za binarno pretraživanje kao prvu probnu opciju. Web aplikacija je morala biti tic-tac-toe koristeći bilo koji framework (ili bez njega).

Gotovo polovica preostalih momaka riješila je testni zadatak – poslali su nam rješenja 54 kandidata. Nevjerojatna spoznaja - što mislite koliko implementacija tic-tac-toea, spremnih za copy-paste, postoji na internetu?

Koliko?Zapravo, čini se da postoje samo 3. A u velikoj većini odluka bile su upravo te 3 opcije.
Što mi se nije svidjelo:

  • copy-paste, ili razvoj temeljen na istom tutorialu bez vaše vlastite arhitekture;
  • oba zadatka su u istom repozitoriju u različitim mapama, naravno nema povijesti predaje;
  • prljav kod, DRY kršenje, nedostatak oblikovanja;
  • 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 pozornost i na susjedne repozitorije - cool projekti kućnih ljubimaca bili su plus, a hrpa testnih zadataka drugih tvrtki bila je više znak za uzbunu: 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 ljubimaca. Potvrđena je naša hipoteza o dobrobiti testnih zadataka.

Tehnički razgovor

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

Za juniore: Upamtite da ovo nije ispit – nemojte pokušavati šutjeti za trojku ili bombardirati profesora bujom svog mogućeg znanja kako bi se zbunio i dao “odličan”.

Što želimo razumjeti u tehničkom intervjuu? Jednostavna stvar – kako kandidat razmišlja. Vjerojatno ima neke teške vještine ako je prošao prve faze selekcije - ostaje vidjeti hoće li ih znati iskoristiti. Dogovorili smo 3 zadatka.

Prvi se odnosi na algoritme i strukture podataka. Olovkom, na komadu papira, na pseudo-jeziku i uz pomoć crteža smišljali smo kako kopirati stablo ili kako ukloniti element s jednostruko povezane liste. Neugodno otkriće bilo je da ne razumiju svi rekurziju i kako reference funkcioniraju.

Drugi je kodiranje uživo. Otišli smo u codewars.com, birao jednostavne stvari poput sortiranja niza riječi po zadnjem slovu i 30-40 minuta zajedno s kandidatom pokušavao postići da svi testovi prođu. Činilo se da ne bi trebalo biti iznenađenja od momaka koji su savladali tic-tac-toe - ali u praksi nisu svi uspjeli shvatiti da vrijednost treba biti pohranjena u varijabli, a funkcija vraća nešto preko return. Iako se iskreno nadam da je to bila trema, te da su se dečki u lakšim uvjetima nosili s ovim zadacima.

Konačno, treći je malo o arhitekturi. Razgovarali smo o tome kako napraviti traku za pretraživanje, kako funkcionira uklanjanje odbijanja, kako prikazati razne widgete u savjetima za pretraživanje, kako prednji kraj može komunicirati sa stražnjim dijelom. Bilo je puno zanimljivih rješenja, uključujući iscrtavanje na strani poslužitelja i web utičnice.

Koristeći ovaj dizajn proveli smo 21 intervju. Publika je bila potpuno raznolika – pogledajmo stripove:

  1. "Raketa". Nikada se ne smiruje, miješa se u sve, a tijekom intervjua preplavit će vas bujicom misli koje nisu ni u izravnoj vezi s postavljenim pitanjem. Da je to bilo na fakultetu, ovo bi bio poznati pokušaj da pokažete, dobro, svo svoje znanje, kada se jedino što se sjećate o listiću na koji ste naišli je da ste sinoć odlučili da ga ne učite - još uvijek ne možete dobiti van.
  2. "Groot". Prilično je teško stupiti u kontakt s njim jer je Groot. Tijekom intervjua morate dugo vremena pokušavati dobiti odgovore riječ po riječ. Dobro je ako je to samo stupor - inače će vam biti vrlo teško u svakodnevnom radu.
  3. "Drax". Radio sam u prijevozu tereta, a što se tiče programiranja, naučio sam samo JS na Stackoverflowu, tako da ne razumijem uvijek o čemu se razgovara na razgovoru. U isto vrijeme, on je dobra osoba, ima najbolje namjere i želi postati izvrstan front-end developer.
  4. Pa, vjerojatno "zvjezdani gospodar". Sve u svemu, dobar kandidat s kojim se može pregovarati i graditi dijalog.

Na kraju našeg istraživanja 7 kandidata došli do finala, potvrdivši svoje umijeće izvrsnim ispitnim zadatkom i dobrim odgovorima na intervjuu.

Kulturno uklapanje

Za tvrtku: Ti radiš s njim! Je li kandidat spreman izuzetno puno raditi za svoj razvoj? Hoće li se stvarno uklopiti u momčad?

Za juniore: Ti radiš s njima! Je li tvrtka doista spremna ulagati u razvoj juniora ili će za nisku plaću jednostavno svaliti sav prljavi posao na vas?

Svaki junior, osim proizvodnog tima, čije vodstvo mora pristati da ga preuzme, dobiva mentora. Zadatak mentora je voditi ga kroz tromjesečni proces usvajanja i nadogradnje teških vještina. Stoga smo svakom kulturnom uklapanju došli kao mentori i odgovorili na pitanje: „Hoću li preuzeti odgovornost za razvoj kandidata u 3 mjeseca prema našem planu?“

Ova etapa prošla je bez ikakvih posebnosti i na kraju nas je dovela 4 ponude, od kojih su 3 primljena, a dečki su ušli u timove.

Život nakon ponude

Za tvrtku: Čuvajte svoje juniore ili će drugi!

Za juniore: AAAAAAAAAAA!!!

Kad novi zaposlenik izađe, treba ga uključiti - upoznati s procesima, objasniti mu kako sve funkcionira u tvrtki i timu te kako bi uopće trebao raditi. Kad junior izađe, morate razumjeti kako ga razvijati.

Kad smo razmislili o tome, došli smo do popisa od 26 vještina koje bi, po našem mišljenju, junior trebao imati do kraja tromjesečnog razdoblja ukrcavanja. To je uključivalo teške vještine (prema našem skupu), poznavanje naših procesa, Scruma, infrastrukture i arhitekture projekta. Spojili smo ih u mapu puta, raspoređenu na 3 mjeseca.

Kako ukrotiti juniora?

Na primjer, ovdje je putokaz mog juniora

Svakom junioru dodjeljujemo mentora koji s njim individualno radi. Ovisno o mentoru i trenutnoj razini kandidata, sastanci se mogu odvijati od 1 do 5 puta tjedno po 1 sat. Mentori su volonteri front-end programeri koji žele učiniti nešto više od pukog pisanja koda.

Dio tereta s mentora skinuli su tečajevi na našem skupu - Dart, Angular. Tečajevi se održavaju redovito za male grupe od 4-6 osoba, gdje polaznici uče bez prekida rada.

Tijekom 3 mjeseca povremeno prikupljamo povratne informacije od juniora, njihovih mentora i voditelja te individualno prilagođavamo proces. Napumpane vještine provjeravaju se 1-2 puta tijekom cijelog razdoblja, ista se provjera provodi na kraju - na temelju njih se formiraju preporuke o tome što točno treba poboljšati.

Zaključak

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

Za juniore: Potražite tvrtke koje pažljivo biraju kandidate i znaju kako ih razvijati

Tijekom 3 mjeseca pregledali smo 122 upitnika, 54 ispitna zadatka i obavili 21 tehnički intervju. Ovo nam je donijelo 3 sjajna juniora koji su sada ispunili polovicu svojih planova za ukrcavanje i ubrzanje. Oni već dovršavaju stvarne zadatke proizvoda u našem projektu, gdje postoji više od 2 redaka koda i više od 000 repozitorija samo na prednjoj strani.

Doznali smo da lijevak za juniore može i treba biti dosta složen, ali na kraju kroz njega prolaze samo oni momci koji su zaista spremni puno raditi i ulagati u svoj razvoj.

Sada je naš glavni zadatak ispuniti tromjesečne razvojne planove za svakog juniora u načinu individualnog rada s mentorom i općim tečajevima, prikupiti metriku, povratne informacije od voditelja, mentora i samih momaka. U ovoj se točki prvi eksperiment može smatrati dovršenim, mogu se izvući zaključci, proces se može poboljšati i ponovno započeti kako bi se odabrali novi kandidati.

Izvor: www.habr.com

Dodajte komentar