Menu Zamknij
21 lutego 2022

8 mniej oczywistych cech skutecznego mentora programowania.

Spis treści

Podziel się wpisem ze znajomymi!

8 mniej oczywistych cech skutecznego mentora programowania.

 

Idea Devs-Mentoring.pl

Już od samego początku budowania Devs-Mentoring.pl wychodziłem od jednego głównego założenia. Chciałem zapewnić przyszłym programistom miejsce, wręcz azyl, w którym będą efektywniej uczyli się programowania pod okiem indywidualnego trenera - mentora programowania. Szerzymy filozofię, aby podchodzić do każdego ucznia indywidualnie. Mentor ma być osobistym przewodnikiem i mistrzem (niczym z filmów rodu Karate Kid) dla każdego z  uczniów. 

Dlatego też, ja - jako osoba zarządzająca firmą - staram się dobierać do zespołu osoby, które charakteryzuje szereg niezbędnych cech do bycia skutecznym mentorem dla kadetów programowania. U nas mentoring opiera się na dzieleniu się swoim doświadczeniem i profesjonalną wiedzą z osobami uczącymi się programowania. Dobry mentor powinien być w stanie rozwikływać każde programistyczne zagwozdki ucznia, nakierunkowywać kursanta na właściwe tory nauki, pomagać w wyborze specjalizacji czy odpowiadać na każde istotne pytanie w kontekście przyszłej pracy w IT. 

W ten sposób dzieli się powszechnie niedostępną wiedzą, wskazówkami, jak pokazać się w branży z najlepszej strony i jest przede wszystkim katalizatorem w procesie poszukiwania przez ucznia wakatu programistycznego. Każdy z nas dobrze zdaje sobie sprawę z tego, jak wygląda obecny rynek Juniorów - szeroka konkurencja i ilość kandydatów przewyższająca wolne stanowiska pracy. Dlatego też nawiązanie współpracy z indywidualnym nauczycielem - zawodowym programistą - jest idealną szansą na to, aby być o krok dalej w stosunku do innych Juniorów i choćby uczyć się tylko tych rzeczy, które są najbardziej cenione na rynku, budować portfolio i CV zgodne z oczekiwaniami przyszłych pracodawców.

Jeżeli zatem zastanawiasz się, czego możesz spodziewać się po mentorze, kto przejmie stery nad Twoim rozwojem i poprowadzi Cię od A do Z w kierunku przebranżowienia, zapoznaj się z poniższymi, mniej oczywistymi, cechami każdego z mentorów pracujących u nas w firmie. A może chciałbyś dołączyć do naszego zespołu i zastanawiasz się, czy ten fach jest odpowiedni dla Ciebie? Poniżej również znajdziesz na to odpowiedzi! 

 

Mniej oczywiste cechy naszych mentorów programowania

 

1. Mentor ma wysoko rozwinięte kompetencje miękkie.

Zdajemy sobie sprawę z tego, że wysoko rozwinięte umiejętności techniczne u mentora to jedno. Jednak równie ważnym kryterium “dobrego mentora-programisty” jest to, czy podchodzi on entuzjastycznie do przekazywania wiedzy i po prostu potrafi dogadać się z uczniem. Nie chcemy, aby nadzorowanie pracy ucznia przebiegało w sztywnej i korporacyjnej atmosferze.

Oczywiście - musimy jasno stawiać cele do realizacji i koordynować pracę ucznia, jednak powinno to przebiegać w przyjacielskiej i i nie napiętej atmosferze. Mentor faktycznie ma wcielać się w rolę “guru programowania”, ale równocześnie być “przyjacielem z branży”, do którego można się zwrócić z każdym problemem natury developerskiej. Dlatego też mentor musi dobrze rozumieć potrzeby i emocje ucznia, aby potrafić w pełni dostosować metodykę pracy. Wszystko po to, aby w pełni wykorzystywać potencjał młodych programistów. 

2. Potrafi sprzedać solidny feedback. Nie owija w bawełnę.

Mentor znacząco przyspiesza Twój rozwój programistyczny. Dlatego tak bardzo ważne jest, aby potrafił on nieustannie korygować Twój proces nauki - przez solidny i konstruktywny feedback. Nauczyciel nie może owijać w bawełnę i na siłę chwalić każdy Twój (niekoniecznie dobry) ruch. Musi on mieć w sobie odwagę, aby w niektórych sytuacjach jasno mówić podopiecznemu, że przykładowo: obrana przez ucznia strategia na naukę nie należy do najlepszych, że kursant musi poświęcać więcej czasu na pracę indywidualną itd. 

