Stage in de IT: de visie van een manager

Stage in de IT: de visie van een manager

Werving voor zomerstage in Yandex gaat door. Het gaat in vijf richtingen: backend, ML, mobiele ontwikkeling, frontend en analyse. In deze blog, in andere blogs over Habré en daarbuiten, kun je veel inzicht vinden over hoe de stage in zijn werk gaat. Maar veel in dit proces blijft een mysterie voor degenen die niet in het bedrijf werken. En als je vanuit het standpunt van ontwikkelingsmanagers kijkt, rijzen er nog meer vragen. Hoe loop je op de juiste manier stage, hoe maximaliseer je de wederzijdse bruikbaarheid met een stagiair, hoe leer je hem in drie maanden kennen en leer je hem alles wat hij nodig heeft om te kunnen blijven werken?

Vijf van ons hebben dit artikel opgesteld. Laten we ons even voorstellen: Ignat Kolesnichenko van de dienst voor gedistribueerde computertechnologie, Misha Levin van de machine-inlichtingendienst van Market, Denis Malykh van de dienst voor applicatie-ontwikkeling, Seryozha Berezhnoy van de afdeling voor de ontwikkeling van zoekinterfaces en Dima Cherkasov van de antifraude-ontwikkelingsgroep. Ieder van ons vertegenwoordigt ons eigen stagegebied. We zijn allemaal managers, we hebben stagiaires nodig en we hebben enige ervaring met het werken met hen. Laten we u iets vertellen over deze ervaring.

Interview voorafgaand aan de stage

Er wachten verschillende technische interviews op kandidaten. Succes bij een sollicitatiegesprek hangt minder af van zachte vaardigheden (het vermogen om effectief te communiceren) en meer van harde vaardigheden (vaardigheden in wiskunde en programmeren). Managers beoordelen beide echter.

Ignat:

Zelfs als een persoon erg cool is, maar absoluut niet-communicatief, zal hij niet al zijn vaardigheden kunnen toepassen. Uiteraard besteden wij hier aandacht aan, maar dit is geen reden om iemand niet op stage te nemen. Binnen drie maanden kan alles veranderen, en bovendien kan uw eerste indruk verkeerd blijken te zijn. En als alles klopt, moet je het aan de persoon uitleggen, op zoek gaan naar andere commando's. Voor stagiaires zijn communicatieve vaardigheden zeker geen sleutelfactor. Toch zijn professionele vaardigheden veel belangrijker.

Dennis:

Ik houd van mensen die verhalen vertellen – op een goede manier. Interessant is iemand die kan vertellen hoe hij en zijn team heldhaftig omgingen met een of andere fakap. Ik begin vervolgvragen te stellen als een verhaal als dit ter sprake komt. Maar dit gebeurt zelden als je simpelweg vraagt ​​‘om iets interessants in je projecten te vertellen’.

Eén kandidaat zei ooit een prachtige zin, die ik zelfs opschreef: “Met succes vermeden om vervelende problemen op te lossen.”

Stage in de IT: de visie van een manager

Omdat er weinig tijd is voor communicatie, probeert de interviewer elke minuut van de vergadering nuttige informatie over de kandidaat te verkrijgen. Het is geweldig als de stagiair van tevoren uitzoekt welke details van zijn ervaring (niet uit zijn cv) hij kan delen. Dit moet een kort verhaal zijn, strikt to the point.

Dennis:

Ik let op als iemand zegt dat hij veel talen en benaderingen heeft geprobeerd. Mensen met een bredere kijk komen met elegantere oplossingen in de gevechtsmodus. Maar dit is een dubbelzinnig pluspunt. Je kunt het wel onder de knie krijgen, maar je leert er eigenlijk niets van.

Tijd voor de door Denis beschreven verhalen blijft meestal pas bij het eindinterview. Tot die tijd is het noodzakelijk om de fundamentele en praktische kennis aan te tonen die de basis zal vormen voor toekomstig werk. En natuurlijk moet je de code op een bord of op een stuk papier schrijven.

Muis:

