„Zawód programisty – jak to wygląda w praktyce”

Coraz więcej osób interesuje się programowaniem, ale nie do końca wie, jak zacząć, ile czasu należy poświęcić na naukę, by znaleźć pierwszą pracę i jak ta praca później wygląda. Dlatego przedstawiamy Wam dziś Mikołaja Jankowskiego, który jest programistą w firmie Pentacomp Systemy Informatyczne S.A.

Rozmawialiśmy z Mikołajem na temat jego pracy i poprosiliśmy, by udzielił kilku wskazówek osobom, które dopiero rozpoczynają swoją przygodę z kodem.

Jesteś programistą Front-end, Back-end czy może Full-stack Developerem?

Jestem Full-stack developerem, choć prawdę mówiąc nie planowałem tego. Pierwszy projekt komercyjny, w którym uczestniczyłem, posiadał bardzo ciekawy stack technologiczny. Interesowała mnie każda warstwa budowanego systemu i chciałem poznać każdą z nich, co przyczyniło się do zapoznania zarówno z technologiami frontend jak i backend.

Od jak dawna zajmujesz się programowaniem?

Moja przygoda z programowaniem rozpoczęła się już na kilka lat przed studiami. Na początku były to najprostsze programy typu ‚Hello world’ – myślę, że doskonale znane wszystkim adeptom, którzy choć raz próbowali cokolwiek zrobić w jakimś języku programowania. Na studiach przez pierwszych kilka semestrów poznawałem języki C/Java, choć przyznaję – chemii nie było. Wszystko zmieniło się, jeśli dobrze pamiętam, na 6 semestrze, kiedy to wprowadzono przedmiot, na którym nauczano języka C# i technologii z rodziny .NET – wtedy też dałem się, krótko mówiąc, oczarować Microsoftowi.

Co sprawiło, że się tym zainteresowałeś?

Ciekawość, taka zwykła ludzka ciekawość świata i tego, jak działają najprostsze urządzenia, którymi posługujemy się na co dzień.

Jak wygląda zwykły dzień pracy programisty?

Trudno na to pytanie jednoznacznie odpowiedzieć. Staram się, by każdy mój dzień był niezwykły. Prawdę mówiąc, odpowiednio zorganizowana praca programisty to szereg codziennych wyzwań i nowych możliwości, ale wszystko zależy tak naprawdę od wielu czynników, zaczynając od rodzaju firmy (inaczej praca wygląda w korporacji a inaczej w startupie), a na chęci rozwoju i poznawaniu nowych rzeczy kończąc. Są dni, kiedy piszemy duże ilości kodu, ale są i takie, w których nie powstaje ani jedna linijka. Kłamstwem byłoby powiedzieć, że to praca lekka, choć wielu ludzi tak ją postrzega, patrząc przez pryzmat choćby pokojów relaksu, w których zazwyczaj znajdują się konsole do gier i słynne już w tej branży piłkarzyki.

Odwieczne pytanie zadawane przez początkujących, czyli co wybrać: front-end czy back-end?

Na to pytanie nie ma jednoznacznej odpowiedzi. To zależy od tego, czym się interesujemy. Bardzo często jest tak, że osoba chcąca wejść w świat programowania po prostu nie wie, co ją bardziej interesuje, ponieważ ilość technologii i rozwiązań przyprawia o zawrót głowy. Pamiętam, że przeglądając pierwsze oferty pracy, aby zorientować się, czego rynek potrzebuje, byłem wręcz przytłoczony ilością anglicyzmów i akronimów w nich zawartych. Wydaje mi się, że najlepiej spróbować i jednego i drugiego, a dopiero później wybrać.

Od jakiego języka zacząć naukę?

Wydaje mi się, że najniższy próg wejścia dla nowej osoby będzie stanowił język C. To właśnie język, który jako pierwszy poznawałem na studiach i pamiętam, że nie sprawiał mi absolutnie żadnych problemów.

Ile czasu trzeba się uczyć, żeby znaleźć pierwszą pracę?

Tak naprawdę to niewiele. Niż w tej branży jest w tej chwili ogromny. Mówi się, że aktualnie w Polsce brakuje około 50 tysięcy programistów.

Osobom początkującym często trudno jest określić, czy są na wystarczającym poziomie, by podjąć pierwszą pracę. Moja rada jest taka, że gdy jesteś już na etapie zastanawiania się, czy Twój poziom jest wystarczający, to nie bój się i spróbuj, wybierz się na jakąś rozmowę rekrutacyjną. Statki w porcie są bezpieczne, ale rolą statków nie jest stać w porcie [śmiech].

Co może zrobić początkujący programista, żeby zbudować fajne portfolio i dać się poznać pracodawcom?

Początkujący programista powinien po prostu zacząć pisać nawet najprostsze programy czy strony internetowe.

Gdybyś miał udzielić jednej rady osobie, która dopiero zaczyna swoją przygodę z programowaniem, to co by to było?

