Cum să îmblânzești un junior?

Cum să intri într-o companie mare dacă ești junior? Cum să angajezi un junior decent dacă ești o companie mare? Mai jos, vă voi spune povestea noastră de a angaja începători pe front-end: cum am lucrat cu sarcinile de testare, ne-am pregătit să desfășurăm interviuri și am construit un program de mentorat pentru dezvoltarea și integrarea noilor veniți și, de asemenea, de ce întrebările standard de interviu nu nu merge.

Cum să îmblânzești un junior?
Încerc să-l îmblânzesc pe Junior

Buna ziua! Numele meu este Pavel, lucrez la front-end în echipa Wrike. Cream un sistem de management de proiect si colaborare. Lucrez pe web din 2010, am lucrat 3 ani în străinătate, am participat la mai multe startup-uri și am predat un curs de tehnologii web la universitate. În cadrul companiei sunt implicat în dezvoltarea cursurilor tehnice și a programului de mentorat Wrike pentru juniori, precum și în recrutarea directă a acestora.

De ce ne-am gândit să angajăm juniori?

Până de curând, am recrutat dezvoltatori de nivel mediu sau superior pentru frontend - suficient de independenți pentru a face sarcini de produs după integrare. La începutul acestui an, ne-am dat seama că dorim să schimbăm această politică: de-a lungul anului numărul echipelor noastre de produse aproape sa dublat, numărul dezvoltatorilor front-end s-a apropiat de o sută, iar în viitorul apropiat toate acestea vor trebuie să se dubleze din nou. Există multă muncă, puține mâini libere și sunt și mai puține dintre ele pe piață, așa că am decis să apelăm la băieții care tocmai își încep călătoria în front-end și am realizat că suntem gata să investim în lor. dezvoltare.

Cine este junior?

Aceasta este prima întrebare pe care ne-am pus-o. Există diferite criterii, dar cel mai simplu și mai înțeles principiu este acesta:

Junior trebuie să i se explice ce caracteristică și cum să o facă. Mijlocul trebuie să fie explicat ce caracteristică este necesară și el își va da seama de implementare. Signorul însuși vă va explica de ce această funcție nu trebuie făcută deloc.

Într-un fel sau altul, un junior este un dezvoltator care are nevoie de sfaturi despre cum să implementeze cutare sau cutare soluție. Pe ce am decis să construim:

  1. Junior este cineva care vrea să se dezvolte și este gata să muncească din greu pentru asta;
  2. Nu știe întotdeauna în ce direcție vrea să se dezvolte;
  3. Are nevoie de sfaturi și caută ajutor din exterior - de la conducerea, mentorul sau din comunitate.

Am avut și câteva ipoteze:

  1. Va fi o furtună de răspunsuri la poziția lui iunie. Trebuie să filtrați răspunsurile aleatorii în etapa de trimitere a CV-ului;
  2. Un filtru primar nu va ajuta. — sunt necesare mai multe sarcini de testare;
  3. Sarcinile de testare vor speria pe toată lumea - nu sunt necesare.

Și, desigur, aveam un obiectiv: 4 juniori în 3 săptămâni.

Cu această realizare am început să experimentăm. Planul a fost simplu: începeți cu cea mai largă pâlnie posibilă și încercați să o restrângeți treptat, astfel încât să puteți procesa fluxul, dar nu să-l reduceți la 1 candidat pe săptămână.

Afișăm un post vacant

Pentru companie: Vor fi sute de răspunsuri! Gândiți-vă la un filtru.

Pentru juniori: Nu vă temeți de chestionar înainte de a trimite CV-ul și misiunea de testare - acesta este un semn că compania a avut grijă de dvs. și a configurat bine procesul.

În prima zi, am primit aproximativ 70 de CV-uri de la candidați „cu cunoștințe de JavaScript”. Și apoi din nou. Și mai departe. Din punct de vedere fizic, nu am putut invita pe toți la birou pentru un interviu și am ales dintre ei băieții cu cele mai tari proiecte pentru animale de companie, Github live sau cel puțin experiență.

