Praktik i IT: et ledersyn

Praktik i IT: et ledersyn

Rekruttering til sommerpraktik i Yandex fortsætter. Det går i fem retninger: backend, ML, mobiludvikling, frontend og analytics. I denne blog, i andre blogs på Habré og videre kan du finde en masse indsigt i, hvordan praktikken fungerer. Men meget i denne proces forbliver et mysterium for dem, der ikke arbejder i virksomheden. Og ser man fra udviklingschefernes synspunkt, opstår der endnu flere spørgsmål. Hvordan gennemfører man et praktikophold korrekt, hvordan maksimerer man gensidig nytte med en praktikant, hvordan lærer man ham at kende på tre måneder og lærer ham alt, hvad han behøver for at fortsætte med at arbejde?

Fem af os forberedte denne artikel. Lad os præsentere os selv: Ignat Kolesnichenko fra den distribuerede computerteknologitjeneste, Misha Levin fra Market machine intelligence service, Denis Malykh fra applikationsudviklingstjenesten, Seryozha Berezhnoy fra søgegrænsefladeudviklingsafdelingen og Dima Cherkasov fra antisvindeludviklingsgruppen. Hver af os repræsenterer vores eget praktikområde. Vi er alle ledere, vi har brug for praktikanter, og vi har en del erfaring med at arbejde med dem. Lad os fortælle dig noget fra denne oplevelse.

Samtale før praktik

Adskillige tekniske samtaler venter på kandidater. Succes ved et interview afhænger mindre af bløde færdigheder (evnen til at kommunikere effektivt) og mere af hårde færdigheder (færdigheder i matematik og programmering). Men ledere vurderer begge dele.

Ignat:

Selvom en person er meget cool, men absolut ukommunikativ, vil han ikke være i stand til at anvende alle sine færdigheder. Det er vi selvfølgelig opmærksomme på, men det er ikke en grund til ikke at tage nogen i praktik. Om tre måneder kan alt ændre sig, og desuden kan dit første indtryk vise sig at være forkert. Og hvis alt er korrekt, bliver du nødt til at forklare personen, se efter andre kommandoer. For praktikanter er kommunikationsevner bestemt ikke en nøglefaktor. Alligevel er faglige færdigheder meget vigtigere.

Denis:

Jeg kan godt lide folk, der fortæller historier – på en god måde. En person, der kan fortælle, hvordan han og hans team heroisk håndterede en eller anden fakap, er interessant. Jeg begynder at stille opfølgende spørgsmål, når en historie som denne dukker op. Men det sker sjældent, hvis du blot beder om "at fortælle om noget interessant i dine projekter."

En kandidat sagde engang en vidunderlig sætning, som jeg endda skrev ned: "Undgik med succes at løse kedelige problemer."

Praktik i IT: et ledersyn

Da der er lidt tid til kommunikation, forsøger intervieweren at indhente nyttig information om kandidaten hvert minut af mødet. Det er fantastisk, hvis praktikanten på forhånd fandt ud af, hvilke detaljer om sin erfaring (ikke fra sit CV) han kunne dele. Dette bør være en novelle strengt til sagen.

Denis:

Jeg er opmærksom, hvis en person siger, at han har prøvet mange sprog og tilgange. Folk med et bredere syn kommer med mere elegante løsninger i kamptilstand. Men dette er et tvetydigt plus. Du kan få styr på det, men ikke rigtig lære noget.

Tiden til historierne beskrevet af Denis er normalt kun tilbage ved det endelige interview. Indtil da er det nødvendigt at demonstrere den grundlæggende og praktiske viden, der skal danne grundlag for det fremtidige arbejde. Og selvfølgelig skal du skrive koden på en tavle eller på et stykke papir.

Misha:

Vi tester viden om sandsynlighedsteori og matematisk statistik. Vi ser på, om personen har erfaring med at arbejde med metrikker, med maskinlæringsalgoritmer, med indstilling af deres parametre, med genoptræning osv. Vi forventer, at personen kan skrive kode tilstrækkeligt til at være analytiker.

Denis:

Dem, der kommer til et interview, kender for det meste sprog: I Jekaterinburg har vi en god skole med grundlæggende sprog, gode institutter. Men for at være ærlig er en praktikkandidat med gode hårde færdigheder et sjældent tilfælde, i hvert fald i vores epsilon-kvarter. For eksempel Swift. Det indebærer meget komplekst arbejde med strenge, og der er få mennesker, der kan arbejde med dem ude af hovedet. Øjet fanger straks din opmærksomhed. Under interviews giver jeg ofte en opgave, der er relateret til strengbearbejdning. Og i al denne tid var der kun én person, der var i stand til at skrive sådan en Swift-kode med det samme, på et stykke papir. Derefter gik jeg rundt og fortalte alle, at nogen endelig var i stand til at løse dette problem i Swift på et stykke papir.

