Com domesticar un júnior?

Com entrar en una gran empresa si ets júnior? Com contractar un júnior decent si sou una gran empresa? A sota del tall, us explicaré la nostra història de contractació de principiants al front-end: com vam treballar amb les tasques de prova, com vam preparar entrevistes i vam crear un programa de mentoria per al desenvolupament i la incorporació dels nouvinguts, i també per què les preguntes estàndard d'entrevistes no no funciona.

Com domesticar un júnior?
Estic intentant domar al Junior

Hola! Em dic Pavel, treballo de front-end a l'equip de Wrike. Creem un sistema de gestió i col·laboració de projectes. Treballo a la xarxa des de l'any 2010, vaig treballar 3 anys a l'estranger, vaig participar en diverses startups i vaig impartir un curs sobre tecnologies web a la universitat. A l'empresa, estic involucrat en el desenvolupament de cursos tècnics i el programa de mentoring Wrike per a júniors, així com en la contractació directa d'ells.

Per què vam pensar fins i tot a contractar joves?

Fins fa poc, reclutàvem desenvolupadors de nivell mitjà o superior per a la interfície, prou independents per fer tasques de producte després de la incorporació. A principis d'aquest any, ens vam adonar que volíem canviar aquesta política: al llarg de l'any el nombre dels nostres equips de producte gairebé s'ha duplicat, el nombre de desenvolupadors front-end s'ha acostat al centenar i, en un futur proper, tot això ho farà. han de tornar a doblar. Hi ha molta feina, poques mans lliures i encara n'hi ha menys al mercat, així que vam decidir recórrer als nois que tot just estan començant el seu viatge al front-end i ens vam adonar que estem preparats per invertir en el seu desenvolupament.

Qui és un júnior?

Aquesta és la primera pregunta que ens vam fer. Hi ha diferents criteris, però el principi més simple i comprensible és el següent:

S'ha d'explicar a Junior quina característica i com fer-ho. S'ha d'explicar al mig quina característica es necessita i ell mateix esbrinarà la implementació. El mateix signant us explicarà per què no cal fer aquesta funció en absolut.

D'una manera o altra, un júnior és un desenvolupador que necessita assessorament sobre com implementar aquesta o aquella solució. Sobre el que vam decidir construir:

  1. Junior és algú que vol desenvolupar-se i està disposat a treballar dur per això;
  2. No sempre sap en quina direcció vol desenvolupar-se;
  3. Necessita assessorament i busca ajuda de fora: del seu líder, mentor o de la comunitat.

També teníem diverses hipòtesis:

  1. Hi haurà una tempesta de respostes a la posició de juny. Heu de filtrar les respostes aleatòries en l'etapa d'enviament del vostre currículum;
  2. Un filtre primari no ajudarà. — es necessiten més tasques de prova;
  3. Les tasques de prova espantaran a tothom - no són necessaris.

I, per descomptat, teníem un objectiu: 4 júniors en 3 setmanes.

Amb aquesta constatació vam començar a experimentar. El pla era senzill: començar amb l'embut més ampli possible i intentar reduir-lo gradualment perquè pugueu processar el flux, però no reduir-lo a 1 candidat per setmana.

Publicem una vacant

Per a l'empresa: Hi haurà centenars de respostes! Penseu en un filtre.

Per júnior: No tingueu por del qüestionari abans d'enviar el vostre currículum i la tasca de prova: això és un senyal que l'empresa us ha cuidat i ha configurat bé el procés.

El primer dia, vam rebre uns 70 currículums de candidats "amb coneixements de JavaScript". I després de nou. I més enllà. Físicament no vam poder convidar tothom a l'oficina per a una entrevista i escollir entre ells els nois amb els projectes de mascotes més interessants, Github en directe o, almenys, experiència.

Però la principal conclusió que vam fer per nosaltres mateixos el primer dia va ser que la tempesta havia començat. Ara és el moment d'afegir un formulari de qüestionari abans d'enviar el vostre currículum. El seu objectiu era eliminar els candidats que no estaven disposats a fer el mínim esforç per enviar un currículum, i els que no tenien els coneixements i el context per, almenys, a Google les respostes correctes.

Contenia preguntes estàndard sobre JS, maquetació, web, informàtica; tothom que s'imagini el que demanen en una entrevista frontal les coneix. Quina diferència hi ha entre let/var/const? Com puc aplicar estils només a pantalles de menys de 600 píxels d'amplada? No volíem fer aquestes preguntes en una entrevista tècnica: la pràctica ha demostrat que es poden respondre després de 2 o 3 entrevistes sense comprendre el desenvolupament. Però d'entrada ens van poder mostrar si el candidat, en principi, entén el context.

En cada categoria, vam preparar 3-5 preguntes i dia rere dia vam canviar el seu conjunt en el formulari de resposta fins a eliminar les més transitables i les més difícils. Això ens va permetre reduir el cabal: en 3 setmanes vam rebre 122 candidats, amb la qual podríem treballar més. Aquests eren estudiants d'informàtica; nois que volien passar al davant des del darrere; treballadors o enginyers, d'entre 25 i 35 anys, que volien canviar radicalment la seva professió i dedicaven diferents esforços a l'autoformació, cursos i pràctiques.