Dar principala concluzie pe care am făcut-o pentru noi înșine chiar în prima zi a fost că începuse furtuna. Acum este momentul să adăugați un formular de chestionar înainte de a trimite CV-ul. Scopul ei a fost să îndepărteze candidații care nu erau dispuși să depună un efort minim pentru a trimite un CV, iar pe cei care nu aveau cunoștințele și contextul pentru cel puțin Google răspunsurile corecte.

Conținea întrebări standard despre JS, aspect, web, informatică - toți cei care își imaginează ceea ce întreabă la un interviu front-end îi cunosc. Care este diferența dintre let/var/const? Cum pot aplica stiluri numai pe ecrane mai mici de 600 px lățime? Nu am vrut să punem aceste întrebări la un interviu tehnic - practica a arătat că se poate răspunde după 2-3 interviuri fără a înțelege deloc dezvoltarea. Dar au putut să ne arate inițial dacă candidatul, în principiu, înțelege contextul.

La fiecare categorie, am pregătit 3-5 întrebări și zi de zi le-am schimbat setul în formularul de răspuns până le-am eliminat pe cele mai acceptabile și pe cele mai dificile. Acest lucru ne-a permis să reducem debitul - în 3 săptămâni am primit 122 de candidați, cu care am putea lucra mai departe. Aceștia erau studenți IT; băieți care au vrut să treacă în față din spate; muncitori sau ingineri, 25-35 de ani, care au dorit radical să-și schimbe ocupația și depun efort variat în autoeducație, cursuri și stagii.

Să ne cunoaștem mai bine

Pentru companie: Sarcina de testare nu descurajează candidații, dar ajută la scurtarea pâlniei.

Pentru juniori: Nu le copiați și lipiți pe cele de testare - este vizibil. Și păstrează-ți github-ul în ordine!

Dacă am chema pe toată lumea la un interviu tehnic, ar trebui să realizăm aproximativ 40 de interviuri pe săptămână doar pentru juniori și doar pe front-end. Prin urmare, am decis să testăm a doua ipoteză - despre sarcina de testare.

Ce a fost important pentru noi în test:

  1. Construiți o arhitectură scalabilă bună, dar fără suprainginerie;
  2. Este mai bine să durați mai mult, dar să faceți-o bine, decât să puneți cap la cap un meșteșug peste noapte și să îl trimiteți cu comentariul „Cu siguranță îl voi termina”;
  3. Istoria dezvoltării în Git este cultura inginerească, dezvoltarea iterativă și faptul că soluția nu a fost copiată în mod flagrant.

Am convenit că am vrut să analizăm o problemă algoritmică și o mică aplicație web. Au fost pregătite algoritmice la nivelul laboratoarelor de nivel elementar - căutare binară, sortare, verificare anagrame, lucru cu liste și arbori. În cele din urmă, ne-am hotărât pe căutarea binară ca primă opțiune de încercare. Aplicația web trebuia să fie tic-tac-toe folosind orice cadru (sau fără el).

Aproape jumătate dintre băieții rămași au finalizat sarcina de testare - ne-au trimis soluțiile 54 de candidați. Perspectivă incredibilă - câte implementări de tic-tac-toe, gata pentru copy-paste, crezi că există pe Internet?

Câți?De fapt, se pare că sunt doar 3. Și în marea majoritate a deciziilor au existat tocmai aceste 3 variante.
Ce nu i-a plăcut:

  • copy-paste, sau dezvoltare bazată pe același tutorial fără propria arhitectură;
  • ambele sarcini sunt în același depozit în foldere diferite, desigur că nu există istoric de comitere;
  • cod murdar, încălcare DRY, lipsă de formatare;
  • un amestec de model, vizualizare și controler într-o singură clasă de sute de linii de cod;
  • lipsa de înțelegere a testării unitare;
  • o soluție „head-on” este un hardcode al unei matrice 3x3 de combinații câștigătoare, care va fi destul de greu de extins la 10x10, de exemplu.

Am acordat, de asemenea, atenție depozitelor învecinate - proiectele interesante pentru animale de companie erau un plus, iar o grămadă de sarcini de testare de la alte companii au fost mai degrabă un semnal de alarmă: de ce nu a putut candidatul să ajungă acolo?

