Wywiad z osobą, która przebranżowiła się na programistę

Ten artykuł należy do serii Przebranżowienie i praca programisty. Listę wszystkich artykułów w tej serii znajdziesz tutaj.

W 2017 roku mój brat cioteczny całkowicie zmienił branżę, w której pracował – postanowił zostać programistą. W tym samym czasie ja postanowiłem, że chcę uczyć programowania od podstaw. Zaproponowałem mojemu bratu, że pomogę mu nauczyć się nie tylko programować, ale także wytłumaczę, z czym wiąże się praca jako programista. Przygotowywałem na bieżąco materiał, który stał się później punktem wyjściowym do kursu, który jest obecnie dostępny na tej stronie. Raz lub dwa razy tygodniowo spotykaliśmy się u mnie na kilka godzin. Kilka razy w ciągu każdego spotkania na zmianę rozmawialiśmy o teorii programowania i przechodziliśmy do praktyki.

Mój brat cioteczny, po zakończeniu nauki u mnie, znalazł pracę jako Młodszy Programista Java i pracuje jako programista już ponad dwa lata. Zadałem mojemu bratu kilkanaście pytań odnośnie jego drogi do zostania programistą.

Dlaczego postanowiłeś zmienić branżę?

Nie podobała mi się ówczesna praca. Pracowałem nawet po 12h dziennie, musiałem być w pracy także co drugą sobotę, i często wyjeżdżałem w delegacje. Jakby tego było mało, nie widziałem żadnych perspektyw na poprawę sytuacji. Jedyna możliwość awansu była na stanowisko, do którego ani nie mam predyspozycji, ani chęci na wykonywanie, nawet przez część swojego życia. Jednocześnie zarabiałem dosyć dobrze, miałem stabilność zatrudnienia w dosyć dużej korporacji w Warszawie. Nagle dostałem propozycję, którą w tamtym momencie odebrałem jako "nie do odrzucenia", a tak naprawdę chciałem coś zmienić w swoim życiu. Myślałem o zmianie już od dłuższego czasu i na spotkaniu świątecznym wspomniałem o tym mojemu bratu (autorowi pytań).

Miesiąc później, 30 stycznia (następny dzień był ostatnim, w którym mogłem złożyć wypowiedzenie – w tamtym momencie umowa o pracę z miesięcznym wypowiedzeniem), dostałem wspomnianą propozycję. To był telefon od brata z informacją, że jeżeli nadal jestem chętny i gotowy na zmianę, to on bierze na siebie odpowiedzialność i trud nauczenia mnie od zera programowania, a jedyne wymaganie to "musimy zacząć jak najszybciej i jak najintensywniej". Od tamtej pory minęły już ponad 3 lata.

Czy nadal pracowałeś w poprzedniej pracy w trakcie nauki programowania?

Tak, przez dokładnie miesiąc – okres wypowiedzenia w poprzedniej pracy.

Czy miałeś jakiekolwiek doświadczenie w programowaniu, gdy podjąłeś decyzję o zmianie branży?

Poza tym, że w liceum oddałem na zaliczenie projekt z programowania, to nie. Było to na tyle dawno temu, że nie pamiętałem czego się wtedy nauczyłem, gdy podejmowałem decyzję o zmianie branży.

Czy sam kurs programowania wystarcza, aby nauczyć się programować?

Myślę, że mogę porównać to do spotkania z trenerem personalnym na siłowni, który pokaże nam co i jak ćwiczyć, wyjaśni podstawy, opisze partie mięśni, pokaże urządzenia do ćwiczeń, ale nie wykona za nas żadnych ćwiczeń, a tym bardziej nie będzie za nas chodził regularnie na siłownię czy choćby pilnował diety.

Pracę, jaką trzeba wykonać do założonego celu z jakim poszliśmy na siłownię, musimy wykonać sami. Oczywiście wsparcie trenera będzie nieocenione. Czasami będziemy potrzebowali o coś dopytać, czasami zmienić partię ćwiczonych mięśni, czasami poradzić się, czy kierunek, w którym zmierzamy, jest prawidłowy, a przede wszystkim na początku będziemy potrzebowali pomocnej dłoni i informacji, czy dobrze wykonujemy dane ćwiczenia.

Do brzegu, sam kurs jest na pewno dużym wsparciem i na moim przykładzie bez niego po prostu bym nie zaczął programować, ale musimy mieć na uwadze, że kurs nie nauczy nas programować, nauczy nas podstaw, wskaże ścieżkę i kolejność nauki, pokaże na co zwracać uwagę, da wsparcie osoby doświadczonej, które na początku jest bezcenne, ale jeżeli nie przeznaczymy kolejnych godzin na klepanie kodu, na próby samodzielnego rozwiązywania problemów i nie zaznamy radości po kilku godzinach szukania rozwiązania, przeplecionych rezygnacją, frustracją i myślami, że ten stary zawód nie był jednak taki zły, nie będziemy mogli nigdy powiedzieć o sobie, że jesteśmy dobrzy w tym, co robimy.

