IT praktika: juhi vaade

IT praktika: juhi vaade

Registreerimine suvisesse praktikasse Yandeksis jätkub. See hõlmab viit suunda: tagaplaneerimine, ML, mobiilne arendus, eesplaneerimine ja analüüs. Sellel blogil, samuti teistel blogidel Habras ja selle väljaspool, on võimalik leida palju teavet selle kohta, kuidas praktika toimub. Kuid palju jääb saladuseks neile, kes ettevõttes ei tööta. Ja kui vaadata asjale arendajate juhtide perspektiivist, tekib veelgi rohkem küsimusi. Kuidas korraldada praktikat õigesti, kuidas maksimeerida vastastikust kasu praktikandi ja ettevõtte vahel, kuidas jõuda kolmes kuus inimese tundmise ja kõigega, mida tööle asumiseks on vaja, õpetamiseni?

Valmistasime selle artikli koos viiekesi. Tutvume: Ignat Kolesnichenko jaotistehnoloogiate teenistusest, Misha Levin turunduse masinintellegi teenistusest, Denis Malõkh rakenduste arendamise teenistusest, Sergei Berezhnoy otsinguliideste arendamise osakonnast ja Dima Cherkasov pettusevastase arengu grupist. Igaühel meist on oma suuna praktikate kogemus. Me kõik oleme juhid, kes vajavad praktikante, ja meil on teatud kogemus töötamisest nendega. Räägime veidi sellest kogemusest.

Praktika eelnevestlused

Kandidaate ootavad mitmed tehnilised vestlused. Vestluse kordaminek sõltub vähem pehmetest oskustest (efektiivne suhtlemisvõime) ja rohkem kõvadest oskustest (matemaatika ja programmeerimise oskused). Siiski hindavad juhid mõlemat.

Ignat:

Isegi kui inimene on väga andekas, kuid täiesti mittekommunikatiivne — ei suuda ta oma oskusi rakendada. Me pöörame sellele tähelepanu, kuid see ei ole põhjus kedagi praktikaks mitte võtta. Kolme kuuga võib kõik muutuda ja pealegi võib sinu esialgne mulje osutuda vale. Kui see on tõsi — peab inimesega rääkima ja otsima talle teisi meeskondi. Praktikantide puhul ei ole kommunikatiivsus kindlasti peamine tegur. Lõppude lõpuks on professionaalsed oskused palju olulisemad.

Denis:

Mulle meeldivad inimesed, kes räägivad lugusid — heas mõttes. Inimene, kes oskab rääkida, kuidas nad meeskonnaga vapralt mingi jama lahendasid, on huvitav. Kui selline lugu pinnale tõuseb, hakkan esitama täiendavaid küsimusi. Kuid see juhtub harva, kui lihtsalt paluda «rääkida millestki huvitavast teie projektides».

Üks kandidaat ütles kunagi suurepärase lause, mille ma isegi üles kirjutasin: «Edutult vältisin igavaid ülesandeid».

IT praktika: juhi vaade

Kuna suhtlemiseks on vähe aega, püüab vestleja iga kohtumise minuti jooksul kandideerijast kasulikku teavet saada. Oleks tore, kui praktikant oleks ette valmistanud mõningaid oma kogemuse detaile (mitte CV-st), mida jagada. See peaks olema lühike ja asjakohane lugu.

Denis:

Ma pööran tähelepanu, kui inimene ütleb, et on proovinud palju keeli ja lähenemisi. Laiemate teadmistega inimesed suudavad dünaamilises olukorras luua elegantsisemaid lahendusi. Kuid see ei ole alati selge pluss. Võib-olla õppitakse natuke, kuid tõeliselt ei omandata midagi.

Aeg Denisi poolt jutustatud lugude jaoks jääb tavaliselt alles ainult lõppvestluseks. Kuni selle ajani tuleb näidata neid põhjalikke ja praktikal põhinevaid teadmisi, mis saavad tulevase töö aluseks. Ja muidugi on vajalik kirjutada koodi tahvli või paberi peal.

