Oto 1. wywiad z serii Jak Zostałeś Junior Java Developerem.

  

Odcinek na Youtube/Spotify oraz innych

  

Materiały z odcinka podcastu:

  1. Repo Bartka
  2. javastart.pl – super początek, według Bartka.
  3. Recepta na projekt, który będzie Cię jarał i będzie miał wymagane technologie na rynku.
  4. 10 błędów, przez które ludzie nie mogą zdobyć pierwszej pracy w Javie. (nie popełniaj tych błędów)

Wywiad w wersji tekstowej

Tekst wymaga korekty – in progress 🙂

Bartek Kalka: Siema, siema Bartek. Cześć, cześć. Cieszę się, że miałeś czas, żeby w ogóle porozmawiać. Chciałem rozmawiać o tym jak udało Ci się zdobyć pierwszą pracę jako Java Developer i ogólnie celem tego podcastu jest to, żeby ludzie, którzy tego słuchają, czyli Ty drogi słuchaczu mogli po prostu albo np. wzorować się trochę na tym co Ty przeszedłeś, albo wykluczyć jakieś ścieżki. Czyli po prostu chciałbym usłyszeć jak z Twojej perspektywy wyglądała Twoja ścieżka taka do tej pierwszej pracy i np. czy masz jakieś rady czy inne rzeczy. Ale zanim to. To może po prostu na początku się przedstaw. Kim jesteś w ogóle?

Bartłomiej Drobczyk: Jasne, jestem Przede wszystkim dzięki za zaproszenie. To jest miłe, szczególnie, że w branży jestem w sumie dosyć dużą świeżynka, bo dopiero tam od lipca pracuję i jednocześnie bardzo dobrze pamiętam jak to jest zaczynać, więc tym bardziej się podzielę feedback, bo wiem jaka to jest podróż do branży, jak jeszcze się tego buta w te drzwi nie wchodziło, no to wspomnien czar, ale odpowiadam na Twoje pytanie. Nazywam się Bartłomiej Sobczyk. Bartek może być po prostu od. Od lipca jestem w branży IT. Pracuję w USA jako developer sensu stricte. Jeszcze pracuję jako stażysta do końca tego roku. Jak wszystko dobrze pójdzie to zakończę ten rok. Będę developerem, ale wydaje mi się, że mogę już mówić w kontekście pracy z dwóch powodów. No bo raz faktycznie wszystko zmierza ku temu, że będę tym developerem, a dwa już miałem okazję bycia bycia developerem, ale świadomie zrezygnowałem z tej tej opcji, żeby być właśnie stażystą. No i wydaje mi się, że do tego też w trakcie rozwoju potem odniosę, bo to jest coś, z czym ja miałem wątpliwości, czy mam już być tym upragnionym developerem i już mieć tą umowę, czy jeszcze trzymać na wodzy i jeszcze jeszcze być stażystą. Więc tak odpowiadając jestem w Azji od lipca i udało się, udało się, więc jestem gotowy podzielić się historią.

Bartek Kalka: Z super hiper. To ogólnie gratulacje, że to się udało i bardzo ciekawe od tego co zacząłeś, że byłeś już developerem, więc to jest jeszcze bardziej ciekawe. No dobra, to może jak wygląda Twoja ścieżka gdzieś tam jakieś takie początki w ogóle dlaczego programowanie i dlaczego w ogóle developera? Skąd to się wzięło?

Bartłomiej Drobczyk: To jest dobre pytanie. Z racji tego, że nie skończyłem stricte informatyki skończyłem studia techniczne faktycznie, bo skończyłem automatyka i robotyka, więc ten ogólnie techniczny mam gdzieś tam i na studiach miałem bazę danych, miałem C++, ale to było basic of basic de facto tyle ile potrzebuje automatyka, robotyka, roboty wiele więcej, ale no trochę tego świata it it liznąłem, ale na studiach się skończyły. Miałem moje pierwsze doświadczenia w branży, w branży automatyki i for the record. To nie jest zła branża. Mnie. Mnie osobiście zawsze trochę odstraszały wyjazdy, konieczność wyjazdów, często tego, że jak jesteś automatyki, robotyki to musisz często być w delegacjach. Jak jesteś bardzo młody to Ci się to wydaje atrakcyjne, że spędzasz X czasu tam w Hiszpanii, w Niemczech, czasami tu, czasami tam, Ale w praktyce bardzo często to wygląda tak, że trzy tygodnie spędzasz w tym kraju i na tydzień wrzucasz do Polski. Brzmi może fajnie na początku, ale w funkcji czasu. Jak myślisz o rodzinie, o ustatkować się, to już tak atrakcyjnie atrakcyjnie nie brzmi. A druga rzecz jak miałem oprogramowanie na studiach tyle ile to my musieliśmy mieć, to tam poczułem, że to jest coś, co mnie faktycznie ciekawi, co mnie naprawdę zaciekawiło. I w takiej czystej automatyce, takiego większego programowania, jakiego my znamy z Javy nie ma, Nie ma.

Bartłomiej Drobczyk: To jest dużo bardziej uproszczone niż by się mogło wydawać. Mimo, że programowanie robotów brzmi bardzo tak abstrakcyjnie i tak ja wiem, ludzie czasami widzą Transformers albo Bóg jeden wie co. To jest jednak dużo prostsze od tego programowania i brakowało mi takiego głębszego wejścia w samo samo myślenie, takie programistyczne. A druga rzecz nie oszukujmy się stabilność, stabilność, stabilność, stabilność to jest coś, co mi się bardzo podobało w tej branży. Fakt, że to jest branża, która daje ci bezpieczną przyszłość, stabilną przyszłość, w której można mieć dobre pieniądze. I wydaje mi się, że o tym trzeba mówić wprost, że to powinno, że to może być dobra motywacja, ale pod żadnym pozorem nie może być jedyna. Konglomerat tych trzech cech sprawił, że w pewnym momencie stwierdziłem ok, skończyłem studia i to jest idealny moment, żeby. Że nie będzie lepszego momentu, żeby się przebranżowić. Jeśli nie teraz, to potem będzie tylko trudniej. Więc z perspektywy czasu wspominam ten okres z uśmiechem na twarzy, ale on nie był łatwy, ponieważ nie, nie podjąłem żadnej innej pracy. Mogłem sobie pozwolić na to, żeby spędzać po kilka godzin dziennie, przerabiać materiały, uczyć się, eksperymentować, sprawdzać. Miałem wtedy po prostu na to czas, a jednocześnie lubiłem po studiach i. I to było trudne. Jeżeli nawet do Ciebie samego przychodzą oferty pracy nie z IT jeszcze, ale właśnie z automatyki, a Ty z nich rezygnujesz, bo bo masz gdzieś tam target i masz jakieś to swoją.

Bartłomiej Drobczyk: Czemu chcesz to robić? I w kontekście tych wątpliwości, które na pewno każdego dopadają w mniejszym lub w mniejszym stopniu, to był trudny czas w takim kontekście, że przychodzą Ci oferty, Ty mówisz nie i de facto nie umiesz sam sobie odpowiedzieć, kiedy i kiedy uda Ci się wejść do tej branży. Wierzysz, że w perspektywie kilku, kilkunastu, maks miesięcy. Ale kiedy dokładnie nie wiesz i wątpliwości, czy aby na pewno dobrze robisz, czy nie, czy proces się sama szuka, nie rezygnujesz. W takim kontekście dla mnie to był trudny czas, ale wydaje mi się, że jeżeli masz odpowiednią ocenę, to widzę w tym, jak bardzo fajnie kiedyś o tym powiedział. Wszystko zależy od tego, jak mocne masz wiary. Jeżeli masz mocne wiary dlaczego chcesz to zrobić to go for it i wiesz i powinno się udać. Zakładając, że masz dobry feedback, że możesz mierzyć swój progres, że może z kimś go skonsultować i w pewnym momencie potem już wszedłeś rozmowy techniczne, CV i to był najlepszy w sumie feedback. Ale w ten sposób postanowiłem wejść do branży i z perspektywy czasu absolutnie tej decyzji nie żałuję.

Bartek Kalka: O super, super! Dobra, to ja się trochę jeszcze tutaj zatrzymam. Na podsumowanie takie kilka pytań wstecz. Bo zacząłeś mówić o studiach, czyli zakładamy, że w liceum albo w technikum byłeś. To jest to pytanie.

Bartłomiej Drobczyk: Liceum, liceum.

Bartek Kalka: I po prostu od zawsze chciałeś iść na Air i nagle się okazało, że to nie jest to.

