Staż w IT: spojrzenie menedżera

Staż w IT: spojrzenie menedżera

Rekrutacja do letni staż w Yandex trwa. Idzie to w pięciu kierunkach: backend, ML, rozwój mobilny, frontend i analityka. Na tym blogu, a także na innych blogach dotyczących Habré i nie tylko, możesz znaleźć wiele informacji na temat tego, jak przebiega staż. Jednak wiele elementów tego procesu pozostaje tajemnicą dla tych, którzy nie pracują w firmie. A jeśli spojrzeć z punktu widzenia menedżerów ds. Rozwoju, pojawia się jeszcze więcej pytań. Jak prawidłowo przeprowadzić staż, jak zmaksymalizować wzajemną użyteczność ze stażystą, jak go poznać w trzy miesiące i nauczyć wszystkiego, czego potrzebuje, aby kontynuować pracę?

Pięciu z nas przygotowało ten artykuł. Przedstawmy się: Ignat Kolesnichenko z usługi technologii przetwarzania rozproszonego, Misha Levin z usługi analizy maszyn Market, Denis Malykh z usługi tworzenia aplikacji, Seryozha Berezhnoy z działu rozwoju interfejsu wyszukiwania i Dima Cherkasov z grupy zajmującej się przeciwdziałaniem oszustwom. Każdy z nas reprezentuje swój własny obszar stażu. Wszyscy jesteśmy menedżerami, potrzebujemy stażystów i mamy pewne doświadczenie w pracy z nimi. Pozwólcie, że opowiemy Wam coś z tego doświadczenia.

Rozmowa kwalifikacyjna przed stażem

Na kandydatów czeka kilka rozmów kwalifikacyjnych. Sukces na rozmowie kwalifikacyjnej w mniejszym stopniu zależy od umiejętności miękkich (umiejętność skutecznej komunikacji), a bardziej od umiejętności twardych (umiejętności matematyczne i programistyczne). Menedżerowie oceniają jednak jedno i drugie.

Ignat:

Nawet jeśli dana osoba jest bardzo fajna, ale absolutnie niekomunikatywna, nie będzie w stanie zastosować wszystkich swoich umiejętności. Oczywiście zwracamy na to uwagę, ale nie jest to powód, aby nie przyjąć kogoś na staż. Za trzy miesiące wszystko może się zmienić, a poza tym Twoje pierwsze wrażenie może okazać się mylne. A jeśli wszystko się zgadza, będziesz musiał wyjaśnić tej osobie, poszukać innych poleceń. Dla stażystów umiejętności komunikacyjne zdecydowanie nie są kluczowym czynnikiem. Jednak umiejętności zawodowe są dużo ważniejsze.

Denis:

Lubię ludzi, którzy opowiadają historie – w dobry sposób. Interesująca jest osoba, która potrafi opowiedzieć, jak on i jego zespół bohatersko poradzili sobie z jakimś fakapem. Kiedy pojawia się taka historia, zaczynam zadawać kolejne pytania. Ale rzadko się to zdarza, jeśli po prostu poprosisz „o opowiedzenie o czymś interesującym w twoich projektach”.

Jeden z kandydatów powiedział kiedyś wspaniałe zdanie, które nawet zapisałem: „Skutecznie uniknąłem rozwiązywania żmudnych problemów”.

Staż w IT: spojrzenie menedżera

Ponieważ czasu na komunikację jest mało, ankieter stara się w każdej minucie spotkania uzyskać przydatne informacje o kandydacie. Świetnie, jeśli stażysta z góry zorientował się, jakimi szczegółami swojego doświadczenia (a nie z CV) może się podzielić. To powinna być krótka historia ściśle na temat.

Denis:

Zwracam uwagę, jeśli ktoś mówi, że próbował wielu języków i podejść. Osoby o szerszym spojrzeniu wymyślają bardziej eleganckie rozwiązania w trybie walki. Ale to jest niejednoznaczny plus. Można się tego nauczyć, ale tak naprawdę niczego się nie nauczysz.

Czas na historie opisane przez Denisa zostaje zwykle dopiero na ostatnim wywiadzie. Do tego czasu konieczne jest wykazanie się podstawową i praktyczną wiedzą, która będzie stanowić podstawę przyszłej pracy. I oczywiście będziesz musiał napisać kod na tablicy lub kartce papieru.

Misza:

Sprawdzamy wiedzę z teorii prawdopodobieństwa i statystyki matematycznej. Sprawdzamy, czy dana osoba ma doświadczenie w pracy z metrykami, z algorytmami uczenia maszynowego, z ustawianiem ich parametrów, z przekwalifikowaniem itp. Oczekujemy, że dana osoba potrafi pisać kod na tyle, aby być analitykiem.

Denis:

Ci, którzy przychodzą na rozmowę, w większości znają języki: w Jekaterynburgu mamy dobrą szkołę języków podstawowych, dobre instytuty. Ale szczerze mówiąc, kandydat na staż z dobrymi umiejętnościami twardymi to rzadki przypadek, przynajmniej w naszej okolicy epsilon. Na przykład Szybki. Wymaga to bardzo złożonej pracy ze sznurkami i niewiele osób jest w stanie pracować z nimi z głową. Oko od razu przykuwa uwagę. Podczas rozmów kwalifikacyjnych często daję zadanie związane z przetwarzaniem ciągów znaków. I przez cały ten czas tylko jedna osoba była w stanie od razu, na kartce papieru, napisać taki kod Swifta. Potem chodziłem i mówiłem wszystkim, że ktoś w końcu był w stanie rozwiązać ten problem w Swift na kartce papieru.

Testowanie algorytmów podczas rozmowy kwalifikacyjnej

To osobny temat, bo kandydaci wciąż mają pytanie – dlaczego zawsze oceniamy wiedzę z algorytmów i struktur danych? Nawet przyszli programiści mobilni i programiści front-end przechodzą takie testy.

Misza:

Podczas wywiadu z pewnością postawimy jakiś problem algorytmiczny. Kandydat musi wymyślić, jak zaimplementować go w Pythonie, najlepiej bez błędów. Musisz zrozumieć, jak sprawdzić swój program i poprawić go samodzielnie.

Staż w IT: spojrzenie menedżera

Doświadczenie w algorytmach jest przydatne z trzech powodów. Po pierwsze, będzie to oczywiście potrzebne w zadaniach algorytmicznych - które nie zdarzają się często, ale się zdarzają. Po drugie, programista będzie mógł skuteczniej rozwiązywać problemy związane z algorytmami, nawet jeśli nie wymagają one zagłębiania się w same algorytmy (a jest ich już całkiem sporo). Po trzecie, jeśli nie uczono Cię algorytmów na studiach, ale nadal potrafisz z nimi pracować, to charakteryzuje Cię to jako osobę dociekliwą i zwiększy Twój autorytet w oczach rozmówcy.

Denis:

Dużą częścią rozwoju urządzeń mobilnych jest tasowanie JSON. Ale raz na sześć miesięcy zdarzają się przypadki, gdy potrzebne są algorytmy. Obecnie rysuję piękne mapy dla Yandex.Weather. A w ciągu tygodnia musiałem wdrożyć algorytm wygładzający, algorytm Sutherlanda-Hodgmana i algorytm Martineza. Jeśli ktoś nie wiedziałby, czym jest hashmap lub kolejka priorytetowa, utknąłby z tym na długi czas i nie byłoby jasne, czy poradziłby sobie bez pomocy z zewnątrz.

Algorytmy są podstawą rozwoju. To właśnie pomaga programiście być programistą. Nie ma znaczenia, co robisz. Są potrzebne także w prostych projektach, gdzie główna praca polega na „tłumaczeniu JSON”. Nawet jeśli nie napiszesz samych algorytmów, ale pośrednio użyjesz pewnych struktur danych, lepiej je zrozumieć. W przeciwnym razie otrzymasz aplikacje, które działają powoli lub niepoprawnie.

Są programiści, którzy rozpoczęli pracę z rozwojem naukowo: weszli na uniwersytet, studiowali przez pięć lat i uzyskali specjalizację. Znają algorytmy, ponieważ ich tego nauczono. A wtedy sama znajomość algorytmów w żaden sposób nie charakteryzuje horyzontów człowieka, horyzont ten trzeba sprawdzić w inny sposób.

Są też samouki, do których sam się zaliczam. Tak, formalnie mam wykształcenie informatyczne, dyplom z inżynierii oprogramowania. Natomiast samouki nauczyły się programować „mimo to”. Nie mieli programu uniwersyteckiego. Zwykle nie są zaznajomieni z algorytmami – ponieważ nigdy nie stanęli przed koniecznością ich studiowania. A kiedy taka osoba rozumie algorytmy, to znaczy, że spędziła na nich czas i je zrozumiała. Po ukończeniu studiów zdałem sobie sprawę, że mam słabe punkty w zakresie podstawowych algorytmów - faktem jest, że zastosowano moją specjalizację. Poszedłem i studiowałem kursy online na Uniwersytecie Princeton, znanego Roberta Sedgwicka. Rozpracowałem to i odrobiłem całą pracę domową. A kiedy ktoś na rozmowie kwalifikacyjnej opowiada podobną historię, od razu się tym interesuję, mam ochotę nawiązać z nim współpracę lub chociaż kontynuować rozmowę.

Staż w IT: spojrzenie menedżera

Ignat:

Rozmawiając ze stażystą, w pewnym sensie oczekujesz nawet więcej niż od doświadczonego programisty. Mówimy o umiejętności rozwiązywania problemów algorytmicznych, szybkiego napisania choć części poprawnego kodu. Kandydat na staż pozostaje na uczelni. Zaledwie rok temu powiedziano mu wszystko o algorytmach ze szczegółami. Oczekuje się, że uda mu się je odtworzyć. Jeśli ktoś jest odpowiedni i uważnie słucha wykładów, to po prostu będzie wszystko wiedział, wydobędzie to z skrytki.

Jakie zadania rozwiązuje stażysta?

Zazwyczaj program stażu można opisać i omówić podczas końcowych rozmów kwalifikacyjnych. Dopiero na początku pracy stażyście można przypisać zadania szkoleniowe, których wyniki nie będą wykorzystywane w produkcji. Co więcej, prawdopodobieństwo otrzymania takich zadań jest niewielkie. Najczęściej projekty bojowe podawane są z backlogu, czyli uznane za godne uwagi, ale nie priorytetowe i „rozłączne” – tak, aby od ich realizacji nie zależały inne komponenty. Menedżerowie starają się je tak rozmieścić, aby stażysta poznał różne części usługi i pracował w tym samym środowisku z innymi członkami zespołu.

Ignat:

To niezwykle przydatne zadania. Być może nie zwiększą wykorzystania klastra o 10% i nie pozwolą firmie zaoszczędzić miliona dolarów, ale uszczęśliwią setki ludzi. Na przykład obecnie mamy stażystę współpracującego z naszym klientem w celu prowadzenia operacji w naszych klastrach. Przed rozpoczęciem operacja musi załadować pewne dane do klastra. Zwykle zajmuje to 20–40 sekund, a zanim wydarzyło się to po cichu: uruchomiłeś go w konsoli i siedziałeś tam, patrząc na czarny ekran. Stażysta przyszedł i wykonał tę funkcję w ciągu dwóch tygodni: teraz możesz zobaczyć, jak pliki są przesyłane i co się dzieje. Zadanie z jednej strony nie jest trudne do opisania, ale z drugiej strony jest w co się zagłębiać, w jakie biblioteki zajrzeć. Najlepsze jest to, że się udało, minął tydzień, okazało się, że jest na klastrach, ludzie już z tego korzystają. Kiedy piszesz post w sieci wewnętrznej, dziękują.

Staż w IT: spojrzenie menedżera

Misza:

Uczestnicy przygotowują modele, zbierają dla nich dane, opracowują metryki i przeprowadzają eksperymenty. Stopniowo po prostu zaczynamy dawać mu więcej swobody i odpowiedzialności – sprawdzamy, czy sobie z tym poradzi. Jeśli tak, przechodzi na wyższy poziom. Nie zakładamy, że gdy przychodzi stażysta, wie, jak to wszystko zrobić. Menedżer pomaga mu to rozgryźć, podaje link do zasobu wewnętrznego lub kursu online.

Jeśli stażysta pokaże się z najlepszej strony, może otrzymać coś priorytetowego, ważnego dla działu lub innych służb.

Dima:

Nasz stażysta wprowadza obecnie zasadnicze modyfikacje w systemie zapobiegania oszustwom. Jest to system zwalczający szeroką gamę nadużyć i oszustw w usługach Yandex. Na początku myśleliśmy o dawaniu rzeczy, które nie były zbyt skomplikowane i niezbyt ważne dla produkcji. Staramy się wcześniej przemyśleć zadania stażysty, ale potem widzieliśmy, że dana osoba „paliła”, szybko i dobrze rozwiązywała problemy. W efekcie zaczęliśmy powierzać mu wdrażanie rozwiązań antyfraudowych dla nowych usług.

Poza tym istnieje niewielka szansa na otrzymanie zadania, do którego koledzy wcześniej nie podeszli ze względu na jego objętość.

Dima:

Jest jeden stary system i jest nowy, jeszcze nie ukończony. Konieczne jest przechodzenie z jednego do drugiego. W przyszłości to ważny projekt, choć obarczony dużą niepewnością: trzeba dużo komunikować, czytać niezrozumiały dotychczasowy kod. Na rozmowie końcowej szczerze powiedzieliśmy stażyście, że zadanie jest trudne. Odpowiedział, że jest gotowy, przyszedł do naszego zespołu i wszystko mu się udało. Okazało się, że ma cechy nie tylko dewelopera, ale i menadżera. Był gotowy, żeby się przespacerować, dowiedzieć się, zasygnalizować.

Mentoring stażysty

Stażysta potrzebuje mentora, aby zanurzyć się w procesach. To osoba, która jest świadoma nie tylko swoich zadań, ale także zadań stażysty. Z mentorem nawiązuje się regularną komunikację, zawsze możesz zwrócić się do niego o radę. Mentorem może być zarówno lider grupy (jeśli jest to mała grupa), jak i jeden z współpracowników, stały członek zespołu.

Ignat:

Staram się przychodzić przynajmniej co drugi dzień i pytać, jak się czuje stażysta. Jeśli widzę, że utknąłem, próbuję mu pomóc, zapytać, na czym polega problem i wspólnie z nim go rozwiązać. Wiadomo, że odbiera mi to energię i sprawia, że ​​praca stażysty nie jest już tak integralnie efektywna – tracę też czas. Ale to pozwala mu nie ugrzęznąć w niczym i uzyskać wyniki. I to wciąż szybciej, niż gdybym zrobił to sam. Sam potrzebuję na to zadanie około 5 godzin. Stażysta zrobi to w 5 dni. I tak, w ciągu tych 2 dni poświęcę 5 godziny na rozmowę ze stażystą i pomoc. Ale zaoszczędzę co najmniej 3 godziny, a stażysta będzie zadowolony, że otrzymał radę i pomoc. Ogólnie rzecz biorąc, wystarczy ściśle komunikować się, obserwować, co robi dana osoba i nie tracić kontaktu.

Staż w IT: spojrzenie menedżera

Serioża:

Stażysta jest w stałym kontakcie ze swoim mentorem i komunikuje się z nim kilka razy dziennie. Mentor przegląda kod, programuje w parach ze stażystą i pomaga, gdy pojawiają się jakiekolwiek problematyczne obszary. Właśnie w ten sposób, łącząc pomoc mentora i realne zadania bojowe, szkolimy programistów front-endowych.

Dima:

Aby zapobiec porzuceniu stażysty, jeszcze przed zatrudnieniem omawiamy, kto będzie jego mentorem. To także duże wzmocnienie dla samego mentora: przygotowanie do roli lidera zespołu, sprawdzenie umiejętności pamiętania zarówno o zadaniu własnym, jak i zadaniu szkolonego. Odbywają się regularnie spotkania, na które czasem sam chodzę, żeby być na bieżąco. Ale to mentor komunikuje się ze stażystą dość regularnie. Na początku poświęca dużo czasu, ale to się opłaca.

Jednak posiadanie mentora nie oznacza, że ​​wszystkie pojawiające się problemy zostaną przez niego rozwiązane.

Misza:

Przyzwyczailiśmy się, że osoby borykające się z problemem zwracają się o poradę do sąsiadów i kolegów i szybko znajdują pomoc. Im szybciej człowiek rośnie, tym częściej musi chodzić do swoich kolegów, aby się czegoś nauczyć. Pomocne jest nawet po prostu poznanie zadań innych osób, aby móc wymyślić nowe. Kiedy stażysta potrafi dojść do porozumienia, zrozumieć, co jest ważne dla drugiej strony i osiągać rezultaty w zespole, będzie się rozwijał znacznie szybciej niż ktoś, za kogo musi to wszystko robić menadżer.

Serioża:

Istnieje dokumentacja, ale większość informacji rozpływa się w powietrzu. Jeśli przyswoisz sobie tę wiedzę na początku swojej kariery, będzie to dodatkowa zaleta, dzięki której będziemy mogli skupić się na tym, czego musi się nauczyć.

Idealny stażysta to ktoś, kto szkoli się przez kilka miesięcy, zostaje młodszym programistą, potem już tylko programistą, potem liderem zespołu itp. Wymaga to archetypu studenta, który nie wstydzi się zapytać, jeśli coś jest dla niego niejasne, ale jest także zdolny do samodzielnej pracy. Jeśli powiedziano mu, że może gdzieś o tym przeczytać, poszedł, przeczytał i faktycznie wrócił z nową wiedzą. Może popełniać błędy, ale nie powinien popełniać błędów więcej niż raz, maksymalnie dwa razy w tym samym miejscu. Idealny stażysta powinien się rozwijać, chłonąć wszystko jak gąbka, uczyć się i rozwijać. Ten, kto siedzi i próbuje wszystko sam przemyśleć, spędza dużo czasu na wędrowaniu i nie zadaje żadnych pytań, raczej się nie przyzwyczai.

Koniec stażu

Z każdym stażystą przed rozpoczęciem pracy podpisujemy umowę na czas określony. Oczywiście staż jest płatny, sformalizowany zgodnie z Kodeksem pracy Federacji Rosyjskiej, a stażysta ma takie same świadczenia jak każdy inny pracownik Yandex. Po trzech miesiącach program się kończy – wówczas wielu stażystów przenosimy do kadry (umowa na czas nieokreślony).

Staż w IT: spojrzenie menedżera

Z jednej strony dla menedżera ważne jest, aby deweloper spełnił swoje minimum stażowe. To tutaj prowadzony jest stażysta, zaczynając od rozmowy kwalifikacyjnej. Jednak to dopiero początek historii. Dla nas stażysta to zawsze potencjalny kandydat na pracownika. Minimalny program dla menadżera to wskazanie już na początku osoby, która po trzech miesiącach nie będzie się wstydzić polecać innym działom. Maksymalny program zakłada utrzymanie go w tym samym zespole i zatrudnienie go na członka personelu. Jednocześnie bierzemy pod uwagę, że student drugiego lub trzeciego roku studiów – nawet jeśli został stażystą – z początkiem roku akademickiego będzie musiał kontynuować naukę na uczelni.

Serioża:

Przede wszystkim stażyści są dla nas potencjałem ludzkim. Staramy się rozwijać ludzi w Yandex, aby byli idealnie dopasowani do naszych zadań. Dajemy im wszystko, od kultury komunikacji i interakcji w zespołach po encyklopedyczną wiedzę o wszystkich naszych systemach.

Ignat:

Kiedy przyjmujemy stażystę, od razu go wypróbowujemy i dołączymy do naszego zespołu. I z reguły jedyną przeszkodą jest brak wolnych miejsc pracy. Staramy się zatrudniać wystarczającą liczbę młodych chłopaków jako stażystów. Jeśli dana osoba ma pięcioletnie doświadczenie programistyczne, przychodzi do Yandex i jest stażystą na poziomie, to niestety dla nas oznacza to, że chociaż jest świetnym facetem, ponieważ dostaje pracę w Yandex po pięcioletnim stażu doświadczenia, nie będzie mógł wyrosnąć na starszego programistę. Zwykle jest to kwestia szybkości: powolny wzrost w przeszłości będzie oznaczać powolny wzrost tutaj. Tak, czasem zrozumienie, że dana osoba nie podoła zadaniu, przychodzi dopiero po trzech miesiącach. Ale jest to dość rzadkie. W ponad połowie przypadków jesteśmy gotowi zatrudnić osoby na stałe. W mojej pamięci nie było jeszcze sytuacji, żeby ktoś pomyślnie zakończył staż, a nie przeszedł rozmowy kwalifikacyjnej na etat.

Misza:

Wszystkim stażystom, którzy odnieśli sukces, oferujemy pozostanie w firmie. Po odbyciu stażu zazwyczaj podejmujemy ponad połowę jego stażu na pełen etat. Praktyki letnie są trudniejsze, bo często przyjeżdżają do nas studenci trzeciego roku i trudno im pogodzić pracę z nauką.

Dima:

Załóżmy, że stażysta wykonuje świetną robotę i ma duże perspektywy, aby wyrosnąć na dobrego programistę – nawet jeśli nie ma obecnie wystarczającego doświadczenia. Załóżmy, że nie ma wakatu na umowę na czas nieokreślony. Wtedy wszystko jest proste: muszę iść do mojego menadżera i powiedzieć mu – to bardzo fajna osoba, musimy go za wszelką cenę zatrzymać, zaproponujmy mu coś, znajdźmy dla niego miejsce.

Opowieści o stażystach

Denis:

Dziewczyna, która odbyła u nas staż w 2017 roku, pochodziła z Permu. To jest 400 kilometrów od Jekaterynburga na zachód. I co tydzień przyjeżdżała do nas pociągiem z Permu do Szkoły Rozwoju Mobilnego. Przychodziła w ciągu dnia, uczyła się wieczorem i wracała późnym wieczorem. Doceniając taki zapał, zaprosiliśmy ją do pracy i opłaciło się.

Ignat:

Kilka lat temu uczestniczyliśmy w programie wymiany stażowej. Ciekawie było pracować z obcokrajowcami. Ale stażyści stamtąd nie są silniejsi niż np. z ShAD czy z Wydziału Informatyki. Wydawać by się mogło, że EPFL znajduje się w pierwszej dwudziestce najlepszych uniwersytetów w Europie. W tym momencie, jako jeszcze niezbyt doświadczony ankieter, miałem takie oczekiwania: niesamowite, przeprowadzamy wywiady z ludźmi z EPFL, będą super fajni. Jednak osoby, które zdobyły tutaj podstawowe wykształcenie w zakresie kodowania – w tym na kluczowych regionalnych uniwersytetach – okazują się całkiem na poziomie.

Albo inna historia. Teraz mam w sztabie faceta, jest bardzo młody, ma około 20 lat. Pracuje w Petersburgu, przyjechała na staż. Jest bardzo fajny. Jak zwykle dajesz komuś problemy, on je rozwiązuje, a po miesiącu przychodzi i mówi: rozwiązałem je, patrzę i wygląda na to, że twoja architektura jest słabo zbudowana. Powtórzmy to. Kod stanie się prostszy i bardziej przejrzysty. Oczywiście go odradziłem: ilość pracy jest duża, nie ma zysku dla użytkowników, ale pomysł wydaje się całkowicie rozsądny. Osoba ta wymyśliła złożony, wielowątkowy proces i zasugerowała ulepszenia - być może te przedwczesne, refaktoryzację dla samej refaktoryzacji. Ale gdy tylko chcesz skomplikować ten kod, nadal możesz przeprowadzić refaktoryzację. Tak naprawdę minęło kilka miesięcy i podjęliśmy się tego zadania. Chętnie go zatrudniłem. Nie wszyscy jesteśmy geniuszami. Można przyjść, coś wymyślić i wskazać nasze problemy. To jest doceniane.

Misza:

Mamy takich idealnych stażystów. Mimo braku doświadczenia, widzą zadanie nie tylko na poziomie technicznym, ale także globalnym. Oferują zasadnicze ulepszenia. Rozumieją, jak przekładać problemy ze świata rzeczywistego na świat techniczny, nie tracąc przy tym ich znaczenia. Zastanawiają się, jaki jest ostateczny cel, czy warto już teraz zagłębiać się w szczegóły, czy mogą całkowicie zmienić podejście do zadania, a nawet sformułowanie problemu. Oznacza to, że mają potencjał, aby być o kilka poziomów wyżej. Aby pójść tą drogą, wystarczy ulepszyć niektóre umiejętności i narzędzia wewnętrzne. Plus uruchom kilka udanych projektów.

Staż w IT: spojrzenie menedżera

Źródło: www.habr.com

Dodaj komentarz