Zawód: Programista

Z Przemkiem Sienkiewiczem, Programistą Java, rozmawiamy o perspektywach rozwoju dla początkujących programistów w ASC.

W jaki sposób trafiłeś do ASC?

Prawdę mówiąc, na rozmowę rekrutacyjną do Programu Juniorskiego trafiłem trochę przypadkowo. Tak właściwie nie szukałem nowej pracy, jednak możliwość szkolenia, które oferowało ASC była dla mnie bardzo interesująca. Do ostatnich etapów rekrutacji nie miałem świadomości, że oferta będzie dotyczyła Warszawy, a ewentualne przyjęcie mnie do ASC będzie wiązało się z przeprowadzką. We Wrocławiu podczas studiów zdobyłem spore grono znajomych, a że jestem osobą towarzyską, toteż sceptycznie podchodziłem do ofert spoza miasta. Zmianę podejścia spowodowała rozmowa z Lead Developerem. Byłem pod wrażeniem jego wiedzy i umiejętności. Czułem, że jest właściwą osobą, która może pokierować początkowym etapem mojej kariery zawodowej. Zabawne jest to, jak szybko człowiek może zmienić swoje nastawienie. Kilka zdań zamienionych z mentorem rozwiało moje wszelkie wątpliwości. Podjąłem decyzję, która odegrała ważną rolę w mojej karierze zawodowej – spakowałem więc walizkę i w kilka dni byłem już w stolicy.

Pamiętasz jak wyglądał początek Programu Juniorskiego?

Przyznam, że oczekiwałem od Programu Juniorskiego większego prowadzenia za rękę, podawania „na talerzu” gotowych prezentacji, szablonów i materiałów. Tymczasem sytuacja wyglądała zupełnie odwrotnie! Dostałem do zrobienia samodzielny projekt – aplikację, która miała obsłużyć system zamówień dla biblioteki. Moim celem było stworzenie całego rozwiązania, począwszy od technologii bazodanowych i backendowych, kończąc na kilku rozwiązaniach frontendowych.

Nad swoją aplikacją pracowałem etapami. Dostałem wytyczne oraz sugestie, gdzie mogę znaleźć niezbędną wiedzę. Pomocna była też lista zagadnień, którym warto przyjrzeć się ze szczególną uwagą. Początkowo uznałem, że nie dam rady sprostać temu wyzwaniu, jednak po wielu godzinach zastanawiania się nad możliwymi rozwiązaniami napotkanych problemów zadanie stawało się prostsze i bardziej przejrzyste. Razem z moim mentorem Piotrem poświęciliśmy wiele czasu na rozmowy związane z popełnianymi przeze mnie błędami oraz weryfikacje idei kiełkujących w mojej głowie. Po pewnym czasie zrozumiałem, jak bardzo istotny jest w pracy programisty nie tylko sam czas spędzony na pisaniu kodu, ale także przesiewanie sporej ilości informacji znalezionych w Internecie. Ostatecznie wykonanie postawionego przede mną zadania zajęło mi niecałe dwa miesiące. Dzięki Programowi Juniorskiemu mogłem doszlifować wiedzę z zakresu baz danych Oracle, MySQL, Mavena, Gradle, Jasper Reports, Javy 8 i najpopularniejszych frameworków jak Spring i Hibernate. Interfejs użytkownika napisałem kilkukrotnie – w czystym JSP, jQuery, Thymeleaf, Freemarkerze oraz AngularJS. Zapoznałem się z zagadnieniami związanymi, z jakością wytwarzanego kodu zarówno od strony testów jednostkowych, jak i testów wydajnościowych przy pomocy takich narzędzi jak jMeter. Te umiejętności okazały się nieocenione podczas stawiania pierwszych kroków w prawdziwym projekcie.

W mojej opinii to właśnie filtrowanie informacji wraz z nabytą krytyką wobec nierzetelnych źródeł bardzo przydaje się w późniejszych etapach pracy. Dzięki obserwacji jak radzą sobie z tym zadaniem młodzi programiści możliwe jest dostrzeżenie osób zaangażowanych, mających potencjał, chęć do dalszego rozwoju i samodoskonalenia się. W moim zawodzie bardzo potrzebna, a nawet niezbędna jest samodyscyplina i samoorganizacja. Program Juniorski genialnie weryfikuje te umiejętności.

Jakie kolejne wyzwania czekały na Ciebie w ASC?

Trafiłem do projektu zajmującego się wdrożeniem, rozwojem i utrzymaniem systemu bankowości elektronicznej i aplikacji mobilnej dla jednego z polskich banków. Nie miałem wcześniejszych doświadczeń w tym sektorze, a projekt poza Javą posiadał specyficzne technologie, z którymi większość z nas zetknęła się po raz pierwszy. Początkowo trudno było wszystko okiełznać, ale jestem wytrwały J Punktem honoru było dla mnie opanowanie nowych technologii na poziomie pozwalającym na dalsze udoskonalanie aplikacji. Po wielu dniach ciężkiej pracy udało się zrozumieć większość jej obszarów, chociaż wciąż stanowi dla mnie wyzwanie i praktycznie każdego dnia uczę się nowych rzeczy, pomimo ponad rocznego stażu w projekcie!

