Стаж в ИТ: мениджърски поглед

Стаж в ИТ: мениджърски поглед

Набиране на персонал за летен стаж в Yandex продължава. Той върви в пет посоки: бекенд, ML, мобилно развитие, фронтенд и анализи. В този блог, в други блогове на Habré и ​​извън него, можете да намерите много информация за това как работи стажът. Но много в този процес остава загадка за тези, които не работят в компанията. И ако погледнете от гледна точка на мениджърите по развитие, възникват още повече въпроси. Как да проведем стаж правилно, как да постигнем максимална взаимна полезност със стажант, как да го опознаем за три месеца и да го научим на всичко необходимо, за да продължи да работи?

Петима от нас подготвиха тази статия. Нека се представим: Игнат Колесниченко от услугата за разпределени изчислителни технологии, Миша Левин от услугата за машинно разузнаване Market, Денис Малих от услугата за разработка на приложения, Серьожа Бережной от отдела за разработка на интерфейс за търсене и Дима Черкасов от групата за разработка на антиизмамите. Всеки от нас представлява собствената си област на стаж. Всички сме мениджъри, имаме нужда от стажанти и имаме известен опит в работата с тях. Нека ви кажем нещо от това преживяване.

Интервю преди стаж

Кандидатите очакват няколко технически интервюта. Успехът на интервюто зависи по-малко от меките умения (способността за ефективна комуникация) и повече от твърдите умения (умения по математика и програмиране). Мениджърите обаче оценяват и двете.

Игнат:

Дори ако човек е много готин, но абсолютно необщителен, той няма да може да приложи всичките си умения. Разбира се, обръщаме внимание на това, но това не е причина да не вземем някого на стаж. За три месеца всичко може да се промени, освен това първото ви впечатление може да се окаже грешно. И ако всичко е правилно, ще трябва да обясните на човека, да потърсите други команди. За стажантите комуникационните умения определено не са ключов фактор. Все пак професионалните умения са много по-важни.

Денис:

Харесвам хора, които разказват истории – по добър начин. Интересен е човек, който може да разкаже как той и екипът му са се справили героично с някакъв факап. Започвам да задавам допълнителни въпроси, когато се появи подобна история. Но това рядко се случва, ако просто попитате „да разкажете за нещо интересно във вашите проекти“.

Веднъж един кандидат каза чудесна фраза, която дори записах: „Успешно избягвах решаването на досадни проблеми.“

Стаж в ИТ: мениджърски поглед

Тъй като времето за комуникация е малко, интервюиращият се опитва да получи полезна информация за кандидата всяка минута от срещата. Чудесно е, ако стажантът разбере предварително какви подробности от опита си (не от автобиографията си) може да сподели. Това трябва да е кратък разказ строго по същество.

Денис:

Обръщам внимание, ако човек каже, че е пробвал много езици и подходи. Хората с по-широка перспектива измислят по-елегантни решения в боен режим. Но това е двусмислен плюс. Можете да разберете, но не и да научите нищо.

Времето за историите, описани от Денис, обикновено остава само на последното интервю. Дотогава е необходимо да се демонстрират фундаменталните и практически знания, които ще формират основата на бъдещата работа. И, разбира се, ще трябва да напишете кода на дъска или на лист хартия.

Миша:

Проверяваме знанията по теория на вероятностите и математическа статистика. Разглеждаме дали лицето има опит в работата с метрики, с алгоритми за машинно обучение, с настройка на техните параметри, с преквалификация и т.н. Очакваме, че лицето може да пише код достатъчно, за да бъде анализатор.

Денис:

Тези, които идват на интервю, знаят предимно езици: в Екатеринбург имаме добро училище за основни езици, добри институти. Но ако трябва да бъда честен, кандидат за стажант с добри твърди умения е рядък случай, поне в нашия ипсилон квартал. Например Swift. Това включва много сложна работа с струни и малко хора могат да работят с тях на ума. Окото веднага привлича вниманието ви. По време на интервюта често давам задача, която е свързана с обработка на низове. И през цялото това време имаше само един човек, който успя да напише такъв Swift код веднага, на лист хартия. След това обиколих и казах на всички, че някой най-накрая е успял да реши този проблем в Swift на лист хартия.

Тестване на алгоритми по време на интервю

Това е отделна тема, защото кандидатите все още имат въпрос - защо винаги оценяваме знанията за алгоритми и структури от данни? Дори бъдещи мобилни разработчици и фронтенд разработчици се подлагат на такива тестове.

Миша:

По време на интервюто със сигурност ще дадем някакъв алгоритмичен проблем. Кандидатът трябва да разбере как да го внедри в Python, за предпочитане без грешки. Трябва да разберете как да проверите програмата си и да я коригирате сами.

Стаж в ИТ: мениджърски поглед

Опитът в алгоритмите е полезен по три причини. Първо, очевидно ще е необходимо в алгоритмични задачи - които не се случват често, но се случват. Второ, разработчикът ще може по-ефективно да решава проблеми, свързани с алгоритми, дори ако те не изискват задълбочаване в самите алгоритми (и вече има доста от тях). Трето, ако в университета не са ви учили на алгоритми, но все пак знаете как да работите с тях, това ви характеризира като любознателен човек и ще повиши авторитета ви в очите на интервюирания.

Денис:

Голяма част от мобилната разработка е разбъркването на JSON. Но веднъж на всеки шест месеца има случаи, когато са необходими алгоритми. В момента рисувам красиви карти за Yandex.Weather. И след седмица трябваше да внедря алгоритъма за изглаждане, алгоритъма на Съдърланд-Ходжман и алгоритъма на Мартинес. Ако човек не знаеше какво е hashmap или приоритетна опашка, той щеше да остане с него дълго време и нямаше да е ясно дали щеше да се справи или не без външна помощ.

Алгоритмите са в основата на развитието. Това е, което помага на разработчика да бъде разработчик. Няма значение какво правиш. Те са необходими и в прости проекти, където основната работа се състои в „превод на JSON“. Дори ако не пишете самите алгоритми, но имплицитно използвате някои структури от данни, по-добре е да ги разберете. В противен случай ще получите приложения, които са бавни или неправилни.

Има програмисти, които са се развили академично: влезли са в университет, учили са пет години и са получили специалност. Те знаят алгоритмите, защото са били научени. И тогава самото познаване на алгоритмите не характеризира по никакъв начин хоризонтите на човека; този хоризонт трябва да бъде тестван по друг начин.

А има и самоуки, към които се причислявам. Да, формално имам ИТ образование, диплома по софтуерно инженерство. Но самоуките хора се научиха да програмират „въпреки това“. Те нямаха университетска програма. Обикновено те не са запознати с алгоритмите - защото никога не са се сблъсквали с необходимостта да ги изучават. И когато такъв човек разбира алгоритми, това означава, че е отделил време и ги е разбрал. След като завърших университета, разбрах, че имам слепи петна по отношение на фундаменталните алгоритми – факт е, че специалността ми беше приложна. Отидох и учих онлайн курсове от Принстънския университет, добре познатия Робърт Седжуик. Разбрах го и написах всичките си домашни. И когато човек разкаже подобна история по време на интервю, веднага ми става интересно, имам желание да работя с него или поне да продължа разговора.

Стаж в ИТ: мениджърски поглед

Игнат:

Когато интервюирате стажант, в някои отношения очаквате дори повече, отколкото от опитен разработчик. Говорим за способността да решаваме алгоритмични проблеми, бързо да напишем поне някакъв правилен код. Кандидатът за стаж все още е в университета. Само преди година му беше разказано всичко за алгоритмите в детайли. Очаква се той да може да ги възпроизведе. Ако човек е адекватен и е слушал внимателно лекциите, той просто ще знае всичко, ще го вземе от кеша.

Какви задачи решава стажантът?

Обикновено програмата за стаж може да бъде очертана и обсъдена по време на финалните интервюта. Само в самото начало на работа на стажант могат да бъдат възложени задачи за обучение, резултатите от които няма да бъдат използвани в производството. Освен това вероятността за получаване на такива задачи е малка. Най-често бойните проекти се дават от изоставането, тоест тези, които са признати за достойни за внимание, но не са приоритетни и „отделими“ - така че другите компоненти да не зависят от тяхното изпълнение. Мениджърите се опитват да ги разпределят така, че обучаваният да се запознае с различни части на услугата и да работи в една среда с останалите членове на екипа.

Игнат:

Това са изключително полезни задачи. Те може да не увеличат използването на клъстера с 10% или да спестят на компанията милион долара, но ще направят стотици хора щастливи. Например, в момента имаме стажант, който работи с нашия клиент, за да управлява операции на нашите клъстери. Преди да започне, операцията трябва да зареди някои данни в клъстера. Това обикновено отнема 20–40 секунди, а преди това се е случило тихо: стартирали сте го в конзолата и сте седели там, гледайки черен екран. Стажантът дойде и направи функцията за две седмици: сега можете да видите как се качват файловете и какво се случва. Задачата, от една страна, не е трудна за описване, но от друга страна, има какво да се разрови, какви библиотеки да се разгледат. Най-хубавото е, че го направихте, мина седмица, оказа се, че е на клъстери, хората вече го използват. Когато напишете публикация във вътрешната мрежа, те казват благодаря.

Стаж в ИТ: мениджърски поглед

Миша:

Стажантите подготвят модели, събират данни за тях, измислят показатели и провеждат експерименти. Постепенно започваме просто да му даваме повече свобода и отговорност – проверяваме дали може да се справи. Ако да, той преминава на следващото ниво. Не приемаме, че когато дойде стажант, той знае как да направи всичко. Мениджърът му помага да разбере, дава му връзка към вътрешен ресурс или онлайн курс.

Ако един стажант се покаже в най-добрата си форма, може да му бъде дадено нещо приоритетно, важно за отдела или други служби.

Дима:

Нашият стажант сега прави хардкор модификации на антифрауд. Това е система, която се бори с голямо разнообразие от злоупотреби и измами в услугите на Yandex. Първоначално мислехме да дадем неща, които не са много сложни и не са много важни за производството. Опитваме се да обмислим задачите на стажанта предварително, но тогава видяхме, че човекът е „запален“, решава проблемите бързо и добре. В резултат на това започнахме да му поверяваме стартирането на анти-измамите за нови услуги.

Освен това има малък шанс да получите задача, към която колегите не са се обръщали преди това поради нейния обем.

Дима:

Има една стара система и има нова, още незавършена. Необходимо е да се премине от един към друг. В бъдеще това е важен проект, макар и с голяма несигурност: трябва да общувате много, да четете неразбираем наследен код. На последното интервю честно казахме на стажанта, че задачата е трудна. Той отговори, че е готов, дойде при нашия екип и всичко му се получи. Оказа се, че притежава качествата не само на разработчик, но и на мениджър. Беше готов да се разхожда, да разбере, да пингва.

Наставничество на стажант

Един стажант се нуждае от ментор, за да се потопи в процесите. Това е човек, който е наясно не само със собствените си задачи, но и със задачите на стажанта. Установява се редовна комуникация с наставника, винаги можете да се обърнете към него за съвет. Менторът може да бъде както ръководителят на групата (ако е малка група), така и някой от колегите, редовни членове на екипа.

Игнат:

Опитвам се да идвам поне през ден и да питам как е стажантът. Ако видя, че съм заседнал, се опитвам да му помогна, питам го какъв е проблемът и го разкривам с него. Ясно е, че това ми отнема енергията и прави работата на стажант не толкова интегрално ефективна - аз също си губя времето. Но това му позволява да не се затъва в нищо и да получава резултати. И пак е по-бързо, отколкото ако го направих сам. На мен лично ми трябват около 5 часа за задачата. Стажантът ще го направи за 5 дни. И да, ще отделя 2 часа през тези 5 дни, за да побъбрим със стажанта и да помогна. Но ще спестя поне 3 часа, а стажантът ще бъде доволен, че е получил съвет и помощ. Като цяло, просто трябва да общувате отблизо, да наблюдавате какво прави човекът и да не губите контакт.

Стаж в ИТ: мениджърски поглед

Серьожа:

Стажантът поддържа постоянна връзка с ментора си и общува с него по няколко пъти на ден. Наставникът преглежда кода, прави програмиране по двойки със стажанта и помага, когато възникнат проблемни области. Именно по този начин, чрез комбиниране на помощта на ментор и реални бойни задачи, ние обучаваме front-end разработчици.

Дима:

За да предотвратим изоставянето на стажант, ние обсъждаме кой ще го наставлява още преди да го наемем. Това е голямо надграждане и за самия ментор: подготовка за ролята на лидер на екипа, тестване за способността да има предвид както собствената си задача, така и задачата на обучаемия. Има редовни срещи, на които понякога ходя сам, за да съм информиран. Но менторът е този, който общува със стажанта доста редовно. В началото отделя много време, но се отплаща.

Наличието на наставник обаче не означава, че всички възникнали въпроси се решават чрез него.

Миша:

При нас е обичайно хората, изправени пред проблем, да питат съседи и колеги за съвет и бързо да намерят помощ. Колкото по-бързо расте човек, толкова по-често трябва да ходи при колегите си, за да научи нещо. Дори е полезно просто да научите за задачите на други хора, за да можете да измислите нови. Когато стажантът успее да постигне съгласие, да разбере какво е важно за отсрещната страна и да постигне резултати в екип, той ще расте много по-бързо от някой, за когото мениджърът трябва да направи всичко това.

Серьожа:

Има документация, но по-голямата част от информацията се губи във въздуха. Ако го усвоите в началото на кариерата си, това е допълнително предимство и ние можем да съсредоточим човека върху това, което трябва да научи.

Идеалният стажант е някой, който тренира няколко месеца, става junior developer, после просто developer, след това team leader и т.н. Това изисква архетип на студент, който не се стеснява да попита, ако нещо не му е ясно, а е способен и на самостоятелна работа. Ако му кажат, че може да прочете някъде за това, той ще отиде, ще го прочете и всъщност ще се върне с нови знания. Може да греши, но не бива да греши повече от веднъж, максимум два пъти, на едно и също място. Идеалният стажант трябва да се развива, да попива всичко като гъба, да учи и да расте. Този, който седи и се опитва да разбере всичко сам, прекарва дълго време в ровене и не задава никакви въпроси, едва ли ще свикне.

Край на стажа

Преди започване на работа с всеки обучаван сключваме срочен договор. Разбира се, стажът е платен, формализиран в съответствие с Кодекса на труда на Руската федерация и стажантът има същите предимства като всеки друг служител на Yandex. След три месеца програмата приключва - след това прехвърляме много от стажантите към персонала (на безсрочен договор).

Стаж в ИТ: мениджърски поглед

От една страна, за мениджъра е важно разработчикът да изпълни своя стажантски минимум. Това е мястото, където се води стажанта, като се започне с интервюто. Това обаче е само началото на историята. За нас стажантът винаги е потенциален кандидат за персонал. Минималната програма за мениджър е да идентифицира в самото начало човек, който след три месеца няма да се срамува да препоръча на други отдели. Програмата максимум е да го задържим в същия екип, като го назначим като щатен. В същото време отчитаме, че студент втора или трета година - дори и да е станал стажант - ще трябва да продължи обучението си в университет с настъпването на учебната година.

Серьожа:

На първо място, стажантите за нас са човешки ресурс. Опитваме се да развием хора в рамките на Yandex, така че да са идеално подходящи за нашите задачи. Ние им даваме всичко, от култура на комуникация и взаимодействие в екипи до енциклопедични познания за всички наши системи.

Игнат:

Когато вземем стажант, веднага го пробваме да се присъедини към нашия екип. И по правило единствената пречка е липсата на свободно място. Стараем се да наемаме достатъчно млади момчета като стажанти. Ако човек има пет години опит в разработката, той идва в Yandex и е стажант на ниво, тогава, уви, за нас това означава, че въпреки че е страхотен човек, тъй като получава работа в Yandex с пет години опит, той няма да може да израсне до старши разработчик. Обикновено е въпрос на скорост: бавният растеж в миналото ще означава бавен растеж тук. Да, понякога разбирането, че човек не се справя със задачата идва чак след три месеца. Но това е доста рядко. В повече от половината от случаите сме готови да назначим хора на щат. По мое спомен никога не е имало ситуация, в която човек успешно е завършил стаж, но не е успял да премине интервю за работа на пълен работен ден.

Миша:

Предлагаме на всички успешни стажанти да останат в компанията. След стаж обикновено поемаме повече от половината от него за пълен работен ден. Летните стажове са по-трудни, защото често при нас идват студенти от трета година и им е трудно да съчетават работа и учене.

Дима:

Да кажем, че стажантът върши страхотна работа и има много перспективи да израсне в добър разработчик – дори и да няма достатъчно опит в момента. И да предположим, че няма свободно място за безсрочен договор. Тогава всичко е просто: трябва да отида при моя мениджър и да му кажа - това е много готин човек, трябва да го задържим по всякакъв начин, нека му предложим нещо, нека намерим къде да го настаним.

Разкази за стажанти

Денис:

Момичето, което получи стаж при нас през 2017 г., беше от Перм. Това е 400 километра от Екатеринбург на запад. И всяка седмица тя идваше при нас от Перм с влак до Училището за мобилно развитие. Идваше през деня, учи вечер и се връщаше късно вечерта. Оценявайки такова усърдие, ние я поканихме на работа и това се отплати.

Игнат:

Преди няколко години участвахме в програма за стажантски обмен. Беше интересно да се работи с чужденци. Но обучаемите от там не са по-силни от например от ШАД или от Факултета по компютърни науки. Изглежда, че EPFL е в топ 20 на университетите в Европа. В този момент, като все още не много опитен интервюиращ, имах това очакване: невероятно, ние интервюираме хора от EPFL, те ще бъдат супер готини. Но хората, които са получили основно образование за кодиране тук - включително в ключови регионални университети - се оказват доста на ниво.

Или друга история. Сега имам човек в екипа си, той е много млад, на около 20 години. Работи в Санкт Петербург, дойде на стаж. Той е много готин. Вие, както обикновено, поставяте проблеми на човек, той ги решава и след месец идва и казва: Реших ги, гледам и изглежда, че вашата архитектура е лошо изградена. Нека го повторим. Кодът ще стане по-прост и ясен. Аз, разбира се, го разубедих: обемът на работата е голям, няма печалба за потребителите, но идеята звучи напълно разумно. Човекът разбра сложен многонишков процес и предложи подобрения - може би ненавременни, рефакторинг в името на рефакторинга. Но веднага щом искате да усложните този код, все още можете да направите този рефакторинг. Всъщност минаха няколко месеца и ние се заехме с тази задача. Наех го с удоволствие. Не всички сме гении. Можете да дойдете, да измислите нещо и да посочите нашите проблеми. Това се оценява.

Миша:

Имаме такива идеални стажанти. Въпреки липсата на опит, те виждат задачата не само на техническо, но и на глобално ниво. Те предлагат фундаментални подобрения. Те разбират как да превеждат проблеми от реалния свят в техническия свят, без да загубят значението им. Те се чудят каква е крайната цел, дали си струва да се задълбочават сега или могат напълно да променят подхода към задачата или дори формулировката на проблема. Това означава, че те имат потенциал да бъдат няколко нива по-високи. За да вървят по този път, те просто трябва да надградят някои умения и вътрешни инструменти. Освен това стартира няколко успешни проекта.

Стаж в ИТ: мениджърски поглед

Източник: www.habr.com

Добавяне на нов коментар