Test af algoritmer under et interview

Dette er et særskilt emne, fordi kandidater stadig har et spørgsmål - hvorfor vurderer vi altid viden om algoritmer og datastrukturer? Selv fremtidige mobiludviklere og frontend-udviklere gennemgår sådanne tests.

Misha:

Under interviewet er vi sikre på at give en form for algoritmisk problemstilling. Kandidaten skal finde ud af, hvordan den implementeres i Python, helst uden fejl. Du skal forstå, hvordan du tjekker dit program og retter det selv.

Praktik i IT: et ledersyn

Erfaring med algoritmer er nyttig af tre grunde. For det første vil det naturligvis være nødvendigt i algoritmiske opgaver - som ikke sker ofte, men som sker. For det andet vil udvikleren være i stand til mere effektivt at løse problemer relateret til algoritmer, selvom de ikke kræver at dykke ned i selve algoritmerne (og der er allerede en del af dem). For det tredje, hvis du ikke blev undervist i algoritmer på universitetet, men du stadig ved, hvordan du arbejder med dem, så karakteriserer dette dig som en videbegærlig person og vil øge din autoritet i interviewpersonens øjne.

Denis:

En stor del af mobiludvikling er JSON-shuffling. Men en gang hvert halve år er der tilfælde, hvor der er brug for algoritmer. Jeg er i øjeblikket ved at tegne smukke kort til Yandex.Weather. Og på en uge skulle jeg implementere udjævningsalgoritmen, Sutherland-Hodgman-algoritmen og Martinez-algoritmen. Hvis en person ikke vidste, hvad et hashmap eller en prioriteret kø var, ville han have siddet fast med det i lang tid, og det ville være uklart, om han ville have klaret det eller ej uden hjælp udefra.

Algoritmer er grundlaget for udvikling. Det er det, der hjælper en udvikler med at være udvikler. Det er lige meget, hvad du gør. De er også nødvendige i simple projekter, hvor hovedarbejdet består i at "oversætte JSON". Selvom du ikke selv skriver algoritmerne, men du implicit bruger nogle datastrukturer, er det bedre at forstå dem. Ellers vil du ende med programmer, der er langsomme eller forkerte.

Der er programmører, der kom i udvikling akademisk: de kom ind på universitetet, studerede i fem år og modtog et speciale. De kender algoritmerne, fordi de blev undervist. Og så karakteriserer kendskabet til algoritmer ikke i sig selv en persons horisont på nogen måde; denne horisont skal testes på en anden måde.

Og der er selvlærte mennesker, som jeg selv tæller med. Ja, formelt har jeg en IT-uddannelse, en diplomuddannelse i softwareingeniør. Men selvlærte mennesker lærte at programmere "på trods af det." De havde ikke et universitetsprogram. Normalt er de ikke fortrolige med algoritmer – fordi de aldrig har stået over for behovet for at studere dem. Og når sådan en person forstår algoritmer, betyder det, at han brugte tid og forstod dem. Efter at have afsluttet universitetet indså jeg, at jeg havde blinde pletter med hensyn til grundlæggende algoritmer - faktum er, at mit speciale blev anvendt. Jeg gik og studerede onlinekurser fra Princeton University, den velkendte Robert Sedgwick. Jeg fandt ud af det og lavede alle mine lektier. Og når en person fortæller en lignende historie under et interview, bliver jeg straks interesseret, jeg har et ønske om at arbejde sammen med ham eller i det mindste fortsætte samtalen.

Praktik i IT: et ledersyn

Ignat:

Når du interviewer en praktikant, forventer du på nogle måder endnu mere end af en erfaren udvikler. Vi taler om evnen til at løse algoritmiske problemer, skriv hurtigt i det mindste noget korrekt kode. Praktikkandidaten er stadig på universitetet. For bare et år siden fik han at vide alt om algoritmer i detaljer. Det forventes, at han kan reproducere dem. Hvis en person er tilstrækkelig og lyttede til forelæsningerne omhyggeligt, vil han simpelthen vide alt, få det fra cachen.

Hvilke opgaver løser praktikanten?

