Praksa u IT-u: pogled menadžera

Praksa u IT-u: pogled menadžera

Zapošljavanje za Ljetno stažiranje u Yandexu se nastavlja. Ide u pet smjerova: backend, ML, mobilni razvoj, frontend i analitika. Na ovom blogu, na drugim blogovima na Habréu i izvan njega, možete pronaći mnogo informacija o tome kako funkcionira stažiranje. No mnogo toga u tom procesu ostaje misterij za one koji ne rade u tvrtki. A ako gledate sa stajališta razvojnih menadžera, postavlja se još više pitanja. Kako pravilno odraditi pripravnički staž, kako maksimalno povećati obostranu korisnost sa pripravnikom, kako ga u tri mjeseca upoznati i naučiti sve što treba za nastavak rada?

Nas pet je pripremilo ovaj članak. Predstavimo se: Ignat Kolesnichenko iz službe distribuirane računalne tehnologije, Misha Levin iz službe Market Machine Intelligence, Denis Malykh iz službe za razvoj aplikacija, Seryozha Berezhnoy iz odjela za razvoj sučelja za pretraživanje i Dima Cherkasov iz razvojne grupe za borbu protiv prijevara. Svatko od nas predstavlja svoje područje prakse. Svi smo mi menadžeri, trebaju nam pripravnici, a imamo i iskustva u radu s njima. Recimo vam nešto iz ovog iskustva.

Intervju prije stažiranja

Kandidate čeka nekoliko tehničkih intervjua. Uspjeh na intervjuu manje ovisi o mekim vještinama (sposobnost učinkovite komunikacije), a više o tvrdim vještinama (vještine matematike i programiranja). Međutim, menadžeri ocjenjuju oboje.

Ignat:

Čak i ako je osoba vrlo cool, ali apsolutno nekomunikativna, neće moći primijeniti sve svoje vještine. Naravno, pazimo na to, ali to nije razlog da nekoga ne primimo na praksu. U tri mjeseca sve se može promijeniti, a osim toga prvi dojam može biti pogrešan. A ako je sve točno, morat ćete objasniti osobi, potražiti druge naredbe. Pripravnicima komunikacijske vještine definitivno nisu ključni faktor. Ipak, profesionalne vještine puno su važnije.

Denis:

Volim ljude koji pričaju priče – na dobar način. Zanimljiva je osoba koja zna ispričati kako su se on i ekipa herojski obračunali s nekim fakapom. Počinjem postavljati dodatna pitanja kad se pojavi ovakva priča. Ali to se rijetko događa ako jednostavno tražite "da ispričate nešto zanimljivo u svojim projektima."

Jedan je kandidat jednom rekao divnu rečenicu, koju sam čak i zapisao: “Uspješno izbjegao rješavanje zamornih problema.”

Praksa u IT-u: pogled menadžera

Budući da vremena za komunikaciju ima malo, voditelj svake minute sastanka nastoji dobiti korisne informacije o kandidatu. Sjajno je ako je pripravnik unaprijed smislio koje pojedinosti iz svog iskustva (ne iz životopisa) može podijeliti. Ovo bi trebala biti kratka priča striktno usmjerena na bit.

Denis:

Obraćam pažnju ako osoba kaže da je isprobala mnoge jezike i pristupe. Ljudi šireg pogleda smišljaju elegantnija rješenja u borbenom načinu rada. Ali ovo je dvosmislen plus. Možete se snaći u tome, ali ne i naučiti ništa.

Vremena za priče koje opisuje Denis najčešće ostaje tek na završnom intervjuu. Do tada je potrebno demonstrirati temeljna i praktična znanja koja će biti temelj budućeg rada. I, naravno, morat ćete napisati kod na ploču ili na komad papira.

Miša:

Provjeravamo znanje iz teorije vjerojatnosti i matematičke statistike. Gledamo ima li osoba iskustva u radu s metrikama, s algoritmima strojnog učenja, s postavljanjem njihovih parametara, s prekvalifikacijom itd. Očekujemo da osoba može pisati kod dovoljno da bude analitičar.

Denis:

Oni koji dolaze na razgovor uglavnom znaju jezike: u Jekaterinburgu imamo dobru školu osnovnih jezika, dobre institute. Ali da budem iskren, kandidat za stažiranje s dobrim vještinama rijedak je slučaj, barem u našem epsilon susjedstvu. Na primjer, Swift. Radi se o vrlo složenom radu sa žicama, a malo je onih koji s njima mogu raditi napamet. Pogled odmah privlači pažnju. Tijekom intervjua često dam zadatak koji je vezan uz obradu stringova. I za sve to vrijeme samo je jedna osoba uspjela napisati takav Swift kod odmah, na komad papira. Nakon toga sam išao okolo i svima govorio da je netko konačno uspio riješiti ovaj problem u Swiftu na komadu papira.