Conèixer-se millor

Per a l'empresa: La tasca de prova no dissuadeix els candidats, però ajuda a escurçar l'embut.

Per júnior: No copieu i enganxeu els de prova: es nota. I manteniu el vostre github en ordre!

Si trucéssim a tothom per a una entrevista tècnica, hauríem de realitzar unes 40 entrevistes per setmana només per als joves i només a la part frontal. Per tant, vam decidir provar la segona hipòtesi: sobre la tasca de prova.

Què va ser important per a nosaltres a la prova:

  1. Construeix una bona arquitectura escalable, però sense sobreenginyeria;
  2. És millor trigar més, però fer-ho bé, que muntar una manualitat d'un dia per l'altre i enviar-la amb el comentari “De ben segur que l'acabaré”;
  3. La història del desenvolupament a Git és la cultura de l'enginyeria, el desenvolupament iteratiu i el fet que la solució no es va copiar descaradament.

Vam acordar que volíem mirar un problema algorítmic i una petita aplicació web. Es van preparar algorítmics a nivell de laboratoris de nivell elemental: cerca binària, classificació, comprovació d'anagrames, treball amb llistes i arbres. Al final, vam optar per la cerca binària com a primera opció de prova. L'aplicació web havia de ser tic-tac-toe utilitzant qualsevol marc (o sense).

Gairebé la meitat dels nois restants van completar la tasca de prova: ens van enviar les solucions 54 candidats. Una visió increïble: quantes implementacions de tic-tac-toe, a punt per copiar-enganxar, creus que hi ha a Internet?

QuantDe fet, sembla que només n'hi ha 3. I en la gran majoria de decisions hi havia precisament aquestes 3 opcions.
El que no m'ha agradat:

  • copiar i enganxar, o desenvolupament basat en el mateix tutorial sense la vostra pròpia arquitectura;
  • ambdues tasques es troben al mateix dipòsit en carpetes diferents, és clar que no hi ha historial de commits;
  • codi brut, violació DRY, manca de format;
  • una barreja de model, vista i controlador en una classe de centenars de línies de codi de llarg;
  • manca de comprensió de les proves unitàries;
  • una solució "frontal" és un codi dur d'una matriu 3x3 de combinacions guanyadores, que serà bastant difícil d'ampliar fins a 10x10, per exemple.

També vam prestar atenció als dipòsits veïns: els projectes de mascotes genials eren un avantatge, i un munt de tasques de prova d'altres empreses eren més una trucada d'atenció: per què el candidat no va poder arribar-hi?

Com a resultat, vam trobar opcions interessants a React, Angular i Vanilla JS: n'hi havia 29. I vam decidir convidar un candidat més sense provar els seus projectes de mascotes molt interessants. Es va confirmar la nostra hipòtesi sobre els beneficis de les tasques de prova.

Entrevista tècnica

Per a l'empresa: No són els mitjans/la gent gran els que han vingut a tu! Necessitem un enfocament més individual.

Per júnior: Recordeu que això no és un examen; no intenteu callar per una C ni bombardejar el professor amb un flux de tots els vostres coneixements possibles perquè es confongui i doni un "excel·lent".

Què volem entendre en una entrevista tècnica? Una cosa senzilla: com pensa el candidat. Probablement té algunes habilitats dures si ha superat les primeres etapes de la selecció, caldrà veure si sap com utilitzar-les. Vam acordar 3 tasques.

El primer tracta sobre algorismes i estructures de dades. Amb un llapis, sobre un paper, en pseudollenguatge i amb l'ajuda de dibuixos, vam descobrir com copiar un arbre o com eliminar un element d'una llista enllaçada individualment. El descobriment desagradable va ser que no tothom entén la recursivitat i com funcionen les referències.

El segon és la codificació en directe. Vam anar a codewars.com, va triar coses senzilles com ordenar una sèrie de paraules per l'última lletra i durant 30-40 minuts juntament amb el candidat van intentar que totes les proves aprovessin. Semblava que no hi hauria d'haver sorpreses per part dels nois que havien dominat el tic-tac-toe, però a la pràctica, no tothom era capaç d'adonar-se que el valor s'havia d'emmagatzemar en una variable i que la funció hauria de retornar alguna cosa mitjançant retorn. Encara que espero sincerament que va ser una inquietud, i els nois van poder fer front a aquestes tasques en condicions més lleugeres.

Finalment, el tercer tracta una mica d'arquitectura. Hem parlat de com fer una barra de cerca, com funciona el rebot, com representar diversos ginys als consells de cerca, com el front end pot interactuar amb el backend. Hi havia moltes solucions interessants, com ara la representació del costat del servidor i els endolls web.