Chciałoby się powiedzieć: nie zrażaj się, początki nigdy nie są łatwe! Wiem jednak, że to banał, ponieważ osoby na początku swojej drogi tak naprawdę potrzebują konkretnych wskazówek.

Uważam, że bardzo ważnym elementem w pracy programisty jest język angielski. Zdecydowana większość książek, dokumentacji dotyczącej nowych technologii jest właśnie w tym języku i zanim doczeka się publikacji w naszym rodzimym, najczęściej jest już nieaktualna, bo w między czasie technologia znacznie ewoluowała bądź pojawiła się nowa.
Dodatkowo warto posiadać konto na jednym z portali społecznościowych, specjalizujących się w kontaktach zawodowo-biznesowych. Jednym z nich jest LinkedIn, gdzie możemy stworzyć swój dokładny profil, zaznaczając znane technologie oraz określając ich poziom znajomości – są to przydatne informacje dla np. headhunterów, który
ch zagłębiem jest właśnie ten portal. Pojawia się tam mnóstwo ofert pracy, czasem dla osób bez doświadczenia komercyjnego, więc posiadanie konta może znacznie przyspieszyć proces poszukiwania pierwszej pracy.

Mikołaj Jankowski – pasjonat technologii Microsoftowych, w szczególności aplikacji webowych. Zawodowo pracuje na stanowisku programisty .NET w Pentacomp Systemy Informatyczne S.A., gdzie zajmuje się zarówno technologiami front-end, jak i back-end. W wolnym czasie gra w piłkę nożną, czyta thrillery prawnicze oraz kryminały.

„Programowanie spełniło moje marzenia o lataniu!”

Programowanie może być celem samym w sobie lub – jak udowadnia Bartosz Kwieciński – sposobem na spełnienie innych marzeń. Bartek w wieku zaledwie 12 lat stworzył swoją pierwszą stronę internetową, a zaledwie rok później postanowił, że zostanie pilotem. Programowanie i lotnictwo to dziś jego dwie największe pasje.

Jak zaczęła się Twoja kariera programisty?

Jako dziecko dużo grałem w piłkę nożną i w wieku 12 lat postanowiłem zrobić stronę dla Osiedlowego Klubu Piłkarskiego. Pomyślałem, że będzie to fajna promocja. To był rok 2002, czasy HTML4, gdy strony robiło się jeszcze na tabelkach. Ta moja pierwsza strona nie była oczywiście doskonała, wręcz na odwrót – była brzydka i pełna błędów, ale robiąc ją uświadomiłem sobie, że zwyczajnie bardzo mi się to podoba. Kupiłem wtedy taką małą książeczkę do nauki HTML-a i walczyłem dalej. Bawiłem się podstawowymi stronami, potem dorzucałem do nich obrazki, uczyłem się CSS-ów. Po jakimś czasie zauważyłem, że najbardziej brakuje mi automatyzacji, czyli PHP, więc postanowiłem się go nauczyć. Kupiłem Biblię PHP i MySQL, liczącą sobie, bagatela, tysiąc stron i krok po kroku opanowałem wszystko, co było mi wtedy potrzebne.

A skąd sny o lataniu?

Gdy miałem 13 lat, moja Mama zaczęła latać do Stanów Zjednoczonych, a ja wraz z Dziadkiem odprowadzałem ją na lotnisko – wtedy jeszcze Okęcie. Dziadek zabierał mnie na taras widokowy, a ja z daleka podziwiałem te wszystkie wielkie, latające maszyny. To były głównie Boeingi 767. Później wracałem do domu, otwierałem stronę Airliners.net i raz jeszcze oglądałem wszystkie te samoloty. A jeszcze później zaczęła się moja przygoda z symulatorami.

Nie miałem jednak pieniędzy, by od razu iść w tym kierunku, wybrałem więc programowanie, wiedząc, że w tej branży zarabia się porządne pieniądze.

Jak dalej potoczyła się Twoja kariera?

W dalszym ciągu sporo uczyłem się samodzielnie i wkrótce stworzyłem pierwszą aplikację w PHP, czyli system rezerwacji biletów kolejowych. Oczywiście była to kompletna amatorszczyzna, pełna błędów i redundacji.

Co to jest redundacja?

To powtarzanie tego samego kodu w innych miejscach. Powinno się tego unikać. Wtedy jeszcze tego nie wiedziałem. Szybko jednak zacząłem pracę w agencji kreatywnej. Robiłem tam podstawowe rzeczy, takie jak walidacja formularzy czy proste zapytania do bazy danych. Nabrałem jednak doświadczenia i po zdaniu matury przeniosłem się do Warszawy. Tu zacząłem pracę w sieci aptek drogeryjnych i tak rozpoczęła się moja przygoda z takimi CMS-ami jak Prestashop czy WordPress, zacząłem się też uczyć JavaScriptu i jQuery, a wkrótce pojawiła się pierwsza duża aplikacja. Był nią system intranetowy skupiający 20 aptek i 200 pracowników. Jakiś czas potem szukając nowych wyzwań trafiłem do kolejnej agencji kreatywnej, gdzie zajmowałem się customowymi przeróbkami popularnych systemów sklepowych, programowaniem stricte obiektowym, stworzyłem też autorski CMS i poznawałem różne frameworki, np. Zenda.