Misha:

Me kontrollime tõenäosusteooria ja matemaatilise statistika teadmisi. Vaadake, kas inimesel on kogemusi mõõdikute, masinõppe algoritmide, nende seadistamise, üleõppimise jne alal. Ootame, et inimene suudaks piisavalt koodi kirjutada, et olla analüütik.

Denis:

Intervjule tulejad tunnevad peamiselt keeli: meil Jekaterinburgis on kvaliteetne põhikeelte haridus, head instituudid. Kuid ausalt öeldes on praktikakohta kandideerivatel inimestel, kellel on head tehnilised oskused, haruldane juhtum, vähemalt meie epsilooni ümbruses. Näiteks Swiftis. Seal on stringidega töötamine väga keeruline, ja inimesi, kes suudavad neid kohe peast töötada, on vähe. Sellised silma hakkavad kohe. Annan tihti intervjuudel ülesande, mis on seotud stringide töötlemisega. Ja kogu aeg on olnud ainult üks inimene, kes suutis selle Swift-koodi kohapeal kiiresti kirjutada. Pärast seda rääkisin kõigile, et keegi suutis lõpuks selle ülesande lahendada Swiftis paberil.

Algoritmide kontrollimine intervjuul

See on eraldi teema, kuna kandidaatidel tekib endiselt küsimus — miks me hindame alati algoritmide ja andmestruktuuride tundmist? Isegi tulevased mobiiliarendajad ja frontend-arendajad läbivad selle kontrolli.

Misha:

Intervjuul anname kindlasti mingi algoritmilise ülesande. Kandidaat peab mõtlema, kuidas seda rakendada Pythonis, soovitavalt ilma vigadeta. Oluline on mõista, kuidas oma programmi testida ja iseseisvalt parandada.

IT praktika: juhi vaade

Kogemus algoritmidega on kasulik kolmel põhjusel. Esiteks, seda vajatakse ilmselgelt algoritmilistes ülesannetes — kuigi need ei esine sageli, siiski esinevad. Teiseks, arendaja suudab efektiivsemalt lahendada ülesandeid, mis on seotud algoritmidega, kuigi need ei pruugi nõuda otse algoritmide süvenemist (selliseid on juba päris palju). Kolmandaks, kui teid ei õpetatud algoritme ülikoolis, kuid suudate nendega töötada, iseloomustab see teid uudishimuliku inimesena ja tõstab teie autoriteeti intervjueerija silmis.

Denis:

Enamus mobiilianarendustest on "JSON-i ümberpaigutamine". Aga iga kuue kuu tagant on olukordi, kus algoritmid on vajalikud. Ma joonistan praegu ilusaid kaarte Yandexi ilmateenusele. Ja mul tuli nädalaga realiseerida silumisalgrit, Sutherlandi-Hodgmani algoritm ja Martinez'i algoritm. Kui inimene ei teaks, mis on hash map või prioriteetide järjekord, võiks ta sellega pikka aega vaeva näha ja ei oskaks öelda, kas ta on abita hakkama saanud või mitte.

Algoritmid on arenduse alus. Need on need, mis aitavad arendajal olla arendaja. Pole oluline, millega te tegelete. Need on vajalikud ka lihtsates projektides, kus peamine töö seisneb "JSON-i ümberpaigutamises". Isegi kui te ise algoritme ei kirjuta, vaid kasutate mõnda andmestruktuuri, on parem neid mõista. Vastasel juhul võivad teie rakendused töötada aeglaselt või ebatäpselt.

On programmeerijaid, kes on arendusse akadeemiliselt tulnud: nad astusid ülikooli, õppisid viis aastat ausalt ja omandasid eriala. Nad tunnevad algoritme, kuna neile on neid õpetatud. Siiski ei iseloomusta pelgalt algoritmide tundmine inimese silmaringi, seda silmaringi tuleb muude meetoditega kontrollida.