Typisk kan praktikforløbet skitseres og diskuteres under de afsluttende samtaler. Først i begyndelsen af ​​arbejdet kan en praktikant få tildelt træningsopgaver, hvis resultater ikke vil blive brugt i produktionen. Desuden er sandsynligheden for at modtage sådanne opgaver lille. Oftest gives kampprojekter fra efterslæbet, det vil sige dem, der anerkendes som værdige opmærksomhed, men ikke en prioritet og "adskillelige" - så andre komponenter ikke afhænger af deres implementering. Ledere forsøger at fordele dem, så praktikanten lærer forskellige dele af tjenesten at kende og arbejder i samme miljø med andre teammedlemmer.

Ignat:

Det er yderst brugbare opgaver. De øger måske ikke klyngeudnyttelsen med 10 % eller sparer virksomheden for en million dollars, men de vil gøre hundredvis af mennesker glade. For eksempel har vi i øjeblikket en praktikant, der arbejder sammen med vores klient for at drive operationer på vores klynger. Inden du starter, skal operationen indlæse nogle data på klyngen. Dette tager normalt 20-40 sekunder, og før det skete lydløst: du startede det i konsollen og sad der og kiggede på en sort skærm. Praktikanten kom og lavede funktionen på to uger: nu kan du se, hvordan filerne uploades, og hvad der sker. Opgaven er på den ene side ikke svær at beskrive, men på den anden side er der noget at grave i, hvilke biblioteker man skal kigge på. Det bedste er, at du gjorde det, der gik en uge, det viste sig at være på klynger, folk bruger det allerede. Når du skriver et indlæg på det interne netværk, siger de tak.

Praktik i IT: et ledersyn

Misha:

Elever udarbejder modeller, indsamler data til dem, kommer med målinger og udfører eksperimenter. Efterhånden begynder vi simpelthen at give ham mere frihed og ansvar – vi tjekker om han kan klare det. Hvis ja, flytter han til næste niveau. Vi går ikke ud fra, at når en praktikant kommer ind, så ved de, hvordan man gør det hele. Lederen hjælper ham med at finde ud af det, giver ham et link til en intern ressource eller onlinekursus.

Hvis en praktikant viser, at han er bedst, kan han blive prioriteret, vigtigt for afdelingen eller andre tjenester.

Dima:

Vores praktikant laver nu hardcore-modifikationer til antisvindel. Dette er et system, der bekæmper en bred vifte af misbrug og svindel på Yandex-tjenester. Først tænkte vi på at give ting, der ikke var særlig komplekse og ikke særlig vigtige for produktionen. Vi forsøger at gennemtænke praktikantens opgaver på forhånd, men så så vi, at personen var "on fire" og løste problemer hurtigt og godt. Som et resultat begyndte vi at betro ham at lancere anti-svig til nye tjenester.

Derudover er der en lille chance for at få en opgave, som kollegaer ikke tidligere har henvendt sig på grund af dens omfang.

Dima:

Der er ét gammelt system, og der er et nyt, som endnu ikke er afsluttet. Det er nødvendigt at flytte fra den ene til den anden. I fremtiden er dette et vigtigt projekt, dog med høj usikkerhed: du skal kommunikere meget, læse uforståelig arvekode. Ved den afsluttende samtale fortalte vi ærligt praktikanten, at opgaven var svær. Han svarede, at han var klar, kom til vores hold, og alt fungerede for ham. Det viste sig, at han har kvaliteterne som ikke kun en udvikler, men også en leder. Han var klar til at gå rundt, finde ud af det, pinge.

Vejledning af en praktikant

En praktikant har brug for en mentor til at fordybe sig i processer. Dette er en person, der ikke kun er opmærksom på sine egne opgaver, men også praktikantens opgaver. Der etableres regelmæssig kommunikation med mentoren, du kan altid henvende dig til ham for at få råd. Mentoren kan enten være gruppelederen (hvis det er en lille gruppe) eller en af ​​kollegaerne, faste teammedlemmer.

Ignat:

Jeg forsøger at komme op mindst hver anden dag og spørge, hvordan det går med praktikanten. Hvis jeg ser, at jeg sidder fast, prøver jeg at hjælpe ham, spørger ham, hvad problemet er, og graver det ud med ham. Det er klart, at det fjerner min energi og gør, at praktikantens arbejde ikke er så integreret effektivt – jeg spilder også min tid. Men dette giver ham mulighed for ikke at blive hængende i noget og få resultater. Og det er stadig hurtigere, end hvis jeg gjorde det selv. Jeg har selv brug for omkring 5 timer til opgaven. Praktikanten gør det om 5 dage. Og ja, jeg vil bruge 2 timer i løbet af disse 5 dage til at chatte med praktikanten og hjælpe. Men jeg sparer mindst 3 timer, og praktikanten vil glæde sig over, at han fik nogle råd og hjælp. Generelt skal du bare kommunikere tæt, se, hvad personen laver, og ikke miste kontakten.

