Stáž v IT: pohled manažera

Stáž v IT: pohled manažera

Nábor pro letní stáž v Yandexu pokračuje. Jde v pěti směrech: backend, ML, mobilní vývoj, frontend a analytika. V tomto blogu, v dalších blozích o Habré i mimo ni, můžete najít spoustu informací o tom, jak stáž funguje. Ale mnoho z tohoto procesu zůstává záhadou pro ty, kteří ve společnosti nepracují. A když se podíváte z pohledu vývojových manažerů, vyvstávají ještě další otázky. Jak správně vést stáž, jak maximalizovat vzájemnou užitečnost se stážistou, jak ho za tři měsíce poznat a naučit ho vše potřebné k další práci?

Tento článek připravilo pět z nás. Pojďme se představit: Ignat Kolesnichenko ze služby distribuované výpočetní techniky, Misha Levin ze služby Market machine intelligence, Denis Malykh ze služby vývoje aplikací, Seryozha Berezhnoy z oddělení vývoje vyhledávacího rozhraní a Dima Cherkasov z vývojové skupiny pro boj proti podvodům. Každý z nás reprezentuje svou vlastní oblast stáže. Všichni jsme manažeři, potřebujeme stážisty a s prací s nimi máme nějaké zkušenosti. Řekneme vám něco z této zkušenosti.

Pohovor před stáží

Na uchazeče čeká několik technických pohovorů. Úspěch u pohovoru závisí méně na měkkých dovednostech (schopnost efektivně komunikovat) a více na tvrdých dovednostech (dovednosti v matematice a programování). Manažeři však hodnotí obojí.

Ignat:

I když je člověk hodně v pohodě, ale absolutně nekomunikativní, nedokáže uplatnit všechny své dovednosti. Samozřejmě na to dbáme, ale to není důvod, proč někoho na stáž nevzít. Za tři měsíce se může všechno změnit a kromě toho se váš první dojem může ukázat jako mylný. A pokud je vše v pořádku, budete muset osobě vysvětlit, hledat další příkazy. Pro stážisty nejsou komunikační dovednosti rozhodně klíčovým faktorem. Mnohem důležitější jsou však profesionální dovednosti.

Denis:

Mám rád lidi, kteří vyprávějí příběhy – v dobrém slova smyslu. Zajímavý je člověk, který dokáže vyprávět, jak se on a jeho tým hrdinně vypořádali s nějakým fakapem. Když se objeví podobný příběh, začnu klást doplňující otázky. To se však zřídka stává, pokud se jednoduše zeptáte „vyprávět o něčem zajímavém ve vašich projektech“.

Jeden kandidát jednou řekl úžasnou frázi, kterou jsem si dokonce zapsal: „Úspěšně jsem se vyhnul řešení únavných problémů.“

Stáž v IT: pohled manažera

Jelikož je na komunikaci málo času, snaží se tazatel každou minutu schůzky získat užitečné informace o kandidátovi. Je skvělé, když stážista předem zjistil, jaké podrobnosti o svých zkušenostech (ne ze svého životopisu) by mohl sdílet. Toto by měla být krátká povídka přísně k věci.

Denis:

Věnuji pozornost, pokud člověk říká, že vyzkoušel mnoho jazyků a přístupů. Lidé s širším rozhledem přicházejí s elegantnějšími řešeními v bojovém režimu. Ale to je nejednoznačné plus. Můžete se tomu naučit, ale vlastně se nic nenaučíte.

Čas na příběhy popisované Denisem většinou zůstává až u závěrečného rozhovoru. Do té doby je nutné prokázat základní a praktické znalosti, které budou tvořit základ budoucí práce. A samozřejmě budete muset napsat kód na tabuli nebo na kus papíru.

Míša:

Ověřujeme znalosti z teorie pravděpodobnosti a matematické statistiky. Díváme se na to, zda má daný člověk zkušenosti s prací s metrikami, s algoritmy strojového učení, s nastavováním jejich parametrů, s rekvalifikací atd. Očekáváme, že daný člověk umí psát kód natolik, aby mohl být analytikem.

Denis:

Ti, kteří přijdou na pohovor, většinou umí jazyky: v Jekatěrinburgu máme dobrou školu základních jazyků, dobré instituty. Ale abych byl upřímný, kandidát na stáž s dobrými hard skills je vzácný případ, alespoň v našem epsilon sousedství. Například Swift. Jde o velmi složitou práci se strunami a málokdo s nimi dokáže pracovat z hlavy. Oko okamžitě upoutá vaši pozornost. Při pohovorech často zadávám úkol, který souvisí se zpracováním řetězců. A za celou tu dobu byl jen jeden člověk, který dokázal takový Swift kód napsat hned, na kus papíru. Poté jsem všem vyprávěl, že konečně někdo dokázal vyřešit tento problém ve Swiftu na kusu papíru.

Testování algoritmů během rozhovoru

Toto je samostatné téma, protože kandidáti mají stále otázku – proč vždy posuzujeme znalost algoritmů a datových struktur? Dokonce i budoucí mobilní vývojáři a front-end vývojáři podstupují takové testování.

Míša:

Během rozhovoru jsme si jisti, že zadáme nějaký algoritmický problém. Kandidát musí přijít na to, jak to implementovat v Pythonu, nejlépe bez chyb. Musíte pochopit, jak svůj program zkontrolovat a opravit sami.

Stáž v IT: pohled manažera

Zkušenosti s algoritmy jsou užitečné ze tří důvodů. Za prvé to bude samozřejmě potřeba v algoritmických úlohách - které se nestávají často, ale stávají se. Za druhé, vývojář bude schopen efektivněji řešit problémy související s algoritmy, i když nevyžadují ponoření se do samotných algoritmů (a těch už je poměrně dost). Za třetí, pokud jste se na univerzitě neučili algoritmy, ale stále víte, jak s nimi pracovat, pak vás to charakterizuje jako zvídavého člověka a zvýší vaši autoritu v očích dotazovaného.

Denis:

Velkou součástí mobilního vývoje je míchání JSON. Ale jednou za šest měsíců existují případy, kdy jsou algoritmy potřeba. Momentálně kreslím krásné mapy pro Yandex.Weather. A za týden jsem musel implementovat vyhlazovací algoritmus, Sutherland-Hodgmanův algoritmus a Martinezův algoritmus. Pokud by člověk nevěděl, co je to hashmap nebo prioritní fronta, zůstal by u toho na dlouho a nebylo by jasné, zda by to bez cizí pomoci zvládl nebo ne.

Základem vývoje jsou algoritmy. To pomáhá vývojáři být vývojářem. Je jedno, co děláš. Jsou také potřeba v jednoduchých projektech, kde hlavní práce spočívá v „překládání JSON“. I když nepíšete samotné algoritmy, ale implicitně používáte nějaké datové struktury, je lepší jim porozumět. V opačném případě skončíte s aplikacemi, které jsou pomalé nebo nesprávné.

Existují programátoři, kteří vstoupili do vývoje akademicky: nastoupili na univerzitu, studovali pět let a získali specializaci. Znají algoritmy, protože je učili. A pak znalost algoritmů sama o sobě nijak necharakterizuje horizonty člověka, tento horizont je třeba testovat jiným způsobem.

A jsou tu samouci, mezi které se počítám. Ano, formálně mám IT vzdělání, diplom v softwarovém inženýrství. Ale samouci se naučili programovat „navzdory tomu“. Neměli univerzitní program. Obvykle nejsou obeznámeni s algoritmy - protože nikdy nečelili potřebě je studovat. A když takový člověk rozumí algoritmům, znamená to, že strávil čas a rozuměl jim. Po absolvování univerzity jsem si uvědomil, že mám slepá místa, pokud jde o základní algoritmy - faktem je, že moje specialita byla aplikována. Šel jsem a studoval jsem online kurzy z Princetonské univerzity, dobře známého Roberta Sedgwicka. Přišel jsem na to a udělal všechny domácí úkoly. A když člověk při rozhovoru vypráví podobný příběh, okamžitě mě to zaujme, mám chuť s ním pracovat nebo alespoň pokračovat v rozhovoru.

Stáž v IT: pohled manažera

Ignat:

Když vedete pohovor se stážistou, v některých ohledech očekáváte ještě více než od zkušeného vývojáře. Mluvíme o schopnosti řešit algoritmické problémy, rychle napsat alespoň nějaký správný kód. Zájemce o stáž je stále na univerzitě. Právě před rokem mu bylo podrobně řečeno vše o algoritmech. Očekává se, že je dokáže reprodukovat. Pokud je člověk adekvátní a pozorně poslouchá přednášky, bude prostě vědět všechno, dostane to z keše.

Jaké úkoly stážista řeší?