We testen kennis van waarschijnlijkheidstheorie en wiskundige statistiek. We kijken of de persoon ervaring heeft met het werken met metrics, met machine learning-algoritmen, met het instellen van de parameters ervan, met herscholing, etc. We verwachten dat de persoon voldoende code kan schrijven om analist te zijn.

Dennis:

Degenen die op gesprek komen, kennen meestal talen: in Jekaterinenburg hebben we een goede school voor basistalen, goede instituten. Maar eerlijk gezegd is een stagekandidaat met goede harde vaardigheden een zeldzaam geval, althans in onze Epsilon-buurt. Swift bijvoorbeeld. Het gaat om zeer complex werk met snaren, en er zijn maar weinig mensen die er zomaar mee kunnen werken. Het oog trekt meteen je aandacht. Tijdens interviews geef ik vaak een taak die te maken heeft met stringverwerking. En in al die tijd was er maar één persoon die zo’n Swift-code meteen op een vel papier kon schrijven. Daarna vertelde ik iedereen dat iemand dit probleem eindelijk in Swift op een stuk papier kon oplossen.

Algoritmen testen tijdens een interview

Dit is een apart onderwerp omdat kandidaten nog een vraag hebben: waarom beoordelen we altijd kennis van algoritmen en datastructuren? Zelfs toekomstige mobiele ontwikkelaars en front-end-ontwikkelaars ondergaan dergelijke tests.

Muis:

Tijdens het interview zullen we zeker een soort algoritmisch probleem tegenkomen. De kandidaat moet uitzoeken hoe hij dit in Python kan implementeren, liefst zonder fouten. U moet begrijpen hoe u uw programma kunt controleren en zelf kunt corrigeren.

Stage in de IT: de visie van een manager

Ervaring met algoritmen is om drie redenen nuttig. Ten eerste zal het uiteraard nodig zijn bij algoritmische taken – die niet vaak voorkomen, maar wel gebeuren. Ten tweede zal de ontwikkelaar in staat zijn om problemen met betrekking tot algoritmen effectiever op te lossen, zelfs als ze zich niet in de algoritmen zelf hoeven te verdiepen (en er zijn er al een flink aantal). Ten derde: als je op de universiteit geen algoritmen hebt geleerd, maar je weet er wel mee te werken, dan kenmerkt dit je als een nieuwsgierig persoon en vergroot het je autoriteit in de ogen van de geïnterviewde.

Dennis:

Een groot deel van mobiele ontwikkeling is JSON-shuffling. Maar eens in de zes maanden zijn er gevallen waarin algoritmen nodig zijn. Momenteel teken ik prachtige kaarten voor Yandex.Weather. En binnen een week moest ik het smoothing-algoritme, het Sutherland-Hodgman-algoritme en het Martinez-algoritme implementeren. Als iemand niet wist wat een hashmap of een prioriteitswachtrij was, zou hij er lange tijd aan vast hebben gezeten en zou het onduidelijk zijn of hij dit zonder hulp van buitenaf wel of niet had kunnen doen.

Algoritmen vormen de basis van ontwikkeling. Dit is wat een ontwikkelaar helpt een ontwikkelaar te zijn. Het maakt niet uit wat je doet. Ze zijn ook nodig bij eenvoudige projecten, waarbij het hoofdwerk bestaat uit het ‘vertalen van JSON’. Zelfs als je de algoritmen niet zelf schrijft, maar impliciet gebruik maakt van bepaalde datastructuren, is het beter om ze te begrijpen. Anders krijg je applicaties die traag of onjuist zijn.

Er zijn programmeurs die academisch in ontwikkeling zijn gekomen: ze zijn naar de universiteit gegaan, hebben vijf jaar gestudeerd en een specialiteit behaald. Ze kennen de algoritmen omdat ze het geleerd hebben. En dan karakteriseert de kennis van algoritmen zelf op geen enkele manier iemands horizon; deze horizon moet op een andere manier worden getest.

