Ścieżka kariery zawodowej w IT & rozwój programisty - Devdebata

Ścieżka kariery zawodowej w IT i rozwój programisty. Devdebata

W dzisiejszej Devdebacie rozmawiamy z doświadczonymi programistami na temat kariery w IT. Pytamy uczestników devdebaty o to, czy można zaprojektować lub zaplanować ścieżkę kariery programisty. Czy to w ogóle możliwe? Czym powinien kierować się junior wybierając miejsce pracy? Jak często zmieniać pracę i czy ma to dobry wpływ na rozwój umiejętności programisty i rozwój kariery? Po odpowiedzi na te pytania zapraszamy niżej.

Odpowiedzi na pytania społeczności udzielili:

  • Jakub Stompor. Senior Frontend Developer w T-Mobile. Ukończył studia wyższe na kierunku informatyka na Politechnice Świętokrzyskiej w Kielcach z tytułem magistra inżyniera oraz studia podyplomowe na kierunku e-marketing w Krakowie. Posiada wieloletnie doświadczenie w tworzeniu złożonych aplikacji dla dużych korporacji. W pracy głównie specjalizuje się w Frontendzie lecz nieobce mu są również backend i devops.
  • Karol Bojski. Software engineer w cyber_Folks. Ukończone studia wyższe na Politechnice Poznańskiej na kierunku informatyka, ze specjalizacją technologie przetwarzania danych. Aktualnie pracuje jako inżynier oprogramowania i leader poznańskiego zespołu H88 S.A.. Posiada wieloletnie doświadczenie w budowaniu aplikacji backendowych, nieobce są mu również zagadnienia związane z architektury oprogramowania, devops i frontend.
  • Michał Niegrzybowski. Senior Software Engineer w Datto. Ukończył studia wyższe na Politechnice Gdańskiej, na kierunku informatyka z tytułem magistra inżyniera. Aktualnie pracuje w F# tworząc systemy typu RMM.

Mamy zadanie: zaprojektowanie ścieżki kariery zawodowej programisty.

Zacznijmy od wspólnego ustalenia zasad. Czy częsta zmiana pracy pomaga w rozwoju programisty? Jak często zmieniać pracę?

Jakub Stompor, Senior Frontend Developer w T-Mobile

Według mnie i tak, i nie, to wszystko zależy na jakich ludzi i projekty trafi się na ścieżce swojej kariery zawodowej. Z jednej strony można pracować ze wspaniałymi mentorami w krótkich interwałach czasu i dużo się od nich uczyć. Z drugiej strony można trafić na słabą atmosferę, ludzi którzy nie służą pomocą i radą oraz projekty, które nie są rozwojowe. W pierwszym wariancie odpowiem tak warto, w drugim odpowiem nie warto. 

Karol Bojski, Software Engineer w cyber_Folks

To zależy, patrząc na swoje doświadczenie, każda nowa firma dostarczyła mi nowych umiejętności, które wykorzystuję do dziś. Tak naprawdę czasami zmiana pracy może następować co jakiś czas, gdyż sami często jako młodzi szukamy swojego miejsca w branży. Czasami jest tak, że znajdziemy je od razu, nie chcemy ryzykować, lub zwyczajnie jesteśmy zadowoleni. Jeżeli firma dostarcza Ci wielu wyzwań i możliwości, a Twój zespół to ludzie pełni pasji, którzy nie dzielą się wiedzą i doświadczeniem, to dlaczego w niej nie zostać? Jeżeli jednak czujesz, że zespół jest kiepski, współpraca jest bardzo trudna to myślę, że nie warto zostawiać.

Michał Niegrzybowski, Senior Software Engineer w Datto

Nie wiązałbym ściśle zmiany pracy z rozwojem programisty, a bardziej utożsamiał bym go z możliwością lub szansą na rozwój naszych umiejętności w danej firmie. Jeżeli czujemy, że osiągnęliśmy tak zwany „sufit” jeżeli chodzi o rozwój, to zmiana pracy może być dla nas czymś odpowiednim, tzw. “powiewem świeżości”, co może skutkować większą chęcią do dalszej nauki, zwiększonym zaangażowaniem oraz satysfakcją z pracy. Osobiście uważam, że najbardziej istotna w rozwoju programisty jest z pracą z osobami, które są ambitne i chcą się rozwijać, aniżeli ciągłe szukanie atrakcyjniejszej pracy.