Typicky lze program stáže nastínit a prodiskutovat během závěrečných pohovorů. Pouze na samém začátku práce mohou být stážistovi zadány školicí úkoly, jejichž výsledky nebudou použity ve výrobě. Navíc pravděpodobnost přijetí takových úkolů je malá. Nejčastěji jsou bojové projekty uváděny z nevyřízených projektů, to znamená těch, které jsou považovány za hodné pozornosti, ale nejsou prioritní a „oddělitelné“ - takže na jejich realizaci nezávisí ostatní složky. Manažeři se je snaží distribuovat tak, aby stážista poznal různé části služby a pracoval ve stejném prostředí s ostatními členy týmu.

Ignat:

To jsou mimořádně užitečné úkoly. Možná nezvýší využití clusteru o 10 %, ani neušetří společnosti milion dolarů, ale udělají radost stovkám lidí. V současné době máme například stážistu, který spolupracuje s naším klientem na provozování operací na našich clusterech. Před zahájením operace musí načíst některá data do clusteru. Obvykle to trvá 20–40 sekund a než se to stalo potichu: spustili jste to v konzole a seděli tam a dívali se na černou obrazovku. Stážista přišel a funkci vytvořil za dva týdny: nyní můžete vidět, jak se soubory nahrávají a co se děje. Úkol na jednu stranu není těžké popsat, ale na druhou stranu je do čeho hrabat, do jakých knihoven se dívat. Nejlepší na tom je, že jste to udělali, uplynul týden a ukázalo se, že je to na clusterech, lidé to už používají. Když napíšete příspěvek na vnitřní síť, děkují.

Stáž v IT: pohled manažera

Míša:

Školenci připravují modely, shromažďují pro ně data, vymýšlejí metriky a provádějí experimenty. Postupně mu prostě začneme dávat větší volnost a zodpovědnost – kontrolujeme, zda to zvládne. Pokud ano, postoupí na další úroveň. Nepředpokládáme, že když přijde stážista, že to všechno umí. Manažer mu pomůže na to přijít, dá mu odkaz na interní zdroj nebo online kurz.

Pokud se stážista projeví jako nejlepší, může dostat něco přednostního, důležitého pro oddělení nebo jiné služby.

Dima:

Náš stážista nyní provádí tvrdé úpravy boje proti podvodům. Jedná se o systém, který bojuje proti široké škále zneužívání a podvodů ve službách Yandex. Nejprve nás napadlo dát věci, které nebyly příliš složité a pro výrobu málo důležité. Snažíme se předem promyslet úkoly stážisty, ale pak jsme viděli, že ten člověk „hoří“ a problémy řeší rychle a dobře. V důsledku toho jsme mu začali pověřovat spuštěním boje proti podvodům u nových služeb.

Navíc je malá šance na obdržení úkolu, ke kterému kolegové kvůli jeho objemu dříve nepřistoupili.

Dima:

Existuje jeden starý systém a jeden nový, ještě nedokončený. Je nutné přejít od jednoho k druhému. Do budoucna jde o důležitý projekt, i když s vysokou nejistotou: musíte hodně komunikovat, číst nesrozumitelný legacy kód. Na závěrečném pohovoru jsme stážistovi upřímně řekli, že úkol je těžký. Odpověděl, že je připraven, přišel k nám do týmu a všechno mu vyšlo. Ukázalo se, že má kvality nejen vývojáře, ale i manažera. Byl připraven se projít, zjistit, pingnout.

Mentorování stážisty

Stážista potřebuje mentora, aby se mohl ponořit do procesů. Jedná se o člověka, který si je vědom nejen svých vlastních úkolů, ale i úkolů stážisty. S mentorem je navázána pravidelná komunikace, vždy se na něj můžete obrátit o radu. Mentorem může být buď vedoucí skupiny (pokud se jedná o malou skupinu), nebo některý z kolegů, řádných členů týmu.

Ignat:

Snažím se přijít alespoň každý druhý den a zeptat se, jak se stážistovi daří. Pokud vidím, že jsem zasekl, snažím se mu pomoci, ptám se ho, v čem je problém, a vyhrabu to s ním. Je jasné, že mi to ubírá energii a práce stážisty není tak integrálně efektivní – také ztrácím čas. To mu ale umožňuje nezabřednout do ničeho a dosáhnout výsledků. A pořád je to rychlejší, než kdybych to dělal já. Já sám potřebuji na úkol asi 5 hodin. Stážista to udělá za 5 dní. A ano, během těchto 2 dnů strávím 5 hodiny chatováním se stážistou a pomocí. Ale ušetřím alespoň 3 hodiny a stážista bude rád, že dostal nějakou radu a pomoc. Obecně je potřeba jen úzce komunikovat, sledovat, co ten člověk dělá, a neztrácet kontakt.

