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 9

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.

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ęć.

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 5

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.

32:04 · Rekrutacja i CV 7

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.

No tutaj zależy, jak dobrze się na przykład czujesz w matematyce, w algorytmach. Jeżeli nie aż tak dobrze, to może polecam, faktycznie być może wtedy łatwiej full-stackiem być. Bo jeżeli rozmowa rekrutacyjna ma na przykład pokryć 10 pytań i Wywiad z Tomaszem Borowskim 39. Wywiad z Tomaszem Borowskim 39. Wywiad z Tomaszem Borowskim 39. Wywiad z Tomaszem Borowskim No to ja też do tego trochę tak podchodzę i jak mam trochę takie szersze spojrzenie na osoby, które wchodzą do branży, to faktycznie ja bardziej polecam na początku się skupić tylko na jednym, czyli albo frontend albo backend, no w tym przypadku Java, ale faktycznie jeżeli chcemy coś pokazać, jakiś projekt,

No dobrze, i też w sumie fajnie powiedziałeś o tym, że na 10 pytań może być faktycznie kilka z frontendów wtedy, więc może faktycznie trochę łatwiej ukryć gdzieś tam te braki javowe na przykład, no ale mimo wszystko łapanie dwóch struk za ogon na początku moim zdaniem nie jest zbytnio polecane, ale jak ktoś woli, ja też ogólnie zaczynałem od Reacta, znaczy od samego JavaScriptu, później po React i dopiero później zostałem javowcem, więc dla mnie też frontend sprawia dużo fanów, więc jak ktoś ma taką monotonię w nauce, Wywiad z Tomaszem Borowskim 39. żeby utrzymać motywację tak jak na samym początku mówiłeś bo to też w sumie są na to sposoby żeby właśnie trochę zmienić może nie rzucać całej całości nauki programowania ale może troszkę trzeba zmienić ten właśnie dziedzinę bardziej a to się wszystko zazębia bo i JavaScript i Java no to mamy tutaj programowanie więc sporo rzeczy później można po prostu w inny sposób się troszkę to wyraża językiem a podobnie się wszystko tutaj kodzi

Do tego stopnia, że po prostu skupiłem się na tworzeniu kolejnych aplikacji, ale jednak rekrutacja wymaga bardzo szczegółowej znajomości podstaw Javy i ogólnie na tym bym się skupił, bo wtedy szybciej zyskujesz doświadczenie zawodowe. Jeżeli ja na przykład trochę zbyt długo tworzyłem projekty, później się musiałem trochę cofnąć, to uczycie szczegółów Javy, Żeby przechodzić rekrutację, no to mam trochę mniej doświadczenia zawodowego, niż jakbym od początku bardzo mocno się skupił na strukturach danych, algorytmach i tworzeniu logiki biznesowej w czystej Javie. No wtedy bym na pewno miał więcej doświadczenia zawodowego.

Tylko trzeba wytrzymać ten początek. Dokładnie. Ja też muszę przyznać, że kupiłam sobie taki podręcznik dodatkowo. To się nazywa Oracle Certified Professional. To jest taka nauka Java z podręcznika, ale jest tam wiele też takich praktycznych przykładów, które idealnie nadały się też na zadania rekrutacyjne. Takie typu ABCD, które też są często spotykane, prawda? Tak, no skądś też muszą brać te zadania, więc podejrzewam, że pewnie kilka z nich na podstawie tej książki też... A jeżeli już tak naprawdę się wkręcicie w temat, to też później dochodzą takie problemy jak kręgosłup czy oczy, a tutaj macie w wersji papierowej bardzo dużo informacji przydatnych i też oczy odpoczną.

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