Bartłomiej Drobczyk: Tak w dużej mierze wydaje mi się. Wydaje mi się, że w ogóle cofamy się do czasów już tak odległych czasami. Hahaha, mimo że one wcale tak odległe nie są. Ale tak w szkole średniej mam wrażenie, że lwia część ludzi żyje wielkim wyobrażeniem tego jak wygląda praca dowolna. W sumie czy to jest architekt czy też programista, czy to jest, czy to jest automatyk, więc wydaje mi się, że żyłem po prostu wyobrażeniem w dużej mierze studia potem zweryfikowało te wyobrażenia i sprawiło, że właśnie wyjazdy i życie na walizkach nie jest tak fajne, jeżeli jesteś zmuszony ciągle wyjeżdżać.

Bartek Kalka: W szczególności po studiach. Czy te czasy jeszcze inaczej? Jeżeli szukasz tej drugiej połówki i gdzieś tam nie chcesz się ruszać no chyba, że masz taką osobę. No ale spoko, to fajnie, fajnie to usłyszeć, bo też znam sporo osób, które gdzieś tam są w liceum i też pytają o jakieś rady i już to są naprawdę ogarnięte osoby. Oczywiście nie ma. Raczej nie. Obstawiam, że jest ich dużo, chociaż chciałbym żeby tak było, że właśnie wypytują jak to z tym programowaniem, że w ogóle szukają już pracy. Niektórzy już coś tam chodzą, więc na pewno jesteś takim dobrym przykładem, że w sumie można zostać takim Java developerem nawet, gdzie nawet w sytuacji, w której gdzieś tam nie byłeś w liceum.

Bartłomiej Drobczyk: Może słuchaj lepiej lepiej, ponieważ wiesz. Ja skończyłem studia techniczne i można można mówić, że ok, to dobra, to trzeba mieć, nie wiem, forever ścisły mózg trzeba, trzeba iść w to trzeba tak myśleć. Inżynier I wtedy masz szansę. To nie jest po prostu prawda. Jak zacząłem tutaj pracę, to obok mnie często siedzi taki mój dobry kumpel, który już jest u ruchu. Mi plus tak naprawdę i jak się tak poznaliśmy bliżej, to on sam mi powiedział jaka była jego ścieżka. I wiesz, moje pierwsze wrażenie z nim jak go słuchałem z boku, jak z nim gadałem to mówię kurde ale fachura u mnie umie kurde takie kosmiczne rzeczy, że to mi się w głowie nie mieści, że zjadł zęby na tym programowaniu, a ma dopiero jest świeżo po trzydziestce. No ale w trakcie mi powiedział, że on w ogóle skończył profil humanistyczny, skończył polonistykę, on pracował w jakichś tam innych firmach i w pewnym momencie stwierdził, że chce się nauczyć, że spróbuje. I od samych podstaw, od samiutkim podstawy. Jak można mówić, że ja po tym, że nawet przynajmniej wiedziałem, co to jest pętla i co to jest zmienna, to null. Nadal nic nie. I od tego momentu wiesz, doszedł do takiego punktu, że no mi z boku imponuje mega. Spędził w tej branży jakoś 4 lata, czyli też jakoś nie bardzo dużo, ale pracował, pracował i to jest najlepszy przykład, że nie ma czegoś takiego, że musisz iść na studia i wtedy i wtedy będziesz tym programistą.

Bartłomiej Drobczyk: Ja czasami nawet mam wrażenie jak jak gadam z ludźmi po informatyce, że pod wieloma względami studia paradoksalnie nawet mogą Ci trochę zaburzyć osąd albo zabrać czas, który mógłbyś poświęcić na konkretne nauczenie się konkretnych, mierzalnych umiejętności. Mam gdzieś to szczęście, że mam młodszego kumpla, który który teraz studiuje, na pewno tam kończy te studia i on mówi, że on w sumie poznał tam dużo rzeczy, ale tak w sumie nie wiem dokładnie nic konkretnego. Nie poznał dużo asemblera, dużo jakichś różnych algorytmów, ale żadnego języka konkretnie nie dotknął. No i ja mu zaproponowałem OK, to może możemy podziałać z Javą? Możemy, Możemy poznać trochę świat Javy. Jak Ci się spodoba to możemy. Możemy iść w to. Jak mi powiedział ostatnio, co było bardzo miłe, że po trochę ponad pół roku pracy ze mną, gdzie po prostu tydzień w tydzień się spotykamy, gadamy, on nam robił jakieś zadania, jakieś tam projekty robimy, on mówi, że on po pół roku takiej ciężkiej pracy, gdzie masz konkretny target, on umie więcej jako programista niż po prawie trzech latach studiów informatyki, że to jest z jednej strony smutne, a z drugiej strony, a z drugiej strony fajne, bo pokazuje Ci, że jeżeli masz konkretny target, masz ścieżkę i masz konkretne wymagania, które musisz pokryć, które musisz zrozumieć i to jest skorelowane z potrzebami rynku, to to wiesz.

Bartłomiej Drobczyk: Potrafisz w rok osiągnąć więcej niż po 3 latach studiów np. jeżeli wierzysz tylko w program. Bo tragedią moim zdaniem jest często to jak ludzie idą na studia i wierzą, że przejście studiów zapewni im pracę, że jakby ten dyplom to będą mieć wszystkie umiejętności. I smutek pojawia się wtedy, jeżeli kończysz te studia i sobie uświadamiam, że tak naprawdę to nie umiesz nic, nie umiesz, żadnych takich konkretnych rzeczy. Albo musisz iść do pracy, musisz się douczyć. Pracodawca musi poświęcać czas, żeby Cię douczyć, bo masz jakieś ogólne rzeczy, ale on potrzebuje konkretnej technologii, konkretnego, konkretnego frameworka i tylko musisz się go nauczyć. No i to jest też coś, co widziałem na własne oczy. Dochodzi czasami do sytuacji, że ludzie, którzy nie skończyli informatyki oni zabierają pracę ludziom po informatyce, bo po prostu mają konkretne umiejętności, mierzalne umiejętności, które potrafią udowodnić i w zadaniach i w projektach i w rozmowach. Nie muszą znać asemblera. Mało który programista chyba dzisiaj, a tym bardziej programuje w asemblerze, ale znają, znają dobrze ekosystem Javy, znają nowinki z Javy, znają Springa, znają wszystkie technologie satelitarne i z punktu widzenia pracodawcy to jest oszczędność czasu. No bo on to umie już, on już to poznał. Więc to jest coś, co sam widzę na własne oczy. I tak chcę bardzo mocno zburzyć stereotyp, że programista to tylko po studiach, bo to po prostu nie jest prawda.

Bartek Kalka: Tak i właśnie. Bardzo dużo osób też spotykam się z takim twierdzeniem, że ja nie mam studiów i jakby inne osoby, które studiują i studiowały, to na pewno są lepsze ode mnie i ja muszę iść na studia, więc takie osoby się zapisują np. na jakieś takie zaoczne rzeczy, gdzie później siłą rzeczy ciężko jest utrzymać się na studiach zaocznych plus jeszcze gdzieś tam w ciągu tygodnia pracować i to wszystko się tak kumuluje do tego, że jeszcze bardziej się zniechęcają. A gdzieś ten końcowy efekt studiów. Tak jak Ty mówisz, ja sam tego doświadczyłem, że jednak mieć cel zdobyć pracę w Javie już konkretnie, a np. być informatykiem. I nie oszukujmy się studentów, studentów uczy się do tego, żeby oni finalnie zostali na tych studiach i zostali doktorami itd. Więc im przekazuje się taką wiedzę, która później ma wystarczać do tego, żeby uczyć innych i żeby np. wynajdować jakieś nowe rzeczy i wspierać taką politechnikę czy uczelnię. A tak naprawdę większość osób tak naprawdę ucieka ze studiów, bo jednak nie wszystkim się to podoba. No i tak jak mówisz, jest, to jest to duży problem i osoby, które gdzieś tam nie zrobiły studiów.

Bartek Kalka: Jest jakaś różnica między osobami, które właśnie poszły na studia, bo one siłą rzeczy jeszcze zależy jakie, bo ja mówię tutaj bardziej o takich informatycznych, gdzie są tematy baz danych, jakichś algorytmów i struktury danych, to to jest na pewno coś, co się przyda. I jeżeli jesteś np. na drugim roku studiów, no to też masz dużą szansę, żeby się załapać gdzieś tam na staż jakieś, Więc to też jest. Też nie jest taka stracona ścieżka, żeby. Jeżeli teraz jesteś na studiach, drogi słuchaczu, to nie rezygnuj, nie rzucaj tego, bo jednak możesz wynieść z tego plusy i przy okazji gdzieś tam po tych studiach być już takim dobrym programistą. Ja właśnie tak miałem, że dostałem się na staż na drugim roku studiów i gdzieś wychodząc ze studiów już miałem te dwa lata doświadczenia komercyjnego i już nie jestem takim stereotypowym studentem, który gdzieś tam myślał, że ten program, program da mi pracę i będę zajebistym programistą. Więc jeżeli gdzieś tam marzysz o tym, żeby zostać Java developerem i jesteś na studiach, no to nie rezygnuj ze studiów, tylko korzystaj z tego choć na jakieś różne webinary, jakieś prelekcje.

