Backend, Wywiady

Od czego zacząć swoją przygodę w branży IT? Rozmowa z Jackiem Hrynczyszynem, Java Developerem

Java

– Polecam każdemu naukę języka Java. Szczególnie warto spróbować, kiedy jest się młodszym, w liceum lub na studiach — wtedy do trzydziestki lub nawet szybciej można zostać seniorem, a wiadomo, z czym to się wiąże. Jeśli komuś spodoba się programowanie, czeka go świetlana przyszłość — uważa Jacek Hrynczyszyn, który przebranżowił się z inżyniera na programistę. A po zaledwie roku został midem.

Cześć! Podobno Twoja przygoda z programowaniem zaczęła się od… spotkania na siłowni. Opowiesz tę historię naszym Czytelnikom?

Tak, to prawda. Jak się chodzi na siłownię o stałej porze, to często spotyka się tych samych ludzi. Poznałem tam kolegę, który okazał się menadżerem w firmie IT. Wymienialiśmy się doświadczeniami z naszych branż i stanowisk – ja opowiadałem mu o tym, jak wygląda praca inżyniera jakości w firmie produkcyjnej, on przybliżył mi świat IT. Spodobała mi się perspektywa zostania programistą, ale nie wiedziałem, od czego zacząć. Kolega polecił mi język Java, w którym sam programował.

Dlaczego byłeś niezadowolony z poprzedniej pracy?

Poprzednia praca była bardzo interesująca i dawała możliwość wykazania się. Niestety, żeby wykonywać ją dobrze i realizować założone cele, trzeba było zostawać dłużej i pracować w nadgodzinach. Szczególnie będąc niedoświadczonym inżynierem, można było łatwo dać „wejść sobie na głowę”. Dodatkowo dojazd do fabryki zajmował mi codziennie czterdzieści minut, a powrót nawet do godziny. Na początku myślałem, że się przyzwyczaję, ale na szczęście w porę uświadomiłem sobie, ile wolnego czasu tracę na nadgodziny i dojazdy.

Jak podszedłeś do zadania związanego z przebranżowieniem? Miałeś ułożony plan, czy działałeś spontanicznie?

Ustaliłem sobie plan, w którym założyłem, że powinienem się uczyć minimum godzinę dziennie w tygodniu i dwie godziny w weekendy oraz że muszę opanować Javę, SQL i Springa. Oczywiście nie było tak kolorowo. Do nauki też traciłem zapał. Zdarzały się dni, a nawet tygodnie, że nie siadałem do programowania w ogóle.

Z jakich materiałów korzystałeś w nauce Javy? Które okazały się najbardziej pomocne?

Zacząłem od darmowego kursu na Udemy — Java Tutorial for Complete Beginners, dzięki któremu zrozumiałem podstawy Javy oraz programowania obiektowego. 

Następnie zacząłem czytać książkę Java. Rusz Głową! od Heliona w celu utrwalenia wiedzy. Na późniejszym etapie zrobiłem kurs od M. Zelenta na YT z relacyjnych baz danych — jest super, bo oprócz teorii zawiera też praktyczne ćwiczenia. Z tutoriali nauczyłem się o kolekcjach i testowaniu jednostkowym, na końcu wziąłem się za Springa i Hibernate. Polecam wyszukiwać darmowe materiały z YT — wśród youtuberów jest duża konkurencja, dzięki czemu robią coraz lepsze wideo. Do trenowania algorytmów używałem takich stron jak hackerrank.com oraz codingbat.com.

Czy wykształcenie inżynieryjne pomogło Ci w jakiś sposób w nauce programowania?

Inżynier, żeby rozwiązać problem, powinien bardzo dobrze zrozumieć proces oraz czynniki wpływające na niego. Tak samo było podczas mojej nauki programowania — nie wystarczyło mi połowiczne zrozumienie tematu, czytałem więcej i więcej, aż czułem, że jestem w stanie wytłumaczyć własnymi słowami dane zagadnienie.

Co spodobało Ci się w języku Java?

Java jest językiem obiektowym, obiekty są reprezentacją klas. Łatwo było mi zrozumieć ten paradygmat, ponieważ wystarczyło wziąć przykłady ze świata rzeczywistego, np. klasa Animal może mieć atrybuty — masa czy gatunek oraz metody — ryczenie, przemieszczanie się. Dla każdego zwierzęcia (obiektu) atrybuty mogą mieć inne wartości, a metody mogą mieć różne zachowanie w zależności od wartości parametrów.