Stáž v IT: pohled manažera

Seryozha:

Stážista je neustále v kontaktu se svým mentorem a komunikuje s ním několikrát denně. Mentor zkontroluje kód, provede párové programování se stážistou a pomůže, když se objeví nějaké problémové oblasti. Právě tímto způsobem, spojením pomoci mentora a skutečných bojových úkolů, školíme front-endové vývojáře.

Dima:

Abychom zabránili opuštění stážisty, diskutujeme o tom, kdo ho bude mentorovat ještě před přijetím. To je také velký upgrade pro samotného mentora: příprava na roli vedoucího týmu, testování schopnosti mít na paměti jak svůj vlastní úkol, tak úkol stážisty. Pořádají se pravidelné schůzky, na které občas chodím, abych zůstal informovaný. Ale právě mentor se stážistou komunikuje celkem pravidelně. Zpočátku tráví hodně času, ale vyplatí se mu to.

Mít mentora však neznamená, že všechny problémy, které se objeví, se řeší jeho prostřednictvím.

Míša:

Je u nás zvykem, že lidé, kteří se potýkají s problémem, žádají sousedy a kolegy o radu a rychle najdou pomoc. Čím rychleji člověk roste, tím častěji má potřebu chodit za kolegy, aby se něco naučil. Je dokonce užitečné jednoduše se dozvědět o úkolech jiných lidí, abyste mohli přijít s novými. Když se stážista dokáže dohodnout, pochopí, co je pro druhou stranu důležité, a dospěje k výsledkům v týmu, poroste mnohem rychleji než někdo, za koho tohle všechno musí dělat manažer.

Seryozha:

Existuje dokumentace, ale většina informací se ztrácí ve vzduchu. Pokud to vstřebáte na začátku své kariéry, je to další výhoda a můžeme člověka zaměřit na to, co se potřebuje naučit.

Ideální stážista je ten, kdo trénuje několik měsíců, stane se junior developerem, pak jen vývojářem, pak teamleaderem atd. To vyžaduje archetyp studenta, který se nestydí zeptat, když mu něco není jasné, ale je schopen i samostatné práce. Kdyby mu řekli, že si o tom může někde přečíst, šel by si to přečíst a vlastně se vrátil s novými poznatky. Může chybovat, ale neměl by chybovat vícekrát, maximálně dvakrát, na stejném místě. Ideální stážista by se měl rozvíjet, vstřebávat vše jako houba, učit se a růst. Ten, kdo sedí a snaží se na všechno přijít sám, tráví dlouhou dobu šťoucháním a neklade žádné otázky, si pravděpodobně nezvykne.

Konec stáže

Před nástupem do práce podepisujeme s každým stážistou smlouvu na dobu určitou. Stáž je samozřejmě placená, formalizovaná v souladu se zákoníkem práce Ruské federace a stážista má stejné výhody jako kterýkoli jiný zaměstnanec Yandexu. Po třech měsících program končí – mnohé ze stážistů pak převádíme mezi zaměstnance (na smlouvu na dobu neurčitou).

Stáž v IT: pohled manažera

Na jedné straně je pro manažera důležité, aby vývojář naplňoval své stážistické minimum. Zde je praktikant veden, počínaje pohovorem. Toto je však pouze začátek příběhu. Stážista je pro nás vždy potenciálním kandidátem na zaměstnance. Minimálním programem pro manažera je hned na začátku identifikovat člověka, kterého se po třech měsících nebude stydět doporučit dalším oddělením. Maximální program je udržet ho ve stejném týmu a najmout ho jako zaměstnance. Zároveň počítáme s tím, že student druhého nebo třetího ročníku - i když se stal praktikantem - bude muset s nástupem akademického roku pokračovat ve studiu na vysoké škole.

Seryozha:

Za prvé, stážisté jsou pro nás potenciálem lidských zdrojů. Snažíme se rozvíjet lidi v Yandexu tak, aby se ideálně hodili pro naše úkoly. Dáme jim vše, od kultury komunikace a interakce v týmech až po encyklopedické znalosti o všech našich systémech.

Ignat:

Když přijmeme stážistu, okamžitě ho vyzkoušíme, aby se přidal k našemu týmu. A zpravidla jedinou překážkou je nedostatek volného místa. Snažíme se najmout dostatek mladých kluků jako stážisty. Pokud má člověk pět let zkušeností s vývojem, přijde do Yandexu a je stážistou na úrovni, tak to, bohužel, pro nás znamená, že i když je to skvělý chlap, protože dostane práci v Yandexu s pěti lety zkušenosti, nebude schopen vyrůst na senior vývojáře. Obvykle jde o rychlost: pomalý růst v minulosti zde bude znamenat pomalý růst. Ano, někdy až po třech měsících přijde pochopení, že člověk na to nemá. Ale to je docela vzácné. Ve více než polovině případů jsme připraveni najmout zaměstnance. V mé paměti se nikdy nevyskytla situace, kdy by člověk úspěšně absolvoval praxi, ale nebyl schopen absolvovat pohovor na plný úvazek.

Míša:

Všem úspěšným stážistům nabízíme setrvání ve společnosti. Po stáži většinou zabíráme více než polovinu na plný úvazek. Letní stáže jsou náročnější, protože k nám často jezdí studenti třetích ročníků a je pro ně těžké skloubit práci a studium.

Dima:

Řekněme, že stážista odvádí skvělou práci a má spoustu vyhlídek vyrůst v dobrého vývojáře – i když zrovna nemá dostatek zkušeností. A předpokládejme, že pro smlouvu na dobu neurčitou není žádné volné místo. Pak je všechno jednoduché: musím jít za svým manažerem a říct mu - to je velmi cool člověk, musíme si ho všemi prostředky udržet, nabídněme mu něco, najdeme místo, kam ho umístit.

Příběhy o stážistech

Denis:

Dívka, která u nás v roce 2017 získala stáž, byla z Permu. To je 400 kilometrů od Jekatěrinburgu na západ. A každý týden k nám jezdila z Permu vlakem do Školy mobilního rozvoje. Během dne přišla, večer se učila a pozdě večer se vracela. Ocenili jsme takový zápal a pozvali jsme ji do práce a vyplatilo se.

Ignat:

Před několika lety jsme se zúčastnili výměnného stáže. Bylo zajímavé pracovat s cizími kluky. Ale praktikanti odtamtud nejsou o nic silnější než třeba ze ShaD nebo z Fakulty informatiky. Zdá se, že EPFL patří mezi 20 nejlepších univerzit v Evropě. V tu chvíli jsem jako ještě nepříliš zkušený tazatel měl toto očekávání: neuvěřitelné, zpovídáme lidi z EPFL, budou super cool. Ale lidé, kteří zde získali základní vzdělání o kódování – a to i na klíčových regionálních univerzitách – jsou docela na úrovni.

Nebo jiný příběh. Nyní mám ve svém týmu chlapa, je velmi mladý, je mu asi 20 let. Pracuje v Petrohradě, přijel na stáž. Je velmi cool. Vy jako obvykle dáte člověku problémy, on je vyřeší a za měsíc přijde a řekne: Vyřešil jsem je, koukám, a zdá se, že vaše architektura je špatně postavená. Pojďme to předělat. Kód bude jednodušší a přehlednější. Samozřejmě jsem ho odradil: množství práce je velké, pro uživatele žádný zisk, ale nápad zní naprosto rozumně. Osoba přišla na složitý vícevláknový proces a navrhla vylepšení – možná ta nevhodná, refaktorování kvůli refaktorizaci. Ale jakmile budete chtít tento kód zkomplikovat, stále můžete provést tento refaktoring. Ve skutečnosti uplynulo několik měsíců a my jsme se tohoto úkolu ujali. S radostí jsem ho najala. Všichni nejsme géniové. Můžete přijít, něco vymyslet a poukázat na naše problémy. To se cení.

Míša:

Máme takové ideální stážisty. Přes nedostatek zkušeností vidí úkol nejen na technické, ale i globální úrovni. Nabízejí zásadní vylepšení. Chápou, jak převést problémy z reálného světa do technického světa, aniž by ztratily svůj význam. Zajímalo je, jaký je konečný cíl, zda má cenu nyní rýpat do detailů nebo zda mohou zcela změnit přístup k úkolu či dokonce formulaci problému. To znamená, že mají potenciál být o několik úrovní výše. Aby se vydali touto cestou, potřebují pouze upgradovat některé dovednosti a interní nástroje. Navíc spustit několik úspěšných projektů.

Stáž v IT: pohled manažera

Zdroj: www.habr.com

Přidat komentář