Mówiąc o feedback-u, mamy na myśli również wszystkie wnioski, podpowiedzi i propozycje do zmian po przeprowadzeniu Code Review projektów ucznia. Celem mentora jest zrobienie z Ciebie solidnego programisty, a nie osoby, która będzie tylko “klepała” kod. Jeżeli napisałeś daną funkcjonalność nieoptymalnie, a Twój kod łamie zasady SOLID czy GRASP, to mentor musi wskazać i zasugerować Ci, co należałoby zmienić, aby usprawnić swoje rozwiązanie. Tak więc Twój nauczyciel musi być konsekwentny, nie może przymykać oka na niedoskonałości w budowanym przez Ciebie projekcie. Zdaje sobie sprawę, że każdy niedopracowany szczegół może negatywnie rzutować na Twoją dalszą karierę i stawiać Cię w niekoniecznie dobrym świetle przed przyszłym pracodawcą. 

3. Cierpliwie nakierunkowuje, stara się nie podawać gotowego rozwiązania

Gdy masz problem z danym zagadnieniem czy napisaniem działającej funkcji w kodzie, mentor jest pierwszą osobą, która z pasją pomoże Ci rozwikłać problem. Pomoc w rozwiązaniu musi jednak następować przez podrzucanie ciągłych wskazówek i sugestii, a nie dostarczanie gotowego rozwiązania. Faktem przecież jest, że człowiek lepiej uczy się na własnych błędach i skuteczniej zapamiętuje różne rozwiązania przez odkrywanie i rozumienie pułapek myślenia, którymi się sugerował. 99% dotąd napotkanych przypadków pokazuje, że niemożliwość rozwiązania przez ucznia danego problemu wynika tylko i wyłącznie z obrania niewłaściwej strategii postępowania, czy niedokładnego rozumienia danego zagadnienia. Podpowiedzi na bieżąco dosyłane przez mentora zazwyczaj wystarczają kursantowi, aby samodzielnie rozwikłać problem. Dzięki temu, uczeń jest zmotywowany, że działający kod powstał tylko i wyłącznie z jego klawiatury, wyciągnął więcej wniosków i dogłębniej poznał powody, dlaczego jego wcześniejsze solucje nie działały prawidłowo. 

4. Stawia przed uczniem jasne i możliwe do zrealizowania cele

Mentor jest Twoim mistrzem i drogowskazem podczas przebranżowienia. Ty, jako jego uczeń, musisz tylko (lub aż) sumiennie podchodzić do pracy i realizować postawione przez mentora cele oraz założenia. Dlatego też Twój nauczyciel musi w trakcie mentoringu dobrze poznać Twoje predyspozycje oraz możliwości czasowe. Wszystko po to, abyście mogli wspólnie mierzyć siły na zamiary. Tygodniowe cele muszą być indywidualnie dostosowane pod każdego z uczniów - oczywiste jest bowiem, że na więcej może pozwolić sobie osoba, która uczy się programowania, nie mając na głowie równoległej pracy, niż taki kursant, który programuje “po godzinach”, będąc często zmęczonym po obowiązkach etatowych.

Mentor ma zatem zadanie, aby doprowadzić Cię do upragnionego celu, niezależnie od warunków, jakimi dysponujesz na naukę. Musi jednak odpowiednio wytoczyć dla Ciebie ścieżkę nauki, tak abyście maksymalizowali efekty pracy i jak najwięcej wyciągali z mentoringu.

5. Jest dostępny nie tylko na callach on-live

Zgodnie z filozofią naszej firmy - mentor ma być ostoją i pomocą dla ucznia również poza wspólnymi spotkaniami on-live. Robimy tak, aby uczeń czuł, że ma nad sobą osobę (przysłowiowego bata), która jest dostępna dla niego cały czas i jest chętna do pomocy czy podrzucenia “fachowej wskazówki” w sposób ciągły i nieprzerwany. Dostępny na wyłączność profesjonalista jest niewątpliwie skarbnicą wiedzy i ogólnie niedostępnych dobrych praktyk programowania, dlatego dążymy do tego, abyś mógł czerpać maksymalne korzyści ze współpracy z nami. Nie ma nic gorszego niż oczekiwanie na odpowiedź przez kilka dni, gdy utknąłeś na danym problemie i nie możesz ruszyć dalej z projektem. Dlatego pracując z naszymi mentorami, spodziewaj się, że będziemy Cię wspierali w sposób ciągły i nieprzerwany, na tyle tylko, ile to jest możliwe (mentor ma też jednak równoległe do nauczania obowiązki i pracę etatową). Dlatego podczas nawiązywania z Tobą współpracy, mentor zazwyczaj informuje Cię o tym, w jakich godzinach jest najczęściej dostępny i kiedy możesz spodziewać się odpowiedzi ad hoc. Twój mistrz nie pozwoli, abyś samemu, bez wsparcia, borykał się z jakimś problemem.