Czy przekazane Ci informacje o zawodzie programisty, niekoniecznie związane z samym programowaniem, są przydatne w obecnej pracy?

Tak, szczerze mówiąc nie wszystkie w chwili przekazywania wydawały mi się istotne, teraz jednak patrze na nie zupełnie inaczej.

Pierwszą z nich jest na pewno dbanie o jakość swojego kodu – nie ma wiele bardziej rozczarowujących chwil w życiu, niż kiedy natrafiamy na kod, pomyślimy, albo co gorsza wypowiemy niecenzuralne słowa, po czym odkryjemy, że to my sami jesteśmy autorami tegoż kodu.

Drugą, o której pamiętam, to by najpierw szukać rozwiązania, a potem pytać. Nie chodzi nawet o to, że na prawie wszystkie właściwie zadane pytania powinniśmy znaleźć odpowiedź na StackOverflow, ale o satysfakcję, to raz, a dwa, że jeżeli czegoś nie możemy znaleźć, to warto się zastanowić, czy na pewno wszystko jest w porządku z naszym tokiem rozumowania i zapytaniem.

Kolejną, i jednocześnie dla mnie w ostatnich dniach najbardziej aktualną, to zadbanie o code review. Należy tu pamiętać, że robienie code review dla początkującego programisty jest ogromną okazją do zapoznania się z innym tokiem rozumowania, punktem widzenia, technologią czy sposobem rozwiązania danego problemu. Jest to też doskonały moment, by dopytać, jeżeli czegoś w kodzie nie rozumiemy, lub samemu doczytać o zastosowanym rozwiązaniu. Uczy nas w końcu jak pisać kod tak, by był czytelny i zrozumiały dla kogoś innego. Natomiast zadbanie, by nasz kod był poddany przejrzeniu, daje nam dosyć konkretny feedback, najczęściej bardzo konstruktywną krytykę, pozwala znaleźć błahe błędy lub zwrócić uwagę na ważne elementy, których nie przewidzieliśmy, ale przede wszystkim jest to znowu najlepszy moment, żeby porozmawiać o naszym kodzie, innym punkcie widzenia, rozwiązaniu.

Należy pamiętać również o czytaniu dokumentacji – warto wiedzieć jak dokładnie działają funkcjonalności, których działania nie jesteśmy pewni, a które chcemy użyć. Późniejsze ewentualne znalezienie błędu wynikającego z błędnego założenia może pochłonąć mnóstwo czasu.

Przez ile miesięcy uczyłeś się programować zanim zacząłeś szukać pracy na stanowisku programisty?

Przez około 4 miesiące.

Ile godzin dziennie przeznaczałeś na programowanie podczas nauki?

Starałem się przeznaczać co najmniej 8 – 10h dziennie, gdy już nie pracowałem w poprzedniej pracy i mogłem skupić się na nauce.

Czy nauczenie się programowania było trudne?

Nie wiem czy można powiedzieć, że nauczyłem się programowania. Jest to moim zdaniem ciągła nauka. Jeżeli weźmiemy pod uwagę "próg wejścia", zrozumienie podstaw, dojście do momentu, w którym jakkolwiek "dobrze" zaczynamy się czuć i umiemy znaleźć rozwiązanie i zaimplementować je w swoim kodzie, to uważam, że może być momentami ciężko.

Jednocześnie uważam, że jeżeli rozpoczynamy naukę, to w którymś momencie musimy to pokochać i się w tym odnaleźć, lub znienawidzić, i oczywistym jest, że ten pierwszy stan potrafi pomóc przejść przez wszystkie trudności.

Czy nauka była łatwiejsza lub trudniejsza, niż się spodziewałeś?

Z biegiem czasu mogę z pewnością powiedzieć, że myślałem, że będzie łatwiej. Obecnie z dnia na dzień, mimo ciągłej nauki, czuję, jakbym wiedział coraz mniej.

Z jakich technologii głównie korzystasz w pracy, a z jakich w mniejszym zakresie?

Java, Spring, Git, Maven, Hibernate, PostgreSQL, Oracle. Ponadto Mongo, Sonar, JUnit, REST, HTTP, IntelliJ, JSON, Linux, oraz GitLab. W mniejszym stopniu MySql, Ansible, VisualVM, HTML, XML, Jenkins, Microsoft Azure.

Które z tych technologii znałeś, chociażby z nazwy, zanim przystąpiłeś do pracy?