Bartłomiej Drobczyk: Absolutnie, absolutnie. Tylko bądź proaktywny. Nie, nie od przedmiotu do przedmiotu, licząc, że podstawa programowa da Ci te umiejętności. Studia dają Ci przestrzeń, gdzie może szukać właśnie staży. Tak jak Bartek mówi. I nie bądź po prostu proaktywny. Rozglądaj się i wysyłać CV do każdego na większe staży, które się tam pojawią. Które tam firmy zaoferują, to rozglądaj się na targi pracy i się po prostu pojawiaj. I to i to. Skrót to chyba kieruje się w stu procentach tym zgadzam.

Bartek Kalka: Super. No to ja bym już tak. Jesteśmy już po liceum, po tych studiach Twoich powoli dochodzimy do tej pierwszej pracy upragnionej. Oczywiście już mówię o tym, jak robić swoją karierę. Na to, żeby zostać Java Developerem i ok. No i teraz przychodzi do mnie takie pytanie, które chciałbym Ci zadać że właściwie co takiego robiłeś Twoim zdaniem? Co było totalnie bez sensu i teraz z perspektywy czasu widzisz, że nie rób tak, żebyś tak nie robił? Byś mógł sobie to powiedzieć? Jak byłeś młodszy to kilka lat wstecz czy kilka miesięcy wstecz to byś sobie podziękował później po czasie. Jest coś takiego?

Bartłomiej Drobczyk: Tak jest, jest. Przede wszystkim jak zaczynasz tą naukę to jedno z najważniejszych pytań, na które sobie musisz odpowiedzieć to uświadomić sobie czego nie wiesz tak naprawdę. Bo jak zaczynasz się uczy to Ty nie wiesz nawet czego nie wiesz. I to jest bardzo ważne, żeby na początku to targetowanie i ustalić kolejność co jest ważne, co nie jest ważne tutaj. Jak drodzy słuchacze macie starszych programistów, kolegów, mentorów, to ich zdanie może być nieocenione. Szczególnie, że są na rynku i znają te wymagania, więc to jest bardzo ważne. Ja na początku takiego feedbacku jeszcze nie miałem i musiałem sam gdzieś to badać i pamiętam, że zacząłem moją naukę od bardzo dobrego kursu, który w ogóle polecam bardzo. To jest kawał dobrej roboty Java Start. Chłopacy się nazywają moją firmę i jest absolutnie, absolutnie cudowna do podstaw tłumaczy bajecznie, bajecznie i co jest bardzo fajne w przeciwieństwie np. do FDM i do SITA i tak dalej. I to po prostu zbiór różnych kursów, które niekoniecznie są jakoś powiązane w większą strukturę, większą mapę to oni dostarczają bardziej lub mniej, albo raczej bardziej ścieżkę, którą przejdzie i którą jak przejdziesz, to jak sami mówią będziesz samodzielnie umiał się już uczyć samodzielnie pewnie jakieś bardziej zaawansowane kursy i się w nich orientować i to jest bardzo cenne i z tego jestem bardzo zadowolony, szczególnie na początku. Jak nie wiecie czego się uczyć to jeżeli ktoś wam wskaże taką mapę rób to, rób to, rób to, zrób to i po tym będziesz już wiedzieć czego nie wiesz i będziesz mógł się uczyć własnych rzeczy to potem, potem to jest bardzo cenne, ale w trakcie, w trakcie nauki na przykład spotkałem się z takimi np.

Bartłomiej Drobczyk: zdaniami, że ok, podstawa to jest Java, przerób porządnie podstawy Javy, bardzo dobrze, paradygmat obiektowy, przerób itd. Itd. A potem wejdź w wymówkę i np. zacznij od Javy i aktualnie Dżakarty, bo już się tam wymieniła. Po tym jak poznasz Dżakarty, czyli te pierwsze narzędzia takie webowe po Mojave, to potem przejdź do Springa. No i uważam, że to jest strata czasu. Tak naprawdę one trochę inaczej działają, a dominuje głównie Spring. Wracamy, wracamy do tego, o czym mówiłem jeszcze na studiach. Nie uczcie się wszystkiego, nie uczcie się tego, co co gdzieś tam dostępne, Uczycie się tego, co jest potrzebne, w czym się pracuje na rynku, ewentualnie targetu. Idźcie w to, co może być zaniedługo konkurencją dla Springa. Ale na razie Spring Spring najbardziej dominuje i i w niego po prostu trzeba iść zaraz po skończeniu podstawy. Jak się już przerobi podstawy, to nie ma sensu tracić czasu na technologie, które już powoli się starzeją, tylko jeść to co jest potrzebne. No a druga rzecz. Druga rzecz każdy programista chce wiedzieć nawet backendu. A ja bardzo kocham backend. Chcę widzieć jakieś wyświetlenie swoich wyników. On wie, że ten backend w końcu idzie do tego end usera gdzieś tam. I w trakcie nauki często się pojawiają bardzo fajne rzeczy, jak na przykład timeline albo JSP. Ja to już w ogóle bardzo stare, ale tam gdzie jest bardzo fajnym silnikiem szablonów, czyli on działa na backend i tam w tego htmla wpisuję te rzeczy, które mu wysyłamy z backendu. No i bardzo często i bardzo ładne rzeczy idzie z tym zrobić. Strony, które potem z tego wychodzą potrafią być bardzo atrakcyjne i nawet nie trzeba znać JavaScriptu, ale często często można wtedy wpaść taką pułapkę, że o ok to już umiem jakoś wyświetlić to znam backend, a na front endzie będę mieć tego gifa i to daje.

Bartłomiej Drobczyk: To może dać złudne poczucie pewności, że już się umie gadać z co jest bardzo dużym, bardzo dużym przekłamaniem, ponieważ tam nic nie leci po jej stronie np. nie wystawiamy API na zewnątrz tak naprawdę. Więc jeżeli jeżeli już dochodzimy do momentu, że jesteśmy, czujemy się pewnie na naszym back będzie i chcemy to jakoś wyświetlać użytkownikowi to nie ma sensu. Oprzemy na początku. Teraz jak się uczymy nie ma sensu tracić czasu na live’a nad JSP, tylko po prostu poznać jakiś jakiś framework frontendu, który z mojego doświadczenia powiem, bo ja o sam myślałem, że jest to takie idealne jak jesteś na basenie, że nie musisz poznawać takiej dużej kobyły jak np. Angular. A gdzie Angulara bardzo nawet lubię albo np. chia albo albo. Cokolwiek innego. To jest takie idealne, idealny substytut. Ale prawda jest taka, że jeżeli jeżeli się już, jeżeli się już dobrze porusza na bakier z wykorzystaniem Springa tym bardziej, to poznanie tego frontendu w minimalnym stopniu, żeby umieć tylko to wyświetlić i co jest bardzo ważne w projekcie. Do tego też chcę uderzyć, że projekt to clou. Gdybym miał powiedzieć jedno zdanie, jedno zdanie z tego całego podkastu, które chciałbym Wam przekazać, to jest zróbcie projekt. No i każdy projekt, każdy i każdy projekt. No fajnie, gdybym miał jakieś wyświetlenie, gdyby użytkownik rekruter nie oglądał linii kodu ani w konsoli wyników, tylko dało mu się to jakoś wyświetlić. No i z góry Wam mówię, że poznanie tych podstawowych mechanizmów, żeby to obsłużyć w Angulara, a jak znacie dobrze jak poznacie dobrze Springa to Angular moim zdaniem dla developera ma dużo niższy próg wejścia niż dla innych ludzi.