En er zijn autodidactische mensen, tot wie ik mezelf reken. Ja, formeel heb ik een IT-opleiding, een diploma in software engineering. Maar autodidacten leerden ‘desondanks’ programmeren. Ze hadden geen universitair programma. Meestal zijn ze niet bekend met algoritmen, omdat ze nooit de noodzaak hebben ervaren om ze te bestuderen. En als zo iemand algoritmen begrijpt, betekent dit dat hij tijd heeft besteed en ze heeft begrepen. Na mijn afstuderen aan de universiteit besefte ik dat ik blinde vlekken had op het gebied van fundamentele algoritmen - het feit is dat mijn specialiteit werd toegepast. Ik ging online cursussen studeren aan de Princeton University, de bekende Robert Sedgwick. Ik ontdekte het en deed al mijn huiswerk. En als iemand tijdens een interview een soortgelijk verhaal vertelt, raak ik meteen geïnteresseerd, ik heb een verlangen om met hem samen te werken of op zijn minst het gesprek voort te zetten.

Stage in de IT: de visie van een manager

Ignat:

Als je een stagiair interviewt, verwacht je in sommige opzichten zelfs meer dan van een ervaren ontwikkelaar. We hebben het over het vermogen om algoritmische problemen op te lossen, snel op zijn minst een correcte code te schrijven. De stagekandidaat is nog op de universiteit. Nog maar een jaar geleden kreeg hij alles over algoritmen tot in detail te horen. Er wordt verwacht dat hij ze kan reproduceren. Als een persoon adequaat is en aandachtig naar de lezingen heeft geluisterd, zal hij eenvoudigweg alles weten, het uit de cache halen.

Welke taken lost de stagiair op?

Normaal gesproken kan het stageprogramma tijdens de eindgesprekken worden uiteengezet en besproken. Pas aan het begin van het werk kan een stagiair trainingstaken worden toegewezen, waarvan de resultaten niet in de productie zullen worden gebruikt. Bovendien is de kans op het ontvangen van dergelijke taken klein. Meestal worden gevechtsprojecten gegeven vanuit de achterstand, dat wil zeggen projecten die worden erkend als de aandacht waard, maar geen prioriteit en "scheidbaar" - zodat andere componenten niet afhankelijk zijn van de implementatie ervan. Managers proberen ze te verspreiden, zodat de stagiair verschillende delen van de dienst leert kennen en in dezelfde omgeving met andere teamleden kan werken.

Ignat:

Dit zijn uiterst nuttige taken. Ze zullen het clustergebruik misschien niet met 10% verhogen, of het bedrijf geen miljoen dollar besparen, maar ze zullen wel honderden mensen blij maken. Momenteel hebben we bijvoorbeeld een stagiair bij onze klant die de activiteiten op onze clusters uitvoert. Voordat de bewerking wordt gestart, moet een aantal gegevens op het cluster worden geladen. Dit duurt meestal 20-40 seconden, en voordat het stil gebeurde: je lanceerde het in de console en zat daar naar een zwart scherm te kijken. De stagiair kwam en maakte de functie in twee weken: nu kun je zien hoe de bestanden worden geüpload en wat er gebeurt. De taak is enerzijds niet moeilijk te beschrijven, maar aan de andere kant is er iets om in te graven, naar welke bibliotheken je moet kijken. Het beste is dat je het hebt gedaan, een week ging voorbij, het bleek op clusters te staan, mensen gebruiken het al. Wanneer je een bericht op het interne netwerk schrijft, zeggen ze dankjewel.

Stage in de IT: de visie van een manager

Muis:

Trainees bereiden modellen voor, verzamelen gegevens voor hen, bedenken metrieken en voeren experimenten uit. Geleidelijk aan beginnen we hem gewoon meer vrijheid en verantwoordelijkheid te geven – we kijken of hij het aankan. Zo ja, dan gaat hij naar het volgende niveau. Wij gaan er niet van uit dat als er een stagiaire binnenkomt, hij/zij weet hoe het allemaal moet. De manager helpt hem erachter te komen, geeft hem een ​​link naar een interne bron of online cursus.

Als een stagiair laat zien dat hij op zijn best is, kan het zijn dat hij iets prioriteit krijgt, belangrijk voor de afdeling of andere diensten.

Dima:

Onze stagiair voert nu hardcore wijzigingen door in de fraudebestrijding. Dit is een systeem dat een breed scala aan misbruik en fraude op Yandex-services bestrijdt. In eerste instantie dachten we erover om dingen te geven die niet erg complex waren en niet erg belangrijk voor de productie. We proberen vooraf na te denken over de taken van de stagiair, maar toen zagen we dat de persoon ‘in vuur en vlam stond’ en problemen snel en goed oploste. Als gevolg hiervan begonnen we hem de lancering van fraudebestrijding voor nieuwe diensten toe te vertrouwen.

Daarnaast is er een kleine kans dat je een taak krijgt die collega’s vanwege de omvang nog niet eerder hebben benaderd.

Dima:

Er is één oud systeem en er is een nieuw, nog niet voltooid. Het is noodzakelijk om van de een naar de ander te gaan. In de toekomst is dit een belangrijk project, zij het met grote onzekerheid: je moet veel communiceren, onbegrijpelijke oude code lezen. Tijdens het eindgesprek vertelden we de stagiair eerlijk dat de taak moeilijk was. Hij antwoordde dat hij er klaar voor was, naar ons team kwam en dat alles voor hem werkte. Het bleek dat hij niet alleen de kwaliteiten heeft van een ontwikkelaar, maar ook van een manager. Hij was klaar om rond te lopen, erachter te komen, te pingen.

Begeleiden van een stagiair

Een stagiair heeft een mentor nodig om zich te verdiepen in processen. Dit is iemand die niet alleen op de hoogte is van zijn eigen taken, maar ook van de taken van de stagiair. Met de mentor is regelmatig contact, voor advies kunt u altijd bij hem terecht. De mentor kan de groepsleider zijn (als het een kleine groep is) of een van de collega’s, vaste teamleden.

Ignat:

Ik probeer minstens om de dag langs te komen en te vragen hoe het met de stagiaire gaat. Als ik zie dat ik vastzit, probeer ik hem te helpen, vraag hem wat het probleem is en zoek het samen met hem op. Het is duidelijk dat dit mijn energie wegneemt en het werk van een stagiair niet zo integraal effectief maakt - ik verspil ook mijn tijd. Maar hierdoor kan hij nergens in verzanden en resultaten behalen. En het is nog steeds sneller dan wanneer ik het zelf zou doen. Zelf heb ik ongeveer 5 uur nodig voor de taak. De stagiair doet het in 5 dagen. En ja, ik ga gedurende deze 2 dagen 5 uur besteden aan het kletsen met de stagiaire en helpen. Maar ik bespaar minstens 3 uur, en de stagiair zal blij zijn dat hij wat advies en hulp heeft gekregen. Over het algemeen hoeft u alleen maar goed te communiceren, te kijken wat de persoon doet en het contact niet te verliezen.

Stage in de IT: de visie van een manager

Seryozha:

De stagiair heeft voortdurend contact met zijn mentor en communiceert meerdere keren per dag met hem. De mentor beoordeelt de code, koppelt het programmeren aan de stagiair en helpt wanneer er zich probleemgebieden voordoen. Op deze manier trainen we front-end-ontwikkelaars, door de hulp van een mentor en echte gevechtstaken te combineren.

Dima:

Om te voorkomen dat een stagiair in de steek wordt gelaten, bespreken we wie hem gaat begeleiden voordat we hem aannemen. Ook voor de mentor zelf is dit een grote upgrade: voorbereiding op de rol van teamleider, testen op het vermogen om zowel zijn eigen taak als de taak van de stagiair voor ogen te houden. Er zijn regelmatig bijeenkomsten, waar ik zelf ook wel eens naar toe ga, om op de hoogte te blijven. Maar het is de mentor die vrij regelmatig met de stagiair communiceert. In het begin besteedt hij er veel tijd aan, maar het loont de moeite.

Het hebben van een mentor betekent echter niet dat alle problemen die zich voordoen via hem worden opgelost.

Muis:

Het is bij ons gebruikelijk dat mensen die met een probleem kampen, buren en collega’s om advies vragen en snel hulp vinden. Hoe sneller iemand groeit, hoe vaker hij naar zijn collega's moet gaan om iets te leren. Het is zelfs nuttig om eenvoudigweg de taken van anderen te leren kennen, zodat u nieuwe taken kunt bedenken. Wanneer een stagiair tot overeenstemming komt, begrijpt wat belangrijk is voor de andere partij en in teamverband tot resultaten komt, zal hij veel sneller groeien dan iemand voor wie de manager dit allemaal moet doen.

Seryozha:

Er is documentatie, maar de meeste informatie gaat verloren in de lucht. Als je dit al vroeg in je carrière in je opneemt, is dat een bijkomend voordeel, en kunnen we de persoon focussen op wat hij of zij moet leren.

De ideale stagiair is iemand die een aantal maanden traint, junior ontwikkelaar wordt, dan gewoon ontwikkelaar, dan teamleider etc. Dit vergt een archetype van een student die zich niet schaamt om te vragen als hem iets niet duidelijk is, maar is tevens in staat zelfstandig te werken. Als hem werd verteld dat hij er ergens over kon lezen, ging hij het lezen en kwam hij daadwerkelijk met nieuwe kennis terug. Hij mag fouten maken, maar hij mag niet meer dan één keer, maximaal twee keer, op dezelfde plaats fouten maken. De ideale stagiair moet zich ontwikkelen, alles als een spons in zich opnemen, leren en groeien. Degene die zit en alles zelf probeert uit te zoeken, lang rondsnuffelt en geen vragen stelt, zal waarschijnlijk niet wennen.

Einde stage

Voordat we aan de slag gaan, sluiten we met iedere stagiair een contract voor bepaalde tijd af. Uiteraard wordt de stage betaald, geformaliseerd in overeenstemming met de Arbeidswet van de Russische Federatie, en heeft de stagiair dezelfde voordelen als elke andere Yandex-werknemer. Na drie maanden eindigt het programma. Vervolgens plaatsen we een groot deel van de stagiaires over naar het personeel (op basis van een contract van onbepaalde duur).

Stage in de IT: de visie van een manager

Enerzijds is het voor de manager belangrijk dat de ontwikkelaar voldoet aan zijn stagiair-minimum. Hier wordt de stagiair naartoe geleid, te beginnen met het interview. Dit is echter nog maar het begin van het verhaal. Voor ons is een stagiair altijd een potentiële kandidaat voor personeel. Het minimale programma voor een manager is om vanaf het allereerste begin iemand te identificeren die zich na drie maanden niet zal schamen om aan andere afdelingen aan te bevelen. Het maximale programma is om hem in hetzelfde team te houden en hem als personeelslid aan te nemen. Tegelijkertijd houden we er rekening mee dat een tweede- of derdejaarsstudent – ​​ook als hij stagiair is geworden – bij aanvang van het studiejaar zijn studie aan een universiteit zal moeten voortzetten.

Seryozha:

In de eerste plaats zijn stagiaires voor ons een HR-potentieel. We proberen mensen binnen Yandex te laten groeien, zodat ze bij uitstek geschikt zijn voor onze taken. We geven ze alles, van een cultuur van communicatie en interactie in teams tot encyclopedische kennis over al onze systemen.

Ignat:

Als wij een stagiair aannemen, proberen wij hem meteen uit om ons team te komen versterken. En in de regel is het enige obstakel het ontbreken van een vacature. Wij proberen voldoende jonge jongens als stagiaires aan te nemen. Als iemand vijf jaar ontwikkelingservaring heeft, hij naar Yandex komt en stagiair is op het niveau, dan betekent dit helaas voor ons dat hij, ook al is hij een geweldige kerel, aangezien hij met vijf jaar een baan krijgt bij Yandex ervaring zal hij niet kunnen doorgroeien tot senior ontwikkelaar. Meestal is het een kwestie van snelheid: trage groei in het verleden betekent hier trage groei. Ja, soms komt het besef dat iemand de taak niet aankan pas na drie maanden. Maar dit is vrij zeldzaam. In ruim de helft van de gevallen zijn wij bereid mensen in dienst te nemen. In mijn herinnering is er nog nooit een situatie geweest waarin iemand met succes een stage heeft afgerond, maar niet slaagde voor een sollicitatiegesprek voor een voltijdbaan.

