Zmiany w IT, a kompetencje i rozwój. Jak być dobrym programistą za kilka lat?

Branżę IT cechuje wyjątkowe na tle innych podejście do rekrutacji. Często ważniejszym czynnikiem pozytywnej decyzji o przyjęciu kandydatury jest zapał, a nie doświadczenie. Chęć do nauki, zmian i rozwijania się przebija dotychczasowe osiągnięcia, a nawet ich brak. Najtrudniej jednak utrzymać motywację do podnoszenia swoich kwalifikacji.

Paweł Linek, .NET Software Engineer w VM.PL i Maciej Stasiełuk, CTO / Software Architect w Vazco opowiedzieli, jak dbać o swój rozwój i przygotować się na to, by być pożądanym programistą także za 3 lata. Ich zdaniem receptą na utrzymywanie wartości jest poznawanie języków obcych, frameworków, ale i żywe zainteresowanie tematami okołoprogramistycznymi. Jak zaprojektowali swoje ścieżki kariery? Tego dowiecie się z poniższej rozmowy.

Paweł Linek i Maciej Stasiełuk

Jesteście programistami z wieloletnim doświadczeniem. Czy według Was da się zaprojektować ścieżkę kariery?

Paweł: Oczywiście. Warto jednak zaznaczyć, że nie jesteśmy w stanie przewidzieć tego, jakie będą potrzeby biznesu za parę lat ani jakie będzie zapotrzebowanie na usługi programistów i które technologie będą ważne. Można jednak stale się uczyć i właśnie w ten sposób planować swoją karierę. Nauka to główny element tej układanki – należy ćwiczyć głowę, np. ucząc się języków obcych.

Maciej, jesteś podobnego zdania?

Maciej: Na pewno warto mieć pomysł na siebie. By czuć, że idziemy ścieżką, której podążanie sprawia przyjemność. Trzeba robić to, co się lubi, ale jednocześnie być elastycznym. W IT wszystko szybko się zmienia. Za parę lat systemy będą inne, my będziemy inni. Zmieniać będzie się nie tylko nasze środowisko, ale i nasze ambicje. Dlatego zaplanowanie, gdzie czy kim chcemy być za 10 lat, może być ciężkie ze względu na to, że po drodze zwyczajnie zmienimy zdanie.

Zdarzyło Wam się kiedyś tak zmienić zdanie?

Paweł: Byłem w takiej sytuacji przez dwa i pół roku, po czym stwierdziłem, że potrzebuję “odświeżenia”.

Jak myślisz, co pracodawcy sądzą o takich osobach, które potrzebują, jak to powiedziałeś, “odświeżenia”?

Paweł: Rynek jest na tyle dynamiczny, że osoby mające doświadczenie w wytwarzaniu czy utrzymywaniu oprogramowania będą chciały wyjść w stronę innej, świeżej, ciekawszej technologii. Pracodawca, który widzi zaangażowanie czy potencjał, bardzo chętnie zatrudni takiego kandydata, nawet jeśli nie ma on doświadczenia. Przykładem jest mój znajomy, który z .NET developera stał się Kotlin developerem – bez żadnej styczności z komercyjnymi projektami.

Jak zaplanować taki rozwój umiejętności technicznych?

Paweł: Trzeba mieć wyczucie, w którą stronę podążają trendy, i starać się iść w stronę rozwoju w wybranej przez nas technologii. Możemy oczywiście iść z głównym nurtem i poszerzać swoją wiedzę w kierunkach najbardziej popularnych. Możemy także wymyślić sobie niszę, w której chcemy być specjalistami. Generycznym podejściem jest dla mnie utrzymywanie umysłu w stanie ciągłej elastyczności poprzez uczenie się i zdobywanie nowych doświadczeń. Dzięki współpracy z VM.PL podejmujemy się projektów, które są skomplikowane nie tylko pod względem technologicznym, ale też biznesowym, co sprawia, że rozwijamy się już poprzez branie w nich udziału.

Rozmawiamy o potrzebie rozwoju i zmieniającym się rynku. Jak ważne są w takim razie zmiany projektów?

Paweł: Zmiana projektu pozwala pracownikowi wnieść swoje nowe podejście i perspektywę. W software house’ie mam możliwość pracowania nad projektami, których cykl życia jest krótki, więc uważam, że pracuję w środowisku mocno rozwijającym. Zmiana projektów wymusza adaptację, np. do innej technologii czy frameworku. A jak wiadomo, każdy projekt jest inny.

Maciej: Sytuacje, w których zmieniamy technologię, można podzielić na dwa przypadki: gdy powód jest wewnętrzny lub zewnętrzny. Wewnętrzny jest wtedy, gdy spodoba nam się inny język programowania czy framework, a zewnętrzny, gdy ktoś zmusza nas do zmiany, np. przez pojawienie się nowego projektu. Oczywiście najbardziej komfortowa jest sytuacja, gdy sami chcemy nauczyć się czegoś nowego. W takim wypadku możemy szkolić się na własną rękę lub starać się zmienić projekt.

Jak zareagować, kiedy ktoś zmusza nas do zmiany projektu?

Maciej: Projekty rozpoczynają się i kończą, to naturalny cykl życia, który w software house’ie jest jeszcze bardziej widoczny. Sytuacja, kiedy nowy projekt ma zupełnie inny stack technologiczny, może być niekomfortowa dla części osób. Nie każdy musi chcieć uczyć się nowego języka i w takim wypadku można starać się znaleźć coś bardziej dopasowanego. Nie ma sensu się męczyć. Oczywiście dla tych, którzy postanowią spróbować nowego wyzwania, ważny jest dobry mentoring, aby było wiadomo skąd taka zmiana i jakie są jej korzyści oraz konsekwencje.

Kiedy jeszcze ważny jest mentoring? Może dla juniorów?

Paweł: Kiedy przypomnę sobie jak zdobywałem wiedzę, to moje zmagania porównałbym do wejścia do budynku, w którym wydaje się, że znamy każdy kąt. Po czasie otwieramy drzwi, za którymi są kolejne drzwi. Teraz patrzę na to inaczej. Praktyka jest kluczem, można krążyć po pierwszym pokoju, nie otwierając kolejnych drzwi – i czuć, że wszystko wiemy. Dlatego dla osób dopiero wchodzących w branżę, ważne jest ich dobre poprowadzenie.

Jak w Waszych firmach wspiera się samorozwój?

Paweł: Przede wszystkim nauka języków. Lekcje niemieckiego i angielskiego służą nam nie tylko do pracy i wyjazdów służbowych, ale też zagranicznych. Utrzymujemy relacje z klientem, więc uczymy się biznesu i pracy z zagranicznymi zespołami. Poza tym każdy pracownik może wybrać sobie dowolne szkolenie albo konferencję i zostanie mu to zasponsorowane. Do tego dochodzą meetupy organizowane przez VM.PL, czy zewnętrzne. Wspomnę jeszcze, że ostatnio mieliśmy imprezę, po której większość pracowników zdobyło patent sternika motorówek.

Maciej: W Vazco staramy się wspierać samorozwój pracowników na wielu płaszczyznach. Od takich podstawowych rzeczy jak szkolenia z nowych technologii czy kursy językowe, aż po wspieranie indywidualnych inicjatyw np. open source. Zachęcamy nie tylko do biernego udziału w szkoleniach czy meetupach, ale też do występowania samemu — przekazywanie swojej wiedzy i uczenie innych jest moim zdaniem jednym z najlepszych sposobów do tego, aby samemu się rozwijać. I to wsparcie w Vazco bardzo dobrze funkcjonuje.

Co z kierunkiem rozwoju? Branżę IT wyróżnia to, że raczej promuje postawę: “znam wiele języków”, a nie “znam tylko jeden język i jestem w nim specjalistą”. To też jakaś wskazówka dla początkujących?

Paweł: Mówienie juniorowi, że powinien stać się specjalistą w jednej dziedzinie jest przysłowiowym wpuszczaniem w maliny. Stanie się takim specjalistą zajmie mu mniej więcej 5 lat i nic z tego nie wychodzi. Co z tego, że będzie umiał napisać super algorytm w backendzie, skoro nie będzie miał pojęcia, jak wyniki przeliczenia tego algorytmu zapisać do bazy danych? Dlatego wydaje mi się, że początkujący nie mają wyobrażenia, jak potężny i pełen pomieszczeń jest ten budynek, o którym wspominałem wcześniej. Nie mam wyobrażenia tego ogromu ani nie wierzę w to, że ktokolwiek ma.

Maciej: Jeżeli ktoś dopiero zaczyna, to nie wie, co mu się spodoba, ani w czym będzie dobry. Jeżeli więc wybierze wąski cel, nie patrząc na inne możliwości, to bardzo łatwo może się pomylić. Tuż obok może być coś, co sprawiłoby mu więcej radości, ale nie będzie miał okazji już tego spróbować. Dlatego właśnie tak ważne jest, by na początku być otwartym i próbować różnych rzeczy, aby świadomie zdecydować, w czym chcemy się rozwijać.

To znaczy, że do Waszych zespołów szukacie juniora po kursie/szkole programowania, czy może kogoś, kto po prostu rozumie, czym jest programowanie?

Maciej: Szukamy ludzi, którzy są przede wszystkim perspektywiczni. To, czy skończyło się studia informatyczne, jakiś bootcamp, czy po prostu jest się samoukiem, ma drugorzędne znaczenie. Ważne jest to, co się potrafi, i to, czy jest się otwartym na ciągłą naukę, ponieważ pierwsze lata w zawodzie to pochłanianie olbrzymich dawek informacji, niezależnie z jakiego poziomu startujemy. Wewnętrzne szkolenia i mentoring w Vazco pozwalają nadrobić braki w wiedzy, ale samo nastawienie zmienić jest już znacznie trudniej.

Paweł: Chciałbym, żeby taka osoba miała ogólne podstawowe pojęcie o backendzie, frontendzie czy o tym, czym jest continuous integration oraz delivery. Jeśli zobaczyłbym, że jest zainteresowanie i chęć do nauki, to wierzę, że razem moglibyśmy zajść daleko.

Co sprawia, że przestajemy być juniorami?

Paweł: Moim zdaniem przestajemy być juniorem, a zaczynamy być midem, kiedy mentalnie my i osoby w naszym teamie wiedzą o tym, że mogą na nas polegać w kwestiach technicznych. Ważne jest także to, że bierzemy na swoje plecy większą odpowiedzialność – to jest moim zdaniem moment, w którym stajemy się bardziej doświadczonymi programistami. Dzięki temu z czasem coraz bardziej inni polegają na nas, a nie my na innych.

Maciej: Początkująca osoba zrealizuje zadanie dokładnie według podanych instrukcji. Bardziej doświadczony programista zastanowi się, czy nie ma przypadkiem lepszego rozwiązania. Ta zmiana w sposobie myślenia, którą nabywamy w miarę doświadczenia, w połączeniu z większą odpowiedzialnością za swoją pracę sprawia, że nie jesteśmy już juniorem. Stajemy się bardziej świadomi i zaczynamy zwracać uwagę na więcej rzeczy, które są dla produktu istotne.

Jaka jest więc największa różnica między juniorem a seniorem?

Maciej: Z biegiem czasu zachodzą większe zmiany. Głównym zmartwieniem juniora jest zrobienie swojego zadania i zakodowanie go tak, by wszystko działało dobrze. Lead czy senior developer martwi się kodem i jego jakością. Nie tylko tym, czy to wszystko będzie działać, ale też czy to, co zrobimy, będzie działać za rok, dwa, pięć. Czy osoba, która przyjdzie po nas za pół roku, będzie umiała ten kod przeczytać i poprawić? Czy ona go zrozumie? To są takie nowe elementy, o których początkujące osoby nie myślą, bo nie muszą. To przychodzi z czasem.

Rozwój umiejętności miękkich, jak np. właśnie bycie zainteresowanym, czy chętnym do nauki, jest bardzo ważne. Jak może wpłynąć na to praca zdalna? Jesteście jej zwolennikami czy przeciwnikami?

Paweł: Świat zmierza w tym kierunku, że chyba nie ma znaczenia czy jesteśmy zwolennikami, czy wręcz przeciwnie. Możemy po prostu nie mieć wyjścia, bo praca zdalna jest już standardem. Wyobrażam sobie sytuację, że za 10 lat wiele firm przestanie korzystać z biurowców i będziemy mieć małe przestrzenie wyłącznie na spotkania czy elementy administracyjne. O ile, współpracując z VM.PL, pracujemy zdalnie dla klienta, o tyle spotykamy się wszyscy w biurze. Raz, że polepsza to komunikację w zespołach, a dwa — ze względu na atmosferę, jaka u nas panuje.

Maciej: Praca zdalna jest dosyć specyficzna i na pewno nie dla każdego. Mamy to szczęście, że pracując głównie dla klientów zagranicznych, nasza fizyczna lokalizacja nie ma znaczenia tak długo, jak wywiązujemy się z naszych obowiązków.

Jak więc dobrze pracować zdalnie?

Paweł: Praca zdalna zmusza do kontaktu, choć nie wszyscy czują się dobrze dzwoniąc i kontaktując się z ludźmi. Wielu z nas woli samodzielnie rozwiązywać problemy, ewentualnie kontaktować się z kolegami za pomocą Skype’a, Slacka, co uważam za błędne. Bardzo polecam lekturę Remote Manifesto, gdzie możemy przeczytać, jacy powinniśmy być pracując zdalnie. Cieszy to, że coraz częściej w ogłoszeniach o pracę widzę fragment, który mówi, że warunkiem koniecznym jest stosowanie się do treści tego manifestu.

Maciej: Potrzeba na pewno dużo samozaparcia i wewnętrznej motywacji, aby skutecznie pracować zdalnie, coś, co nie każdy jest w stanie wykrzesać z siebie. Jednak przy dobrej samoorganizacji praca zdalna może być nawet efektywniejsza niż ta w biurze.

Wróćmy na chwilę do rozmowy o Was. Jak Wy się uczyliście i czy mieliście swojego mentora?

Paweł: Tak, miałem mentora i uważam, że dzięki temu jestem właśnie w tym, a nie innym miejscu. Mentor bardzo motywował mnie do działania, a przede wszystkim zaraził mnie swoją pasją. Widziałem błysk w jego oku, kiedy programował i ten błysk mam też dzisiaj ja.

Maciej: Może nie jestem dobrym przykładem, bo samodzielnie zacząłem poznawać czym jest programowanie już w podstawówce. To były czasy, kiedy internet “był na kartki”. Zdobywanie wiedzy nie było tak łatwe, jak dzisiaj. Przyłączam się do tego, co powiedział Paweł. Kluczem jest to, by lubić to, co się robi, ponieważ IT to branża, w której łatwo się wypalić.

Znasz taki przypadek?

Maciej: Spotkałem wiele osób typowo po bootcampach: zmusili się, bo były dobre pieniądze, ale nie czerpali radości z programowania. Takie osoby bardzo szybko się wypalają. Jeżeli nie znajdą w tym przyjemności, to szybko zostaną w tyle, co tylko pogłębia efekt. Podczas rekrutacji najbardziej zwracam uwagę na podejście kandydata. Wiedzę można przekazać, a nastawienie bardzo trudno zmienić.

Pracujecie z klientami z różnych stron świata. Co oprócz znajomości technologii jest potrzebne w takim przypadku?

Paweł: Współpraca z VM.PL zachęca do intensywnej nauki nie tylko języka angielskiego, ale też niemieckiego. Zdobywam kolejne poziomy, bo wiem, że będzie to coś, co pomoże mi w kontakcie z klientami. Klienci niemieccy chcą rozmawiać z nami po niemiecku, mimo że dobrze znają angielski. Dodają też komentarze w języku niemieckim, dlatego odczuwam potrzebę znajomości tego języka.

Maciej: Na pewno znajomość języków jest kluczowa, często na równi ze znajomością technologii. W Vazco pracujemy z ludźmi z całego świata: od Stanów, przez zachód Europy, a na Azji i Australii kończąc, więc dochodzą nam takie tematy jak strefy czasowe i różnice kulturowe. Ma to również swoje pozytywy, szczególnie kiedy jest okazja żeby polecieć odwiedzić klienta na miejscu.

Jak zmieniło się stanowisko programisty od czasu Waszej pierwszej pracy?

Paweł: Doszło trochę nowych obowiązków. Kiedyś programista zajmował się głównie programowaniem, a dziś te systemy są na tyle duże, że wykorzystuje się architektury rozproszone, przez co dochodzą tu elementy DevOpsowe czy Cloudowe, którymi warto się zainteresować. To taka główna różnica.

Maciej: Na pewno zawód programisty stał się bardziej wszechstronny i interdyscyplinarny, ale są to moim zdaniem zmiany idące w dobrym kierunku. Sama branża IT się bardzo rozrasta, tworząc nowe wyzwania i szukając nowych ludzi, którzy im sprostają.

Podsumujmy naszą rozmowę. Co trzeba zrobić, żeby być dobrym programistą także za 3 lata?

Maciej: Trzeba lubić to, co się robi. Mieć ogólne rozeznanie, ale znaleźć też fragment, który sprawia radość. Nikt nie jest w stanie przewidzieć, jak to dokładnie będzie wyglądać za trzy lata. Nowe języki, nowe frameworki pojawiają się cały czas. Trzeba być bardzo otwartym na zmiany. To nie muszą być tylko rzeczy techniczne, ale też umiejętności miękkie.

Paweł: Trzeba szkolić umiejętności miękkie, czy te dotyczące języków obcych, czy zarządzania ludźmi. Musisz wiedzieć i być pewnym tego, czy czerpiesz radość z tego, co robisz.


Maciej Stasiełuk. Od 2013 roku w Vazco, CTO w firmie, programuje od podstawówki, komercyjnie od 2010 roku. Fan Formuły 1 i lotów kosmicznych. Dawniej programista PHP, teraz skupiony na świecie JavaScript, a szczególnie GraphQL i React. Łączy świat biznesu i programowania, ma wykształcenie biznesowe.

Paweł Linek. Wytwarzaniem i rozwijaniem oprogramowania zajmuje się od ponad 7 lat. Pierwsze kroki z językami niskopoziomowymi zaczynał jako cywilny pracownik Wojska Polskiego. Poźniej już było tylko ciekawiej — branża energetyczna i bankowość. Następnie nadszedł świat platformy .NET. Nie ustępuje w poszukiwaniu obszarów, w których musi się doszkalać, aby dostarczane rozwiązania były jak najwyższej jakości.

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

Patronujemy

 
 
Polecamy
Od bioinformatyka do backendowca. Historia Piotra Zaremby