Drept urmare, am găsit opțiuni interesante în React, Angular, Vanilla JS - au fost 29. Și am decis să mai invităm un candidat fără să testăm pentru proiectele sale foarte interesante pentru animale de companie. Ipoteza noastră despre beneficiile sarcinilor de testare a fost confirmată.

Interviu tehnic

Pentru companie: Nu mijlocii/ seniori au venit la tine! Avem nevoie de o abordare mai individuală.

Pentru juniori: Amintiți-vă că acesta nu este un examen - nu încercați să rămâneți tăcuți pentru un C sau bombardați profesorul cu un flux de toate cunoștințele dvs. posibile, astfel încât să se încurce și să dea un „excelent”.

Ce vrem să înțelegem într-un interviu tehnic? Un lucru simplu - cum gândește candidatul. Probabil că are niște aptitudini grele dacă a trecut de primele etape de selecție – rămâne de văzut dacă știe să le folosească. Am convenit asupra a 3 sarcini.

Primul este despre algoritmi și structuri de date. Cu un pix, pe o bucată de hârtie, în pseudo-limbaj și cu ajutorul desenelor, ne-am dat seama cum să copiem un arbore sau cum să eliminăm un element dintr-o listă legată individual. Descoperirea neplăcută a fost că nu toată lumea înțelege recursiunea și cum funcționează referințele.

Al doilea este codarea live. Am fost la codewars.com, a ales lucruri simple precum sortarea unei matrice de cuvinte după ultima literă și timp de 30-40 de minute împreună cu candidatul a încercat să treacă toate testele. Se părea că nu ar trebui să existe surprize din partea băieților care stăpâniseră tic-tac-toe - dar, în practică, nu toată lumea a putut realiza că valoarea ar trebui să fie stocată într-o variabilă, iar funcția ar trebui să returneze ceva prin returnare. Deși sper din tot sufletul că a fost o agitație, iar băieții au reușit să facă față acestor sarcini în condiții mai ușoare.

În cele din urmă, al treilea este puțin despre arhitectură. Am discutat despre cum se face o bară de căutare, cum funcționează debounce, cum să redați diverse widget-uri în sfaturi de căutare, cum poate interacționa front-end-ul cu back-end-ul. Au existat o mulțime de soluții interesante, inclusiv randare pe server și socket-uri web.

Am realizat 21 de interviuri folosind acest design. Publicul a fost complet divers - să ne uităm la benzi desenate:

  1. "Racheta". Nu se liniștește niciodată, se implică în toate, iar în timpul unui interviu te va copleși cu un flux de gânduri care nici măcar nu au legătură directă cu întrebarea pusă. Dacă ar fi la o universitate, aceasta ar fi o încercare familiară de a demonstra, ei bine, toate cunoștințele tale, când tot ceea ce îți amintești despre biletul pe care l-ai întâlnit este că aseară ai decis să nu-l studiezi - încă nu poți obține ea afară.
  2. "Groot". Este destul de greu să intri în contact cu el pentru că el este Groot. În timpul unui interviu, trebuie să petreci mult timp încercând să obții răspunsuri cuvânt cu cuvânt. Este bine dacă este doar o stupoare - altfel îți va fi foarte dificil în munca de zi cu zi.
  3. "Drax". Obișnuiam să lucram în transportul de mărfuri, iar în ceea ce privește programarea am învățat doar JS pe Stackoverflow, așa că nu înțeleg întotdeauna despre ce se discută la un interviu. În același timp, este o persoană bună, are cele mai bune intenții și își dorește să devină un mare dezvoltator front-end.
  4. Ei bine, probabil "Star Lord". Per total, un candidat bun cu care poți să negociezi și să construiești un dialog.

La finalul cercetării noastre 7 de candidați au ajuns în finală, confirmându-și abilitățile grele cu o mare sarcină de testare și răspunsuri bune la interviu.

Potrivire culturală

Pentru companie: Lucrezi cu el! Este candidatul dispus să muncească extrem de mult pentru dezvoltarea sa? Se va integra cu adevărat în echipă?

