Mentionsy Mentionsy
JavaReady.pl - jak zostać programistą Javy? (Junior/Mid)
JavaReady.pl - jak zostać programistą Javy? (Junior/Mid)

50% firm odpowiedziało na jego CV junior java developera! Wywiad z Tomaszem Borowskim #39

30.05.2023 ·58 min 56 s · 5 rozdziałów

Linki z tego odcinka znajdziesz na https://javaready.pl/39 Bartek Kalka | javaready.pl

0:08 · Witamy i przedstawienie gości 1

Witajcie w podcaście Junior Java Ready, gdzie rozmawiamy w kontekście pomocy tym, co dążą do swojej pierwszej pracy jako junior java developerzy. Dzisiejszym moim gościem jest Tomek Borowski, który niedawno został java developerem. Zaraz powie o tym więcej. No i Tomek nam opowie o swojej historii i zmaganiach, jakie miał na drodze do zdobycia pierwszej pracy. Cześć Tomek! Cześć! Jeśli chodzi o mnie, to nie mam 26 lat i ogólnie to Zaczęłam swoją karierę zawodową też od tytułu inżyniera. Pracowałam jako taki inżynier powiedzmy bardziej przemysłowy, ale też w związku z zainteresowaniami.

0:29 · Historia Tomka Borowskiego 3

To jest taka solidna dawka motywacji, którą ciężko jest pobić, także ogólnie jeżeli ktoś by się chciał przerzucić na programowanie, to ja na przykład polecam studia, nie może prawdopodobnie da się dostać bez, ale jest to bardzo duża dawka motywacji, szczególnie jeżeli udałoby się też dostać od razu na stopień magisterski, także ja zaczęłam sobie od Takich prostych aplikacji PHP, JavaScript, HTML, żeby zrozumieć jakby jak to wszystko działa. I tutaj też uważam, że jest poprawna ścieżka, ponieważ później, ja na przykład teraz jestem junior java full stackiem, byłem na 3,5 miesięcznym stażu takim bezpłatnym.

Na końcu też stworzyliśmy taką aplikację full stackową w Java. Ja teraz pracuję jako job developer bankowości od dwóch miesięcy i ogólnie wszystko, co do tej pory zrobiłem, bardzo mi się przydało. Rozbijemy temat szczegółowo trochę później jeszcze. Jeżeli chodzi o jakieś takie rady, czyli co np. zrobiłem, a uważam, że było błędne, to ogólnie jakby ktoś się zapisał na te studia np. magisterskie, to ogólnie jakby musicie uważać na te szczegóły, bo np. wykładowcy mają to do siebie,

Na nich chcą wszystko w szczegółach przekazać, no bo z reguły oni są tacy w miarę dokładni szczegółowi, na tym polega też ich praca i taka mała matura, ale wy jeżeli chcecie zostać junior java developerami, to musicie uważać za to, bo na przykład jeżeli mamy algorytmikę, to Jakieś nadmierne wgłębianie się w sposoby na przykład obliczania, złożoności obliczeniowej, linked hash map i jakiś bardziej zaawansowanych, konkurencyjnych, w sensie wielowątkowych struktur danych. No, wiadomo, że to nie jest coś, co Wam się przyda, żeby się dostać do branży, więc jak się zapiszecie na te sceny, też musicie uważać, żeby się też za bardzo nie wkręcić w te studia, bo te szczegóły powinniście ominąć dla swojego dobra na początku.

6:09 · Staż i pierwsza praca 11

Powiedziałeś o PHP, o JS, HTML-u i Skąd ta Java się u Ciebie wzięła w takim razie, skoro zaczynałeś od PHP, JS, HTML i później jeszcze jakbyś mógł doprecyzować, jakie to były dokładnie studia magisterskie, jaki kierunek? Studia magisterskie to na Uczelni Prywatnej Horyzont Wrocławska Wyższego Informatyki Stosowanej we Wrocławiu. Jeżeli udałoby się Wam dostać na publiczną, to też czemu nie? Chodzi o to, że jeżeli ktoś nie studiował Inżynierki z Informatyki, to polecam ją robić zaocznie.

Wtedy macie więcej czasu. Cztery semestry, a nie trzy, żeby przyswoić cały ten materiał. On jest bardziej rozbity w czasie, więc to jest dobra opcja. Chyba że jesteście wymiotyczami po Inżynierce z Informatyki i chcecie sobie dodatkowo zrobić. To trochę inna sytuacja. A jeżeli chodzi o Java, to wzięło się to stąd, że po prostu mi się bardziej Java kojarzy z językiem angielskim i wszystko jest w miarę intuicyjne dla mnie. Tak to wyglądało. Kolejna rzecz to po prostu zaczęłam się mocno interesować stroną security w czasie studiów. I wiem, że też Java jest wykorzystywana do tworzenia tego typu rozwiązań.