Dodatkowo raz napisany kod można wykorzystywać w wielu miejscach. Dużą zaletą kodowania w Javie jest też ogromna społeczność pełna wspierających się specjalistów oraz fakt, że jest to bardzo popularny język. To sprawia, że z dużym prawdopodobieństwem inni programiści już wcześniej napotkali większość problemów i ich rozwiązania można znaleźć na Stack Overflow.

Jak oceniasz stopień trudności tego języka?

Wydaję mi się, że w porównaniu do języków nieobiektowych Java jest trudniejsza

Po jakim czasie uznałeś, że jesteś gotowy na swoją pierwszą pracę w IT?

Długo wydawało mi się, że nie byłem gotowy. Po około 1.5 roku zacząłem wysyłać CV. Teraz po czasie myślę, że mogłem szybciej zacząć chodzić na rozmowy, wtedy wiedziałbym, jakie mam braki i na czym powinienem się skupić.

Co było dalej? Jak wyglądał pierwszy staż?

Dostałem się na płatny staż jako software developer. Każdy tydzień był oddzielnym modułem i trzeba było przygotować projekt. Większość modułów nie była ze sobą powiązana, co nie do końca mi odpowiadało. Program był zdalny, przez co wsparcie ze strony bardziej doświadczonych osób było mniejsze. Programowałem wtedy od poniedziałku do niedzieli, niemal od rana do wieczora — było to wyczerpujące.

Ostatecznie zakończyłem staż po około miesiącu, ponieważ dostałem dwie oceny dostateczne z ostatnich modułów, co powodowało dyskwalifikację. Po zakończeniu stażu miałem rozmowę ze specjalistą HR, na której zaproponowano mi miejsce w podobnym programie stażowym, z tym że dla testerów, jednak nie zdecydowałem się na niego — moim celem było zostanie Java developerem. Staż bardzo dużo mnie nauczył, więc nie był to czas  stracony. Między innymi opanowałem zaawansowane zapytania SQL, pisanie aplikacji przy użyciu Springa, a także Spring Boota we wzorcu Model-View-Controller.

Teraz pracujesz w DataArt, co więcej, awansowałeś na stanowisko middle Java developera. Jak trafiłeś na tę firmę? Jak wyglądała Twoja rekrutacja?

O ile pamiętam, znalazłem ofertę na stanowisko Java Trainee Developer w Internecie. Wysłałem CV i następnego dnia skontaktował się ze mną dział HR. Umówiliśmy się na wstępną 30-minutową rozmowę. Podczas spotkania opowiedziano mi o firmie i rozmawialiśmy o formalnych sprawach. Kolejnym etapem była weryfikacja znajomości języka angielskiego z lektorem.

Ostatnim krokiem była rozmowa techniczna, przed którą zostałem poproszony o wysłanie dostępu do mojego repozytorium na GitHubie. Podczas rozmowy byłem pytany o teorię z Javy, zagadnień programowania obiektowego, kolekcji, obsługi wyjątków, programowania wielowątkowego, Springa, Mavena. Miałem do napisania dwa algorytmy. Na końcu rekruter techniczny pokazał mi fragmenty kodu. W pierwszym musiałem powiedzieć, jaki będzie jego wynik, w następnym miałem znaleźć, która zasada czystego kodu została złamana, a w ostatnim, jaki wzorzec projektowy powinien zostać użyty. 

Po dwóch tygodniach dostałem informację, że zostałem przyjęty, a rekruter techniczny załączył feedback informujący, co powinienem powtórzyć przed rozpoczęciem stażu.

Jakie możliwości rozwoju zaoferowano Ci w DataArt na początku?

Dostałem od razu umowę o pracę z benefitami, co jest rzadkością na stażu. Program trwał trzy miesiące. Po każdym miesiącu prezentowałem efekty pracy przed doświadczonymi developerami i dostawałem ocenę (tym razem otrzymałem same piątki). Przez cały okres stażu miałem do dyspozycji mentora, senior developera — tę samą osobę, z którą miałem rozmowę techniczną. Mentor kładł nacisk na samodzielne szukanie rozwiązań, dzięki czemu zdobywałem praktyczną wiedzę i doświadczenie.

Moim głównym zadaniem w trakcie stażu było napisanie aplikacji — systemu zarządzania kontami bankowymi. Aplikacja miała zawierać zarówno backend, jak i frontend. Po drugim miesiącu dostałem propozycję przejścia  do projektu i tym samym nie muszę robić trzeciej prezentacji. W międzyczasie robiłem kursy na platformie edukacyjnej DataArt. W momencie rozpoczęcia pracy w projekcie otrzymałem kwalifikację junior developer. 