Testiranje algoritama tijekom intervjua

Ovo je posebna tema jer kandidati još uvijek imaju pitanje - zašto uvijek ocjenjujemo poznavanje algoritama i struktura podataka? Čak i budući mobilni programeri i front-end programeri prolaze takvo testiranje.

Miša:

Tijekom intervjua sigurno ćemo dati neku vrstu algoritamskog problema. Kandidat mora smisliti kako to implementirati u Python, po mogućnosti bez grešaka. Morate razumjeti kako provjeriti svoj program i sami ga ispraviti.

Praksa u IT-u: pogled menadžera

Iskustvo u algoritmima je korisno iz tri razloga. Prvo, očito će biti potreban u algoritamskim zadacima - koji se ne događaju često, ali se događaju. Drugo, programer će moći učinkovitije rješavati probleme vezane uz algoritme, čak i ako ne zahtijevaju dublje u same algoritme (a već ih ima dosta). Treće, ako vas na fakultetu nisu učili algoritmima, ali još uvijek znate kako raditi s njima, to vas karakterizira kao radoznalu osobu i povećat će vaš autoritet u očima sugovornika.

Denis:

Velik dio mobilnog razvoja je JSON miješanje. Ali jednom svakih šest mjeseci postoje slučajevi kada su potrebni algoritmi. Trenutno crtam prekrasne karte za Yandex.Weather. I u tjedan dana morao sam implementirati algoritam za izglađivanje, Sutherland-Hodgmanov algoritam i Martinezov algoritam. Da osoba ne zna što je hashmap ili red čekanja prioriteta, dugo bi bila zaglavljena s tim i bilo bi nejasno bi li to uspjela ili ne bez vanjske pomoći.

Algoritmi su osnova razvoja. To je ono što programeru pomaže da bude programer. Nije važno što radite. Također su potrebni u jednostavnim projektima, gdje se glavni posao sastoji od "prevođenja JSON-a". Čak i ako ne pišete same algoritme, već implicitno koristite neke podatkovne strukture, bolje ih je razumjeti. Inače ćete završiti s aplikacijama koje su spore ili netočne.

Postoje programeri koji su ušli u razvoj akademski: upisali su sveučilište, studirali pet godina i dobili specijalizaciju. Znaju algoritme jer su ih naučili. A onda samo poznavanje algoritama ni na koji način ne karakterizira nečije horizonte; taj se horizont mora testirati na drugi način.

A ima i samoukih, u koje se ubrajam. Da, formalno imam informatičko obrazovanje, diplomu softverskog inženjera. Ali samouki ljudi naučili su programirati "unatoč tome". Nisu imali sveučilišni program. Obično nisu upoznati s algoritmima – jer se nikada nisu suočili s potrebom da ih proučavaju. A kada takva osoba razumije algoritme, znači da je potrošila vrijeme i razumjela ih. Nakon što sam završio fakultet, shvatio sam da imam slijepe točke u pogledu temeljnih algoritama - činjenica je da je moja specijalnost bila primijenjena. Išao sam i studirao online tečajeve Sveučilišta Princeton, poznatog Roberta Sedgwicka. Shvatio sam to i napravio sve zadaće. A kada osoba ispriča sličnu priču na intervjuu, odmah me zainteresira, imam želju raditi s njom ili barem nastaviti razgovor.

Praksa u IT-u: pogled menadžera

Ignat:

Kada intervjuirate pripravnika, na neki način očekujete čak i više nego od iskusnog programera. Govorimo o sposobnosti rješavanja algoritamskih problema, brzog pisanja barem nekog ispravnog koda. Kandidat za stažiranje još uvijek je na fakultetu. Prije samo godinu dana detaljno mu je rečeno sve o algoritmima. Očekuje se da ih može reproducirati. Ako je osoba adekvatna i pažljivo slušala predavanja, jednostavno će sve znati, izvući iz predmemorije.

Koje zadatke rješava pripravnik?