Bartłomiej Drobczyk: Nie jest wcale dużo bardziej złożone niż poznanie tam. Szczególnie, że takie rzeczy jak html, css to jest dokładnie to samo w tym lifcie JSP musicie tak samo obsłużyć HTMLa i CSS, a różnica tego polega na tym, że jak wysyłamy te dane na frontend, jak je tam obsługujemy, czy to jest JavaScript czy TypeScript w kontekście Angulara. Więc podsumowując te dwa punkty nie traćcie czasu na jakieś satelitarne stare technologie. Po przerobieniu podstaw od razu Spring. Druga rzecz jak już dojdziecie do momentu gdzie chcecie, gdzie chcecie wyświetlać rzeczy użytkownikowi, to nie traćcie czasu na silniki szablonów. One są fajne. Jak będziecie robić sobie inne potem projekty na boku i chcecie coś z boku sobie sami tutaj zrobić, ale jak robicie projekt do CV to to w CV wygląda zupełnie inaczej jeżeli macie napisane Angular time life. I znowu uderzamy do tego, że komercyjnie się praktycznie nie wykorzystuje tych silników szablonów, komercyjnie się wykorzystuje Angular, React whatever i to jest dodatkowy plus. Nawet jak jesteśmy backend owcami, to znajomość tej technologii choćby w kontekście tego, żeby w zespole frontend owcami potem będzie dodatkowym plusem dla rekrutera. Ale to jest kolejny etap i gdybym miał powiedzieć trzeci etap, to właśnie to jest takie podsumowanie. Nie możemy się boksować tylko i wyłącznie na Javie, że musimy poznać tylko Javę, Javę, Java, Javę, Że jak poznamy Javę tudzież implementację zawodową w postaci Springa, to to wystarczy dobrze poznać bardziej bazę danych.

Bartłomiej Drobczyk: Na przykład dobrze jest dobrze poznać technologię DevOps owe. Trochę to jest moim zdaniem bardzo ważne, ale to już. To już jest ostatni etap. Jak już macie projekt i już chcecie wysyłać wysyłać CV, miejcie pewność, że wiecie jak działa Docker. Na przykład mój znajomy w pracy kiedyś powiedział, że jeżeli odpala się coś ciągle tylko u siebie w IT, ale nie uruchomić tego na drukarza, który potrafi bardzo dobrze symulować środowisko produkcyjne to tego tak naprawdę nie przetestowaliśmy. Więc idąc na rozmowy rekrutacyjne warto bardzo warto znać. Oprócz zagadnień technicznych tych klasycznych pytań rekrutacyjnych warto znać ten cały ekosystem dookoła. Tak, warto wiedzieć czym jest obraz Docker, czym jest Docker composer, jak to działa z gubernatorem? Co to są w ogóle powody? Na przykład gdzie w ogóle tego nie będziecie robić, tego nie będziecie w ogóle robić, bo to robią juniorzy albo DevOps, albo jak nie ma developerów to robią starsi programiści. Ale jak macie dalej jak gadacie w zespole to te tematy się pojawiają i sami zobaczycie, że jak będziecie wiedzieć o co chodzi to będziecie się czuć dużo bardziej pewnie. Co to znaczy, że cybernetyka albo open shift skaluje nas horyzontalnie na przykład? To są bardzo fajne rzeczy, które wiecie, to potem się czujecie dużo pewniej. Jeżeli w trakcie rozmowy ktoś wie o co chodzi. Ale tak jak wspomniałem, to już jest etap jak już w sumie jak już chcecie wysyłać CV. Jak już zrobiliście podstawy, macie ten projekt i myślicie ok, to co by jeszcze warto było poznać? No to to było to coś czego ja nie robiłem i. No i to jest chyba odpowiedź, to jest odpowiedź na to pytanie.

Bartek Kalka: Dobra, fajnie. Czyli właśnie wymieniłeś sporo takich technologii, które aktualnie. Teraz, który będzie tego słuchał, to warto w nie iść jak Docker spring. Ale też wspomniałeś o tym Life, że np. już może trochę odejść od niego, a jeszcze ja bym poszedł wstecz, poszedł, trochę się cofnął i zapytał Cię o takie rzeczy. No bo to są frameworki i to są jakieś konkretne technologie. A jeżeli swojej początkowej drogi drodze? Rozumiem, że od razu rzucała się na jakieś konkretne narzędzia jak właśnie Spring? Czy zaczynałeś bardziej?

Bartłomiej Drobczyk: Gdyby to uszeregować, to poznanie tych podstaw jest bardzo ważne na początku. Bardzo ważne jest, by dobrze zrobić sobie jakiś mały projekt konsolowy, który działa na strukturach stricte jałowych. Tak naprawdę gdzie nie ma tam żadnego frameworka, wyjście od podstaw jest absolutnie, absolutnie najważniejsze i to trzeba na samym starcie zawsze powiedzieć, że przerób Cie na początku podstawy to jest to, to jest to. To wymaga trochę podejścia moim zdaniem z pokorą, że widzicie ogłoszenia o pracy w Spring Angular, widzicie tam docker i tak dalej i tak dalej. Ale dopóki nie robicie porządnie tych podstaw, to zawsze będziecie chwytać się za różne narzędzia, ale nie będziecie wiedzieć jak młotek dokładnie działa, np. będziecie znać różne młotki, ale nie będziecie wiedzieć dokładnie czym jest młotek na przykład. Więc jest bardzo ważne, żeby poznać, poznać jak sama Java działa, struktury działają. Mały projekt konsolowy może w zupełności wystarczyć. Nie będą biblioteka np. albo wypożyczalnia czegoś tam. Wiedzieć jak mapy działają, one się bardzo przydają, co jest bardzo ważne. Jak działa Stream API, jak ono działa z panelami, jak ono działa, jak ono działa z interfejsami funkcyjnymi. To są wszystko rzeczy, które pochodzą prosto z samej Javy, a które są namiętnie wykorzystywane, namiętnie wykorzystywane w sparingu. Więc żeby się potem płynnie potem poruszać to warto. Warto bardzo porządnie przerobić podstawy i wyznaczyć sobie taki target, że jeżeli się nie czuje ciągle pewnie czystej Javy, to nie chwytam jeszcze Springa. Jeżeli. Jeżeli mam pokusę, żeby non stop używać pętli na każdej strukturze, a na przykład nie użyć strumieni, gdzie się w praktyce w większości używa strumieni, to to jeszcze nie jest moment, żeby zacząć Springa.

Bartłomiej Drobczyk: Jeżeli się ciągle trzymam tablic, a nie kolekcji, to też to ciągle jest ten moment. Jeżeli moją ulubioną kolekcją jest tylko lista i to najlepiej Array lift i ta implementacja, a na przykład nie używam setu ani nie ma to to też ciągle nie jest ten moment. Te rzeczy potem mają ogromne znaczenie i w sparingu i w Hibernate. Tak, oczywiście o Hibernate nie powiedziałem, ale on też jest tutaj bardzo ważny i JPA i jego implementacja w postaci Hibernate jest bardzo ważna. I tam znajomość setów, znajomość kolekcji, znajomość list ogólnie kolekcji jest bardzo ważna. Wtedy po prostu lepiej rozumiecie jak to wszystko działa pod spodem, tak i przerobienie podstaw jest bardzo ważne. Tak samo Hibernate. No właśnie dobrze jest przynajmniej zrobić znowu jakiś projekt, który działa z czystym database. Moim zdaniem może być nawet Spring JDBC, który po prostu bierze te metadane z z bazy danych i musicie sami je sobie zmapować na obiekt, żebyście wiedzieli jak dokładnie działa ta komunikacja z bazą danych. Że tam nie ma jakieś magii, że Hibernate nie ma. Pluje tak jakoś tak magicznie, że robicie sobie model i to jest mapowanie i tam się jakaś magia dzieje. Jak? Jak robicie porządnie podstawy to odczujecie wszystkie narzędzia. Będziecie widzieć w tym narzędzia a nie czary. I to jest podstawa. Tak? Gdyby to tak uszeregować. Poświęcicie tyle czasu ile potrzebujecie. Nie minimum, tylko tyle, ile potrzebujecie na podstawy. A potem zacznijcie bawić się tymi narzędziami.