Hem realitzat 21 entrevistes amb aquest disseny. El públic era completament divers; mirem els còmics:

  1. "Coet". No es calma mai, s'implica en tot, i durant una entrevista t'aclapararà amb un corrent de pensaments que ni tan sols estan directament relacionats amb la pregunta que es fa. Si fos a una universitat, aquest seria un intent familiar de demostrar, bé, tots els teus coneixements, quan tot el que recordes del bitllet que et vas trobar és que ahir a la nit vas decidir no estudiar-lo, encara no pots aconseguir-ho. fora.
  2. "Groot". És bastant difícil posar-se en contacte amb ell perquè és Groot. Durant una entrevista, has de passar molt de temps intentant obtenir respostes paraula per paraula. És bo si només és un estupor; en cas contrari, us serà molt difícil en el vostre treball diari.
  3. "Drax". Abans treballava en el transport de càrrega i, pel que fa a la programació, només vaig aprendre JS a Stackoverflow, així que no sempre entenc què es parla en una entrevista. Al mateix temps, és una bona persona, té les millors intencions i vol convertir-se en un gran desenvolupador front-end.
  4. Bé, probablement "Star Lord". En general, un bon candidat amb qui pots negociar i establir un diàleg.

Al final de la nostra recerca 7 candidats van arribar a la final, confirmant les seves habilitats dures amb una gran tasca de prova i bones respostes a l'entrevista.

Encaix cultural

Per a l'empresa: Treballes amb ell! El candidat està disposat a treballar molt dur pel seu desenvolupament? Encaixarà realment a l'equip?

Per júnior: Treballes amb ells! L'empresa està realment preparada per invertir en el creixement dels joves, o simplement us deixarà tot el treball brut per un sou baix?

Cada júnior, a més de l'equip de producte, el líder del qual ha d'acceptar-lo, rep un mentor. La tasca del mentor és guiar-lo a través d'un procés de tres mesos d'incorporació i millora de les habilitats dures. Per tant, vam acudir a cada encaix cultural com a mentors i vam respondre a la pregunta: "M'assumeix la responsabilitat de desenvolupar un candidat en 3 mesos segons el nostre pla?"

Aquesta etapa va transcórrer sense cap característica especial i finalment ens va portar 4 ofertes, 3 dels quals van ser acceptats, i els nois van entrar als equips.

La vida després de l'oferta

Per a l'empresa: Cuida els teus juniors o els altres ho faran!

Per júnior: AAAAAAAAAAA!!!

Quan surt un nou empleat, cal incorporar-lo, estar al dia dels processos, explicar-li com funciona tot a l'empresa i a l'equip, i com hauria de treballar en general. Quan surt un júnior, cal entendre com desenvolupar-lo.

Quan ho vam pensar, vam fer una llista de 26 habilitats que, segons la nostra opinió, un júnior hauria de tenir al final del període d'incorporació de tres mesos. Això incloïa habilitats dures (segons la nostra pila), coneixement dels nostres processos, Scrum, infraestructura i arquitectura de projectes. Els vam combinar en un full de ruta, distribuït en 3 mesos.

Com domesticar un júnior?

Per exemple, aquí teniu el full de ruta del meu júnior

Assignem un mentor a cada jove que treballa amb ell individualment. Depenent del mentor i del nivell actual del candidat, les reunions es poden fer d'1 a 5 vegades per setmana durant 1 hora. Els mentors són desenvolupadors de front-end voluntaris que volen fer alguna cosa més que escriure codi.

Una part de la càrrega dels mentors s'elimina amb els cursos de la nostra pila: Dart, Angular. Els cursos es realitzen regularment per a grups reduïts de 4-6 persones, on els estudiants estudien sense interrupció de la feina.

Al llarg de 3 mesos, recollim periòdicament comentaris dels joves, els seus mentors i líders i ajustem el procés individualment. Les habilitats augmentades es comproven 1-2 vegades durant tot el període, la mateixa comprovació es realitza al final; a partir d'elles, es formen recomanacions sobre què s'ha de millorar exactament.

Conclusió

Per a l'empresa: Val la pena invertir en juniors? Sí!

Per júnior: Busqueu empreses que seleccionen amb cura candidats i sàpiguen desenvolupar-los

Durant 3 mesos, vam revisar 122 qüestionaris, 54 tasques de prova i vam realitzar 21 entrevistes tècniques. Això ens va portar 3 grans júniors que ara han completat la meitat dels seus fulls de ruta d'incorporació i acceleració. Ja estan completant tasques de producte real al nostre projecte, on hi ha més de 2 de línies de codi i més de 000 repositoris només a la portada.

Vam descobrir que l'embut per als júniors pot i hauria de ser bastant complex, però al final només hi passen aquells nois que estan realment disposats a treballar molt i invertir en el seu desenvolupament.

Ara la nostra tasca principal és completar fulls de ruta de desenvolupament de tres mesos per a cada jove en la modalitat de treball individual amb un mentor i cursos generals, recopilar mètriques, comentaris dels clients potencials, mentors i els mateixos nois. En aquest punt, es pot considerar finalitzat el primer experiment, es poden extreure conclusions, es pot millorar el procés i es pot tornar a iniciar per seleccionar nous candidats.

Font: www.habr.com

Afegeix comentari