Na co dzień dzielę swoje obowiązki w dwóch zespołach – rozwojowym i utrzymaniowym. Przy pracy w projekcie, który już istniał uważam takie podejście za bardzo słuszne, a wręcz konieczne. Bez zrozumienia jak działa aplikacja i z jakimi problemami zmaga się każdego dnia zespół utrzymaniowy nie jesteśmy w stanie zdobyć doświadczenia, które pozwoli nam ją udoskonalać.

Po zakończeniu rocznego Programu Juniorskiego oczywistym było dla mnie pozostanie w firmie, jednak zdecydowałem się na powrót do Wrocławia. To miasto jest po części moją miłością i na ten moment nie wyobrażam sobie życia poza nim. IT jest tu bardzo rozwinięte i istnieje mnóstwo stowarzyszeń organizujących cykliczne spotkania, na których prezentowana jest najnowsza wiedza technologiczna z branży. Staram się brać w nich udział.

Póki co jestem również jedynym pracownikiem ASC w tym mieście i ale mam nadzieje, że wrocławski zespół wkrótce się rozwinie. Bardzo chętnie pomogę nowym pracownikom w stawianiu pierwszych kroków w firmie.

Praca projektowa wymaga przeważnie dobrej współpracy w zespole. Jaki masz patent na pracę zespołową na odległość?

Po kilku miesiącach zdalnej pracy nie odczuwam różnicy. Taki rodzaj działania na odległość wymaga na pewno samokontroli i dobrej komunikacji – trzeba chcieć podtrzymywać kontakt z kolegami, starać się ich zrozumieć. Ustaliłem z zespołem zasady współpracy jeszcze przed przeprowadzką i dzięki temu nic się nie zmieniło w naszych relacjach. Jeśli jest to konieczne, nie mam problemów by wsiąść w pociąg i odwiedzać chłopaków na open space.

Sprawiasz wrażenia pasjonata programowania, od kiedy się tym fascynujesz?

 Może powtórzę się mówiąc, że coś w moim życiu stało się przypadkowo, ale dokładnie tak samo było z programowaniem. Będąc w gimnazjum, wszyscy dookoła myśleli, że zostanę dziennikarzem albo aktorem. Angażowałem w to też praktycznie cały wolny czas. W liceum przerzuciłem się na chemię i biologię, ale wciąż nie zaiskrzyła we mnie miłość do komputerów. Wręcz przeciwnie – nie lubiłem ich, a jedyną metodą na rozwiązanie większości problemów było – dosłownie – kopnięcie albo restart. Początkowo traktowałem naukę na Politechnice Wrocławskiej, jako przygotowanie do matury rozszerzonej z fizyki, która szybko stała się moim ulubionym przedmiotem pasją (a było jej sporo, bo studiowałem na kierunku Elektronika Mikrosystemów i Foronika) i po ukończeniu stopnia inżynierskiego wylądowałem na liście top 10 najlepszych absolwentów PWr. Tutaj też doszło do niespodziewanej zmiany. Przez pracę, jako ambasador jednego z wrocławskich sofwarehouse’ów na Politechnice odkryłem pasję do programowania. Zafascynowało mnie i zacząłem się go uczyć samodzielnie, poza uczelnią. Dość szybko też znalazłem pierwszą pracę jako programista – tworzyliśmy, w jednym z wrocławskich startupów, system inteligentnego domu. Obecnie programowanie to jest to, co chcę i lubię robić. Ten zawód wymaga nieustannego dokształcania się, by być na bieżąco z trendami panującymi w branży. Jest to dwustronny kontrakt, bo dzięki temu możemy tworzyć coraz lepszy kod, będący wyznacznikiem poziomu programisty. Jest to niesamowicie angażujące zajęcie, którego wykonywanie niesie ze sobą niesamowitą satysfakcję.

W branży IT jest wyraźnie odczuwany rynek pracownika, programiści nie muszą w zasadzie szukać pracy, dostają kilka ofert zatrudnienia. Co może zaoferować programistom Altkom Software & Consulting?

ASC to młoda firma, w której dużo się dzieje. Powstają nowe produkty i dzięki temu mamy możliwość uczestniczenia w rozwoju firmy. Panuje tu luźna atmosfera w parze z dużym zaangażowaniem. Ważne jest dla mnie, że nie jest to duża korporacja, gdzie jest się tylko jednym w wielu pracowników w szeregu.

Bardzo cenię sobie ludzi, z którymi tutaj współpracuję. Chcę się zawodowo rozwijać w Javie i ASC daje takie możliwości. Mamy programy rozwojowe (20 dni w roku przeznaczamy na rozwój własnych kompetencji) oraz cykliczne spotkania na temat technologii. Dzięki temu mamy kontakt z innymi, niż używane w projekcie, technologiami, wymieniamy się wiedzą.

Przemysław Sienkiewicz, Programista Java, Altkom Software & Consulting