Obično se program stažiranja može opisati i raspraviti tijekom završnih razgovora. Tek na samom početku rada pripravniku se mogu dodijeliti zadaci osposobljavanja čiji se rezultati neće koristiti u proizvodnji. Štoviše, vjerojatnost primanja takvih zadataka je mala. Najčešće se borbeni projekti daju iz zaostataka, odnosno onih koji su prepoznati kao vrijedni pažnje, ali ne i prioritetni i "odvojivi" - tako da ostale komponente ne ovise o njihovoj provedbi. Voditelji ih nastoje rasporediti tako da pripravnik upozna različite dijelove usluge i radi u istom okruženju s ostalim članovima tima.

Ignat:

To su izuzetno korisni zadaci. Možda neće povećati iskorištenost klastera za 10% ili uštedjeti tvrtki milijun dolara, ali će usrećiti stotine ljudi. Na primjer, trenutno imamo pripravnika koji radi s našim klijentom kako bi vodio operacije na našim klasterima. Prije početka, operacija mora učitati neke podatke u klaster. To obično traje 20-40 sekundi, a prije se dogodilo nečujno: pokrenuli ste ga na konzoli i sjedili tamo, gledajući u crni ekran. Stažist je došao i napravio značajku za dva tjedna: sada možete vidjeti kako se datoteke učitavaju i što se događa. Zadatak, s jedne strane, nije teško opisati, ali s druge strane, postoji nešto za kopati, koje biblioteke pogledati. Najbolje od svega je što ste to uspjeli, prošao je tjedan dana, pokazalo se da je na klasterima, ljudi ga već koriste. Kada napišete objavu na internoj mreži, oni kažu hvala.

Praksa u IT-u: pogled menadžera

Miša:

Polaznici pripremaju modele, prikupljaju podatke za njih, smišljaju metrike i provode eksperimente. Postupno mu jednostavno počinjemo davati više slobode i odgovornosti – provjeravamo može li to podnijeti. Ako da, prelazi na sljedeću razinu. Ne pretpostavljamo da pripravnik, kada dođe, zna kako sve to učiniti. Voditelj mu pomaže da to shvati, daje mu poveznicu na interni resurs ili online tečaj.

Ako se pripravnik pokaže kao najbolji, može mu se dati nešto prioritetno, važno za odjel ili druge službe.

Dima:

Naš pripravnik sada radi teške modifikacije antifraud-a. Ovo je sustav koji se bori protiv raznih zloupotreba i prijevara na Yandexovim uslugama. Prvo smo mislili dati stvari koje nisu bile jako složene i koje nisu bile jako važne za proizvodnju. Pokušavamo unaprijed promisliti zadatke pripravnika, ali onda smo vidjeli da je osoba “zapalila”, brzo i kvalitetno rješava probleme. Kao rezultat toga, počeli smo mu povjeravati pokretanje novih usluga protiv prijevara.

Osim toga, postoji mala šansa da dobijete zadatak kojem kolege prije nisu pristupili zbog njegovog obima.

Dima:

Postoji jedan stari sustav, a postoji i novi, još nedovršen. Potrebno je prijeći s jednog na drugo. U budućnosti, ovo je važan projekt, iako s velikom neizvjesnošću: morate puno komunicirati, čitati nerazumljiv naslijeđeni kod. Na završnom razgovoru pripravniku smo iskreno rekli da je zadatak težak. Odgovorio je da je spreman, došao je kod nas i sve mu je pošlo za rukom. Pokazalo se da ima kvalitete ne samo programera, već i menadžera. Bio je spreman hodati okolo, saznati, pingati.

Mentorstvo pripravniku

Pripravniku je potreban mentor kako bi se udubio u procese. To je osoba koja je svjesna ne samo svojih zadataka, već i zadataka pripravnika. S mentorom je uspostavljena redovita komunikacija, uvijek mu se možete obratiti za savjet. Mentor može biti ili voditelj grupe (ako se radi o maloj grupi) ili netko od kolega, stalnih članova tima.

Ignat:

Pokušavam doći barem svaki drugi dan i pitati kako je pripravnik. Ako vidim da sam zapeo, pokušam mu pomoći, pitam ga u čemu je problem i iskopam ga s njim. Jasno je da mi to oduzima energiju i čini rad pripravnika ne tako cjelovito učinkovitim - gubim i vrijeme. Ali to mu omogućuje da se ne zaglavi ni u čemu i da postigne rezultate. I još uvijek je brže nego da sam to napravio sam. Meni osobno treba oko 5 sati za zadatak. Pripravnik će to učiniti za 5 dana. I da, potrošit ću 2 sata tijekom ovih 5 dana na razgovor sa stažistom i pomoć. Ali ja ću uštedjeti barem 3 sata, a pripravnik će biti zadovoljan što je dobio savjet i pomoć. Općenito, samo trebate blisko komunicirati, gledati što osoba radi i ne gubiti kontakt.