Zmiana pracy a rozwój kompetencji. Powinniśmy zmieniać pracę, by uczyć się nowych języków i technologii czy, by w innym zespole rozwijać kompetencje z tego samego języka?

Jakub Stompor, Senior Frontend Developer w T-Mobile:

Myślę, że najlepiej rozwijać się z tego samego języka w innym zespole pod warunkiem, że dany język jest na czasie oraz jeśli w zespole mamy osobę, która pomoże nam się w tym języku rozwijać. Zmiana pracy jest również dobrą alternatywą, lecz wtedy wchodzimy w zupełnie nowe środowisko i nie do końca wiemy czy będziemy się mogli tam rozwijać tak jakbyśmy tego chcieli. 

Karol Bojski, Software Engineer w cyber_Folks

Tutaj również odpowiedź na pytanie nie jest jednoznaczna. Można zmieniać projekty wewnątrz firmy, dokształcać się samemu. Rozwijanie kompetencji w zakresie innych technologii nie jest równoważne ze zmianą pracy. Uważam, że najlepiej rozwijać się w jednej technologii, pod warunkiem, że nie jest ona przestarzała, a praca daje nam możliwości zgłębiania się w daną tematykę. Zmiany zawsze niosą za sobą również ryzyko, że przejście na inną technologię może spowodować, że będziemy zawiedzeni, gdyż nowa firma/zespół nie dostarczą nam możliwości rozwoju.

Michał Niegrzybowski, Senior Software Engineer w Datto

Moim zdaniem programista powinien sam nakreślać kierunek rozwoju swojej kariery zawodowej, a nie jego aktualny pracodawca. Oczywiście najlepiej, żeby obie te rzeczy szły ze sobą w parze. W związku z tym, w przypadku gdy pracodawca nie daje takiej możliwości, a my chcemy iść w zupełnie innym kierunku zmiana pracodawcy ma sens.

Na podstawie jakich czynników powinniśmy wybrać kolejną firmę? W czym powinna być lepsza od poprzedniej?

Jakub Stompor, Senior Frontend Developer w T-Mobile

Myślę, że najważniejszym czynnikiem dlaczego powinniśmy wybrać kolejną firmę jest rozmowa kwalifikacyjna z ludźmi z potencjalnie nowego zespołu, do którego mielibyśmy dołączyć. Już wtedy da się wyczuć czy będziemy tam pasować i z kim będziemy mieli do czynienia. Dla mnie jest to najważniejszy aspekt, dla którego wybieram tą czy inną firmę. Oczywiście ważne są również aspekty finansowe i ogólna pozycja firmy na rynku. Lecz według mnie to ludzie tworzą firmę, a nie firma ludzi. 

Karol Bojski, Software Engineer w cyber_Folks

Każdy w tym zakresie ma własne wymagania. Indywidualne nastawienie zależy od tego, w czym dana firma ma być lepsza. Ogólnie uważam, że powinno się zmieniać na pracę, która dostarczy wyzwań, która pokaże nowe możliwości rozwoju, lub będziemy czuć się lepiej dopasowani do zespołu. W zasadzie pierwszym etapem, który powinien być głównym czynnikiem, który nas popchnie do zmiany pracy, to oczywiście rozmowa kwalifikacyjna i poznanie firmy, i osób, z którymi przyjdzie nam w przyszłości pracować.

Michał Niegrzybowski, Senior Software Engineer w Datto

Trudno określić czy dana firma będzie lepsza na podstawie rozmowy kwalifikacyjnej czy też oferty. Uważam, że te dwa czynniki mogą jedynie wpłynąć negatywnie na nasze odczucia o danej firmie. Najlepszą informacją w kontekście tego jak wygląda w niej praca, struktura, podejście do tworzenia produktu będzie opinia kogoś z wewnątrz znajomego/znajomych/aktualnych bądź byłych pracowników. Czynnikiem niezależnym od

kwestii związanych z samą pracą i możliwościami rozwoju w niej jest pensja, która odgrywa większą bądź mniejszą  wypadkową podczas wyboru pracy.

Początek ścieżki kariery w IT. Junior szybciej rozwinie się w małej, średniej czy dużej organizacji? Dlaczego?

Karol Bojski, Software Engineer w cyber_Folks

Junior, z uwagi na to, że prawdopodobnie posiada głównie wiedzę teoretyczną, lub w zasadzie ma tylko własne projekty za sobą, w każdej firmie się rozwinie. Wielkość tutaj w mojej opinii nie ma znaczenia, ponieważ duże firmy mogą mieć słabą technologię i legacy kod, a małe startupy mogą brać wszystko, co nowe, ciekawe i warte poznania. Szybkość rozwoju również umiejętności i kariery zależy od zaangażowania samego juniora.

Michał Niegrzybowski, Senior Software Engineer w Datto

Moim zdaniem wielkość firmy nie ma znaczenia dla szybkości rozwoju początkowej ścieżki kariery. Największe znaczenie ma zespół, do którego trafi dany pracownik. Jeżeli cały zespół będzie zbudowany z programistów ambitnych, będących na bieżąco z nowościami, próbującymi się cały czas rozwijać to będzie to najlepsze, co może spotkać młodszego programistę by zarazić go pasją do pracy oraz nauczyć „dobrych” (czyt. stosowanych) praktyk. Z własnego doświadczenia mogę powiedzieć, że wprowadzenie do pracy powinno być łagodne, najlepiej w postaci pair-programmingu z bardziej doświadczonym członkiem zespołu. 

Wskaże to nowemu członkowi zespołu podejścia/zachowania/praktyki w danym zespole i pozwoli najszybciej wdrożyć w projekt. Najgorsze, co może być to zostawienie juniora samego sobie i „znęcanie” się na nim za zbyt wolną pracę bądź niepodążanie za praktykami ustalonymi w zespole.

Co oprócz wartościowego zespołu i ciekawych projektów w firmie może rozwinąć programistę?

Jakub Stompor, Senior Frontend Developer w T-Mobile

Myślę, że organizowanie tzw. Gildii np. Frontend lub Backend. Są to spotkania, podczas których rozmawia się o nowych rozwiązaniach, technologiach, implementacjach różnego rodzaju wymagań biznesowych. Oprócz tego programista może rozwinąć skrzydła programując w parach, gdy jest to oczywiście możliwe w danej firmie. 

Nie bez znaczenia pozostaje również kwestia nawiązywania dobrych relacji z osobami z zespołu. Uważam, że gdy te relacje są dobre to pociąga to za sobą dużo ciekawych rozmów m.in. na temat programowania oraz tworzenia wspólnych projektów. 

Karol Bojski, Software Engineer w cyber_Folks

Myślę, że tak. Projekty to jeden aspekt, który pomaga w rozwoju kariery programisty. Kontakt ze społecznością, udział w szkoleniach, czy wyjazdach na konferencje, a także wewnętrzna wymiana informacji, pomiędzy osobami z różnych działów pomaga na wiele problemów spojrzeć inaczej. Osobiście właśnie omawianie niektórych zagadnień „przy kawie” z osobami z innych jednostek, w moim zespole wniosło kilka ciekawych rozwiązań, które wcześniej nie były proponowane.

Michał Niegrzybowski, Senior Software Engineer w Datto

Pair programming stosowany na co dzień. Organizowanie „coding dojo” w językach i paradygmatach, których nie używamy w normalnej pracy. Organizowanie in-house meetupów. Wspólne oglądanie nagrań z konferencji/szkoleń wraz z dyskusją po.

Szczeble kariery w IT. Kto powinien dbać o rozwój juniora, a kto o rozwój mida czy seniora?

Jakub Stompor, Senior Frontend Developer w T-Mobile:

O rozwój młodego programisty powinni dbać jego bardziej doświadczeni oraz product owner. O rozwój mida i seniora powinni dbać ich wyżej postawieni przełożeni oraz midzi i seniorzy między sobą. Powinni oni dbać o swój rozwój. Organizować spotkania, gildie czy też szkolenia co pomoże im oraz również Juniorom.