Bartek Kalka: Czyli na początku uczymy się wszystkiego takich podstaw, żeby później je wykorzystać w projekcie. I teraz właśnie chciałbym płynnie przejść do tego, co w ogóle co to ma być za projekt? Bo okej, nauczyłem się tych podstaw. Już się stawiam do takiej roli początkującego. Ok, przeszedłem jakiś kurs podstaw Javy, zrobiłem obiektów. Coś tam nawet widziałem, że wykorzystują Hibernate. Ok, no to wszystko myślę, że już jest ok. Mogę to już pójść dalej, tak jak powiedziałeś. No i co teraz? Bo ok, jestem teraz tak naprawdę jednym z wielu osób, które przerabiała jakieś darmowe tutoriale czy płatne tutoriale. No ale dalej nie mam nic konkretnego, co mógłbym pokazać, żeby zaimponować rekruterowi. No i tutaj przechodzę płynnie do tego jaki projekt Twoim zdaniem, albo jaki Ty miałeś projekty, jak się rekrutować do tej firmy, Czy np. miałeś jakieś sytuacje, w której Cię nie przyjęli jak wysłałeś CV, bo mieli za mało projektów lub już tak w kontekście tego co zrobić konkretniej żeby dostać tą pracę? Wiadomo, że nie ma złotego środka, ale są pewnie jakieś dobre rzeczy, które u siebie zauważyłeś może albo u swoich kolegów. Ja też takie rzeczy zauważam u swoich kursantów i ogólnie osobą, którą u osób, którym pomagam. I czy było coś takiego, że np. mógłbyś coś zmienić albo dzięki temu, że byś coś zrobił szybciej to może by Ci się udało szybciej pracę znaleźć.

Bartek Kalka: Jeżeli chodzi o CV i o Twój projekt i ogólnie o taką motywację to nie oszukujmy się możesz zrobić projekt z. Uczysz się Hibernate to zrobić projekt stricte pod Hibernate, ale on pójdzie do kosza i kolejny projekt, który będę robił to też ma pójść do kosza? Tracę motywację. Niby mam coś robić fajnego, a z drugiej strony uczę się tylko takich technologii, które gdzieś tam później i tak możliwe, że nie będą wykorzystywane w pracy. Ja nie wiem co dokładnie użyć powiedzieć wcześniej o tym, żeby się dowiedzieć od jakiegoś starszego developera czy np. ja polecam skorzystać z ofert pracy, żeby zobaczyć co tam dokładnie wymagają. I też sporządziłem taki taki przepis na to jak zrobić projekt, który będzie Cię jarał i też będzie spełniał wszystkie normy rynkowe aktualne, więc jeżeli Cię to interesuje to podlinkuję to pod tym podcastem. Oczywiście też podlinkuję Java Start, chociaż chyba tutaj nie trzeba nic linkować. Myślę, że to jest dosyć znany, dosyć znany ten portal dla początkujących. No ale wracając, czyli co byś doradzał stricte do projektu? Jaki temat np. wybrać? Czy w Twoim przypadku ma jakiś problem, żeby określić taki temat projektu? Czy w ogóle bez projektu Cię przyjęli? Jak to było u Ciebie?

Bartłomiej Drobczyk: Jasne, jasne, to jest bardzo spoko pytanie. Clue moim zdaniem polega na tym, że właśnie jeżeli. Jeżeli nie macie też na początku zdrowe podejście, jeżeli nie macie takiego podejścia przerobię, przerobię, wysyłam CV, jazda, jazda, praca, praca. Tylko mówicie OK, to wymaga czasu podchodzić do tego z pokorą i wiecie, że pewne rzeczy wymagają czasu. Trudne rzeczy wymagają czasu i możecie wpaść taką pułapkę to jeszcze nie teraz, to jeszcze to, to, jeszcze tamto, umiem to, ale kurde jeszcze to, to jeszcze to. I tak można tkwić w tym cały czas i czas zaczyna lecieć, to wtedy idziemy w zupełnie drugą stronę i pytałem tu się pojawia w tym momencie ok, to jak określić czy ja jestem gotowy, czy jestem gotowy już iść do tej pracy? No i moim zdaniem projekt jest dokładnie właśnie odpowiedzią na to pytanie, ponieważ jak robicie różne kursy, jak się z kimkolwiek uczycie, to zawsze mniej lub bardziej jesteście prowadzeni za rączkę. Tam jest gotowe rozwiązanie albo np. jest zadanie. Możecie podejrzeć podpowiedź, możecie zobaczyć rozwiązanie i zawsze ktoś Was przez to przeprowadzi. Jasne, że to poznacie. Jasne, że zrozumieć jak to działa, ale macie w głębi serca poczucie, że nie zrobiliście. I najlepsze, najlepsze co możecie w takim momencie zrobić, żeby zweryfikować, czy naprawdę jeszcze potrzebujecie czasu czy nie, to zrobić własny projekt od początku do końca. Gdzie zakładacie prościutki projekt w Inteligo? Nie ma tam nic, nic, nic, nic i po prostu jedziecie od początku do końca własny projekt. Jeżeli uda się Wam go zrobić i zaraz głębiej wejdę w zagadnienie projektowe, ale jeżeli uda się Wam go zrobić i będzie działać i sami będziecie widzieć, że to działa i to sami napisaliście i nikt wam nie da złotych recept, to to jest najlepsza odpowiedź, że jesteście gotowi.

Bartłomiej Drobczyk: Działa, Zrobiliście. To jest podstawa, na której możecie powiedzieć rekruterowi o zgodności sami ze sobą. I to jest bardzo ważne. To, czy będziecie pewni na rozmowie rekrutacyjnej zależy głównie od tego, czy wy sami w to wierzycie. Projekt moim zdaniem da Wam pewność, że naprawdę umiecie coś. Nie, że zrobiliście kurs, można przerobić kurs i nic nie umiecie. Ale jeżeli robicie kurs, kursy, kurs whatever, zrobicie projekt i będziecie z niego zadowoleni, to da Wam bardzo poczucie pewności siebie, którą widać na rozmowach o pracę. Więc to jest odpowiedź na to pytanie czy jesteście gotowi, czy nie na sam projekt? Tu nie ma złotych odpowiedzi. Najlepszy możliwy projekt to jest taki, który wam rozwiązuje jakiś wasz problem. Jeżeli macie cokolwiek, co możecie zautomatyzować, przedstawić w jakiejś formie graficznej, coś, coś wyliczać, upraszczać cokolwiek z Waszego życia prywatnego, to teraz Wam po prostu przyda się. 2. Będziecie bardziej zaangażowani w to. To jest to, o czym wielokrotnie nawet Bartek sam już mówił, że jak macie projekt, który was jara, to macie takiego dodatkowego dodatkowego kopa, żeby żeby tam robić, żeby żeby, żeby się w niego angażować i rezultaty nie będą tylko takie, że potrzebuje projekt do CV, ale rezultaty Wam się w życie po prostu przydadzą. Ja sam gdzieś uczyłem różnych ludzi, różnych rzeczy młodszych od siebie w gimnazjum, liceum, czasami na studiach, z fizyką, z angielskim. No i często sobie zapisywałem różne informacje na temat tych moich zajęć i klubu. Takie, że albo je zapisałem w telefonie, albo w zeszycie, one mi się często gubiły, gubiłem się, kontakty do tych osób, moich uczniów itd.

Bartłomiej Drobczyk: Itd. I to był w tym duży chaos. Dosyć. Jak ja sam sobie zadałem pytanie o to jaki projekt sam chciałem dla siebie zrobić, to stwierdziłem dobra, spróbuję napisać taką platformę dla nauczyciela, który może sobie dodać ucznia i on będzie graficznie ładnie się prezentował na jakiś dashboard, gdzie da się wejść w tego ucznia, pojawi się inny panel, gdzie są zadania np. ostatnie zadanie domowe, o czym robiliśmy informację, z czym, z czym uczeń może mieć problem, co może chcieć nadrobić informacje kontaktowe. Taki projekt mi dał ogromną satysfakcję, bo zrobił mi jakąś robotę faktycznie dla mnie samego, więc to było bardzo przydatne. A druga rzecz. No właśnie dało to poczucie pewności. Jak sam potem już rozmawiałem na rozmowach rekrutacyjnych, a miałem też rozmowę jeszcze przed projektem, po projekcie, to kiedy? Kiedy? Kiedy mnie np. pytano dlaczego chcesz podjąć pracę? Itd. Itd. Jak już odpowiedziałem te rzeczy, które powiedziałem na początku, to powiedziałem, że zrobiłem projekt i czuję się już gotowy. Dla mnie to jest podstawa, że umiem coś zrobić. W Javie mówiłem wprost, że nawet nie studia, nie kursy i to mi nie dało poczucia pewności, tylko projekt dał poczucie pewności. No i wielokrotnie miałem wrażenie, że rekruterzy na to zwracali uwagę, że oni doskonale wiedzą, że ludzie po studiach często nic nie mają. Tak naprawdę nie z ich własnej winy, zaznaczmy, nie z ich własnej winy, tylko są mniej lub bardziej ofiarami często systemu takiego, a nie innego. I oni to wiedzą po prostu. I. Jak to np. wiedzą, to jednocześnie wiedzą, że jak ktoś ma projekt to musiał go raczej sam zrobić, albo da się bardzo łatwo zweryfikować, że sam go zrobił. Więc jeżeli macie projekt tu, to jest dużo bardziej zero jedynkowa kwestia.

