Gyakorlat az informatikában: vezetői látás

Gyakorlat az informatikában: vezetői látás

Toborzás számára nyári gyakorlat a Yandexben folytatódik. Öt irányban halad: háttérrendszer, ML, mobilfejlesztés, frontend és elemzés. Ebben a blogban, a Habré és azon túli blogokban sok betekintést találhat a gyakorlat működéséről. Ebben a folyamatban azonban sok rejtély marad azok számára, akik nem dolgoznak a vállalatnál. És ha a fejlesztési menedzserek szemszögéből nézzük, még több kérdés merül fel. Hogyan kell helyesen lebonyolítani a gyakorlatot, hogyan lehet maximalizálni a kölcsönös hasznosságot egy gyakornokkal, hogyan lehet őt megismerni három hónap alatt, és megtanítani neki mindent, amire szüksége van a munka folytatásához?

Öten készítettük el ezt a cikket. Bemutatkozzunk: Ignat Kolesnichenko az elosztott számítástechnikai szolgáltatástól, Misha Levin a Market gépi intelligencia szolgálattól, Denis Malykh az alkalmazásfejlesztési szolgálattól, Serjozsa Berezsnoj a keresőfelület-fejlesztési részlegtől és Dima Cherkasov a csalás elleni fejlesztő csoporttól. Mindannyian a saját gyakorlati területünket képviseljük. Mindannyian menedzserek vagyunk, gyakornokokra van szükségünk, és van némi tapasztalatunk a velük való együttműködésben. Hadd mondjunk el valamit ebből a tapasztalatból.

Interjú a gyakorlat előtt

Számos technikai interjú vár a jelentkezőkre. Az interjú sikere kevésbé függ a puha készségektől (a hatékony kommunikáció képességétől), hanem inkább a kemény készségektől (matematikai és programozási készségek). A vezetők azonban mindkettőt értékelik.

Ignat:

Még ha egy személy nagyon menő is, de abszolút nem kommunikál, nem fogja tudni alkalmazni minden képességét. Természetesen erre odafigyelünk, de ez nem ok arra, hogy ne vegyünk fel valakit gyakorlatra. Három hónap alatt minden megváltozhat, ráadásul az első benyomásod tévesnek bizonyulhat. És ha minden helyes, akkor el kell magyaráznia a személynek, keresnie kell más parancsokat. A gyakornokok számára a kommunikációs készség semmiképpen nem kulcsfontosságú tényező. Ennek ellenére a szakmai készségek sokkal fontosabbak.

Denis:

Szeretem az embereket, akik mesélnek – a jó értelemben. Érdekes az a személy, aki el tudja mondani, hogy ő és csapata hősiesen kezelt néhány fakapot. Elkezdek utólagos kérdéseket feltenni, amikor előkerül egy ilyen történet. De ez ritkán történik meg, ha egyszerűen azt kéri, hogy „meséljen el valami érdekeset a projektjeiben”.

Egy jelölt mondott egyszer egy csodálatos mondatot, amit le is írtam: „Sikeresen elkerültem az unalmas problémák megoldását.”

Gyakorlat az informatikában: vezetői látás

Mivel kevés idő jut a kommunikációra, a kérdező a találkozó minden percében igyekszik hasznos információkat szerezni a jelöltről. Nagyon jó, ha a gyakornok előre kitalálta, hogy tapasztalataiból (nem az önéletrajzából) milyen részleteket oszthat meg. Ennek szigorúan lényegre törő novellának kell lennie.

Denis:

Figyelem, ha valaki azt mondja, hogy sok nyelvet és megközelítést kipróbált. A szélesebb látókörű emberek harci módban elegánsabb megoldásokkal állnak elő. De ez egy kétértelmű plusz. Rá lehet jönni, de nem tanulhatsz meg semmit.

A Denis által leírt történetekre általában csak az utolsó interjúnál marad idő. Addig is be kell mutatni azokat az alapvető és gyakorlati ismereteket, amelyek a jövőbeni munka alapját képezik. És természetesen fel kell írnia a kódot egy táblára vagy egy papírra.

Misha:

Teszteljük a valószínűségszámítás és a matematikai statisztika ismereteit. Megvizsgáljuk, hogy az illetőnek van-e tapasztalata metrikákkal, gépi tanulási algoritmusokkal, paramétereik beállításával, átképzésével stb.

Denis:

Az interjúra érkezők többnyire tudnak nyelveket: Jekatyerinburgban van egy jó alapnyelvi iskola, jó intézetünk. De hogy őszinte legyek, a jó kemény képességekkel rendelkező gyakornoki jelölt ritka eset, legalábbis a mi epszilon környékünkön. Például a Swift. Ez nagyon összetett húrokkal végzett munkát foglal magában, és kevesen tudnak velük dolgozni. A szem azonnal felkelti a figyelmét. Az interjúk során gyakran adok olyan feladatot, ami a húrfeldolgozással kapcsolatos. És ennyi idő alatt egyetlen ember volt, aki egyből, egy darab papírra tudott ilyen Swift kódot írni. Utána körbejártam mindenkinek, hogy végre valaki meg tudta oldani ezt a problémát Swiftben egy papíron.

Algoritmusok tesztelése interjú során

Ez egy külön téma, mert a jelentkezőknek továbbra is felmerül egy kérdésük: miért értékeljük mindig az algoritmusok és adatstruktúrák ismeretét? Még a jövőbeli mobilfejlesztők és front-end fejlesztők is átesnek ilyen teszteken.

Misha:

Az interjú során biztosan adunk valamilyen algoritmikus feladatot. A jelöltnek ki kell találnia, hogyan valósítsa meg Pythonban, lehetőleg hiba nélkül. Meg kell értenie, hogyan ellenőrizheti a programot, és hogyan javíthatja ki.

Gyakorlat az informatikában: vezetői látás

Az algoritmusokkal kapcsolatos tapasztalat három okból is hasznos. Először is nyilvánvalóan szükség lesz rá az algoritmikus feladatokban - amelyek nem gyakran, de előfordulnak. Másodszor, a fejlesztő hatékonyabban tudja majd megoldani az algoritmusokkal kapcsolatos problémákat, még akkor is, ha nem kell belemerülni magukba az algoritmusokba (és már jó néhány van belőlük). Harmadszor, ha nem tanítottak neked algoritmusokat az egyetemen, de tudsz velük dolgozni, akkor ez érdeklődő emberként jellemez, és növeli tekintélyedet az interjúalany szemében.

Denis:

A mobilfejlesztés nagy része a JSON keverés. De félévente egyszer vannak olyan esetek, amikor algoritmusokra van szükség. Jelenleg gyönyörű térképeket rajzolok a Yandex.Weather számára. És egy hét alatt meg kellett valósítanom a simító algoritmust, a Sutherland-Hodgman algoritmust és a Martinez algoritmust. Ha valaki nem tudná, mi az a hashmap vagy a prioritási sor, akkor már régóta elakadt volna, és nem világos, hogy külső segítség nélkül sikerült volna-e vagy sem.

Az algoritmusok a fejlesztés alapjai. Ez segíti a fejlesztőt abban, hogy fejlesztő legyen. Nem számít, mit csinálsz. Egyszerű projektekben is szükség van rájuk, ahol a fő munka a „JSON fordítása”. Még ha nem is magukat az algoritmusokat írja meg, hanem implicit módon használ néhány adatstruktúrát, jobb megérteni őket. Ellenkező esetben lassú vagy helytelen alkalmazásokat fog kapni.

Vannak programozók, akik akadémiailag jöttek a fejlesztésbe: bekerültek az egyetemre, öt évig tanultak, és szakot is kaptak. Ismerik az algoritmusokat, mert megtanították őket. És akkor maga az algoritmusok ismerete semmiképpen sem jellemzi az ember horizontját, ezt a horizontot más módon kell tesztelni.