Karol Bojski, Software Engineer w cyber_Folks

W mojej opinii, o rozwój osób z mniejszą wiedzą i doświadczeniem powinny dbać osoby, które posiadają jej więcej. Jednak co w sytuacji, kiedy takich osób nie ma? Kiedy w zespole jest jedna osoba, która posiada duże doświadczenie – dbałością o jej rozwój powinni zająć się przełożeni poprzez różnorodne szkolenia czy konferencje. Dodatkowo, każdy powinien również sam dbać o swój rozwój.

Michał Niegrzybowski, Senior Software Engineer w Datto:

Juniora/Mida/Seniora –> on sam.

Każdy jest odpowiedzialny za kierunek swojego rozwoju i tego, gdzie prowadzi swoją ścieżkę kariery i nie można oczekiwać, że ktoś ją za niego zaplanuje. Nikt się za nas niczego nie nauczy, to przede wszystkim my sami musimy o to dbać i wykazać chęć rozwoju. Koledzy z zespołu niezależnie od ich poziomu „seniority” powinni doradzać programiście, ale nie powinni ustalać, w którą stronę powinien się rozwijać i jak. Każdy człowiek jest inny. Firma natomiast powinna być transparentna dla pracownika w kwestii możliwości rozwoju, jak i dofinansowania szkoleń, konferencji etc. tak, by pracownik nie musiał się zastanawiać czy może o coś poprosić.

Rozwój kariery programisty a wsparcie firmy. Co oprócz wsparcia od seniorów czy budżetu na szkolenia, może zrobić firma, by ułatwić rozwój programistom?

Jakub Stompor, Senior Frontend Developer w T-Mobile

Według mnie bardzo dobrym pomysłem na wsparcie rozwoju zespołu jest przeznaczenie dla programistów jednego dnia na rozwój własnych projektów i zainteresowań w obszarze firmy. Daje to przede wszystkim oderwanie umysłu od bieżących sprintów, deadline’ów itp. Rozwija kreatywność i po prostu ludzie czują, że nie są tylko maszynami do pisania kodu. 

Karol Bojski, Software Engineer w cyber_Folks

W mojej opinii dobrym pomysłem jest to, żeby zespół miał czas na wdrażanie własnych koncepcji, tak, żeby każdy czuł, że ma jakiś wpływ na to, co się dzieje w firmie. Dodatkowo można zespół zaangażować w to, aby (jeżeli ktoś ma ochotę) mogli rozwijać projekty open source, albo tworzyli coś nowego. Pracodawca powinien przewidzieć taki czas dla programistów, na to aby robili to, czym się interesują. Taka przestrzeń na pewno korzystnie wpłynie na ich rozwój osobisty i ich karierę w IT.

Michał Niegrzybowski, Senior Software Engineer w Datto

Każdy człowiek jest inny. Więc osoby zarządzające zespołami projektowymi powinny wiedzieć jak indywidualnie podejść do osób w swoim zespole. Czego potrzebują by rozwijać swoje umiejętności i w jaki sposób im pomóc. Wiadomo, że byłoby to trudne, ale możliwość zindywidualizowania „pomocy” na jak najniższym poziomie byłaby najlepsza. To znaczy: Osoba A budżet X na same konferencje, Osoba B budżet B na same szkolenia, Osoba C cały piątek przeznacza na własne projekty etc. Możliwe, że zamiast mówienia, że finansujemy szkolenia, konferencje, pluralsight etc., lepszym pomysłem byłoby określenie z góry jaki każdy ma “budżet” na cokolwiek, co chce. 

Opisanie jakichś success story pracowników i tego jak oni się rozwijają/rozwijali też może być pomocne dla nowych/młodszych pracowników, by mogli zobaczyć co można robić i co można dzięki temu osiągnąć. W ramach codziennej pracy pomaganie w projektach open source, których firma używa na co dzień. Oczywiście firma nie powinna przeginać. Nie wszyscy muszą chcieć/mogą się rozwijać. Możliwe, że ich aktualna sytuacja na to nie pozwala, bo nie mają czasu, mają gorszy czas etc.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Aktualizacja forka react-native od Microsoft. Prasówka Technologiczna: 11-15.03.2019