Kuidas jĂ”uda suurde ettevĂ”ttesse, kui oled algaja? Kuidas palgata vÀÀriline algaja, kui oled suur ettevĂ”te? Allpool rÀÀgin meie kogemusest noorte front-end arendajate palkamisel: kuidas me töötasime vĂ€lja testĂŒlesanded, valmistusime intervjuudeks ja lĂ”ime mentorlusprogrammi algajate arendamiseks ja onboardimiseks, ning miks tavalised intervjuukĂŒsimused ei toimi.

Ma ĂŒritan taltsutada algajat.
Tere! Minu nimi on Pavel, ma teen front-endi tiimis Wrike. Loome projektihalduse ja koostöö sĂŒsteemi. Olen veebiga tegelenud alates 2010. aastast, töötasin 3 aastat rahvusvahelises kaug-töös, osalesin mitmes idufirmas ja Ă”petasin ĂŒlikoolis veebitehnoloogiate kursust. EttevĂ”ttes osalen arengutehniliste kursuste ja Wrike'i mentorlusprogrammi vĂ€ljatöötamises algajatele, samuti nende vĂ€rbamises.
Miks me ĂŒldse mĂ”tlema hakkasime algajate palkamisele.
Kuni hiljutise ajani palkasime front-end arendajaid, kelle oskused olid keskmised vĂ”i kĂ”rged â piisavalt iseseisev, et pĂ€rast onboardimist tegeleda tootearendusega. Selle aasta alguses mĂ”istsime, et soovime seda poliitikat muuta: poole aasta jooksul on meie tootearendustiimide arv peaaegu kahekordistunud, front-end arendajate arv on lĂ€henenud sajale ja lĂ€hitulevikus peaks see kahekordistuma veel kord. Tööd on palju, vabade kĂ€te arv on vĂ€ike ja turul on neid veel vĂ€hem, seega otsustasime pöörduda nende poole, kes on alles oma front-end teekonna alguses, ja mĂ”istsime, et oleme valmis investeerima nende arengusse.
Kes on algaja?
See on kĂ”ige esimene kĂŒsimus, mida me endalt kĂŒsisime. Kriteeriume on erinevaid, kuid kĂ”ige lihtsam ja arusaadav pĂ”himĂ”te on jĂ€rgmine:
Algajale tuleb selgitada, millist funktsiooni ja kuidas teha. Keskmisele arendajale tuleb selgitada, milline funktsioon on vajalik, ja ta vaatab ise, kuidas rakendada. Kogenud arendaja aga selgitab sulle ise, miks seda funktsiooni ĂŒldse teha ei ole vaja.
Nii vÔi teisiti, algaja on arendaja, kes vajab nÔu, kuidas konkreetsed lahendused ellu viia. Mida me otsustasime pÔhjalda:
- Algaja on see, kes soovib areneda ja on valmis selle nimel palju tööle;
- Ta ei tea alati, millises suunas soovib areneda;
- Ta vajab nĂ”u ja otsib abi vĂ€ljastpoolt â oma liidilt, mentorilt vĂ”i kogukonnalt.
Meil oli ka mitu hĂŒpoteesi:
- Junior positsioonile tuleb taotluste torm.Tuleb filtreerida juhuslikud taotlused juba CV saatmise etapis;
- Esialgne filter ei aita â vajalikud on veel testĂŒlesanded;
- TestĂŒlesanded hirmutavad kĂ”iki eemale â need ei ole vajalikud.
Ja muidugi oli meil eesmÀrk: 4 juniorit 3 nÀdalaga.
Selle arusaamisega hakkasime eksperimenteerima. Plaan oli lihtne: alustada maksimaalselt laia toruga ja proovida seda jÀrk-jÀrgult kitsendada, et jÔuda voolu töötlemisega, kuid mitte viia seda 1 kandidaadini nÀdalas.
Avaldame töökuulutuse
EttevÔtte jaoks: Tuleb sadu taotlusi! MÔelge filtrile.
Juniorile: Ărge kartke kĂŒsimustikku CV saatmise enne ja testĂŒlesannet â see on mĂ€rk sellest, et ettevĂ”te hoolib teist ja on protsessi hĂ€sti seadnud.
Esimese pĂ€eva jooksul saime umbes 70 CV-d kandidaatidelt 'JavaScripti teadmistega'. Ja siis veel. Ja veel. Me ei saanud fĂŒĂŒsiliselt kĂ”iki intervjuule kutsuda ja valisime neist inimesed, kellel olid kĂ”ige Ă€gedamad pet-projektid, aktiivne GitHub vĂ”i vĂ€hemalt kogemus.
Aga peamine jĂ€reldus, mille me esimesel pĂ€eval tegime, â torm on alanud. Aeg on lisada kĂŒsimustiku vorm CV saatmise enne. Selle eesmĂ€rk oli eraldada kandidaate, kes ei ole valmis minimaalset pingutust tegema CV saatmiseks, ja neid, kes ei valda teadmisi ja konteksti vĂ€hemalt niipalju, et Ă”iged vastused Googeldada.
KĂŒsimustes olid standardkĂŒsimused JS, veebidisaini, veebitehnoloogia ja arvutiteaduse kohta â neid teab igaĂŒks, kes teab, mida kĂŒsitakse frontend-infosse. Mis vahe on let/var/const? Kuidas rakendada stiile ainult ekraanidele, mille laius on vĂ€iksem kui 600px? Me ei tahtnud neid kĂŒsimusi tehnilisel intervjuul kĂŒsida â praktika on nĂ€idanud, et neile saab vastata pĂ€rast 2-3 intervjuud, mitte teades programmeerimisest. Kuid need suudavad esialgu nĂ€idata, kas kandidaat mĂ”istab ĂŒldiselt konteksti.
Igas kategoorias olime ette valmistanud 3-5 kĂŒsimust ja pĂ€evast pĂ€eva muutsime nende komplekti vastamise vormis, kuni olime vĂ€lja jĂ€tnud kĂ”ige lihtsamad ja kĂ”ige keerulisemad. See vĂ”imaldas voolu vĂ€hendada â 3 nĂ€dalaga saime 122 kandidaati, kellega edasi töötada. Need olid IT-ĂŒliĂ”pilased; noored mehed, kes soovisid liikuda tagasiotsimisest esiplaanile; töötajad vĂ”i insenerid vanuses 25-35 aastat, kes soovisid kardinaalselt muuta oma ametit ja pingutasid erineval mÀÀral enesetĂ€iendamise, kursuste ja praktikate nimel.
Tutvume lÀhemalt
EttevĂ”tte jaoks: TestĂŒlesanne ei peleta kandidaate, vaid aitab lĂŒhendada vĂ€rbamisprotsessi.
Juniorile: Ărge kopeerige testĂŒlesandeid â see on silmatorkav. Ja hoidke oma GitHub korras!
Kui me oleksime kĂ”ik tehnilisele vestlusele kutsunud, oleksime pidanud tegema umbes 40 vestlust nĂ€dalas ainult noorte ja ainult esiplaanil. SeetĂ”ttu otsustasime kontrollida teist hĂŒpoteesi â testĂŒlesande osas.
Mis oli meie jaoks testĂŒlesandes oluline:
- Hea skaleeritava arhitektuuri loomine, kuid ilma ĂŒleinsenerimise;
- Parem on teha kauem, aga teha hĂ€sti, kui ĂŒhel ööl uhkeldada midagi ja saata koos kommentaariga âkindlasti viin lĂ”puniâ;
- Arenduse ajalugu Gitis â insenerikultuur, arenduse iteratiivsus ja et lahendus ei oleks tĂ€ielikult kopeeritud.
Oleme kokku leppinud, et tahame vaadata ĂŒhte algoritmilist ĂŒlesannet ja vĂ€ikest veebirakendust. Algoritmilised ĂŒlesanded olid ette valmistatud esikursuse laboratoorsete tööde tasemel â binaarne otsing, sortimine, anagrammide kontrollimine, töö loenditega ja puude struktuuridega. LĂ”puks valisime binaarse otsingu esimese katsevariandina. Veebirakendus pidid olema noughts and crosses (ristid nullid) kasutades mistahes raamistikke (vĂ”i ilma).
Peaaegu pooled allesjÀÀnud noormehed lĂ€bisid testĂŒlesande â me saime lahendused 54 kandidaati.Uskumatu teadmine â kui palju ristikrÔÔde, mis on valmis kopeerimiseks, on internetis?
Kui palju?Tegelikkuses tundub, et ainult 3. Suuremiku lahendustes olid just need 3 varianti.
Mida me ei meeldi:
- kopeerimine vÔi arendamine sama Ôpetuse jÀrgi ilma oma arhitektuurita;
- kaks ĂŒlesannet ĂŒhes hoidlas erinevates kaustades, kommitide ajalugu ei ole muidugi olemas;
- rÀpane kood, DRY rikkumine, formaadist puudumine;
- mudeli, vaate ja kontrollija segamine ĂŒhte klasse, mille pikkus on sadade koodiridade ulatuses;
- ĂŒksuse testimise puudumine;
- lahendus "otse" - kĂ”vakood 3x3 vĂ”idukombinatsioonide maatriksist, mis on ĂŒsna keeruline laiendada nĂ€iteks 10x10-le.
Me pöörasime tĂ€helepanu ka naabreportsioonidele - Ă€gedad pet-projektid tulid kasumisse, kuid hulk testĂŒlesandeid teistelt ettevĂ”tetelt oli pigem mĂ€rk, miks kandidaat seal edasi ei pÀÀsenud.
LĂ”puks leidsime Ă€gedaid variante Reacti, Angulari ja Vanilla JS-i pĂ”hjal - neid kogunes kokku 29. Ja veel ĂŒhe kandidaadi otsustasime kutsuda ilma testita, kuna tal olid vĂ€ga head pet-projektid. Meie hĂŒpotees testĂŒlesannete kasulikkuse kohta sai kinnitust.
Tehniline intervjuu
EttevÔtte jaoks: Teie juurde tulid mitte keskastme/seniorid! Vajame rohkem individuaalset lÀhenemist.
Juniorile: Pidage meeles, et see pole eksam - Àrge proovige vaikida, et saavutada lihtsalt kolm vÔi petta professorit kÔigi oma teadmistest, et ta segadusse satuks ja "suurepÀraselt" hindaks.
Mida me tahame teada tehnilises intervjuus? Lihtsat asja - kuidas kandidaat mĂ”tleb. TĂ”enĂ€oliselt on tal mingid kĂ”val oskused, kui ta on lĂ€binud esimesed valikute etapid - jÀÀb selgitada, kas ta oskab neid rakendada. Otsustasime kolme ĂŒlesande kasuks.
Esimene - algoritmid ja andmestruktuurid. Paberil, paberile ja pseudokoodiga ning joonistamise abil arutasime, kuidas kopeerida puu vĂ”i kuidas eemaldada element ĂŒhesuunalisest loendist. Ebameeldiv avastus oli, et mitte kĂ”ik ei mĂ”ista rekurssiooni ja kuidas viidatud lingid töötavad.
Teine - reaalajas koodimine. Me kĂŒlastasime , valisime lihtsad asjad, nagu sĂ”nade massiivi sortimine viimase tĂ€he jĂ€rgi ja pĂŒĂŒdsime 30-40 minuti jooksul koos kandidaadiga kĂ”ik testid lĂ€bima. Tundus, et ristsĂ”nu teinud inimesed ei peaks ĂŒllatama - kuid praktikas ei suutnud kĂ”ik aru saada, et vÀÀrtust tuleb salvestada muutujasse ja funktsioon peab midagi tagastama lĂ€bi return. Kuigi ma loodan, et see oli pingutus ja poisid suudavad nende ĂŒlesannetega kergemates oludes toime tulla.
LÔpuks, kolmas - natuke arhitektuurist. Arutasime, kuidas teha otsinguriba, kuidas sellega töötab debounc'e, kuidas erinevaid vidinaid renderdada otsinguettepanekutes, kuidas frontend saab backendiga suhelda. Leidsime palju huvitavaid lahendusi, sealhulgas serveripoolset renderdamist ja veebipÔhiseid sokette.
Me oleme lĂ€bi viinud 21 intervjuud sellise kavaga. Publik oli tĂ€iesti mitmekesine â vaatame koomikseid:
- «Raketa». Ta ei rahune kunagi maha, tungib igale poole ja intervjuul pommitab teid mĂ”tete vooluga, mis ei ole otseselt seotud esitatud kĂŒsimusega. Kui see toimuks ĂŒlikoolis, oleks see tuttav paljudele katse demonstreerida kĂ”iki oma teadmisi, kui poppi pileti kohta mĂ€letad vaid seda, et otsustasid eelmisel Ă”htul mitte Ă”ppida â ikkagi ei tĂ”mba sa.
- «Groot». Temaga on raske kontakti saada, sest ta on Groot. Intervjuul peab teda kaua kĂ€ivitama, vastuseid vĂ€lja Ă€rkama sĂ”na haaval. HĂ€sti, kui see on lihtsalt seisak â muidu on teil igapĂ€evasel tööl hiljem vĂ€ga raske.
- «Drax». Varem tegeles ta kaubaveoga, kuid programmi Ă”ppis ta ainult JS-i Stackoverflow's, seega ei saa ta alati aru, millest ĂŒldse rÀÀgitakse intervjuul. Samas on ta hea inimene, tal on parimad kavatsused ja ta tahab saada suurepĂ€raseks front-end arendajaks.
- Ja kindlasti, «Star-Lord». Ăldiselt on ta normaalne kandidaat, kellega saab kokku leppida ja dialooge luua.
Meie uurimiste lĂ”puks 7 kandidaati sattusid finaali, kinnitades oma hard skillid suurepĂ€rase testĂŒlesande ja headega vastustega intervjuul.
Kultuuriline sobivus
EttevÔtte jaoks: Kas see inimene on valmis teiega töötama! Kas kandidaat on tÔeliselt valmis oma arengu nimel ÀÀrmiselt palju tööd tegema? Kas ta sobib meeskonda?
Juniorile: Kas need inimesed on valmis teiega töötama! Kas ettevĂ”te on tĂ”eliselt valmis investeerima noorte arengusse, vĂ”i lĂŒkkab kogu musta töö teie peale madala palga eest?
Iga noor, peale tootemeeskonna, kelle juht peab nĂ”ustuma, et ta vĂ”taks, satub mentori kĂ€e alla. Mendi ĂŒlesanne on viia ta lĂ€bi kolme kuu onboordimise ja hard skillide arendamise protsessi. SeetĂ”ttu kĂ€isime igas kultuurilises sobivuses mentorsidena ja kĂŒsisime endalt: «Kas ma vĂ”tan vastutuse arendada kandidaati kolme kuu jooksul meie plaani jĂ€rgi?»
See etapp kulges tavapÀraselt ja lÔpuks tÔi meile 4 pakkumist, millest 3 vÔeti vastu, ja poisid liitusid meeskondadega.
Elu pÀrast pakkumist
EttevÔtte jaoks: Hoolitsege oma noorte eest, vÔi teevad seda teised!
Juniorile: AAAAAAA!!!
Kui uus töötaja tuleb, tuleb ta sisse viia â tutvustada talle protsesse, rÀÀkida, kuidas kĂ”ik ettevĂ”ttes ja meeskonnas toimib ning kuidas ĂŒldse tööd teha. Kui tuleb junior, tuleb aru saada, kuidas teda arendada.
Kui me sellele mÔtlema hakkasime, koostasime loendi 26 oskusest, millega meie arvates peaks junior olema varustatud kolme kuu jooksul onboardingu lÔpuks. Nende hulka kuulusid hard-skills (meie tehnoloogiate kohaselt), teadmised meie protsessidest, scrummist, infrastruktuurist ja projekti arhitektuurist. Koondasime need ajakava jÀrgi kolmeks kuuks rooadmaappi.