És vannak autodidakta emberek, akiknek magam is közé tartozom. Igen, formálisan informatikai végzettségem van, szoftvermérnöki diplomám. De az autodidakta emberek megtanultak programozni „annak ellenére”. Nem volt egyetemi programjuk. Általában nem ismerik az algoritmusokat, mert soha nem szembesültek azzal, hogy tanulmányozzák őket. És ha egy ilyen személy megérti az algoritmusokat, az azt jelenti, hogy időt töltött és megértette őket. Az egyetem elvégzése után rájöttem, hogy az alapvető algoritmusokat tekintve vakfoltjaim vannak – tény, hogy a szakterületemet alkalmazták. Elmentem és online kurzusokat tanultam a Princeton Egyetemen, a jól ismert Robert Sedgwicken. Rájöttem, és megcsináltam az összes házi feladatomat. És ha valaki elmesél egy hasonló történetet egy interjú során, azonnal érdekelni kezd, vágyam vele dolgozni, vagy legalább folytatni a beszélgetést.

Gyakorlat az informatikában: vezetői látás

Ignat:

Amikor interjút készít egy gyakornokkal, bizonyos szempontból még többet vár el, mint egy tapasztalt fejlesztőtől. Arról beszélünk, hogy képesek vagyunk algoritmikus problémákat megoldani, gyorsan írni legalább néhány helyes kódot. A gyakornoki jelölt még az egyetemen van. Alig egy éve mindent elmeséltek neki az algoritmusokról. Várhatóan képes reprodukálni őket. Ha valaki adekvát és figyelmesen hallgatja az előadásokat, akkor egyszerűen mindent tud, megkapja a gyorsítótárból.

Milyen feladatokat old meg a gyakornok?

A gyakornoki program jellemzően az utolsó interjúk során körvonalazható és megbeszélhető. Csak a munka kezdetén lehet gyakornoknak olyan képzési feladatokat kijelölni, amelyek eredményeit nem használják fel a termelésben. Ezenkívül kicsi az esélye, hogy ilyen feladatokat kapjanak. Leggyakrabban a harci projekteket a lemaradásból adják meg, vagyis azokat, amelyeket figyelemre méltónak, de nem prioritásnak és „elválaszthatónak” ismernek el - hogy más összetevők ne függjenek végrehajtásuktól. A menedzserek igyekeznek ezeket úgy elosztani, hogy a gyakornok megismerje a szolgáltatás különböző részeit, és ugyanabban a környezetben dolgozzon a többi csapattaggal.

Ignat:

Ezek rendkívül hasznos feladatok. Lehet, hogy nem növelik 10%-kal a klaszter kihasználtságát, vagy egymillió dollárt takarítanak meg a cégnek, de emberek százait teszik majd boldoggá. Például jelenleg van egy gyakornokunk, aki ügyfelünkkel dolgozik a klasztereinken végzett műveletek végrehajtásában. Indítás előtt a műveletnek be kell töltenie néhány adatot a fürtbe. Ez általában 20–40 másodpercet vesz igénybe, és azelőtt csendben történt: elindítottad a konzolban, és ott ültél, és egy fekete képernyőt néztél. Jött a gyakornok, és két hét alatt elkészítette a funkciót: most láthatja, hogyan töltik fel a fájlokat, és mi történik. A feladatot egyrészt nem nehéz leírni, másrészt van mit ásni, milyen könyvtárakat nézegetni. A legjobb az egészben, hogy megcsináltad, eltelt egy hét, kiderült, hogy klasztereken van, az emberek már használják. Amikor bejegyzést ír a belső hálózaton, köszönetet mond.

Gyakorlat az informatikában: vezetői látás

Misha:

A gyakornokok modelleket készítenek, adatokat gyűjtenek hozzájuk, mérőszámokat dolgoznak ki és kísérleteket végeznek. Fokozatosan egyszerűen elkezdünk több szabadságot és felelősséget adni neki – ellenőrizzük, hogy bírja-e ezt. Ha igen, akkor a következő szintre lép. Nem feltételezzük, hogy amikor bejön egy gyakornok, tudja, hogyan kell csinálni az egészet. A menedzser segít neki kitalálni, ad egy hivatkozást egy belső forráshoz vagy online tanfolyamhoz.

Ha egy gyakornok a legjobbnak mutatja magát, akkor valami elsőbbséget kaphat, ami fontos az osztály vagy más szolgáltatások számára.

Dima:

Gyakornunk jelenleg kemény módosításokat végez a csalás elleni küzdelemben. Ez egy olyan rendszer, amely a Yandex szolgáltatásokon belüli visszaélések és csalások széles skálájával küzd. Először arra gondoltunk, hogy olyan dolgokat adunk, amelyek nem túl bonyolultak és nem túl fontosak a gyártás szempontjából. Igyekszünk előre átgondolni a gyakornok feladatait, de aztán láttuk, hogy az illető „égett”, gyorsan és jól megoldja a problémákat. Ennek eredményeként elkezdtük őt megbízni az új szolgáltatások csalás elleni küzdelemmel.

Emellett kicsi az esély arra, hogy olyan feladatot kapjanak, amelyet a kollégák korábban nem kerestek meg terjedelme miatt.

Dima:

Van egy régi rendszer, és van egy új, még nem készült el. Át kell lépni egyikről a másikra. A jövőben ez egy fontos projekt, bár nagy bizonytalansággal: sokat kell kommunikálni, értelmezhetetlen örökölt kódot olvasni. Az utolsó interjún őszintén elmondtuk a gyakornoknak, hogy nehéz a feladat. Azt válaszolta, hogy készen áll, bejött a csapatunkhoz, és minden sikerült neki. Kiderült, hogy nemcsak fejlesztői, hanem menedzser tulajdonságaival is rendelkezik. Készen állt, hogy körbejárjon, tájékozódjon, pingáljon.

Gyakornok mentorálása

Egy gyakornoknak mentorra van szüksége, hogy elmerüljön a folyamatokban. Ez az a személy, aki nem csak a saját, hanem a gyakornok feladataival is tisztában van. A mentorral rendszeres kommunikáció jön létre, bármikor fordulhat hozzá tanácsért. A mentor lehet a csoportvezető (ha kiscsoportról van szó) vagy valamelyik kolléga, rendszeres csapattag.

Ignat:

Igyekszem legalább kétnaponta feljönni és megkérdezni, hogy van a gyakornok. Ha látom, hogy elakadtam, megpróbálok segíteni neki, megkérdezem, mi a probléma, és kiásom vele. Egyértelmű, hogy ez elveszi az energiámat, és a gyakornok munkáját nem annyira eredményessé teszi - én is vesztegetem az időmet. De ez lehetővé teszi számára, hogy ne ragadjon bele semmibe, és eredményeket érjen el. És még mindig gyorsabb, mintha magam csinálnám. Jómagam körülbelül 5 órára van szükségem a feladathoz. A gyakornok 5 napon belül megcsinálja. És igen, ez alatt az 2 nap alatt 5 órát fogok csevegni a gyakornokkal és segíteni. De legalább 3 órát megspórolok, és a gyakornok örülni fog, hogy tanácsot és segítséget kapott. Általában csak szorosan kell kommunikálnia, figyelnie kell, mit csinál az illető, és nem kell elveszítenie a kapcsolatot.

Gyakorlat az informatikában: vezetői látás

Seryozha:

A gyakornok folyamatosan kapcsolatban áll mentorával, és naponta többször is kommunikál vele. A mentor áttekinti a kódot, párosítja a programozást a gyakornokkal, és segít, ha bármilyen probléma merül fel. Ilyen módon, a mentor segítségét és a valódi harci feladatokat kombinálva képezzük ki a front-end fejlesztőket.

Dima:

A gyakornok elhagyásának elkerülése érdekében már a felvétel előtt megbeszéljük, hogy ki fogja mentorálni. Ez magának a mentornak is nagy fejlesztés: felkészülés a csapatvezetői szerepre, annak tesztelése, hogy képes-e szem előtt tartani a saját és a gyakornok feladatát. Rendszeresen vannak találkozók, amelyekre néha magam is elmegyek, hogy tájékozódjak. De a mentor az, aki rendszeresen kommunikál a gyakornokokkal. Eleinte sok időt tölt, de megtérül.

A mentor azonban nem jelenti azt, hogy minden felmerülő probléma rajta keresztül megoldódik.

Misha:

Nálunk bevett szokás, hogy a problémával szembesültek a szomszédoktól, kollégáktól kérnek tanácsot, és gyorsan segítséget kapnak. Minél gyorsabban nő az ember, annál gyakrabban kell elmennie a kollégáihoz, hogy tanuljon valamit. Még az is hasznos, ha egyszerűen megismeri mások feladatait, így újakat találhat ki. Ha egy gyakornok meg tud egyezkedni, megérteni, mi a fontos a másik fél számára, és csapatban eredményre jut, sokkal gyorsabban fog növekedni, mint az, akiért mindezt a menedzsernek kell megtennie.

Seryozha:

Van dokumentáció, de a legtöbb információ elveszett a levegőben. Ha karrierje korai szakaszában elsajátítja ezt, az további előnyt jelent, és arra összpontosíthatjuk az embert, hogy mit kell tanulnia.

Az ideális gyakornok az, aki több hónapig edz, junior fejlesztő lesz, majd csak fejlesztő, majd csapatvezető, stb. Ehhez egy olyan hallgató archetípusa kell, aki nem szégyell megkérdezni, ha valami nem világos számára, hanem önálló munkára is képes. Ha azt mondták neki, hogy valahol olvashat róla, elment, elolvasta, és valóban új ismeretekkel tért vissza. Hibázhat, de ugyanazon a helyen többször, maximum kétszer nem szabad hibáznia. Az ideális gyakornok fejlődjön, szivacsként szívjon fel mindent, tanuljon és fejlődjön. Aki ül, és mindent egyedül próbál kitalálni, sokáig turkál, és nem kérdez semmit, az nem valószínű, hogy megszokja.

Vége a szakmai gyakorlatnak

A munka megkezdése előtt minden gyakornokkal határozott idejű szerződést kötünk. Természetesen a gyakorlatot fizetik, az Orosz Föderáció Munka Törvénykönyvének megfelelően formalizálják, és a gyakornok ugyanolyan előnyökkel jár, mint bármely más Yandex alkalmazott. Három hónap elteltével a program véget ér – ezután a gyakornokok nagy részét áthelyezzük a személyzethez (határozatlan idejű szerződéssel).

Gyakorlat az informatikában: vezetői látás

Egyrészt a vezető számára fontos, hogy a fejlesztő teljesítse a gyakorlati minimumát. Ide vezetik a gyakornokot, kezdve az interjúval. Ez azonban csak a történet kezdete. Számunkra a gyakornok mindig potenciális munkatársjelölt. A vezető minimális programja az, hogy a legelején azonosítsa azt a személyt, akit három hónap után nem szégyell más osztályoknak ajánlani. A maximális program az, hogy ugyanabban a csapatban maradjon, és alkalmazottként alkalmazzák. Ugyanakkor figyelembe vesszük, hogy a másod-, harmadéves hallgatónak - még akkor is, ha gyakornok lett - a tanév kezdetével egyetemen kell továbbtanulnia.

Seryozha:

Először is, a gyakornokok számunkra humán erőforrás potenciált jelentenek. Arra törekszünk, hogy a Yandexen belül embereket gyarapítsunk, hogy azok ideálisan megfeleljenek feladatainknak. Mindent megadunk nekik, a kommunikáció és a csapatok közötti interakció kultúrájától az összes rendszerünkről szóló enciklopédikus tudásig.

Ignat:

Amikor felveszünk egy gyakornokot, azonnal kipróbáljuk, hogy csatlakozzon a csapatunkhoz. És általában az egyetlen akadály az üresedés hiánya. Igyekszünk elég fiatal srácot felvenni gyakornoknak. Ha valakinek öt év fejlesztői tapasztalata van, jön a Yandexhez és szinten gyakornok, akkor sajnos ez azt jelenti számunkra, hogy bár remek srác, hiszen öt év munkaviszonyával kap munkát a Yandexnél. tapasztalattal, nem lesz képes vezető fejlesztővé nőni. Ez általában sebesség kérdése: a múlt lassú növekedése itt lassú növekedést jelent. Igen, néha csak három hónap után jön rá a felismerés, hogy az ember nem alkalmas a feladatra. De ez elég ritka. Az esetek több mint felében készen állunk alkalmazottak felvételére. Emlékeim szerint még nem fordult elő olyan helyzet, hogy valaki sikeresen teljesített volna egy szakmai gyakorlatot, de nem tudott átmenni egy főállású állásinterjún.