6. Potrafi zmotywować ucznia, gdy jest taka potrzeba. Nie ma dla niego rzeczy niemożliwych.

Zasada ta związana jest niejako ze wcześniejszym punktem, gdzie mówiliśmy, że mentor powinien mieć wysoko rozwinięte umiejętności miękkie. Podobnie jest i w tym przypadku. Twój nauczyciel jest główną osobą, która wierzy w Twój sukces i nie pozwoli Ci łatwo odpuścić. Dobrze zdaje on sobie sprawę z tego, iż nauka programowania to ciągłe wzloty i upadki, dlatego też będzie Cię motywował w gorszych momentach i zachęcał do nieodpuszczania, ciągłej pracy i rozwoju. Zdziwisz się, ale często rolą mentora jest przeprowadzenie z Tobą szczerej rozmowy i udzielenie odpowiedzi na różne nieścisłości czy zwątpienia związane z nauką programowania. Możesz na niego liczyć, gdy potrzebować będziesz zastrzyku motywacji, czy przestaniesz widzieć sens w swoim rozwoju (z często błahych i nieuzasadnionych sposobów). To on jest w stanie spojrzeć na Twoją naukę z, tzw. “helicopter view” i przekazać Ci maksymalnie obiektywny feedback i w rezultacie zachęcić do dalszej pracy (gdy nie ma żadnych poważnych obiekcji do kontynuowania nauki). 

7. Nie obawia się krytyki. Podchodzi do pracy z kursantem bardzo transparentnie.

Mentor wie, że ile jest osób, tyle różnych sposobów pracy i preferencji co do nauki. Dlatego chcemy, aby praca z uczniem przebiegała maksymalnie transparentnie i aby mentorowane osoby nie bały się mówić, co leży im na wątrobie. Zadaniem mentora jest dostosowanie systemu pracy pod Twoje preferencje - tak, abyś mógł wyciągać z mentoringu maksymalnie wiele. Dlatego też Twój przewodnik zdaje sobie sprawę, że musi reagować na nawet najdrobniejsze uwagi z Twojej strony i propozycje co do zmiany metodyki pracy. Dlatego też już na początku pracy z Tobą, jasno mówi, że w skutecznym rozwoju bardzo ważna jest transparentność pracy. Musimy jasno formułować oczekiwania, ewentualne rozczarowania (zarówno na poziomie mentor-uczeń, jak i uczeń-mentor), aby praca była jak najbardziej owocna i abyś mógł wyciągać z niej tak wiele, jak to tylko możliwe. 

8. Stara się maksymalnie zbliżać system pracy (z uczniem) do takiego, jaki jest obecny na rynku.

Chcemy już od samego początku przyzwyczajać Cię do tego, jak wygląda praca profesjonalnego programisty. Dlatego też mentor często musi mieć zdolności managerskie, aby skutecznie zarządzać Twoją pracą i przybliżać Twój system działania do tego, jaki jest obecny w software house-ach czy większych korporacjach. Dlatego też wie on, jak efektywnie przeprowadzać wspólne prace projektowe w duchu najpopularniejszych metodologii Agile (np. SCRUM), jak uczyć Cię skutecznego estymowania prac. W ten sposób wyszkoli Ciebie - przyszłego programistę - nie tylko od strony zagadnień technicznych, ale również pomoże wybić Ci się na rynku pracy i odnaleźć w różnych komercyjnych projektach. 


Oczywiście każdego z mentorów charakteryzuje również szereg bardziej oczywistych cech jak:

9. Pasja i smykałka do nauczania, przekazywania wiedzy.

10. Satysfakcja z realizacji celów ucznia.

11. Cierpliwość, spokój i w razie konieczności chęci do tłumaczenia tego samego naprawdę wiele razy.

Muszę przyznać otwarcie, że pozyskiwanie na pokład takich osób nie jest najłatwiejsze, jednak mamy na to sposób. Najczęściej mentorami zostają byli uczniowie, którzy osiągnęli już na tyle wystarczające mistrzostwo w swoich fachu, że są w stanie spełniać wszystkie wyżej postawione wymagania. Dzięki temu mentorami stają się dobrze znane nam osoby, z którymi współpracowaliśmy nieustannie przez wiele miesięcy i wiemy, że oprócz skutecznego przekazywania swojej wiedzy, będą w stanie bezproblemowo dogadywać się z podopiecznymi. 

 

Wszystkiego optymalnego! 

Sprawdź również nasz system mentorowania i outsourcowania specjalistów
  • Wyznaczona ścieżka od A do Z w kierunku przebranżowienia
  • Indywidualnie dostosowany materiał pod ucznia
  • Code Review ze strony mentora
  • Budowa portfolio
  • Intensywna praca z materiałami szkoleniowymi