Kiedy zacząłeś spełniać swoje marzenia o lataniu?

Stało się to dopiero w momencie, gdy otworzyłem własną działalność, co pozwoliło mi zgarniać całą pulę ze zleceń, a nie tylko jakąś jej część, jak to się dzieje w przypadku pracy na etacie. Droga do spełnienia tych marzeń była okupiona harówką po 12-16h dziennie, ale dziś śmiało mogę powiedzieć, że było warto.

Czy teraz, gdy zostałeś już pilotem, zdarza Ci się jeszcze programować?

Nie tylko się zdarza, ale wciąż to robię. Nawet po napiętym sezonie wakacyjnym, w czasie którego mamy mnóstwo rejsów, po powrocie do domu czuję taki głód programowania, że nie mogę się doczekać, aż odpalę komputer. W zasadzie łączę pracę pilota z pracą programisty, z tym, że to drugie robię teraz na zasadzie freelancingu.

Jak wyglądał Twój dzień pracy, gdy jeszcze pracowałeś jako programista na etacie?

Dzień oczywiście zaczynałem od kawy. Bez kawy nie ma myślenia [śmiech]. Po kawie przeglądałem wiadomości, a gdy kofeina zaczynała działać, odpalałem edytor, ściągałem aktualne repozytorium i zaczynałem pracę. Oczywiście co godzinę obowiązkowo przerwa na papierosa i przemyślenia. Jeśli trafiał się jakiś większy problem to rozgryzienia, to przerwy były częstsze. Poza tym zdarzały się momenty, w których nie miałem kompletnie weny twórczej i takie, gdy w jeden dzień wykonywałem pracę zaplanowaną na kolejne trzy dni. Trzeba bowiem pamiętać, że praca programisty jest monotonna, ale wymagająca dużo myślenia i rozwiązywania problemów. Zwykle jest tego więcej niż samego kodowania.

Jakiej rady udzieliłbyś programistom, którzy właśnie stawiają swoje pierwsze kroki w zawodzie?

Najpierw dogłębnie przemyśl i przeanalizuj dane zagadnienie, zastanów się, jakie błędy mogą się pojawić i jak może zachować się użytkownik, a dopiero potem odpalaj edytor. Drugą bardzo ważną kwestią jest to, że programista, gdy zaczyna pisać kod, powinien mieć na uwadze, że ktoś ten kod może kiedyś przejąć. Dlatego powinien pisać kod jasny i czytelny, aby kolejna osoba nie dostała na jego widok zawału.

Jak myślisz, ile czasu potrzeba, by nauczyć się programowania?

Aby samodzielnie coś zaprogramować, potrzeba 2-3 miesięcy rzetelnej pracy, pełnej wytężonego myślenia. Kursy programowania dają znakomite podstawy, ale polecam samodzielne rozszerzanie zdobytej wiedzy. Pewne rzeczy po prostu trzeba samemu doczytać, zastanowić się, zrozumieć, dlaczego jest tak, a nie inaczej. Każda nauka wymaga intensywnej pracy nad sobą i programowanie nie stanowi tu wyjątku.

Jak szukać pierwszej pracy po kursie?

Przede wszystkim trzeba stworzyć kilka projektów i dobrze napisać swoje CV. Należy w nim opisać konkrety: jaki skończyliśmy kurs, jakie technologie poznaliśmy, co wykorzystaliśmy do stworzenia swoich projektów, jaką dokumentację ostatnio przeczytaliśmy. Warto stworzyć własne repozytorium, na przykład na Githubie i załączyć do niego link. Takie repozytorium to dla pracodawcy skarbnica wiedzy o kandydacie, bo nic tak nie weryfikuje umiejętności programisty jak poprawna składnia i porządek w kodzie.

Czy można założyć, że programiści zawsze będą mieć pracę?

Tak, zdecydowanie! Doświadczony programista, czyli taki z minimum rocznym stażem, na pewno nie będzie mieć żadnego problemu ze znalezieniem pracy. A początkujący musi najpierw wykonać trochę pracy własnej, by to doświadczenie zdobyć. Na samym początku Project Manager nie wie jeszcze, czego się może po takiej osobie spodziewać, ale jeśli taka osoba się wykaże, to będzie dostawać coraz trudniejsze zadania do wykonania i w ten sposób nabywać doświadczenie. Musi się jednak naprawdę zaangażować, czytać dużo dokumentacji, zadawać pytania bardziej doświadczonym programistom, a przede wszystkim – samodzielnie myśleć.

Bartosz Kwieciński – Absolwent Politechniki Warszawskiej na kierunku Informatyka, specjalizacja Inżynieria Systemów Oprogramowania. Pilot linii charterowych – lata na Boeingu 737. Fan podróżowania, szybkich samochodów, piłki nożnej i sportu ogólnie.

Wywiad z cyklu: #zakodujmarzenia