Misha:

Minden sikeres gyakornoknak a cégnél maradást ajánlunk. Szakmai gyakorlat után általában több mint felét vállaljuk teljes munkaidőre. A nyári gyakorlatok azért nehezebbek, mert gyakran harmadéves hallgatók érkeznek hozzánk, és nehéz összeegyeztetniük a munkát és a tanulást.

Dima:

Tegyük fel, hogy a gyakornok nagyszerű munkát végez, és sok kilátása van arra, hogy jó fejlesztővé váljon – még akkor is, ha jelenleg nincs elég tapasztalata. És tegyük fel, hogy nincs üresedés egy határozatlan idejű szerződésre. Aztán minden egyszerű: el kell mennem a menedzseremhez, és elmondani neki - ez egy nagyon klassz ember, mindenképpen meg kell tartanunk, kínáljunk neki valamit, keressünk egy helyet, ahol elhelyezhetjük.

Történetek a gyakornokokról

Denis:

A lány, aki 2017-ben nálunk szerzett gyakorlatot, Permből származott. Ez Jekatyerinburgtól 400 kilométerre van nyugatra. És minden héten eljött hozzánk Permből vonattal a Mobilfejlesztő Iskolába. Napközben jött, este tanult, és késő este ment vissza. Értékelve ezt a lelkesedést, munkára hívtuk, és ez kifizetődött.

Ignat:

Néhány évvel ezelőtt részt vettünk egy gyakornoki csereprogramban. Érdekes volt külföldi srácokkal dolgozni. De az onnan érkező hallgatók semmivel sem erősebbek, mint például a Shad-ről vagy a Számítástudományi Karról. Úgy tűnik, hogy az EPFL Európa legjobb 20 egyeteme között van. Abban a pillanatban, mint még nem túl tapasztalt kérdező, ez volt az elvárásom: hihetetlen, az EPFL-ből kérdezünk embereket, nagyon menők lesznek. De azok az emberek, akik itt – többek között a kulcsfontosságú regionális egyetemeken – kaptak alapképzést a kódolásról, eléggé megfelelőnek bizonyulnak.

Vagy egy másik történet. Most van egy srác a stábomban, nagyon fiatal, körülbelül 20 éves. Szentpéterváron dolgozik, szakmai gyakorlatra jött. Nagyon menő. Szokás szerint problémákat adsz az embernek, ő megoldja azokat, és egy hónappal később jön, és azt mondja: Megoldottam, nézem, és úgy tűnik, hogy az építészeted rosszul van felépített. Csináljuk újra. A kód egyszerűbb és világosabb lesz. Természetesen lebeszéltem: a munka mennyisége nagy, a felhasználóknak nincs nyeresége, de az ötlet teljesen ésszerűnek hangzik. A személy kitalált egy összetett, többszálú folyamatot, és fejlesztéseket javasolt - talán nem időszerűeket, átalakítást az átalakítás érdekében. De amint bonyolítani akarja ezt a kódot, továbbra is elvégezheti ezt az átalakítást. Tulajdonképpen több hónap is eltelt, és elvállaltuk ezt a feladatot. Örömmel vettem fel. Nem vagyunk mindannyian zsenik. Jöhetsz, kitalálsz valamit, és rámutathatsz a problémáinkra. Ezt értékelik.

Misha:

Ilyen ideális gyakornokaink vannak. Tapasztalatlanságuk ellenére nem csak technikai, hanem globális szinten is látják a feladatot. Alapvető fejlesztéseket kínálnak. Megértik, hogyan lehet a problémákat a való világból a technikai világba fordítani anélkül, hogy elveszítenék értelmüket. Kíváncsiak arra, hogy mi a végső cél, érdemes-e most a részletekbe ásni, vagy teljesen megváltoztathatják a feladat megközelítését, vagy akár a probléma megfogalmazását. Ez azt jelenti, hogy több szinttel magasabbak lehetnek. Ahhoz, hogy ezt az utat járhassák, csak frissíteniük kell néhány készségüket és belső eszközeiket. Plusz több sikeres projekt elindítása.

Gyakorlat az informatikában: vezetői látás

Forrás: will.com

Hozzászólás