No to co jeszcze oprócz tych studiów przerabiałeś? Czy może jakieś książki, może jakieś kursy? Właśnie mówiłeś o tych kursach polskich. Co byś polecił do kogoś, kto dopiero zaczyna? Ja na samym początku na Java Start przerobiłem takie kursy z czystej Javy i później z Javy Enterprise Edition, która jest o tyle dobra na początek i też polecam, że te implementacje są bardziej niskopoziomowe i np. nie ma tej nakładki Springa, gdzie są repo i korzysta się z jakiejś warstwy abstrakcji typu np. metody gotowe, fade on, tylko tam w Java Enterprise Edition np. pisze się niskopoziomowe joiny i ogólnie te pytania SQL nie dostają jakiejś takiej abstrakcji jak w Springowych JPA.

I myślę, że to jest dobre na początek. Dużo się nauczyłem też z baz danych i z pytań SQL-owych. Dzięki temu, że właśnie nie przeszedłem od razu po opanowaniu czystej Javy do Springa, tylko przeszedłem jeszcze przez tą Java Enterprise Edition. Także ogólnie to też polecam. I później uczyłem się Springa właśnie głównie Na Akademii Springu Przemka Bykowskiego. Ogólnie polecam też, żeby zerknąć na jakieś darmowe materiały, które wrzucam na YouTube. Niekoniecznie musicie kupować kursy, ale ja sobie cenię. No a tam muszę przyznać, że nauczyłem się bardzo szybko Springa i dokładnie tam widać, że te pieniądze są dobrą inwestycją z tego punktu widzenia teraz.

Ale widać też, że wciąż ostatnio jakieś Kursy do Springa, także też polecam zerknąć. Pewnie, pewnie. Ja wrócę do tego tematu Java EE. Też uważam, że warto by było poznać to, bo też jeszcze w firmach niektórych dalej się korzysta z tego, z Enterprise Edition. No i tu można powiedzieć, że to jest swego rodzaju konkurencja dla Springa, tak? Spring powstał później. Dlatego on ukrywa trochę tych wszystkich szczegółów, ale też nie wyklucza na przykład Spring, nie wyklucza korzystania właśnie z JDBC Template'a, który pozwala na pisanie właśnie takich natywnych query. Wiadomo, że to jest tylko i wyłącznie zazwyczaj do kwestii tego, żeby się nauczyć SQL-a w praktyce, bo jeżeli sobie wszystko ukryjemy za Spring Data na przykład, no to faktycznie później ten SQL na rozmowach rekrutacyjnych czy w przyszłej pracy będzie trochę leżał u nas.

Więc fajnie, że poleciłeś Javastart, Akademię Springa od Byka, więc ja też tutaj polecam śmiało. Też często się trafia, że właśnie Javastart jest mocno polecany, tak samo Bykowski. No i dobrze, i teraz zacząłeś od tego i finalnie dostałeś się na 3 miesiące stażu. Co to było, jak się tam dostałeś, jak się załapać na taki staż? No bo rozumiem, że tam się dużo nauczyłeś. Jeżeli chodzi o ten staż, to to było trzy miesiące i tam bardziej miałam okazję już popracować w zespole. Był już tam project manager i był mentor, który nas tam rozwijał. Ogólnie tempo było dość spore, także mam taki staż, to już mniej więcej frameworki też trzeba ogarniać.

Bo po prostu, jeżeli ktoś by się nawet dostał na taki staż, przynajmniej tam, gdzie ja byłem, w SoftServe, no to ogólnie myślę, że nie jest to możliwe, żeby nauczyć się tak szybko tych frameworków, które były potrzebne, jakby od zera. Więc ogólnie na staż myślę, że trzeba ogarniać już tak mniej więcej frameworki, ale jeżeli chodzi o dostanie się, no to po prostu logika biznesowa, struktury danych, algorytmy, I znajomość jakichś takich kruczków w Java, no to jest taka esencja właśnie zadań rekrutacyjnych na starszczyn, na juniora. To jest takie po prostu problem solving i po prostu znamy struktur danych w Javie, jak działa pamięć.

Skąd się tych rzeczy dowiedzieć? Wcześniej mówiłeś o CodeGymie, to pewnie tam jest trochę, jeżeli chodzi o złożoności obliczeniowe, struktury danych, ogólnie rozwiązywanie problemów jak najbardziej wydajnie, to gdzie się tego uczyłeś? Muszę przyznać, że trzeba sporo też dzieliczenia, czy to interfejsów po sobie, czy klas, znajomość z tego, jakie są modyfikatory. Przy danych strukturach, na przykład inne modyfikatory dostępu możemy użyć przy interfejsach, inne przy klasach abstrakcyjnych, jeżeli implementujemy metody. To są takie rzeczy, które z jednej strony trochę też nabyłem poprzez takie ćwiczenia na Javastart.