Bartłomiej Drobczyk: Rekruter potrafi dużo łatwiej określić czy umiecie czy nie na podstawie projektu, na podstawie ukończonych studiów. Rekruter tego nie umiał określić, bo okej, macie dyplom, ale on nie wie, czy przeszliście przez te studia nic nie robiąc, Czy przeszliście naprawdę, naprawdę się ucząc, zdając, będąc ambitnym. I takie tak skończycie te studia. Z jego punktu widzenia on tego nie ma zweryfikować w ten sposób. Ale projekt zero jedynkowo pokazuje czy wy coś umiecie? A jak jeszcze to będzie projekt, który was jara, który rozwiązuje wasz realny problem, to przede wszystkim pokażecie, że umiecie użyć tych technologii, które są w pracy wymagane do własnych rzeczy. Pokażecie, że Was to jara po prostu, że rzeczy, które macie zrobione dla siebie zostały zrobione z wykorzystaniem technologii, których rekruter wymaga w pracy. I jeżeli ktoś widzi kogoś, kogo to jara, to jest kolejny plus. To takie bycie autentycznym widać często właśnie w projektach. I rekruterzy na to naprawdę zwracają uwagę. Czy Tobie się to po prostu podoba, czy do tej branży chcesz wejść, bo po prostu gonisz za hajsem, czy Ci się to podoba, czy nie. I to jest dodatkowy plus. Jak chcesz mieć duże pieniądze, jesteś dobry, to też dostaniesz pracę. Oczywiście. Ale ja mówię o kolejnych plusach. A na samym początku jak szukasz pracy, to im więcej plusów zyskasz tym lepiej. No więc projekt tutaj jest absolutną podstawą. No i co? I gdybym jeszcze, jeszcze miał powiedzieć czegoś, czego ja nie robiłem, co się łączy z poprzednim pytaniem i z tym to uwaga! Wydaje mi się, że w tym momencie już przejdę do innej kwestii. Testy, testy, testy, testy, testy, jeszcze raz testy.

Bartek Kalka: Poczekaj jeszcze na sekundę zanim przejdziemy do testów, bo to jest oczywiście bardzo ważne i też to uważam za coś, co trzeba robić. Ale jeszcze chciałbym Cię zapytać o to, że ok. No dobra, mam projekt, zrobiłem ten projekt, ja posłuchałem tego podcastu. Minęło już 40 minut. Ok, teraz po tym podcaście siadam i robię ten projekt, który będzie miarą. Robię, robię, robię, robię, zrobiłem, wpisałem do CB. Technologie się zgadzają, wszystko się zgadza, wysyłam to CV i okazuje się, że np. firma je. Bogu dzięki dała mi feedback, bo często jest tak, że w ogóle się nie dostaje żadnej odpowiedzi. Ale firma firma dała mi feedback, że Twój projekt jest źle napisany albo brakuje w nim dobrych praktyk. Jak tego uniknąć jeżeli chodzi o tworzenie swoich projektów? Czy wystarczy? Ja tutaj raczej bym radził znaleźć kogoś, kto by faktycznie zajrzał do tego kodu, ale jak wiemy takich mentorów gdzieś tam w internecie jest skończona ilość, no bo nie każdy chce też gdzieś tam po pracy się udzielać i może być ciężko z tym, żeby w ogóle dostać jakiś feedback co do tego co stworzyliśmy, no bo intencje są dobre, ale finalnie wychodzi na to, że kopaliśmy i projekt jest do wyrzucenia. Czy miałeś może styczność z tym, że np. w Twoim projekcie było coś co można by było napisać lepiej, a w ogóle o tym nie wiedziałeś i dopiero się dowiedziałem po feedbacku od kogoś?

Bartłomiej Drobczyk: Tak myślę. Może nie po feedbacku od kogoś, ale teraz nawet jak ogląda mój projekt, to teraz widzę ile rzeczy dałoby się lepiej napisać. Więc feedback na pewno jest i sami zobaczycie Jak będziecie mieć pracę i wrócicie do tego projektu za rok pracy komercyjnej to zobaczycie ile rzeczy moglibyście poprawić. I to będzie dla Was bardzo dobra wiadomość, bo to będzie znaczyło, że się po prostu sami dużo nauczyliście w międzyczasie. Ale odpowiadając stricte na to pytanie no właśnie właśnie tu nie ma znowu złotych odpowiedzi. Albo albo udzielacie się na forach internetowych jest naprawdę bardzo dużo, naprawdę bardzo dużo. Jak jak powiedziałeś Bartek, liczba mentorów jest skończona, ale jeżeli na przykład dołączycie do różnych forów. Ja np. bardzo polecam fora, fora przede wszystkim projektowe od Bartka, ono też bardzo fajne, ale polecam np. Przemka Borkowskiego, bo czas nagroda jest cudowna. Mnie polecam, polecam. Społeczność międzynarodową amigowców też jest bardzo fajna. Też bardzo fajna rzecz. Bardzo fajne materiały od Nelsona się pojawiają tam i jeżeli się na samym tylko Facebooku kręcicie wokół tych grup i macie ten projekt na przykład i dostaliście feedback, że jest kiepsko. Pomijając fakt, że jeżeli feedback polega na tym, że jest kiepsko, nie ma dobrych praktyk, ale nikt wam nie mówi co jest kiepsko, to to jest po prostu słaby feedback nie jest konstruktywny. Ale jeżeli dostajecie taki albo konstruktywne i sami nie wiecie co by się tam dało poprawić, to zwykłe fora internetowe, gdzie po prostu pytacie Okej, mam taki projekt, czy ktokolwiek mógłby na niego rzucić okiem, to prędzej czy później zawsze jakaś dobra dusza się znajdzie, która mniej lub bardziej konstruktywnie, ale Wam wskaże, co by się dało zrobić, co by się dało poprawić. Więc to jest taka naj naj, najbardziej low opcja. Najlepsza opcja to mieć jakiegokolwiek mentora, kogokolwiek do kogo możecie się odezwać i to jest to jest best option. Alternatywnie właśnie zostają właśnie fora i. No i szukanie gdzieś na własną rękę. Tak to wygląda niestety.

Bartek Kalka: Myślę, że to daje duży insight osobom, które gdzieś tam będą szukały feedbacku. Super! Dobra, to jeżeli chodzi o ten projekt to chciałam zacząć mówić o testach.

Bartłomiej Drobczyk: O testowaniu. To jest test, a sam jak już teraz pracuję komercyjnie, widzę jak testy są szalenie, szalenie, zaznaczam to szalenie ważne i rekruterzy na pewno to też widzą. Dzień dobry, przynajmniej rekruterzy tych dobrych firm. Raz słyszałem takie fajne powiedzenie, że dobry developer pisze dobry kod, wybitny developer, pisze wybitny kod, ale profesjonalny developer pisze testy i to jest absolutnie. I to jest absolutna prawda. Przede wszystkim jeżeli. Jeżeli macie własny projekt i myślicie co by się dało w nim poprawić, albo jakie to są corner case i myślicie nad tym tylko z punktu widzenia aplikacji, to to już jest marnowanie potencjału, ponieważ od tego są właśnie testy. Mówię głównie to jednostkowych, które badają tam pojedyncze unity, pojedyncze jednostki waszego kodu, ponieważ w nich możecie cudownie sprawdzić wszystkie corner case waszego projektu. I ja rozumiem, że jak ktoś już wie czym są testy, jak one działają, to na początku może mu się to wydawać, że to jest trochę sztuka dla sztuki, że ja sam ten kod napisałem. Ja wiem jak on działa. I okej, rozumiem, że mogę pokryć corner case, to mogę sobie to wyłapać, no ale ja tak średnio czuję. Po co mi są te testy. No i w moim projekcie faktycznie też tak się trochę czułem. Przyznam szczerze, że na początku myślałem no okej, napiszę testy, bo ja wiem, że są ważne. Ja wiem, że one pokrywają wszystkie Corner case, ale to te interfejsy, które sam już wyłapałem. Ale musicie mieć jedną bardzo ważną świadomość na przyszłość. Te dwie w sumie dwie świadomości, dwie świadomość dwóch rzeczy, że tak powiem.

Bartłomiej Drobczyk: Pierwsza rzecz jest taka, że jak już będziecie pracować w pracy, w projekcie i będziecie pisać komercyjny kod, który potem idzie na produkcję, to testy z waszego punktu widzenia są waszą jedyną gwarancją, że przetestowali się ten kod. On jest sprawdzony i on dla was jest tak jak projekt na samym początku. To jest podstawą takiej pewności, że OK. Jesteście tego pewni? Tak samo testy jak piszecie komercyjnie dla was są podstawą tego, że przetestowałem to na tyle na ile umiałem. Na tyle na ile miałem wymagania biznesowe to przetestowałem. Działa według testów, więc to mi daje ogromne poczucie pewności, że że mój kod powinien być dobry. I pisząc same testy zobaczycie, że będziecie wyłapywać corner, o których nawet nie pomyśleliście pisząc sam kod. To jest bardzo ważna rzecz. Druga bardzo ważna rzecz. Jak pewnie już znacie Gita, pracę w zespole i tak dalej, nawet jak macie różne branże, a jak już pracujecie na jednej branży, to już w ogóle. Za każdym razem jak się morduje z kimkolwiek wasz branch w innym brandem na przykład, to odpalcie testy, żeby zobaczyć, czy w trakcie zmian jak się dwie wersje Waszego kodu kierowały w jedną, to czy coś się nie wysypało w międzyczasie. To jest bardzo ważne, ponieważ wtedy testy potrafią wyłapać ewentualne zmiany. Czy coś poszło nie tak. Testy właśnie dają Wam. Jeżeli Wasz kod jest dobrze napisany, a dwa jak pracujecie w zespole to każdy patrzy potem na testy czy testy ciągle świecą się na zielono.

Bartłomiej Drobczyk: I nie ma nic gorszego niż np. mordowanie się i potem nie takiego mechanizmu, który wam odpowie na pytanie czy wszystko ciągle działa i tak nie przetestowany kod. Potem może pójść na produkcję i robić różne bardzo dziwne rzeczy, bo coś się zmieniło w trakcie łączenia się waszego kodu. Więc to jest bardzo ważne. I może ostatnia rzecz w kontekście testów, czyli Test Driven Development, który ma wielu zwolenników i wielu przeciwników w praktyce. Ale może uda mi się go trochę odczarować, ponieważ ja sam zadawałem sobie pytanie Jeżeli Test Driven Development zakłada, że zanim ja napiszę kod biznesowy, to ja mam napisać kod, który będzie testować ten kod, który jeszcze nie istnieje? I to mi się wydawało na początku faktycznie bez sensu. Chyba każdemu się wydaje bez sensu. Na początku nawet się to wydaje niemożliwe, że jak ja mam testować coś, co nie istnieje? Ale to trzeba odwrócić paradygmat myślenia moim zdaniem, ponieważ jeżeli jeżeli piszecie coś biznesowo i nawet w waszych projektach wasz biznes to jest wasz projekt, wasze wymagania biznesowe pochodzą od was samych. Więc jeżeli wiecie co ma robić, co ma być na wejściu, co ma być na wyjściu. Wystarczą Wam te dwie informacje co wchodzi do Waszego kodu, co wychodzi z waszego kodu. To macie wszystko, żeby już napisać test jednostkowy do kodu, który jeszcze nie istnieje. Czyli robicie test. Wejście do niego określa, czego się spodziewać na wyjściu i na przykład, jeśli będzie świecić ciągle na czerwono, że używacie klasy, która nie istnieje jeszcze, ale już już macie np.

Bartłomiej Drobczyk: oferty zrobione, już możecie sprawdzić sobie ten kod. I na początku kółko świeci na czerwono, bo faktycznie testuje. Teraz się świeci na czerwono, bo testuję coś co nie istnieje jeszcze. Ok, ale mam test. Mając test, wiedząc czego się spodziewam na wyjściu zacznę sobie pisać mój kod czy to jest w projekcie czy to jest już w pracy i to jest bardzo ważne w pracy. Jak już napiszecie wasz kod to mówię OK, moim zdaniem działa. A teraz zobaczmy czy test przechodzi i już widzicie w tym momencie sami sobie na samym początku zapomnieliście mechanizm, który pozwoli Wam weryfikować czy się wszystko zgadza. I niestety często się pojawia, że to jednak ciągle nie przechodzi. I sami sobie wtedy dziękuję, że napisaliście test na początku, bo już na bardzo wczesnym etapie potraficie wyłapać, że coś Wam umknęło, gdzieś jakiegoś nulla nie obsłuży, gdzieś jakiegoś warunku nie wprowadziliście i teraz to na samym początku wyłapuje. A potem jak już się wymagania zmieniają, zmieniają, zmieniają i ten gotowy kod ciągle refaktoryzacji. Wiecie to za każdym razem test wam powie czy w trakcie zmian coś poszło nie tak. Więc jeżeli się tego nauczycie już na etapie projektu to sami sobie podziękujcie w pierwszej pracy że że się nauczyli się testów. O testach się mało mówi i to moim zdaniem jest ogromny błąd na początku, że jak ktoś mówi jak zacząć, jak się uczyć programowania, jak się uczyć być programistą, to wszyscy mówią o technologiach, o podstawach, ale o testach się mało mówi i to jest ogromny błąd.

Bartłomiej Drobczyk: Mój mentor u mnie w pracy, bo mam szczęście posiadać własnego mentora, powiedział, że on jak zaczynał uczyć, on wcale nie zaczynał go od nauki maina. Jak się w main odpala kod tylko jak się odpala z testu kod. Kolejne, kolejne, kolejne benefity testów są takie, że możecie testować fragmenty kodu nie uruchamiając całego systemu, co jest bardzo ważne np. w architekturze mikro serwisowej. Jeżeli Wasz serwis pobiera dane z zewnętrznego serwisu i wtedy dopiero zaczyna działać, to jak ktoś testuje to za każdym razem musielibyście go uruchamiać. Tak, a jeżeli macie test to test uruchomi Wam ten kod. Nie, nie triggery w ciągle komunikacji zewnętrznej. I może kontynuując temat testów jeżeli. Jeżeli w tym momencie takie rzeczy jak architektura mikro serwisowa może mówić o czym ten gość w ogóle mówi albo coś takiego, to to jest kolejna rzecz, którą gdzieś warto poznać to to o czym mówiłem Docker q Burnett te wszystkie tematy warto je po projekcie, a przed wysłaniem CV poznać co to w ogóle jest, o co w tym chodzi. Nie musicie pisać mikro serwisów, ale coraz więcej projektów aktualnie jest. Taka jest w doborze. Mikro serwisy coraz częściej się pojawiają i warto wiedzieć jak one działają, co to w ogóle jest, co to jest monolit, co to mikro serwis, bo to się spotyka w projektach i to jest kolejna wiedza, którą jeżeli będziecie mieć to oszczędzisz sobie to w pracy i na rozmowie rekrutacyjnej. Jeżeli rekruter zobaczy, że kandydat to nie tylko kandydat, który wie czym jest interfejs, czym jest dziedziczenie i polimorfizm, ale zna rzeczy, które się w codziennej pracy pojawiają, tak w codziennej pracy takie rzeczy się pojawiają i o nich się mówi.

Bartłomiej Drobczyk: To z punktu widzenia rekrutera to jest oszczędność czasu. Firma chce maksymalnie zoptymalizować czas, który musi na Was poświęcić, żeby żeby was wdrożyć do pracy. Im więcej wy zrobicie to na starcie, tym większy plus potem się przeskakuje w oczach rekrutera na waszą korzyść. To jest moja tutaj rada. Testy, testy, testy są bardzo ważne. Może to jest anegdotą inną. Że rekrutacja do jednej firmy, która poszła dobrze, ale pytałem w czym piszą testy albo jak testy wyglądają to usłyszałem, że testy, testy, testy jednostkowe, integracyjne. No kiedyś kiedyś próbowaliśmy testów, ale stwierdziliśmy, że testy u nas nie działają, że testy po prostu nie są dla nas i to jest czerwona lampka. Jeżeli kiedykolwiek usłyszycie taki tekst, to to jest bardzo czerwona lampka i to to jest komunikat, w którym powinniście sobie naprawdę trzy razy zadać pytanie czy na pewno chcecie tam pracować? Bo to pokazuje, że że nie ma czegoś takiego jak projekt zbyt złożony, żeby tam były, albo żeby tam testy nie działały. To znaczy, że nikt ich nigdy nie pisał. Jak ktoś nagle chciał zacząć pisać, to było po prostu ogromny bałagan. Więc znowu, jeżeli na przykład rekruter mówi, że testy próbowaliśmy testów, ale one są, ale nasz projekt zbyt złożony, to to jest dla was też czerwona lampka, żebyście sobie zadali pytanie, czy aby na pewno chcecie tam pracować?