Muis:

Wij bieden alle succesvolle stagiaires de mogelijkheid om bij het bedrijf te blijven. Na een stage nemen wij doorgaans ruim de helft fulltime op ons. Zomerstages zijn lastiger omdat er vaak derdejaarsstudenten bij ons komen en het voor hen lastig is om werk en studie te combineren.

Dima:

Laten we zeggen dat de stagiair het geweldig doet en veel vooruitzichten heeft om uit te groeien tot een goede ontwikkelaar – ook al heeft hij op dit moment nog niet genoeg ervaring. En stel dat er geen vacature is voor een contract van onbepaalde duur. Dan is alles eenvoudig: ik moet naar mijn manager gaan en hem vertellen: dit is een heel cool persoon, we moeten hem met alle middelen behouden, laten we hem iets aanbieden, laten we een plek vinden om hem te plaatsen.

Verhalen over stagiaires

Dennis:

Het meisje dat in 2017 bij ons stage liep kwam uit Perm. Dit is 400 kilometer van Jekaterinenburg naar het westen. En elke week kwam ze vanuit Perm met de trein naar ons toe naar de School of Mobile Development. Ze kwam overdag, studeerde 's avonds en ging laat in de avond terug. We waardeerden deze ijver en nodigden haar uit om te komen werken, en het loonde.

Ignat:

Een aantal jaren geleden hebben wij deelgenomen aan een uitwisselingsprogramma voor stagiaires. Het was interessant om met buitenlandse jongens te werken. Maar de stagiaires daar zijn niet sterker dan bijvoorbeeld ShAD of de faculteit Informatica. Het lijkt erop dat EPFL in de top 20 van universiteiten in Europa staat. Op dat moment had ik als nog niet zo ervaren interviewer deze verwachting: ongelooflijk, we interviewen mensen van EPFL, ze zullen super cool zijn. Maar mensen die hier een basisopleiding over coderen hebben gevolgd – ook aan belangrijke regionale universiteiten – blijken behoorlijk op de hoogte te zijn.

Of een ander verhaal. Nu heb ik een man in mijn staf, hij is heel jong, ongeveer twintig jaar oud. Werkt in St. Petersburg, kwam voor een stage. Hij is erg cool. Je geeft, zoals gewoonlijk, iemand problemen, hij lost ze op, en een maand later komt hij en zegt: ik heb ze opgelost, ik kijk, en het lijkt erop dat je architectuur slecht gebouwd is. Laten we het opnieuw doen. De code wordt eenvoudiger en duidelijker. Ik heb hem natuurlijk afgeraden: de hoeveelheid werk is groot, er is geen winst voor gebruikers, maar het idee klinkt absoluut redelijk. De persoon bedacht een complex proces met meerdere threads en stelde verbeteringen voor - misschien voortijdige verbeteringen, refactoring omwille van de refactoring. Maar zodra u deze code ingewikkelder wilt maken, kunt u deze refactoring nog steeds uitvoeren. In feite gingen er enkele maanden voorbij en namen we deze taak op ons. Ik heb hem met plezier aangenomen. We zijn allemaal geen genieën. Je kunt komen, iets uitzoeken en onze problemen aankaarten. Dit wordt op prijs gesteld.

Muis:

Wij hebben zulke ideale stagiaires. Ondanks hun gebrek aan ervaring zien ze de taak niet alleen op technisch, maar ook op mondiaal niveau. Ze bieden fundamentele verbeteringen. Ze begrijpen hoe ze problemen van de echte wereld naar de technische wereld kunnen vertalen zonder hun betekenis te verliezen. Ze vragen zich af wat het uiteindelijke doel is, of het de moeite waard is om nu in de details te duiken of dat ze de aanpak van de taak of zelfs de formulering van het probleem volledig kunnen veranderen. Dit betekent dat ze de potentie hebben om meerdere niveaus hoger te komen. Om deze kant op te gaan, hoeven ze alleen maar een aantal vaardigheden en interne hulpmiddelen te upgraden. Plus een aantal succesvolle projecten lanceren.

Stage in de IT: de visie van een manager

Bron: www.habr.com

Voeg een reactie