Praktik i IT: et ledersyn

Seryozha:

Praktikanten er konstant i kontakt med sin mentor og kommunikerer med ham flere gange om dagen. Mentoren gennemgår koden, laver parprogrammering med praktikanten og hjælper, når der opstår problemområder. Det er på denne måde, ved at kombinere hjælp fra en mentor og rigtige kampopgaver, at vi uddanner frontend-udviklere.

Dima:

For at forhindre en praktikant i at blive forladt, diskuterer vi, hvem der skal vejlede ham allerede inden ansættelsen. Dette er også en stor opgradering for mentoren selv: forberedelse til rollen som teamleder, test af evnen til at huske både sin egen opgave og praktikantens opgave. Der er regelmæssige møder, som jeg nogle gange selv går til, for at holde mig orienteret. Men det er mentoren, der kommunikerer med praktikanten ganske jævnligt. Han bruger meget tid i starten, men det betaler sig.

Men at have en mentor betyder ikke, at alle problemer, der opstår, bliver løst gennem ham.

Misha:

Det er kutyme for os, at folk, der står med et problem, spørger naboer og kollegaer til råds og hurtigt finder hjælp. Jo hurtigere en person vokser, jo oftere skal han gå til sine kolleger for at lære noget. Det er endda nyttigt blot at lære om andres opgaver, så du kan finde på nye. Når en praktikant er i stand til at nå til enighed, forstå, hvad der er vigtigt for den anden side, og komme til resultater i et team, vil han vokse meget hurtigere end en, for hvem lederen skal gøre alt dette.

Seryozha:

Der er dokumentation, men de fleste informationer går tabt i luften. Hvis du absorberer det tidligt i din karriere, er det en ekstra fordel, og vi kan fokusere personen på det, de skal lære.

Den ideelle praktikant er en, der træner i flere måneder, bliver juniorudvikler, så bare udvikler, så teamleder osv. Dette kræver en arketype på en studerende, der ikke er flov over at spørge, hvis noget ikke står klart for ham, men er også i stand til at arbejde selvstændigt. Hvis han fik at vide, at han kunne læse om det et sted, ville han gå, læse det og faktisk vende tilbage med ny viden. Han kan begå fejl, men han bør ikke lave fejl mere end én gang, højst to gange, samme sted. Den ideelle praktikant bør udvikle sig, absorbere alt som en svamp, lære og vokse. Den, der sidder og prøver at finde ud af alt på egen hånd, bruger lang tid på at rode rundt og ikke stiller nogen spørgsmål, vænner sig næppe til.

Slut på praktik

Inden vi påbegynder arbejdet, underskriver vi en tidsbegrænset kontrakt med hver praktikant. Selvfølgelig er praktikopholdet betalt, formaliseret i overensstemmelse med Den Russiske Føderations arbejdskodeks, og praktikanten har de samme fordele som enhver anden Yandex-medarbejder. Efter tre måneder slutter uddannelsen - så overfører vi mange af praktikanterne til personalet (på en tidsubegrænset kontrakt).

Praktik i IT: et ledersyn

På den ene side er det vigtigt for lederen, at bygherren opfylder sit praktikantminimum. Det er her, praktikanten ledes, startende med samtalen. Dette er dog kun begyndelsen på historien. For os er en praktikant altid en potentiel kandidat for personalet. Minimumsprogrammet for en leder er helt fra starten at identificere en person, som efter tre måneder ikke vil skamme sig over at anbefale til andre afdelinger. Det maksimale program er at holde ham i det samme team og ansætte ham som medarbejder. Samtidig tager vi højde for, at en anden- eller tredjeårsstuderende - også selvom han er blevet praktikant - skal fortsætte sine studier på et universitet med studieårets begyndelse.

Seryozha:

Først og fremmest er praktikanter for os menneskelige ressourcer. Vi forsøger at udvikle folk inden for Yandex, så de er ideelle til vores opgaver. Vi giver dem alt fra en kultur af kommunikation og interaktion i teams til encyklopædisk viden om alle vores systemer.

Ignat:

Når vi ansætter en praktikant, prøver vi ham med det samme for at blive en del af vores team. Og som regel er den eneste hindring manglen på en ledig stilling. Vi forsøger at ansætte nok unge fyre som praktikanter. Hvis en person har fem års udviklingserfaring, kommer han til Yandex og er i praktik på niveauet, så betyder det desværre for os, at selvom han er en fantastisk fyr, da han får et job hos Yandex med fem års erfaring, vil han ikke være i stand til at vokse til en seniorudvikler. Det er normalt et spørgsmål om hastighed: langsom vækst i fortiden vil betyde langsom vækst her. Ja, nogle gange kommer forståelsen af, at en person ikke er klar til opgaven, først efter tre måneder. Men dette er ret sjældent. I mere end halvdelen af ​​tilfældene er vi klar til at ansætte medarbejdere. I min erindring har der aldrig været en situation, hvor en person med succes gennemførte et praktikophold, men ikke var i stand til at bestå en samtale til en fuldtidsstilling.

Misha:

Vi tilbyder alle succesrige praktikanter at blive i virksomheden. Efter et praktikophold påtager vi os normalt mere end halvdelen på fuld tid. Sommerpraktik er sværere, fordi der ofte kommer tredjeårsstuderende til os, og det er svært for dem at kombinere arbejde og studier.

Dima:

Lad os sige, at praktikanten gør et godt stykke arbejde og har mange muligheder for at vokse til en god udvikler – også selvom han ikke har nok erfaring lige nu. Og antag, at der ikke er nogen ledig plads til en tidsubegrænset kontrakt. Så er alt enkelt: Jeg skal gå til min leder og fortælle ham - det er en meget sej person, vi skal med alle midler beholde ham, lad os tilbyde ham noget, lad os finde et sted at placere ham.

Historier om praktikanter

Denis:

Pigen, der kom i praktik hos os i 2017, var fra Perm. Dette er 400 kilometer fra Jekaterinburg mod vest. Og hver uge kom hun til os fra Perm med tog til School of Mobile Development. Hun kom om dagen, studerede om aftenen og gik tilbage sent om aftenen. Da vi satte pris på sådan en iver, inviterede vi hende på arbejde, og det gav pote.

Ignat:

For flere år siden deltog vi i et praktikantudvekslingsprogram. Det var interessant at arbejde med udenlandske fyre. Men praktikanterne derfra er ikke stærkere end for eksempel fra ShAD eller fra Det Datalogiske Fakultet. Det ser ud til, at EPFL er blandt de 20 bedste universiteter i Europa. I det øjeblik, som en stadig ikke særlig erfaren interviewer, havde jeg denne forventning: utroligt, vi interviewer folk fra EPFL, de vil være super seje. Men folk, der har fået en grundlæggende uddannelse om kodning her - også på centrale regionale universiteter - viser sig at være helt på niveau.

Eller en anden historie. Nu har jeg en fyr på min stab, han er meget ung, omkring 20 år gammel. Arbejder i St. Petersborg, kom i praktik. Han er meget sej. Du, som sædvanlig, giver en person problemer, han løser dem, og en måned senere kommer han og siger: Jeg løste dem, jeg ser, og det ser ud til, at din arkitektur er dårligt bygget. Lad os lave det om. Koden bliver enklere og tydeligere. Jeg frarådede ham selvfølgelig: mængden af ​​arbejde er stor, der er ingen profit for brugerne, men ideen lyder absolut fornuftig. Personen fandt ud af en kompleks flertrådsproces og foreslog forbedringer - måske utidige, refaktorering af hensyn til refactoring. Men så snart du vil komplicere denne kode, kan du stadig foretage denne refaktorering. Faktisk gik der flere måneder, og vi tog denne opgave op. Jeg hyrede ham gerne. Vi er ikke alle genier. Du kan komme, finde ud af noget og påpege vores problemer. Dette er værdsat.

Misha:

Vi har så ideelle praktikanter. På trods af deres manglende erfaring ser de opgaven ikke kun på et teknisk, men også på et globalt plan. De tilbyder grundlæggende forbedringer. De har en forståelse for, hvordan man oversætter problemer fra den virkelige verden til den tekniske verden uden at miste deres mening. De spekulerer på, hvad det endelige mål er, om det er værd at grave i detaljer nu, eller om de helt kan ændre tilgangen til opgaven eller ligefrem problemformuleringen. Det betyder, at de har potentialet til at være flere niveauer højere. For at gå denne vej skal de blot opgradere nogle færdigheder og interne værktøjer. Plus lancere flere succesfulde projekter.

Praktik i IT: et ledersyn

Kilde: www.habr.com

Tilføj en kommentar