Praksa u IT-u: pogled menadžera

Serjoža:

Pripravnik je u stalnom kontaktu sa svojim mentorom i komunicira s njim nekoliko puta dnevno. Mentor pregledava kod, programira u paru sa pripravnikom i pomaže kada se pojave problemi. Upravo na taj način, kombinirajući pomoć mentora i stvarne borbene zadaće, obučavamo front-end programere.

Dima:

Kako pripravnik ne bi bio napušten, već prije zapošljavanja razgovaramo tko će mu biti mentor. Velika je to nadogradnja i za samog mentora: priprema za ulogu voditelja tima, provjera sposobnosti da ima na umu i svoj zadatak i zadatak polaznika. Postoje redoviti sastanci, na koje ponekad i sam odem, da budem informiran. Ali mentor je taj koji dosta redovito komunicira sa pripravnikom. U početku troši puno vremena, ali isplati se.

No, imati mentora ne znači da se sva pitanja koja se pojave rješavaju preko njega.

Miša:

Kod nas je običaj da ljudi koji se suoče s problemom pitaju susjede i kolege za savjet i brzo nađu pomoć. Što čovjek brže raste, to češće mora ići kod kolega da nešto nauči. Čak je korisno jednostavno učiti o zadacima drugih ljudi kako biste mogli smisliti nove. Kada se pripravnik može dogovoriti, shvatiti što je drugoj strani važno i doći do rezultata u timu, on će puno brže rasti od nekoga za koga menadžer sve to mora raditi.

Serjoža:

Dokumentacija postoji, ali većina informacija je izgubljena u zraku. Ako to apsorbirate rano u svojoj karijeri, to je dodatna prednost, a mi možemo usredotočiti osobu na ono što treba naučiti.

Idealan pripravnik je netko tko trenira nekoliko mjeseci, postane junior developer, pa samo developer, pa team leader itd. Za to je potreban arhetip studenta kojemu nije neugodno pitati ako mu nešto nije jasno, ali sposoban je i za samostalan rad. Kad bi mu rekli da o tome može negdje pročitati, otišao bi, pročitao i zapravo se vratio s novim saznanjima. Može pogriješiti, ali ne smije pogriješiti više od jednom, najviše dva puta, na istom mjestu. Idealan pripravnik trebao bi se razvijati, upijati sve kao spužva, učiti i rasti. Onaj tko sjedi i pokušava sam sve shvatiti, dugo čeprka okolo i ne postavlja pitanja, teško da će se naviknuti.

Kraj pripravničkog staža

Prije početka rada sa svakim pripravnikom sklapamo ugovor na određeno vrijeme. Naravno, staž je plaćen, formaliziran u skladu s Zakonom o radu Ruske Federacije, a pripravnik ima iste pogodnosti kao i svaki drugi zaposlenik Yandexa. Nakon tri mjeseca program završava - tada mnoge pripravnike prebacujemo u osoblje (na neodređeno vrijeme).

Praksa u IT-u: pogled menadžera

S jedne strane, menadžeru je važno da programer ispuni svoj pripravnički minimum. Ovo je mjesto gdje se pripravnik vodi, počevši od intervjua. Međutim, ovo je tek početak priče. Za nas je pripravnik uvijek potencijalni kandidat za osoblje. Minimalni program za voditelja je da na samom početku identificira osobu koju se nakon tri mjeseca neće sramiti preporučiti drugim odjelima. Maksimalni program je zadržati ga u istom timu, angažirati ga kao člana osoblja. Pritom uzimamo u obzir da će student druge ili treće godine - čak i ako je postao pripravnik - s početkom akademske godine morati nastaviti studij na fakultetu.

Serjoža:

Prije svega, pripravnici su za nas ljudski potencijal. Pokušavamo razviti ljude unutar Yandexa tako da budu idealno prilagođeni našim zadacima. Dajemo im sve, od kulture komunikacije i interakcije u timovima do enciklopedijskog znanja o svim našim sustavima.

Ignat:

Kad uzmemo pripravnika, odmah ga isprobavamo da se pridruži našem timu. I u pravilu je jedina prepreka nedostatak slobodnog mjesta. Trudimo se zaposliti dovoljno mladih ljudi kao pripravnike. Ako osoba ima pet godina iskustva u razvoju, dođe u Yandex i stažira na razini, onda, nažalost, za nas to znači da iako je super dečko, budući da se zaposli u Yandexu s pet godina iskustva, neće moći izrasti u starijeg programera. Obično je to pitanje brzine: spor rast u prošlosti značit će spor rast ovdje. Da, ponekad tek nakon tri mjeseca dođe do spoznaje da osoba nije dorasla zadatku. Ali ovo je prilično rijetko. U više od polovice slučajeva spremni smo zaposliti ljude. U mom sjećanju nikada se nije dogodila situacija da je osoba uspješno završila pripravnički staž, a nije uspjela proći razgovor za stalno radno mjesto.

Miša:

Svim uspješnim pripravnicima nudimo ostanak u tvrtki. Nakon stažiranja, obično preuzimamo više od pola stažiranja na puno radno vrijeme. Ljetna praksa je teža jer nam često dolaze studenti treće godine i teško im je uskladiti posao i učenje.

Dima:

Recimo da pripravnik odlično radi svoj posao i ima puno izgleda da izraste u dobrog programera – čak i ako trenutačno nema dovoljno iskustva. I pretpostavimo da nema slobodnih radnih mjesta za ugovor na neodređeno vrijeme. Onda je sve jednostavno: moram otići do svog menadžera i reći mu - ovo je jako cool osoba, moramo ga zadržati na sve načine, hajdemo mu nešto ponuditi, hajdemo pronaći mjesto gdje ćemo ga smjestiti.

Priče o pripravnicima

Denis:

Djevojka koja je kod nas dobila praksu 2017. bila je iz Perma. To je 400 kilometara od Jekaterinburga prema zapadu. I svaki tjedan dolazila je k nama iz Perma vlakom u Školu mobilnog razvoja. Dolazila je danju, učila navečer, a vraćala se kasno navečer. Cijeneći takav žar, pozvali smo je na posao i isplatilo se.

Ignat:

Prije nekoliko godina sudjelovali smo u programu razmjene pripravnika. Bilo je zanimljivo raditi sa stranim dečkima. Ali pripravnici od tamo nisu ništa jači od npr. ShAD-a ili s Fakulteta računarstva. Čini se da je EPFL među 20 najboljih sveučilišta u Europi. U tom sam trenutku, kao još uvijek ne baš iskusan anketar, očekivao: nevjerojatno, intervjuiramo ljude iz EPFL-a, bit će super cool. Ali pokazalo se da su ljudi koji su ovdje stekli osnovno obrazovanje o kodiranju - uključujući i ključna regionalna sveučilišta - sasvim na visini.

Ili druga priča. Sada imam momka u svom osoblju, vrlo je mlad, ima oko 20 godina. Radi u St. Petersburgu, došao na praksu. On je jako cool. Vi, kao i obično, zadate čovjeku probleme, on ih riješi, a nakon mjesec dana dođe i kaže: riješio sam ih, gledam, izgleda da je vaša arhitektura loše izgrađena. Ponovimo to. Kod će postati jednostavniji i jasniji. Ja sam ga, naravno, razuvjerio: količina posla je velika, nema zarade za korisnike, ali ideja zvuči sasvim razumno. Osoba je shvatila složen proces s više niti i predložila poboljšanja - možda nepravodobna, refactoring radi refactoringa. Ali čim želite zakomplicirati ovaj kod, još uvijek možete napraviti ovo refaktoriranje. Zapravo, prošlo je nekoliko mjeseci i mi smo se prihvatili ovog zadatka. Rado sam ga zaposlio. Nismo svi genijalci. Možete doći, smisliti nešto i ukazati na naše probleme. Ovo je cijenjeno.

Miša:

Imamo takve idealne pripravnike. Unatoč nedostatku iskustva, zadatak ne vide samo na tehničkoj, već i na globalnoj razini. Oni nude temeljna poboljšanja. Oni znaju kako prevesti probleme iz stvarnog svijeta u tehnički svijet bez gubitka njihovog značenja. Pitaju se koji je konačni cilj, isplati li se sada kopati po detaljima ili mogu potpuno promijeniti pristup zadatku ili čak formulaciju problema. To znači da imaju potencijal biti nekoliko razina viši. Da bi krenuli tim putem, samo trebaju nadograditi neke vještine i interne alate. Plus pokrenuti nekoliko uspješnih projekata.

Praksa u IT-u: pogled menadžera

Izvor: www.habr.com

Dodajte komentar