Pentru juniori: Lucrezi cu ei! Este compania într-adevăr pregătită să investească în creșterea juniorilor sau pur și simplu vă va arunca toată munca murdară pentru un salariu mic?

Fiecare junior, pe lângă echipa de produs, al cărei lider trebuie să fie de acord să-l preia, primește un mentor. Sarcina mentorului este să-l ghideze printr-un proces de trei luni de integrare și îmbunătățire a abilităților. Prin urmare, am venit la fiecare sediu cultural ca mentori și am răspuns la întrebarea: „Îmi voi asumă responsabilitatea pentru dezvoltarea unui candidat în 3 luni conform planului nostru?”

Această etapă a trecut fără caracteristici speciale și, în cele din urmă, ne-a adus 4 oferte, dintre care 3 au fost acceptați, iar băieții au intrat în echipe.

Viața după ofertă

Pentru companie: Ai grijă de juniorii tăi sau alții vor!

Pentru juniori: AAAAAAAAAAA!!!

Când iese un nou angajat, el trebuie să fie încorporat - adus la curent cu procesele, să i se spună cum funcționează totul în companie și în echipă și cum ar trebui să lucreze în general. Când iese un junior, trebuie să înțelegi cum să-l dezvolți.

Când ne-am gândit la asta, am venit cu o listă de 26 de abilități pe care, în opinia noastră, un junior ar trebui să le aibă până la sfârșitul perioadei de onboarding de trei luni. Aceasta a inclus abilități dure (în funcție de stiva noastră), cunoaștere a proceselor noastre, Scrum, infrastructură și arhitectura proiectului. Le-am combinat într-o foaie de parcurs, distribuită pe o perioadă de 3 luni.

Cum să îmblânzești un junior?

De exemplu, iată foaia de parcurs a juniorului meu

Atribuim un mentor fiecărui junior care lucrează cu el individual. În funcție de mentor și de nivelul actual al candidatului, întâlnirile pot avea loc de la 1 la 5 ori pe săptămână timp de 1 oră. Mentorii sunt dezvoltatori front-end voluntari care doresc să facă ceva mai mult decât să scrie cod.

O parte din sarcina mentorilor este eliminată de cursurile din stiva noastră - Dart, Angular. Cursurile se țin în mod regulat pentru grupuri mici de 4-6 persoane, unde studenții studiază fără întreruperi de la serviciu.

Pe parcursul a 3 luni, colectăm periodic feedback de la juniori, mentorii și liderii lor și ajustăm procesul individual. Abilitățile pompate sunt verificate de 1-2 ori pe întreaga perioadă, aceeași verificare se efectuează la sfârșit - pe baza lor, se formează recomandări cu privire la ceea ce trebuie îmbunătățit exact.

Concluzie

Pentru companie: Merită să investești în juniori? Da!

Pentru juniori: Căutați companii care selectează cu atenție candidații și știu să-i dezvolte

Pe parcursul a 3 luni, am analizat 122 de chestionare, 54 de sarcini de testare și am realizat 21 de interviuri tehnice. Acest lucru ne-a adus 3 juniori grozavi care au finalizat acum jumătate din foile de parcurs de îmbarcare și accelerare. Ei îndeplinesc deja sarcini de produs reale în proiectul nostru, unde există mai mult de 2 de linii de cod și mai mult de 000 de depozite numai pe front-end.

Am aflat că pâlnia pentru juniori poate și trebuie să fie destul de complexă, dar până la urmă doar acei băieți care sunt cu adevărat gata să muncească foarte mult și să investească în dezvoltarea lor trec prin el.

Acum sarcina noastră principală este să finalizăm foile de parcurs de dezvoltare de trei luni pentru fiecare junior în modul de lucru individual cu un mentor și cursuri generale, să colectăm valori, feedback de la clienți potențiali, mentori și băieții înșiși. În acest moment, primul experiment poate fi considerat finalizat, se pot trage concluzii, procesul poate fi îmbunătățit și se poate începe din nou pentru a selecta noi candidați.

Sursa: www.habr.com

Adauga un comentariu