Kupiłem sobie taką książkę Java Interview Questions Open Geniusa i tam jest 250 pytań i odpowiedzi, na co właśnie są problemy nadmuchane po to, żeby zgłębić jakieś knify, które na pierwszy rzut oka nie widać w Javie, także też można Podejść tak często teoretycznie, nie trzeba nauczyć się wszystkiego poprzez zadania, jakieś ćwiczenia na kółczymie na przykład, no bo to może zdawać nawet 10 lat. Niektóre rzeczy po prostu doświadczenie rekruterzy znają i są w stanie jeszcze publikować książce.

Pewnie, czyli trzeba się ratować takimi, no po prostu zadankami, tak? Tak jak na matematyce, czy gdzieś im więcej się rozwiąże, tym później łatwiej się rozwiązuje kolejne problemy, więc fajnie. A niektóre rzeczy to są po prostu takie knify, które nie ma jakiegoś zastosowania, ciężko jest wymyślić zadania algorytmiczne, które sprawdzi znajomość ich i tutaj właśnie warto przeczytać teoretycznie po prostu pewne jakieś pytania od rekruterów. Którzy na przykład pracowali w branży ich i na przykład skończyli pracę, napisali jakąś książkę. Nie sprawdzam kto to dokładnie napisał, ale podejrzewam, że tego typu osoba może się znaleźć. Nazwa tej książki to Java Interview Questions od Open Genius, tak?

Open Genius, tak. Dobra, to jakby ktoś chciał, to spoko. No dobra, czyli dostałeś się na staż, ale ile właściwie czasu się starałeś, żeby się dostać na ten staż? No bo zacząłeś studia magisterskie, tak? I dopiero wtedy zacząłeś szukać stażu, tak? No tak. Przez pierwszy rok ogólnie to cały czas robiłam projekty Takie full-stockowe, czy to w Javy Enterprise, czy to w Springu. Jak zaczęłam szukać staży, to już bardzo płynnie tworzyłam aplikacje. Ogólnie doszedłem do wniosku, że za dużo się uczyłam tworzenia aplikacji, frameworków.

17:33 · Podsumowanie i radki 6

Troszeczkę mnie to zaskoczyło w pewnym momencie, Że rekrutacja jest tak prosta, przynajmniej tak wyglądało, że znajomość frameworków na rekrutacjach, na staż, to w ogóle jest jakaś abstrakcja. Byłem zdziwiony wtedy. Troszeczkę w pewnym momencie musiałem się cofnąć i do maksimum nauczyć się podstawy, czępy i właśnie rozwiązywać różne takie zadania algorytmiczne. Także no tutaj jakbym miał sobie coś polecić wcześniej no to żeby mieć to ułożone w głowie, że jak chcesz się dostać na staż no to przede wszystkim będziesz nagrywany z takich studentów, które poruszają jakieś aspekty języka Java i jakby do maksimum szczegółowości plus algorytmy.

No ja właśnie gdzieś tak po roku zaczęłam się starać o ten staż, już dobrze znając development aplikacji full-stackowych, łącznie z bazami danych, natomiast no później musiałam się trochę cofnąć, gdzieś pół roku, żeby bardzo dobrze sobie ułożyć w głowie, również w języku angielskim, bo też często rozmowy rekrutacyjne są po angielsku, podstawy języka Java, ale Do maksimum szczegółowości, struktury danych i algorytmy. I wtedy to już był taki moment, że miałam fajne projekty w Javie. I bardzo dobrze znałem te podstawy, zdania rekrutacyjne, algorytmy. No i wtedy już nie miałem problemów z tego typu zadaniami, które napotykałam.

Chciałem tutaj właśnie się zatrzymać na tych podstawach Javy, bo to bardzo często jest coś, co w sumie nie za bardzo wiadomo, co to znaczy te Java podstawy i jakbyś miał wskazać jakieś konkretne rzeczy z podstaw, wiadomo, że podstaw Javy jest sporo, to o co chodzi bardziej z tymi szczegółowymi, że do maksimum szczegółowości, że co na przykład, masz jakieś przykład zadania albo zagadnienia, które cię pytali? W jaki sposób implementowany jest Equals i HashCode? Każdy wygeneruje sobie w IntelliJ, przecież to jest takie proste, ale jakbyś miała napisać swój algorytm na to, np. tego typu, albo jak działa np. garbage collector, jakie metody on wywołuje pod spodem, jakie jest zastosowanie klas wewnętrznych, po co one w ogóle są np.

Kilka metod o tej samej nazwie w innych interfejsach, to w jaki sposób się do nich odwołujemy, jeżeli na przykład wszystkie są statyczne, żeby też używać takiego słówka super. No tego typu szczegóły też w Java 8. To jest coś, co nie jest potrzebne, żeby stworzyć jakąś aplikację typu CRUD, nawet full stackową. Junior Mid. Episode 2.