Ja on autodidakte, kelle hulka kuulun ka mina. Jah, mul on ametlikult IT-haridus, inseneri-programmeerija diplom. Kuid autodidaktid on programmeerimise selgeks saanud "vastuolus". Neil ei olnud ülikooli õppekava. Tavaline on, et nad pole tuttavad algoritmidega – kuna nad pole kunagi pidanud neid õppima. Ja kui selline inimene mõistab algoritme, tähendab see, et ta on kulutanud aega nende õppimisele ja saanud neist aru. Ülikooli lõpetades taipasin, et mul on teatud valgeid laike fundamentaalsete algoritmide osas – asi on selles, et eriala oli rakenduslik. Läksin ja õppisin Princetoni ülikooli online-kursuseid, tuntud Robert Sedgewicki kursuseid. Sain aru, tegin kõik kodutööd. Ja kui inimene intervjuus räägib sarnast lugu, siis tunnen kohe huvi, soovin temaga koos töötada või vähemalt vestlust jätkata.

IT praktika: juhi vaade

Ignat:

Kuna intervjueerid praktikanti, ootad mõnes mõttes isegi rohkem, kui kogenud arendajalt. Jutt käib võimest lahendada algoritmilisi ülesandeid ja kiiresti kirjutada vähemalt mingisugune korrektne kood. Praktikant on ju veel ülikoolis. Alles aasta tagasi räägiti talle algoritmidest detailideni. Oodatakse, et ta suudab neid taastootma. Kui inimene on adekvaatne ja on loengutes tähelepanelikult kuulanud, siis teab ta lihtsalt kõike, tuletades teadmised meelde.

Milliseid ülesandeid lahendab praktikant

Tavaliselt saab praktika programmi määratleda ja arutada lõppintervjuudel. Praktikant saab alguses tööle algusülesandeid, mille tulemusi ei kasutata tootmises. Veelgi enam, tõenäosus saada selliseid ülesandeid on väike. Enamasti antakse välja projektid tagavarade nimekirjast, st need, mis on tunnustatud tähelepanu väärilisena, kuid mitte prioriteetsed ja „eraldatavad“ – nii et nende elluviimine ei sõltuks muudest komponentidest. Juhtkond püüab neid jagada nii, et praktikant tutvuks erinevate teenuse osadega ja töötaks ühes keskkonnas teiste meeskonna liikmetega.

Ignat:

Needless to say, these are incredibly valuable tasks. They might not boost cluster utilization by 10% or save the company a million dollars, but they bring joy to hundreds of people. For instance, we currently have an intern working on our client’s project to launch operations on our clusters. Before launching, the operation needs to load some data onto the cluster. This usually takes 20 to 40 seconds and previously it happened silently: you would kick it off in the console and just stare at the black screen. The intern came along and, in two weeks, implemented a feature: now you can see how files are being uploaded and what’s happening. The task, on one hand, seems simple in description, but on the other, there’s plenty to explore, like which libraries to check out. The most rewarding part is that you’ve done it, a week has passed, it’s live on the clusters, and people are already using it. When you post in the internal network, you get thanked.

IT praktika: juhi vaade

Misha:

Praktikandid valmistavad mudeleid, koguvad neile andmeid, loovad mõõdikuid ja viivad läbi eksperimente. Aja jooksul hakkame me lihtsalt andma neile rohkem vabadust ja vastutust, kontrollides, kas nad saavad hakkama. Kui jah, siis nad tõusevad järgmisse tasemesse. Me ei eelda, et praktikant tuleb ja teab kõike seda. Juhendaja aitab tal orienteeruda, jagab linke sisemisele ressursile või veebikursusele.

Kui praktikant näitab end heast küljest, võib talle anda midagi prioriteetset, mis on oluline osakonnale või teistele teenustele.

Dima:

Meie praktikant tegeleb praegu intensiivsete täiustustega anti-pettuste süsteemis. See on süsteem, mis võitleb erineva tüüpi väärkasutuse ja petmisega Yandexi teenustes. Alguses arvasime, et anname mitte liiga keerulisi ja mitte väga olulisi ülesandeid tootmise jaoks. Püüame ette mõelda praktikandi ülesandeid, kuid siin nägime, et inimene 'särab', lahendab ülesandeid kiiresti ja hästi. Lõpuks hakkasime talle määrama antiepettuste käivitamist uutes teenustes.

Lisaks on väike võimalus saada ülesanne, millega kolleegid varem ei ole tegelenud selle mahukuse tõttu.

Dima:

On olemas vana süsteem ja uus, veel lõpetamata. Tuleb viia üleminek ühelt teisele. Tulevikus on see oluline projekt, kuigi kõrge määramatusega: tuleb palju suhelda, lugeda arusaamatut legacy-koodi. Me rääkisime viimases vestluses ausalt praktikandile, et ülesanne on keeruline. Ta vastas, et on valmis, tuli meie meeskonda ja tal õnnestus. Selgus, et tal on omadused, mis sobivad mitte ainult arendajale, vaid ka juhile. Ta oli valmis ise käima, uurima ja pingerida saatma.

Mentorlus praktikandi üle

Praktikandile protsessidesse süüvimiseks on vajalik mentor. See on inimene, kes on kursis mitte ainult oma ülesannete, vaid ka praktikandi ülesannetega. Mentoriga on loodud regulaarne suhtlemine, tema poole saab alati nõu küsida. Mentoriks võib olla kas grupijuht (kui see on väike grupp) või keegi kolleegidest, kes on meeskonna püsiliige.

Ignat:

Püüan vähemalt iga kahe päeva tagant läheneda ja küsida, kuidas praktikantidel läheb. Kui näen, et nad on millegisse süüvinud, siis üritan aidata, küsin, milles probleem ja koos temaga lahendame selle. On selge, et see vähendab mu jõuvarusid ja muudab praktikandi töö vähem tõhusaks – ka mina kulutan oma aega. Kuid see võimaldab tal mitte kuhjunud olla ja tulemusi saavutada. Ja see on ikkagi kiirem, kui ma ise teeksin. Olenemata sellest, et mul kulub tõenäoliselt nii 5 tundi ülesande täitmiseks, teeb praktikant selle 5 päevaga. Ja jah, kulutan nende 5 päeva jooksul 2 tundi, et suhelda praktikandiga ja aidata. Kuid vähemalt 3 tundi säästan ja praktikandile on meeldiv, et keegi on aidanud ja suunanud. Üldiselt tuleb lihtsalt tihedalt suhelda, jälgida, mida inimene teeb, ja kontakti mitte kaotada.

IT praktika: juhi vaade

Serjoža:

Praktikant on pidevalt ühenduses oma mentoriga ja suhtleb temaga mitu korda päevas. Mentor vaatab koodi üle, teeb praktikandiga paarisprogrammeerimist ja aitab, kui tekib mingeid keerulisi kohti. Just sellisel viisil, mentori abi ja reaalsete ülesannete kombinatsiooniga, koolitame frontend-arendajaid.

Dima:

Kuna stažeer ei peaks tundma end üksi, arutame juba enne palkamist, kes teda mentorina juhendab. See on suur kasu ka mentorile endale: see valmistab ette tiimijuhi rolliks ning testib võimet hoida meeles nii oma kui ka stažee ülesandeid. Toimuvad regulaarsed kohtumised, kus vahel olen ka mina kohal, et kursis olla. Kuid mentor suhtub stažeerijaga suhtlemisse palju regulaarsemalt. Alguses kulutab ta sellele palju aega, kuid see tasub end ära.

Kuid mentori olemasolu ei tähenda, et kõik tekkivad küsimused lahendatakse ainult tema kaudu.

Misha:

Meil on tavaks, et probleemidega silmitsi seisvad inimesed küsivad nõu oma naabrilt, kolleegidelt ning leiavad kiiresti abi. Mida kiiremini inimene areneb, seda sagedamini peab ta minema kolleegide juurde, et midagi uut teada saada. Kasulik on isegi lihtsalt teada saada teiste inimeste ülesannetest, et mõelda välja uusi ülesandeid. Kui stažeerija suudab ise läbi rääkida, mõista, mis on teise osapoole jaoks oluline, ja jõuda tulemusele meeskonnas, kasvab ta kiiremini kui see, kelle eest peab kõik ära tegema juht.

Serjoža:

Dokumentatsioon on olemas, kuid enamik teavet on hägune. Kui sa omandad seda oma karjääri alguses, on see lisavõimekus, ja me saame suunata inimest sellele, mida tuleb õppida.

Ideaalne praktikant on see, kes praktiseerib mitu kuud, saab nooremaks arendajaks, siis lihtsalt arendajaks, hiljem grupijuhtiks jne. Selleks on vajalik õpilase archetyp, kes ei karda küsida, kui miski on ebaselge, kuid samas suudab iseseisvalt töötada. Kui talle öeldakse, et selle kohta saab lugeda sealt ja sealt, siis ta läheb, loeb ja tõepoolest naaseb uute teadmistega. Ta võib eksida, kuid ei tohiks eksida rohkem kui üks või kaks korda samas kohas. Ideaalne praktikant peab arenema, omandama teadmisi nagu käsn, õppima ja kasvama. Need, kes istuvad, üritavad kõike ise välja mõelda, kaevuvad pikalt, ei esita küsimusi, ei jää tõenäoliselt ellu.

Praktika lõpetamine

Enne töö alustamist sõlmime iga praktikantidega tähtajalise lepingu. Muidugi on praktika tasustatud, see on vormistatud RF töö seaduse kohaselt ja praktikantidel on samasugused õigused nagu teistelgi Yandexi töötajatel. Kolme kuu pärast lõppeb programm - paljusid praktikante viime seejärel alaliselt tööle (tähtajatu lepinguga).

IT praktika: juhi vaade

Ühest küljest on juhile oluline, et arendaja täidaks oma praktikandi minimaalsed nõuded. Just sellele suunab juhendaja praktikanti, alustades vestlusest. Kuid see on alles loo algus. Praktikant on meie jaoks alati potentsiaalne töö kandidaat. Juhile on minimaalne eesmärk juba alguses märgata sellist inimest, keda pärast kolme kuud ei oleks häbi soovitada teistele osakondadele. Maksimaalne eesmärk on hoida teda samas meeskonnas, võttes tööle. Samuti arvestame sellega, et teise või kolmanda kursuse üliõpilasel - isegi kui ta on praktikant - tuleb õppeaasta alguses jätkata oma õpinguid ülikoolis.

Serjoža:

Esiteks on praktikandid meie jaoks inimressurss. Püüame kasvatada inimesi Yandexis, et nad sobiksid meie ülesannetega ideaalselt. Pakume neile kõike, alates suhtlemise ja meeskonnatöö kultuurist kuni põhjalike teadmistega meie süsteemide kohta.

Ignat:

Praktikandi värbamisel kujundame kohe ootusi, et ta liituks meie meeskonnaga. Ja reeglina on ainus takistus töökohtade puudumine. Püüame värvata piisavalt noori inimesi. Kui kellelgi on viieaastane arenduspraktika ja ta tuleb Yandexisse praktikale, tähendab see kahjuks, et ta — isegi kui on osav — ei suuda tõusta vanemaks arendajaks. Tavaline põhjus on aeglus: aeglane areng minevikus tähendab aeglast arengut ka meie juures. Jah, mõnikord mõistame, et inimene ei vasta ootustele alles kolme kuu pärast. Kuid see on üsna harv. Rohkem kui pooled juhud on meil valmidus inimesi põhikoosseisu võtta. Minu mäletamist mööda ei ole olnud olukordi, kus inimene oleks edukalt praktika läbinud, kuid ei oleks suutnud kandideerida põhikoosseisu ametikohale.

Misha:

Kõikidele edukatele praktikantidele pakume võimalust meie ettevõttes jätkata. Pärast praktikat palkame tavaliselt üle poole neist täistööajale. Suvise praktikaga on keerulisem, sest sageli tulevad meie juurde tudengid, näiteks kolmandast kursusest, ja neil on raske töötamist õpingutega ühendada.

Dima:

Oletame, et praktikant täidab ülesandeid suurepäraselt ja tal on palju võimalusi areneda heaks arendajaks – isegi kui tal praegu pole piisavalt kogemust. Ja oletame, et tähtajalise lepingu jaoks pole vabu töökohti. Siis on kõik lihtne: pean minema oma juhendaja juurde ja ütlema – siin on väga lahe inimene, keda tuleb kõigest väest hoida, pakume midagi, leiame, kuhu teda paigutada.

Praktikandi lood

Denis:

Tütar, kes liitus meiega praktikaks 2017. aastal, oli pärit Permist. See on umbes 400 kilomeetrit idas Jekaterinburgist. Ja ta sõitis iga nädal meile Permist rongiga mobiiliarenduse kooli. Päeval saabus, õhtul õppis ja hilisõhtul sõitis tagasi. Olles sellist pühendumust hinnanud, kutsusime teda tööle, ja see tasus end ära.

Ignat:

Mõni aasta tagasi osalesime praktikantide vahetusprogrammis. Töö tegemine välisüliõpilastega oli huvitav. Kuid sealsetel praktikantidel ei olnud erilist eelist võrreldes näiteks ŠADi või FKNa praktikantidega. Tundus, et EPFL on Euroopa 20 parima ülikooli seas. Sel hetkel — nagu algaja intervjuujuht — oli mul selline ootus: uskumatult, me viime läbi intervjuud EPFLi üliõpilastega, nad peavad olema superägedad. Kuid inimesed, kes on saanud meie juures baasteadmisi kodeerimise kohta — sealhulgas võtmes piirkondlike ülikoolide lõpetajad — on täiesti meie tasemel.

Või mõni muu lugu. Praegu on mul meeskonnas noormees, alles 20-aastane. Ta töötab Peterburis ja tuli praktikaks. Ta on tõeliselt äge. Nagu tavaliselt, annad inimesele ülesandeid, ta lahendab need, ja kuu pärast tuleb ja ütleb: tegin ära, vaatan ja tundub, et teie arhitektuur on kehvasti üles ehitatud. Teeme ümber. Kood saab lihtsamaks ja selgemaks. Ma proovisin teda veenda: töömaht on suur, kasutajatele pole sellel kasu, kuid idee kõlab täiesti mõistlikult. Inimene mõistis keerulist mitme lõimega protsessi ja pakkus välja täiustusi — võib-olla ei olnud need õigel ajal, refaktooring lihtsalt refaktooringu pärast. Kuid kui tekib soov seda koodi keerulisemaks muuta, saab selle refaktooringu siiski teoks teha. Tegelikult on möödunud paar kuud ja me oleme selle ülesande kallal töötanud. Ma võtsin ta rõõmuga oma meeskonda. Me kõik ei ole geeniused. Saad tulla, mõista midagi ja osutada meile meie probleemidele. Seda hinnatakse.

Misha:

Meil on sellised ideaalsed praktikandid. Kuigi neil puudub kogemus, näevad nad ülesannet mitte ainult tehniliselt, vaid ka globaalset tasandit. Nad pakuvad põhimõttelisi täiustusi. Neil on arusaam, kuidas viia reaalsed ülesanded tehnilisse konteksti, kaotamata mõtet. Nad mõtlevad, mis on lõppeesmärk, kas nüüd tasub süveneda detailidesse või on võimalik lähenemist või isegi ülesande formulatsiooni täielikult muuta. See tähendab, et neil on eelduseks, et jõuda mitme taseme võrra kõrgemale. Selleks peab nad lihtsalt arendama teatud oskusi ja sisemisi tööriistu. Samuti käivitama mitu edukat projekti.

IT praktika: juhi vaade

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster