Pobierz najnowszy raport: "Przygotuj się na rekrutację IT w 2024 roku - Rynek pracy IT w Polsce"

Pobierz raport
nauka programowania

Bycie programistą to ciągła nauka – wywiad z Mateuszem Rusem | Call For Tech

👉 Profil Mateusza na LinkedIn

🌐 Blog Mateusza

Cześć Mateusz. Czy mógłbyś się przedstawić i powiedzieć nam, czym się zajmujesz?

Cześć, ja nazywam się Mateusz Rus. Na co dzień pracuje w jednym z banków jako programista na pełen etat i to jest core’owa moja działalność, jeżeli chodzi o programowanie. A dodatkowo po godzinach piszę książki. Aktualnie jedną napisałem i zapowiada się, że wyjdzie druga. Jeżeli chodzi o programowanie, udzielam się w social mediach, na Facebooku, na Instagramie i od niedawna i też na TikToku i też bloguję. Chociaż aktualnie blog jest takim bardzo pobocznym projektem ze względu na inne rzeczy, które wokół mnie się dzieją. 

Jeśli chodzi o kwestie zawodowe, to przeszedłeś drogę od programisty, poprzez architekta systemów, aż po lidera technicznego, także są to bardzo różne role.  W której się najlepiej odnalazłeś? 

Ja w zawodzie programisty jestem w sumie 10 lat i faktycznie przeszedłem tą drogę od juniora, mida do seniora, poprzez te stanowiska liderskie. Aktualnie jestem na poziomie seniora w projekcie. Nie zarządzam zespołem ani projektem, ale miałem takie wcześniej projekty, gdzie rolę lider SKO miałem. No, jeżeli chodzi o to, czym się różni, to na pewno odpowiedzialnością. Na każdym z tych poziomów odpowiedzialność jest inna. Im wyżej jesteśmy, tym bardziej odpowiadamy za zespół, za jakość kodu, za projekty i myślę, że to jest takie kluczowe. I z mojej perspektywy uważam, że do tego trzeba mieć odpowiednie predyspozycje. Ja, będąc wcześniej liderem zespołu, prowadząc własny software house, czułem większą presję niż teraz jak jestem po prostu developerem i to jeden z powodów, dla których wróciłem na 100% do programowania akurat w sektorze finansowym. Jeżeli chodzi o liderowanie, to tutaj wiadomo, mniej się programuje, więcej chodzi się na spotkania z klientem, jest więcej spotkań i to jeżeli chodzi o prace programistyczne to Tutaj trzeba być dobrym w tzw. kompetencje miękkie, czyli trzeba być komunikatywnym, asertywny, trzeba potrafić wyrazić w odpowiednich słowach to, co jest do zrobienia, albo to, czego nie da się zrobić w określonych ramach czasowych, finansowych i to bywa stresujące. Więc ja jako taki typowy programista wcześniej myślę, że odnalazłem się w tej roli, ale jednak dużo lepiej czuję się wytwarzając oprogramowanie niż będąc wokół całej tej firmy.

Śpisz lepiej teraz?

Teraz tak myślę, że myślę, że tak. Też było różnie. Zawsze te projekty, im bliżej końca, tym bardziej stresujące. A jak się więcej programuje, to wydaje mi się, że tego stresu jest mniej. Nawet jeżeli już zbliżamy się do jakiegoś releasu albo wydania produktu. 

Oprócz samego oprogramowania robisz też dużo innych rzeczy m.in. w zeszłym roku wydałeś książkę “Programistą być”. Mamy ją ze sobą. Powiedz, co zainspirowało cię do tego, żeby tę książkę napisać i wydać?

Ogólnie myślę, że to było kilka rzeczy. Po pierwsze ja osobiście dużo czytam średnio jedną książkę tygodniowo i w tym się obracam już od najmłodszych lat, odkąd pamiętam. Jeszcze za czasów szkoły, czy to podstawowej, czy średniej, dużo czytałem i te książki zawsze były blisko mnie. I myślę, że to jest jeden z powodów, dla których chciałem wydać książkę, bo jednak jest to ciekawe doświadczenie, że można własny produkt wziąć w dłoń i mieć z tego naprawdę dużą satysfakcję. Ale ja też wcześniej tworzyłem treści dla społeczności, bo stworzyłem kilka lat temu bloga, który dość dobrze prosperuje. I to była taka naturalna ścieżka, żeby od tego bloga przejść do napisania książki i w jakiś sposób pomóc społeczności. Bo w książce zawarłem ponad setkę pytań, które zadało community, które zgromadziłem wokół bloga. Bardzo dużo się pojawiało pytań z natury od tego, jak zacząć, jaki język, język angielski, matematykę, studia. Więc ja to po prostu zebrałem z własnego doświadczenia i z doświadczenia kolegów i koleżanek z zespołów. I po prostu tak powstała ta książka.

Programowaniem zajmujesz się od prawie 10 lat i na swoim profilu wspominasz o znajomość języków jak C# Python, Java, JavaScript, C++ i PHP. Natomiast ostatecznie wybrałeś swoją specjalizację w C# i .NET. Czemu akurat taki zestaw?

Ogólnie myślę, że tutaj, tak jak u wielu programistów, było to nieco przypadkowe ze względu na firmę, do której trafiłem. Ja będąc na studiach dziennych we Wrocławiu na Politechnice Wrocławskiej po pierwszym roku dostałem ofertę pracy z jednej z firm już na pełen etat i miałem dwie możliwości albo kontynuować dzienne studia, albo zacząć pracę już jako programista. Ze względu na to, że w czasie studiów już kilka projektów robiłem, gdzieś tam się pokazałem i kilka osób poznałem, więc dostałem ofertę pracy.  Stwierdziłem, że te studia na razie odstawia na boczny tor. Wziąłem dziekankę i poszedłem do firmy. No i tam górował .NET I C#. Wiięc ja wcześniej nie miałem do czynienia z tym językiem. Więc wpadłem właśnie tutaj w technologię .NET. i tak zostało do dziś. Po drodze miałem kilka epizodów z Pythonem. Tak jak tutaj wspominałeś też była Java, PHP, więc gdzieś te poboczne projekty były. Ale od samego początku ten C# i w sumie do dzisiaj pracuje głównie z językiem C#. Cenię go sobie za wiele rzeczy, m.in. za to, że jest wygodny, prosty w nauce. Kod jest czytelny. Teraz, gdy od jakiegoś czasu Microsoft poszedł w open source, więc coraz więcej jest otwartych technologii wokół wokół Microsoftu. Więc trochę idzie to utartą ścieżką Javy i to na pewno predysponuje ten język do tego, żeby się nim zainteresować na dłużej. W moim przypadku jest to prawie 10 lat.

.NET Developer

A gdybyś dzisiaj cofnął się dzisiaj zaczynał swoją przygodę z programowaniem i mając wiedzę, obserwując te zmiany na rynku, też byś wybrał, czy już może coś innego?

Myślę, że wahałebym się smiędzy C# a Python’em. Python to jest taki język, który bardzo mi przypadł do gustu. Często się go krytykuje za gorszą czytelność i za składnię, za to jak on, jak wygląda… za te wcięcia. Ale mi wygodnie pracowało się w Pythonie i też ma duże możliwości, jeżeli chodzi o to, co możemy w nim wytwarzać. Jakoś nigdy nie było mi po drodze z JavaScript, więc myślę, że to nie byłby mój kierunek. Ale też nie odradzam. Jeżeli ktoś, jeżeli ktoś tutaj pyta mnie o języki, to też podaje JavaScript jako jeden z tych, którym warto się zainteresować, chociażby ze względu na ogromną ilość, frameworków czy community, które, które się wokół tego języka wytworzyło. Ale myślę, że u mnie pozostałbym przy tych językach C# i Python. I ja też jestem typowo backendowym programistą. Na froncie nigdy się nie potrafiłem się odnaleźć i myślę, że zostanę do końca w backendzie.

Mam jeszcze pytanie, bo wspomniełeś, że jesteś tym backendowym programistą. Jak myślisz, jakich kompetencji potrzebuje osoba, która by się w tym froncie lepiej odnalazła? Czy kompetencje, czy preferencje… Z czego wynika, że właśnie ten backend?

Myślę, że tutaj dobrze odnajdują się osoby, które mają jakąś smykałkę do chociażby grafiki. Takie są bardziej estetami. Patrzą na produkt od tej właśnie frontowej strony i potrafią dobrze wyważyć chociażby komponenty układane na ekranie. Wiadomo, że za tym stoi zazwyczaj szereg ludzi, jeżeli pracują w dużym, w dużym zespole. Ale właśnie myślę, że tutaj taka smykałkę do takiej estetyki jest tutaj jedną z takich rzeczy, o których często się zapomina. No i tutaj myślę, że to podałbym to jako główną taką rzecz.

W książce jest napisane, że żeby programista się rozwijał, no to powinien co roku poznawać albo nowy język, albo framework. Czy tak zawsze miałeś i tak w dalszym ciągu starasz się do tego dążyć?

Myślę, że sumarycznie poznałem więcej niż 10 języków, ale nie zawsze było to tak, że co roku poznawałem jeden nowy. Było tak, że przez dwa, trzy lata nie poznałem żadnego. A w innym przyszedł taki rok, gdzie pojawiły się projekty poboczne w innych językach i siłą rzeczy poznałem więcej niż jeden,. Myślę, że warto jeżeli ktoś już ma ugruntowaną pozycję w danym języku jednym, to warto, żeby miał ogląd na inne technologie, żeby wiedzieć, co w trawie piszczy i żeby wiedzieć, że tak naprawdę nie wszystko się kręci wokół naszego jednego języka czy technologii, ale że dużo ciekawych rzeczy dzieje się wokół innych i można wyciągnąć po pierwsze jakąś dodatkową wiedzę, analizując inne języki, ucząc się innych języków, ale też otworzyć się szerzej na technologię. Jeżeli ktoś pracuje z danym językiem tak jak u mnie, w moim przypadku jest to .NET I C# i wytwarzamy głównie oprogramowanie na systemy Windows, które są instalowane na serwerach, to żeby poznać np. aplikacje mobilne czy bardziej webowe rzeczy, czy zagłębić się w sztuczną inteligencję, to wszystko jest równie ciekawe. Wymaga to poznania innych technologii i to rozwija. A później nawet jak się patrzy na problem w danym języku, w którym się pracuje, to ma się może jakiś inny pomysł, inną koncepcję na rozwiązanie danego problemu. 

Więc to jest sporo tutaj takiej nauki po godzinach. 

Tak pewnie jak sumarycznie zebrał bym czas pracy mój plus, to ile poświęcam na czytanie i analizę tych technicznych rzeczy to myślę, że 70-80 godzin w skali tygodnia, czyli drugi etat z tego się robi z samej nauki, bo ja też jeszcze jestem studentem Polsko-Japońskiej Akademii Technik Komputerowych na studiach magisterskich na informatyce, więc tutaj jeszcze się dokształcam, jeżeli chodzi o informatykę. Teraz gdzieś ten temat wcześniej porzuciłem kosztem kariery. Teraz mam tak, że wróciły do mnie te studia drugiego stopnia i chciałbym je dokończyć. Więc myślę, że sumarycznie nie kłamię, jeżeli powiem, że jest to bliżej 80 godzin.

Dlaczego zdecydowałeś się dokończyć studia? Czy po to, żeby po prostu mieć ten tytuł, czy ambicjonalnie, czy uważasz, że to jest jednak potrzebne i to się przydaje?

Jeżeli chodzi o studia, nie uważam, żeby one były potrzebne, jeżeli chodzi o pracę programisty. Ja spokojnie mógłbym poprzestać na tytule inżyniera, a nawet bez inżyniera, ponieważ inżyniera zrobiłem dopiero po kilku latach pracy jako programista. Więc nie jest to taki must-have, jeżeli chodzi o pracę programisty, aczkolwiek ja zaczynałem dziesięć lat temu, więc było nieco łatwiej wejść do branży. Teraz, żeby wejść do branży, to się trzeba wykazać. Myślę, że studia są tutaj dobrą przepustką z kilku powodów, bo można poznać ciekawe osoby zarówno od strony kolegów i koleżanek, z którymi się studiuje, jak i od strony wykładowców i osób, które nas uczą. Dodatkowo studia też oferują im ciekawe staże i praktyki, więc jeżeli ktoś idzie na studia, to jest duże prawdopodobieństwo, że na dużych uczelniach można dostać się do fajnej firmy typu Google czy Microsoft i tam sobie zacząć budować własną ścieżkę kariery. I też często zapomina się o tym, że jednak te studia, mimo że nie mają dobrej renomy, to potrafią mocno przygotować do zawodu programisty od strony teoretycznej typu algorytmy. Ta matematyka, która w wielu dziedzinach programowania jednak się przydaje, systemy operacyjne, bazy danych… Więc jeżeli ktoś nie ma styczności z szeroko pojętą informatyką, to na pewno te studia są tutaj takim dobrym wyborem, żeby sobie z jednej strony przedłużyć młodość. Jeżeli ktoś po szkole średniej się zastanawia, czy studiować, czy jeździć do pracy, to te studia pozwalają tutaj przedłużyć ten okres edukacji. Ale z drugiej strony dają naprawdę solidne podstawy. Jeżeli ktoś się zainteresuje programowaniem, informatyką, branżą IT, tak szeroko pojętą, to myślę, że te studia są takim fajnym przetarciem przed pracą. Oczywiście też nie ma tutaj co mówić, że studia to jest jeden do jednego z tym, co się robi w pracy, bo tak naprawdę nie jest. Ale jeżeli chodzi o taką wiedzę teoretyczną, to ona się przydaje

W Twojej książce jest taki cytat:  “Z doświadczenia wiem, że źle dobrane materiały mogą zniechęcić do zawodu lub nawet pogrzebać karierę programistyczną. O mały włos sam nie zakończyłem przygodę z programowaniem właśnie z tego powodu. Udało mi się jednak wrócić do pracy.” Mógłbyś coś więcej o tym powiedzieć?

Tak, to jest taki fragment, o który czasami osoby pytają. Bo ja przechodziłem przez coś takiego na początku mojej drogi i dużo osób, z którymi rozmawiałem też przez to przechodziły. Rozmawiałem z wieloma osobami też. Jak zaczynamy, to jesteśmy zazwyczaj bardzo pochłonięci, bo programowanie, jeżeli ktoś złapie smykałkę, to jest jak klocki lego, że można przy tym siedzieć i układać różnego typu kompozycje, tworzyć programy. Ale wiedzy i technologii jest tak dużo, że nagle można się tym wszystkim zachłysnąć. Tak było w moim przypadku, że ja skupiłem się na tym .NET’cie, poznałem go trochę, pracowałem rok i za chwilę chciałem poznać kolejny język, kolejny framework, kolejną technologię. Zacząłem czytać książki z JavaScript, z Javy, nie pracując w tym języku. Chciałem jak najwięcej informacji z innych technologii poznać i to spowodowało, że gdzieś się zacząłem wypalać, bo po prostu mój mózg już nie był w stanie przetwarzać. Nie dość, że dużo wiedzy poznawałem jeżeli chodzi o . NET, to chciałem też czerpać wiedzę z innych technologii i i tutaj nie potrafiłem sobie tego dawkować. Nie potrafiłem sobie odpuszczać i cały czas siedziałem i się rozwijałem w najróżniejszych kierunkach. Praktycznie mnie to zgubiło i gdyby nie dłuższy urlop i nie poukładanie sobie pewnych spraw w głowie i odpuszczenie kilku, kilku sznurków, za które łapałem, to  pewnie bym się dużo bardziej zraził do tego programowania. Jak rozmawiam z osobami, które chcą wejść do branży i niekoniecznie pracują zawodowo jako programiści, to oni mają podobny problem, bo oni te osoby próbują kilku technologii jednocześnie, bo ktoś im poleci ten język, ktoś im poleci ten framework, ktoś im poleci taką technologię i te osoby z tygodnia na tydzień się focus’ują na czymś innym i później te informacje są nie poukładane. Tu jest coś innego, tu jest coś innego, tu się inaczej wytwarza oprogramowanie, tu wygląda inaczej od strony architektonicznej i to wszystko powoduje, że człowiek tylko się zaczyna denerwować i sobie. Myślę, że to programowanie to nie jest dla niego. Trochę czasu zajęło, żeby sobie uzmysłowić, że jak mam się czegoś nowego uczyć, to w odpowiedniej kolejności, w odpowiednich porcjach, a nie, że ja nie programowaniem jeszcze dobrze w C#, a brałem jakieś zaawansowane aspekty Javy i analizowałem to, co się tam dzieje. I dla mnie to była czarna magia. Tu się uczyłem C# i to się wszystko gryzło. I to są takie przykłady, których mógłbym kilka wymienić. 

Czyli rekomendujesz wybrać do pracy jakiś jeden język i dać sobie trochę czasu na poznanie tego, nie stresując się tym, że jest tyle rzeczy do dowiedzenia się i tyle rzeczy do nauczenia.

Tak. Zdecydowanie. I ja nawet mówiłem na początku, że jeżeli ktoś ma jakiś dylemat, bo ma 5 języków, które chciałby czy 6 języków, które chciałby poznać, to niech rzuci monetą, kostką. Zostałem jednak przy tym mimo podróży w innych kierunkach, to tak naprawdę ten pierwszy język nie jest językiem wiążącym. Jeżeli się  wybierze, dajmy na to JavaScript, to nie jest powiedziane, że całe życie będziemy w tym języku programować. Wybór języka nie jest nie jest wiążący i tak naprawdę, jak sobie popatrzymy na listę top 10 języków programowania, 15 języków i frameworków, to w każdym z nich, jeżeli się wyspecjalizujemy, to znajdziemy pracę bez żadnego problemu. Więc nie jest problemem konkretny język, a bardziej podjęcie decyzji, na który język postawić. 

Czy jest jakiś ambitny typ, który mówi 5 języków, których warto nauczyć się w 2022 roku – “nauczę się ich wszystkich” – to nie rekomendujesz?

Nie rekomenduję. No chyba że ktoś nie ma życia osobistego i ma głowę odporną na jakieś przeciążenia. I to wtedy może tak. Ale ja polecam, jak w każdej dziedzinie trzeba się skupić na jednej konkretnej rzeczy, bo jak się złapie pięć czy dziesięć srok za ogon, spróbuję, to w żadnej z tych dziedzin nie będzie się nie będzie się wyspecjalizowanym. A o to chodzi w programowaniu, żeby z jednej strony mieć taki fun programowania, a nie gonić ciągle za tym uciekającym królicznkiem. A z drugiej strony, żeby się wyspecjalizować i być naprawdę specjalistą. Bo problem dzisiejszego świata IT jest taki, że tak naprawdę programistów można powiedzieć, że jest dość sporo mimo braków kadrowych, ale tak naprawdę te braki kadrowe nie są na poziomie juniorów, tylko już faktycznie tych osób, które są wyspecjalizowane w konkretnym języku czy technologii,

To zapytam Cię jeszcze o taką rzecz. Bo słyszałem o “Polyglot Developers” – osobach, króre znają wiele języków. Jak się na to zapatrujesz? To faktycznie jakiś trend, który jednak dostrzegasz, czy zupełnie nie dostrzegasz?

Dostrzegam.  Można programistów podzielić na różne typy.  Można to zwizualizować. To taki wyspecjalizowany programista. To jest taka, można powiedzieć litera „t”, czyli jest na górze, są te różne technologie, a ten słupek od litery T to jest konkretna specjalizacja, a właśnie to tacy nazywani poligloci i to bardziej taki można powiedzieć stół, gdzie jest kilka odnogi i te nogi zazwyczaj są krótsze, niż jak ktoś postawi na tą jedną specjalizację. Więc wydaje mi się, że ciężko jest wyspecjalizować się w kilku technologiach, tak naprawdę wyspecjalizować. Czyli ktoś nas budzi w nocy o północy i zadaje nam jakieś bardzo trudne, niefundamentalne pytanie z danej dziedziny IT, z danego języka i ktoś w nocy o północy na to odpowie, to myślę, że taki poliglota mógłby mieć problem, jeżeli ktoś naprawdę nisko poziomy zapytał go o jakiś szczegół danego języka czy technologii. Ale myślę, że ze względu chociażby na mikroserwisy, gdzie można tworzyć jeden soft w kilku językach i dopisywać różne części głównego oprogramowania w wielu językach, to tak naprawdę myślę, że to będzie trend, w którym będziemy gdzieś zmierzać i osoby, które mają taką chęć poznawania jeszcze bardziej nowych rzeczy, to dla nich jest to dobry kierunek, bo mogą co kilka miesięcy pisać kawałek softu, z którym pracują kilka lat w różnych frameworkach, w różnych językach. I przez to może ta rotacja w branży nie będzie tak silna, bo czasami już jest taki poziom zarobków, że programiści bardziej zmieniają pracę nie ze względu na chęć wyższych zarobków, ale bardziej ze względu na albo nowy projekt, nową technologię, nowszą technologię. I może to jest jakaś odpowiedź na z jednej strony na wypalenie dobrych specjalistów, z drugiej strony na mniejszą nudę w projektach. Z mojej perspektywy ja gdzieś też miałem takie przygody z innymi językami, ale jednak ja jestem tą osobą, która woli się wyspecjalizować w danej jednej technologii, ale zaglądać do innych bardziej z ciekawości, a nie z chęci poznania dogłębnie kilku, kilku języków na przykład.

Ja może zapytam, odnośnie tych zarobków, bo wiele osób, które chcą wejść do branży IT, chcą wejść ze względu na to, że usłyszało, że tyle się w tej branży zarabia. Ty z kolei, napisałeś w swojej książce, że takie prawdziwe zarobki, czy te duże pieniądze pojawiły się dopiero po 5 latach.

Tak.  Często właśnie osoby pytają o branżę IT albo pukają do branży IT, bo zobaczyły reklamę, czy to bootcampu, czy zobaczyły programistów, którzy opowiadają o zarobkach. I wiadomo, ta dysproporcja jest duża, jeżeli chodzi o inne zawody w kwestii jak się zarabia, jeżeli chodzi o programistów. Często zapomina się, że te takie mityczne 15k to nie dostaje się na start, tylko trzeba swoją pozycję, swoją pozycję wypracować, odpowiednią wiedzę i doświadczenie zdobyć. I osoby, które tyle zarabiają i które ja znam, to tak naprawdę to są osoby, które przychodziły do branży albo zainteresowały się branżą z jakiegoś rodzaju pasji, niekoniecznie właśnie dla pieniędzy, żeby zarabiać te 15 tys. , bo jednak potrzeba trochę innej motywacji, żeby włożyć dużo czasu w naukę. Jeżeli ktoś nie lubi się uczyć, nie lubi poznawać nowych rzeczy, nie lubi rozwiązywać problemów, tylko chciałby pójść na łatwiznę i najlepiej za siedzenie przed komputerem dostawać te 15 tysięcy, to jest droga donikąd, bo ilość informacji, które trzeba poznać, jest tak duża, że naprawdę potrzeba bardzo dużo czasu, cierpliwości, wytrwałości, żeby, żeby do takich pieniędzy dojść. Czyli dużo nauki, dużo pracy. 

A powiedz, czy są jeszcze jakieś minusy tej pracy, o których takie osoby, które dopiero myślą o wejściu do IT powinny wiedzieć?

Tak, tak, ja zawsze o tym, o tym mówię, że z zewnątrz ludzie myślą, że to jest kraina miodem i mlekiem płynąca, a zapomina się, że dobrze jest, gdzie nas nie ma. Tak naprawdę nie patrzą pod kątem minusów. A minusów jest dość sporo, bo praca programisty w zależności od zespołu, projektu, od firmy bywa stresująca, nawet bardzo. Jeżeli zbliżają się jakieś terminy i czasami trzeba siedzieć więcej niż 8 godzin, czasami robi się nadgodziny i się zapomina o tym, że jest weekend. Więc zdarzają się i takie sytuacje. Dodatkowo te problemy ze zdrowiem czy to jakieś problemy z plecami, z nadciśnieniem, ze wzrokiem. To wszystko gdzieś między innymi mnie też dotykało, że się nie ma takiej świadomości, że jest to dość obciążające, jeżeli chodzi o zdrowie. Jest to też jest pewnego rodzaju odpowiedzialność, bo jeżeli wytwarza się, dajmy na to w sektorze finansowym, soft dla kilku milionów ludzi, to siłą rzeczy jest to też praca odpowiedzialna, nie da się do niej podejść tak na luzie i przynajmniej w moim przypadku. Ja walczę z tym, żeby gdzieś nie myśleć po godzinach o tym, czy dane zadanie jest OK, czy nie jest OK, że coś zostało nie przetestowane, ale mi z tyłu głowy coś siedzi, że mogłem coś zrobić lepiej i że to mogłoby być bardziej odporne. Wiadomo, że to przechodzi szereg testów, żeby było jak najlepsze. Ale zawsze gdzieś ta odpowiedzialność jest i to zostaje w głowie. Więc są takie minusy też. Takim z mojej perspektywy jest właśnie to, że cały czas jest pod prądem tak zwanym, czyli cały czas trzeba gonić, czytać, poznawać. Są takie osoby, które czasami wolałyby wyjechać na miesiąc czy dwa, trzy tygodnie urlopu i nie myśleć o tym, ale np. ja mam problem z tym, żeby się na dwa tygodnie wyłączyć, bo zaraz dopadają mnie myśli, że czegoś nie doczytałem, czy coś przeoczyłem itd. Więc ta ciągła nauka też nie zawsze jest dobra. Oczywiście rozwój osobisty jest ważny w życiu każdego człowieka, ale w programowaniu czasami można z tym przesadzić. 

W swej dziesięcioletniej karierze uczestniczyłeś w wielu różnych rozmowach kwalifikacyjnych. Jakbyś mógł powiedzieć  jakie umiejętności były pożądane przez pracodawców i jakie pytania padały? Jak się można do czegoś takiego przygotować?

Myślę, że najważniejszą rzeczą z mojej perspektywy i to może jest lekki paradoks, ale dużo programistów w tym ja ma taki problem na tych rozmowach technicznych, że potrafimy w pracy, w aktualnym projekcie rozwiązywać duże problemy i rzeczy, a na rozmowach rekrutacyjnych rekruter techniczny może nas zagiąć podstawowym pytaniem o jakiś szczegół języka. I my nawet korzystamy z tego, ale w stresie, w jakimś takim marazmie nie potrafimy odpowiedzieć na to pytanie albo odpowiadamy zbyt pokrętnie. I myślę, że jedyne, co tutaj mogę doradzić, to taka praktyka, żeby chodzić na te rozmowy. Nawet jeżeli ma się jakieś braki w wiedzy, to żeby na te rozmowy chodzić i po prostu się wyszkolić w tym, bo to jest umiejętność jak każda inna. Oczywiście te techniczne aspekty są ważne, ale żeby nauczyć się rozmawiać o tych problemach z drugą osobą. 

Czyli najlepszym przygotowaniem, jeżeli ktoś chce zwiększyć swoje szanse na rozmowie kwalifikacyjnej, uczestnictwo w innych rozmowach. Powodów nieotrzymania oferty pracy, może być to, że ktoś jest zbyt ambitny albo szuka innej pracy. Jeżeli np. projekt jest mało ciekawy, problemy są trywialne. Praca jest średnio interesująca, a ktoś chce się rozwijać i chce mieć możliwość wypróbowania pewnych rzeczy, to może z tego powodu nie dostać pracy, oferty pracy, bo on jest zbyt… on nie pasuje profilem do danego zespołu, bo po prostu zbyt ambitny. 

Tak. I myślę, że ja też miałem takie rozmowy, gdzie się to objawiało, że był soft, który trzeba było utrzymywać, a ja chciałem robić coś więcej, otwarcie o tym mówiłem i koniec końców gdzieś nie ustaliliśmy tutaj szczegółów i nie przyszedłem do jednej czy drugiej firmy. Myślę, że tutaj też ważną rolą kandydata jest to, żeby sobie zrobił wcześniej dobry research, bo jednak w ofertach pracy już jest tak dużo informacji, nawet tych ogólnych, że można sobie mniej więcej zarysować, jak dany zespół, firma wygląda, czy produkt i można już na tym etapie sobie odfiltrować, czy projekt jest mniej ambitny, bardziej ambitny. Myślę, że spokojnie można już na tym etapie sobie to, to doszczegółowić, a jeżeli nie, to od tego też jest pierwszy etap z działem HR, żeby jak najwięcej pytać już na tym etapie, ewentualnie uciąć dalsze rozmowy. Tylko to też wymaga świadomości. Jeżeli ktoś aplikuje na, dajmy na to bardziej juniorskie stanowisko, albo jest krócej w branży, to ta świadomość jest mniejsza siłą rzeczy i liczy sam mniej ma się na tyle, jest się na tyle zdesperowanym osobą, że się tak naprawdę bierze pierwszy projekt czy ofertę, która wygląda ciekawie i tego researchu na poziomie przedrekrutacyjnym się nie robi. Myślę, że to też jest taki element, o który warto zadbać.

Napisałeś, że dostajesz średnio 50 wiadomości miesięcznie z ofertami pracy. Czytasz wszystkie czy odpowiadasz na wszystkie?

Książka już kilka miesięcy temu powstała. Myślę, że teraz jest nawet troszkę więcej. Jest ta tendencja wzrostowa. Ze względu na to, że ja też jestem aktywny na różnych social mediach, to może z tego względu też więcej osób gdzieś wpadam w większe kręgi, jeżeli chodzi o rekruterów i ogólnie mam szacunek do każdego w branży i zawsze odpowiadam nawet jeżeli oferta nie jest ciekawa, to zawsze odpisuję, że nie, dziękuję i nie pozostawiam bez odpowiedzi, żeby ta osoba nie czekała tydzień, dwa czy miesiąc. Czasami ten kontakt jest ograniczonym, bo odczytuje wiadomości i dajmy na to po miesiącu i czasami rekruter zdąży 2-3 razy przesłać ponowienie i dopytać. Więc czasami odpisuje z opóźnieniem, ale odpisuję zawsze na każdą wiadomość i nie wiem jak to wygląda u innych osób, ale ja tych wiadomości dwie trzy dziennie mam jeżeli chodzi o LinkedIna i ja też nie mam tej opcji tam uruchomionej o otwartości na zmianę pracy. Też myślę, że to się zwiększyło teraz ze względu na możliwość pracy zdalnej. Po pandemii, bo teraz mam też dużo zapytań z niekoniecznie z Polski, rekruterów z innych krajów dużo np. pojawia się zapytań z Włoch. Nie wiem, dlaczego akurat taki target, ale myślę, że około 20-30 osób z tamtych rejonów do mnie napisało z włosko brzmiącymi imionami i nazwiskami. Więc zawsze też odpisuję, że nie jestem zainteresowany, ale myślę, że tutaj świat też patrzy na ten polski rynek, bo jednak polscy specjaliści w mniejszym lub większym stopniu są doceniani i można naprawdę też dorwać tutaj w Polsce, że tak powiem kolokwialnie fajnych deweloperów, którzy znają się na rzeczy. 

Wspominałeś o tym, że niektóre oferty są ciekawe. To co to znaczy ciekawa oferta dla ciebie?

Ogólnie ja, jeżeli dostanę ofertę, to mogę z własnego doświadczenia powiedzieć, że jeżeli dostaję ofertę, to wolę już mieć wszystko wypisane w wiadomości niż jak mam jakieś załączniki do wiadomości. Zazwyczaj wolę rzucić okiem na wiadomość i tam mam wszystko wylistowane  niż jak mam jakiś załącznik, który muszę otworzyć. Jeszcze ten załącznik ma czasami 3, 4, 5 stron i ja muszę się przez to przekopać, a czasami mam…  A w czasie spaceru czy przejścia z jednego miejsca na drugie mam dosłownie minutę na przejrzenie to szybciej mi jest przescrollować ofertę w wiadomości niż zaglądać do pliku na telefonie. I to jest pierwsza rzecz. A jeżeli chodzi o taki aspekt technologiczny, to jeżeli dostaję oferty zazwyczaj z .NET I C#, to patrzę na stack  technologiczny. Czy jest to coś nowego? Czyli jeżeli są to oferty, które nie mają w sobie np. .NET Core, który jest teraz kolejną wersją framework. Jeżeli nie ma tam .NET Core i jakiś nowszych technologii, to zazwyczaj z automatu odrzucam, bo też jeżeli miałbym ewentualnie zmieniać projekt, a w projekcie tym już jestem kilka lat, to chciałbym ewentualnie zmienić na no właśnie, coś nowszego. I myślę, że tutaj wielu kandydatów też patrzy na to, czy właśnie coś nowego się dzieje. Nawet jeżeli jest jakiś fragment stosu technologicznego, który jest czymś nowym, to już jest na plus. Jeżeli dostaję ofertę na utrzymanie jakiegoś systemu napisanego 10 lat temu, to z perspektywy mojej jako seniora, jako osoby, która jest 10 lat w branży, taki projekt już nie jest czymś atrakcyjnym. Zawsze patrzę, czy jest jakiś chociaż element czegoś nowego dla mnie.

Z Twojej  perspektywy – osoby, która dostaje tyle wiadomości. Jak powinna wyglądać wiadomość. Powinien być jakiś budżet, stack technologiczny, czy trzy zdania o projekcie i coś jeszcze? 

Ogólnie w pierwszej kolejności to powinny być wyliistowane rzeczy, stack. Z mojej perspektywy fajnie też, jeżeli byłyby widełki gdzieś podane plus lokalizacja. Czasami jest tak, że dostaję ofertę, jest fajnie, wszystko wylicytowane i już, abstrahując od tych widełek, ale np. nie ma informacji, czy to zdalna praca, czy to praca w konkretnym mieście, czyli po prostu tak wrzucone kopiuj wklej bez własnej lokalizacji. Myślę, że jak miałbym szeregować, to fajnie by było, żeby ta lokalizacja była na górze później tak technologicznej i ewentualne widełki poza tym, że brakuje tej lokalizacji to jest to błędne wiadomości. To czy widzisz jakieś jeszcze inne błędy w tych wiadomościach, które się może powtarzają, powielają? O może tutaj dodam teraz mi tak wpadło. Lubię właśnie taką szczerość, że nawet takie dwa, trzy zdania wprowadzenia w takiej luźnej formie, że cześć widziałem, widziałem twoją książkę albo cześć, widzę, że to specjalizuje się w tym, że pracujesz w sektorze finansowym i akurat mamy tutaj dopasowanie dla ciebie oferty z podobnego sektora, to myślę, że to też jest takie coś, co pokazuje, że rekruter zrobił jakąś pracę wcześniej i że nie jest to kopiuj wklej, tylko że właśnie jest jakiś minimalny i zrobiony, że nawet jeżeli mnie zainteresuje ta oferta, to wiem, że już była jakaś analiza kandydata, że to nie jest w tle i 500’na wiadomość i tylko zmienione imię. Tylko że jest to w jakiś sposób lekko sprofilowane. Myślę, że to też jest na plus.

W książce wspomniałeś o sztucznej inteligencji, jej  przyszłości i wpływie na przyszłość  w IT. Jest takie zdanie” pierwszym największym zagrożeniem dla programisty jest sztuczna inteligencja. Ale również napisałeś, że wystarczy zasugerować, co chcemy wykonać, a Sztuczna inteligencja podpowie całą linijkę. Jak się na to zapatrujesz czy jest to zagrożenie, czy może jakaś szansa, a może ułatwienie w pracy?

To te zadania są podzielone i to też jest tak, że pisząc ten tekst ja miałem trochę inne informacje niż mam teraz. Teraz pewnie troszkę inaczej ubierał bym to w słowa podobne, bo uważam, że nadal jest to zagrożenie, ale że patrzę też na to z perspektywy takiej, że jeżeli jest dobry programista i potrafi np. poprowadzić zespół do zrobienia softu, to ja sobie w przyszłości wyobrażam, że taki dobry lider albo dobry senior, który potrafi zarządzić zespołem czy mniejszym, większym, będzie też potrafił taką sztuczną inteligencją pokierować. I może to być właśnie taki przeskok, że na tych niższych poziomach te bardziej powtarzalne zadania będzie można zoptymalizować, gdzie sztuczna inteligencja będzie mogła za nas coś napisać, ale i tak nad nią będzie musiał stać świadomy programista, który zna technologię, zna produkt i wie, jak pokierować tym zespołem. Niekoniecznie ludzi, ale robotów na przykład, które coś wykonają. I żeby tutaj też nie być gołosłownym, bo ostatnio nawet wrzucają informacje o tym, gdzie polski programista używając takiego narzędzia GitHub Copilot. To jest taki produkt od  GirHub, od Microsoftu, który właśnie pomaga programiście pisać i cały czas gdzieś w tle uczy się zachowań programisty danego czy całego zespołu, zbiera tych informacji dużo i potrafi później z nich wywnioskować jak dany np. linijka powinna wyglądać albo dana funkcja i tutaj jeden programista z Polski użył języka Python i biblioteki PyGame i przez dwie godziny właśnie pod nadzorem tego programisty sztuczna inteligencja napisała grę taką 2D i ta gra jest do pobrania. Można ją sobie pobrać i zagrać w nią. I ona jest stworzona przez dwie godziny pod nadzorem programisty z zebranych wcześniej danych. I ta gra jest w pełni funkcjonalna i tam nie ma nawet jednego znaku, jednej linijki, którą napisałby człowiek. On tylko podpowiadał w jakich kierunkach, jak to ma wyglądać od strony scenariusza tej gry architektonicznie, ale wszystkie kody, wszystkie funkcje klasy pod nadzorem programisty napisała. ta sztuczna inteligencja.  Jest dwugodzinny film, gdzie można sobie zobaczyć, jak to wygląda.

Bardzo dziękujemy za rozmowę. 

Dziękuję.