Java, Spring, Git, Maven, Hibernate, Oracle, JUnit, IntelliJ, Linux, i XML.

Ile czasu szukałeś pracy po zakończeniu kursu na programistę?

Ok. 3 miesiące.

W ilu rozmowach o pracę brałeś udział?

W tym momencie już dokładnie nie pamiętam, ale była to liczba do policzenia na palcach jednej lub maksymalnie dwóch rąk.

Ile czasu trwała decyzja o zaproponowaniu Ci pracy po rozmowie o pracę?

W moim przypadku odpowiedź dostałem tego samego dnia.

Czy dostawałeś wynagrodzenie od początku pracy, czy na początku były to bezpłatne praktyki?

Przez pierwsze 3 miesiące byłem na płatnym stażu, dostawałem wynagrodzenie, które dosłownie starczało na dojazdy i wyżywienie, nie była to nawet pensja minimalna.

Czy znałeś kogoś w firmie, w której rozpocząłeś pracę jako programista?

Nie.

Ile czasu dziennie spędzasz na programowaniu w pracy?

Średnio od 4 do 6h.

Na czym, poza programowaniem, spędzasz czas w pracy?

Spotkania, code review, wszelkiego rodzaju support wewnątrz firmy, przygotowywanie raportów, sprawdzanie zgłoszonych bugów, czytanie dokumentacji no i, oczywiście, gra w piłkarzyki.

Czy wiedza, którą zdobyłeś podczas nauki programowania, wystarcza na co dzień?

Wiedza, którą zdobyłem, jest niezbędna, aczkolwiek, jak już wspominałem, bycie programistą równa się ciągłej nauce i szukaniu najlepszych rozwiązań dla danego problemu.

Po jakim czasie od rozpoczęcia pracy poczułeś się w pracy pewny i samodzielny?

Pewnie poczułem się po około 10 miesiącach, w miarę samodzielny po około 18 miesiącach.

Czy inne osoby na projekcie, na którym pracujesz, pomagały Ci na początku i jeśli tak, to jak istotne jest takie wsparcie według Ciebie?

Jak najbardziej tak, nieocenione, ale zarazem niezbędne. Nie wyobrażam sobie rozpoczynania pierwszej komercyjnej przygody bez pomocy kolegów z pracy. Tutaj myślę, że warto mieć na uwadze, że firmy, które zatrudniają osoby bez doświadczenia, są świadome tego, że na początku dla takiej osoby trzeba będzie przeznaczyć więcej uwagi i jest to naturalne zjawisko.

Czy podoba Ci się praca jako programista? Czy jesteś zadowolony ze zmiany?

Może zabrzmi to nierealnie, ale naprawdę uwielbiam programować, a do pracy chodzę z przyjemnością.

Czy jesteś zadowolony z zarobków po zmianie branży?

Jak najbardziej tak.

Czy poleciłbyś pracę jako programista innym osobom?

Poleciłbym, jeżeli ktoś by się w niej odnalazł, pokochał programowanie i jednocześnie wszystko co się z nim wiąże.

Komentarze (5):

  1. Mam 61 lat, i rozpocząłem naukę programowania w Javie korzystając z Pana kursu.
    Czy warto w mojej sytuacji tracić na to czas ?
    Jak zdążyłem się już zorientować to oprócz znajomości Javy trzeba znać inne technologie.
    Chciałbym zaznaczyć, że lubię programować.
    Kiedyś uczyłem się Turbo Pascala i Buildera C++.
    Andrzej Piłatowicz.

  2. Zatem przebranżowienie wymagało 4 miesięcy nauki programowanie, 3 miesięcy szukania pracy i 3 miesięcy stażu. W sumie 10 miesięcy prawie bez przychodu. Zdecydowanie warto to robić zanim zacznie się utrzymywać rodzinę

    1. Z drugiej strony, jeżeli weźmie się pod uwagę, ile będzie można zarabiać po kilku latach, to mimo wszystko może to być dobra inwestycja w siebie na całe życie. Tym bardziej, jeżeli nie jest się jedyną osobą utrzymującą rodzinę. Ewentualnie można to rozciągnąć na dłuższy okres czasu i uczyć się programować po pracy, ale ta opcja wymaga zdecydowanie więcej sił i cierpliwości, bo nauka po pracy (biorąc jeszcze pod uwagę wychowywanie dzieci) jest wyjątkowo trudna.

      1. Coś o tym wiem 😉
        Mimo to, jako konstruktor z 10 letnim doświadczeniem, dziesiątkami zrealizowanych projektów od koncepcji po uruchomienie - podejmuje wyzwanie!
        Sufit finansowy który teraz osiągnąłem wydaje się nie do przeskoczenia, czas na coś nowego.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.