Oczywiście wybór firmy to było głównie to, co mnie interesowało, czyli technologie po prostu przyszłościowe. Mówię o tej Javy Enterprise Edition. Warto na starcie to nauczyć, ale wiadomo, że rynek raczej nie idzie w tym kierunku, więc jeżeli chodzi o pracę, to tutaj się skupiłem. Wielkie dzięki i do zobaczenia w kolejnych odcinkach! Ok, czyli już miałeś te doświadczenie właśnie na stażu, wcześniej też w pracy na studiach w tych grupach. I muszę powiedzieć, że ten procent odpowiedzi jest bardzo wysoki, bo aż 50%, czyli 5 na 10 firm, powiedziało.

Pamiętam kiedyś napisałeś coś takiego, jak zacząłem się uczyć u Ciebie na Junior JavaReady.pl, a ja weźmę też sam od siebie naturalnie taką zasadę, że jakby ja miałem określone cele, które chciałem osiągnąć Liczba czasu, która miałaby upłynąć, nie była dla mnie istotna. Wszelkie inne rzeczy też trzeba, uważam, odłożyć nowo, bo też jest taka zależność, że liczba informacji, którą możesz przyswoić, jest ograniczona. Jeżeli pracujesz gdzieś, to np. Nie polecam łączyć jakiejś tam pracy z kursami i przebranżowieniem się na programistę, no bo musisz zapomnieć stare rzeczy, żeby się nauczyć nowych, więc jeżeli naprawdę chcesz zostać programistą, to uważam, że to, co robiłaś wcześniej, musisz najpierw porzucić, a później zacząć się uczyć.

32:04 · Rekrutacja i CV 4

Jeżeli to jest rok doświadczenia w Javie, to często tam jest w rekrutacji Java, Spring, Postgres, Oracle, Linux. Często nie wyłania to do końca profilu firmy. Też lubię podglądać oferty dla ludzi z większym doświadczeniem od tej samej firmy, gdzie składam. I tamten już stack jest, który pokrywa cały projekt. No i na przykład sprawdzają też tak pod tym kątem. Na przykład jeżeli widziałem, że od seniorów są wymagane jakieś starsze technologie, to raczej nie byłem tak za bardzo skłonny składać tam CV.

Jest on oparty o nowe technologie, że będę mógł pracować z microservice'ami np. z Kafka, Elasticsearch. Wiedziałam, że są to nowe technologie, z którymi też wiąże się fajne wynagrodzenia na pewno w przyszłości. Te technologie są też uważam bardziej wygodniejsze dla programistów, bo np. wystarczy sobie porównać implementację JPA w Javy Enterprise Edition na Springu. Głównie wszystko jest optymalizowane też, żeby programista pracował w bardziej wygodny sposób, więc ja zawsze patrzyłem, żeby te technologie były nowsze, a nie starsze. Pewnie, a takie kryterium? Angular i JSP w Javie na przykład, nie? Też jest różnica ogromna, gdzie tutaj można linią command sobie wygenerować dużą liczbę kodu, a czekaj, w Angularze, a w JSP to jest na przykład niemożliwe, tak?

Mimo wszystko jako pierwszą pracę i tak bym to brał, no bo pierwsze doświadczenie zawsze jest najważniejsze, żeby zdobyć. Ale jeszcze chciałem sobie podpowiedzieć o tego fullstacka, no bo ty właściwie jesteś fullstack. Java javą, ale jak uważasz, jeżeli chodzi o naukę HTML, CSS, JS, właśnie jakiegoś frameworku w javascriptcie, czy tam w typescriptcie nawet może, Jako taki coś dodatkowego jako kandydat na back-endowca, no bo wiadomo full stack, jesteś full stackiem, ale zaczynałeś bardziej od back-endu chyba niż od tych CSS-ów i JS-ów, nie? Ja zaczynałem jakby od full stacka, takiego PHP i to było jakby wszystko zmieszane z sobą, to był jeszcze taki spaghetti, czy nie wiem jak to do końca się tam nazywa.

Myślę, że to też jest wygodniejsze dla rekrutera, jeżeli umiesz coś do frontendu. Na pewno taki Vadin, który jest bardzo wysokopoziomowy, byłby dobry dla czystego backendowca, ale ja się później bardziej wkręciłem w ten frontend do tego poziomu, że opanowałem Reacta i Angulara i ogólnie mam po prostu duży fan też z frontendu. Jak ktoś ma jakiś taki zmysł trochę artystyczny, ja trochę mam, no to mnie po prostu jara też, że też tworzę ten frontend.

Pokazano pierwszych 25 dopasowań — doprecyzuj frazę, aby zawęzić wyniki. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.