NĂ€iteks, siin on minu juniori rooadmaap.
Iga junioriga liidame mentori, kes töötab temaga individuaalselt. Olenevalt mentorist ja kandidaadi praegusest tasemest vÔivad kohtumised toimuda 1 kuni 5 korda nÀdalas tunni kaupa. Mentoriteks saavad vabatahtlikult algatusvÔimelised frontend-arendajad, kes soovivad teha midagi rohkemat kui lihtsalt koodi kirjutada.
Osa koormusest mentorite pealt vĂ”etakse meie tehnoloogiate kursuste kaudu â Dart, Angular. Kursused toimuvad regulaarselt vĂ€ikestes rĂŒhmades, kus on 4-6 inimest, kus noored saavad töötada teadmiste omandamise ajal.
Kolme kuu jooksul kogume perioodiliselt tagasisidet junioridelt, nende mentoritelt ja juhtidelt ning kohandame protsessi individuaalselt. Kogu perioodi jooksul toimub 1-2 korda oskuste testimine, samasugune testimine toimub lĂ”pus â nende pĂ”hjal koostatakse soovitused, mida tasub jĂ€tkuvalt arendada.
KokkuvÔte
EttevÔtte jaoks: Kas peaks investeerima junioridesse? Jah!
Juniorile: Otsige ettevÔtteid, kes valivad kandidaate hoolikalt ja teavad, kuidas neid arendada.
Kolme kuu jooksul oleme lĂ€bi vaadanud 122 kĂŒsitlust, 54 testĂŒlesannet ja viinud lĂ€bi 21 tehnilist intervjuud. See tĂ”i meile 3 toredat juniorit, kes on nĂŒĂŒdseks lĂ€binud poole oma onboardingu ja aktseleratsiooni rooadmaapidest. Nad lahendavad juba reaalseid tootearenduse ĂŒlesandeid meie projektis, kus ainult frontendis on rohkem kui 2 000 000 koodire146 ja ĂŒle 400 hoidla.
Leidsime, et junioride vÀrbamisprotsess vÔib ja peaks olema piisavalt keeruline, kuid lÔpuks lÀbivad selle ainult need noored, kes on tÔeliselt valmis palju tööd tegema ja investeerima oma arengusse.
NĂŒĂŒd on meie peamine ĂŒlesanne lĂ”pule viia iga noore arendaja kolme kuu arenguplaanid individuaalses koostöös mentoriga ja ĂŒhiste kursuste raames, koguda mÔÔdikud, tagasiside juhtidelt, mentoritelt ja noortelt endilt. Selle eksperimendi saab lugeda lĂ”petatuks, teha jĂ€reldusi, parandada protsessi ja alustada seda uuesti uute kandidaatide vĂ€ljaselgitamiseks.
Allikas: habr.com