Po jakim czasie stałeś się midem? Czy musiałeś uzupełnić swoją wiedzę, aby uzyskać awans?

Zostałem midem po roku od otrzymania kwalifikacji junior. Po dziewięciu miesiącach uznałem, że jestem samodzielny w wykonywaniu zadań, co potwierdzał feedback od mojego zespołu. Moja wydajność pokrywała się z opisem kwalifikacji mid dostępnym na platformie naszej firmy. Podczas comiesięcznego spotkania z Team Leaderką poinformowałem, że czuję się gotowy na zostanie midem i chciałbym ustalić, co mogę zrobić, aby uzyskać ten poziom.

TL, wspólnie z senior developerem z naszego teamu przygotował dla mnie zagadnienia, które powinienem opanować. Ustaliliśmy, że moją wiedzę przedstawię  w formie prezentacji, opowiem o teorii i pokażę, jak dane technologie działają w naszej aplikacji. Prezentacja była nagrywana jako źródło wiedzy dla osób, które dołączą do zespołu w przyszłości. Po prezentacji team potwierdził, że jestem godny zostania midem.

Wróćmy jeszcze na moment do etapu nauki. Czy kiedykolwiek miałeś chwile zwątpienia w „to całe przebranżowienie”?

Przed zmianą miałem już 3,5-letnie doświadczenie inżynierskie. Wiedziałem, co robić i w jaki sposób. Uważam, że wykonywałem dobrą robotę i dobrze współpracowałem z innymi pracownikami. W nowej branży musiałem zaczynać od zera. Przy moim potknięciu na pierwszym stażu przychodziły mi do głowy myśli, że zamiast siedzieć na ciepłej posadce, wymyśliłem sobie zostanie programistą, to teraz mam za swoje.

Komu teraz poleciłbyś naukę języka Java?

Polecam każdemu naukę Javy. Szczególnie warto spróbować, kiedy jest się młodszym, w liceum lub na studiach — wtedy do trzydziestki lub nawet szybciej można zostać seniorem, a wiadomo, z czym to się wiąże. Jeśli komuś spodoba się programowanie, czeka go świetlana przyszłość. Oczywiście starszym osobom też polecam spróbować, poznałem kilka osób, które się przebranżowiły i są zadowolone. Trzeba mieć na uwadze, że na początku programista nie zarabia 15k. Im człowiek dłużej pracuje w firmie w innej branży, jest już po podwyżkach, tym trudniej przeboleć chwilową obniżkę, ale uważam, że warto.

Jak uważasz, czy wejście w branżę IT jest nadal tak proste, jak kiedyś?

Nie uważam, żeby było to takie proste jak kiedyś. Już w momencie kiedy zdecydowałem się na zmianę zawodu, było bardzo dużo chętnych na stanowiska juniorskie i staże. Obecnie zdaje się, że kryzys dotknął też IT. Jest widocznie mniej ofert, a widełki obniżyły się delikatnie lub stanęły w miejscu, w porównaniu do wcześniejszego wzrostowego trendu. Te czynniki sprawiają, że więcej osób aplikuje na to samo stanowisko. Pomimo tego jestem przekonany, że wystarczy zacięcie się uczyć, chodzić na rozmowy i w końcu osiągnie się cel. Trzeba być twardym i nie można się poddawać 😀

Gdzie zawodowo widzisz się za 2-3 lata?

Podejrzewam, że za 2 lata zostanę senior developerem i będę pracował w innym projekcie.


Jacek Hrynczyszyn. Middle/Mid Java Developer w DataArt. Z wykształcenia mgr inż. Zarządzania i Inżynierii Produkcji. Przebranżowił się z inżyniera jakości na Java developera. Posiada prawie dwuletnie doświadczenie w programowaniu komercyjnym. Obecnie pracuje w DataArt, gdzie jako członek zespołu projektowego implementuje nowe funkcjonalności. Dzięki pracy w projekcie z nowoczesnymi technologiami zdobywa praktyczną wiedzę na ich temat oraz rozwija swoje umiejętności programowania.

Zdjęcie główne pochodzi z Unsplash.com.

Od ponad ośmiu lat pracuje jako redaktorka, dziennikarka i copywriterka, a od niedawna dba o treści oraz rozwój portalu poświęconego branży IT. Autorka wywiadów, tekstów eksperckich, newsów.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/wywiad-z-java-developerem-jackiem-hrynczyszynem/" order_type="social" width="100%" count_of_comments="8" ]