Bartek Kalka: No i super, super. Zgadzam się. Odpalanie zielonym przyciskiem maina z IntelliJ IDEA, a napisanie testu otwiera oczy na pewno. I właśnie to co powiedziałeś jest dosyć kluczowe jeżeli chodzi o poznanie technologii jak docker czy tam maven git. Dużo wymieniłaś takich technologii, które można się nauczyć w jakimś stopniu z tutoriali, gdzieś tam z jakichś na youtube czy z kursów. Ewentualnie ktoś kto pracuje powie Ci, że naucz się tego. I to jest swego rodzaju tajemna wiedza. Ale załóżmy się załóżmy, że jest kilka albo kilkanaście osób, które właśnie potrafią. Te wszystkie rzeczy są na tym samym poziomie. Ok, ale one dalej nie wiedzą tak jak teraz powiedzieć o tych testach, że dopiero w pracy poznałeś tę wartość, że to jest faktycznie to? Może ktoś myśli, że faktycznie umie już napisać jakieś testy i to wystarczy, ale może być jeszcze np. jakaś inna rzecz, jak np. wykorzystanie Mavena w pracy jak to dokładnie wygląda, a nie jak tutoriale jak wykonać jakiś prosty projekt. No i pytanie czy jest jakaś taka możliwość, żeby oprócz tego, że pytamy się tego mentora czy osoby, która gdzieś tam pracuje, żeby się dowiedzieć właśnie żeby być o ten jeden krok od tych kilkunastu osób, które są takie same jak my, Czy masz jeszcze jakieś konkretne rady, no bo z tego co ja wiem, z tego co się orientuję, to jest bardzo dużo osób na jedno stanowisko pracy i to wynika na pewno z tego, że bardzo dużo osób myśli, że już może iść na Java Developera, a tutaj chodzi o to, że one nie są jeszcze gotowe, przerobimy kilka podstaw jak interfejsy itd itd. Ale powiedzmy, że są super wykończone osoby, które nie mogą znaleźć pracy bo są takie sytuacje. Co jeszcze mogą zrobić żeby żeby im się to udało? Żeby dostali tą pracę? Wysyłają 10 CV różnych. Ja też na ten temat robię webinary jak tutaj to zoptymalizować itd. Itd. Ale z Twojej perspektywy czy widzisz w ogóle taki problem, że jest ktoś dobry, ale nie może znaleźć pracy? Czy jest coś takiego Twoim zdaniem? A jeżeli jest to gdzie szukać materiałów, żeby się dowiedzieć jak to w praktyce wygląda? Czy raczej raczej to jest niemożliwe?

Bartłomiej Drobczyk: Przede wszystkim na pewno wydaje mi się, że jak ktoś jest dobry w stronę ma te projekty, to uważam, że to jest kwestia czasu jak jak znajdzie pracę w sensie trzeba wysyłać po prostu CV do skutku. Skutek przychodzi zawsze. Jeżeli. Jeżeli macie feedback i działać w pętli sprzężenia zwrotnego i wiecie, że na wejściu wasz projekt jest już dobry, że go przetestowali przez X rozmów rekrutacyjnych, rekrutacyjnych, przez X ekspertyz różnych osób, to jest po prostu kwestia czasu, jak ten jak pracę znajdziecie. To jest moje pierwsze może uspokojenie, żeby nikt nie wpadał w takie myślenie. Ok, to nie dla mnie, bo już tyle, tyle rozmów przeszło. Projekt jest dobry, ale ciągle nic nie idzie. Więc to jest pierwsza rzecz, o której chcę powiedzieć. To naprawdę wtedy jest kwestia czasu. Po prostu nie można się zrażać i do skutku próbować i skutek w końcu przyjdzie. Jeżeli macie, jeżeli macie pewność, że te kroki są dobrze zrobione, a w trakcie projektu co by dało się jeszcze zrobić? Maven Tak. Budowanie projektu to jest moim zdaniem to, co można jeszcze zrobić jak się już masz gotowy projekt. Wiele osób się zatrzymuje na etapie mam projekt i tyle. Ale gdzie go mam? W IntelliJ Jeju albo web stornie gdzie mamy frontend i backend. Ja go jako odpalam.

Bartłomiej Drobczyk: No właśnie z IntelliJ IDEA to kolejny krok, który można zrobić. To jest po prostu zasymulować tę produkcję, czyli znajomość właśnie Jenkinsa. Znajomość na czym polega automatyzacja? Ciągłe ciągła integracja, ciągłe testowanie, jak to jest wdrażane potem na na np. na gubernatorstwa albo albo, albo na open shift. Nie musicie mieć totalnie open shift. Wystarczy, że Jenkins Jenkins wam zbuduje obraz Dockera. Czy będziecie sobie lokalnie uruchamiać go na Dockera? Ale jak będziecie mieć Dockera to potem już pstryknięcie żeby go uruchomić na na trasie albo na open shift. Wydaje mi się, że wiele osób się zatrzymuje po prostu na IDE i nie idzie dalej na projekt. Jak jest skończony to musi w końcu wyjść z tego. Ide więc poznanie Dockera, poznanie, poznanie Jenkinsa albo git hub actions albo dowolnego innego systemu, który automatyzuje odpalanie właśnie testów. I jak testy przechodzę do budowania aplikacji. To jest na pewno ogromny, ogromny plus też z punktu widzenia pracodawcy, że znacie też technologie DevOps owe stricte, że w ogóle wiecie kim jest DevOps. Ja się przyznam na początku nie wiedziałem, że to jest IT i tyle. Ale dopiero jak poznałem Dockera, Jenkinsa, Gubernatora. Nie potrafię sobie odpowiedzieć co robi ten cache DevOps i że często ich po prostu nie ma. Tak często są starsi programiści i wracam do tego o czym mówiłem.

Bartłomiej Drobczyk: Jeżeli będziecie znać te wszystkie rzeczy jak Docker, docker, compo czy dalej systemy budowania RSS to na pewno duży plus. I tak jak w tym waszym projekcie napiszecie, że on jest uruchomiony na dockera albo np. docker composer gdzie powstaje baza danych, potem wstaje backend, potem zostaje frontend to to jest już bardzo dobra symulacja środowiska produkcyjnego. Gdybyście nawet chcieli to wtedy możecie, możecie nawet, nawet nawet odpalić to w chmurze, wysłać tego dockera, on się tam uruchomi i nawet możecie wtedy linka posłać rekruterowi do do waszego projektu i wtedy będzie działać. Ale też jest bardzo bardzo inne. Moim zdaniem jeżeli ktoś już powstały to na docker pójdzie. To już jest bardzo wysoki poziom, bardzo wysoki poziom i mało osób w ogóle to robi. Na starcie mało w ogóle osób wie czym jest Docker, jak on działa i jak bardzo upraszcza życie deweloperom, jak bardzo, jak bardzo jest przydatny na co dzień. Wydaje mi się, że to jest kolejny krok, który jak ktoś jest takiej sytuacji, że ma ten projekt, ale się odbija, a np. tego nie ma, to jak najbardziej może to iść i to na pewno zaprocentuje w oczach rekruterów. To po prostu musi w końcu kiedyś zaprocentować.

Bartek Kalka: Mega mega dzięki za te wszystkie rzeczy, które mogliśmy się dowiedzieć od Ciebie. Ja bym powoli kończył na pewno tą część, żeby też nie przedłużać jakoś do 2 godzin, bo można gadać i gadać. Bardzo fajnie mówisz, naprawdę cieszę się, że mogłem Cię poznać nie dopiero w tym podcaście, ale już wcześniej gdzieś tam mieliśmy styczność z Bartkiem i mam nadzieję, że gdzieś w Twojej pracy, gdzieś tam te początki, które teraz masz i wszystkim osobom, które tego słuchałeś dzisiaj pomogliśmy w jakiś sposób tym, jak Bartek opowiedział o tym czego brakuje i tak naprawdę tak naprawdę tyle. Ja bym Ci chciał bardzo podziękować.

Bartłomiej Drobczyk: A ja dzięki za zaproszenie. Bardzo miło było być tu gościem. No i życzę wszystkim powodzenia i nie zrażajcie się, po prostu się nie zrażajcie. To jest jak z chodzeniem na randki jak pierwsza randka może nie wyjdzie, druga nie wyjdzie, ale w końcu 20 wyjdzie.

Bartek Kalka: Dokładnie. Ale ważne, żeby dostawać feedback po tych randkach.

Bartłomiej Drobczyk: O właśnie, o właśnie, dzięki.

Bartek Kalka: Dzięki wielkie.

Podobne Posty

0 0 votes
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments

© 2024 JavaReady.pl Bartek Kalka | Opinie | Oferta Szkoleń | Kontakt