Java Praca Opinia

0

Witam

Mam pytanie czy mam jakie kolwiek szanse na znalezienie pracy jako Junior albo stażu oczywiscie w java. Powiem tylko ze mam dyplom inż. z informatyki.Od 3 miesiecy szukam i jest ciężko. Powiedzcie co o tym sądzicie.
Znam podstawy springa i hibernate.
Poniżej portfolio

https://github.com/bszpunar

Ps. Patrzcie na Chess to najwiekszy projekt.

4

Wchodzę w to chess, a tam wypchnięty jar do repo, w kodzie nazwy metod raz po polsku raz po angielsku, kod którego praktycznie jako osoba trzecia nie da się zrozumieć. To wystarczy, żeby z całą pewnością stwierdzić, że takiej szansy na tą chwile nie masz.

Z drugiej strony jak napisałeś coś tak rozległego to sądzę, że myśleć chyba potrafisz ale jesteś strasznym bałaganiarzem jeśli chodzi o kod. Zainteresuj się dobrymi praktykami i zagadnieniami clean code. Polecam literaturę Roberta C. Martina.

2

Napisałeś klasę która ma ponad 5k linijek, co robi ten "-" w linii 5292?
Niestety tak jak @anckor napisał....
screenshot-20230521001455.png

3

To też jest dobre...
screenshot-20230521001947.png

2

https://github.com/bszpunar/Chess/blob/main/JustPlayChess/src/main/java/Shapes/Pawn.java

Moim zdaniem jesteś wybitnym programistą bo napisałeś kilkadziesiąt tysięcy linii kodu i się w nim odnajdujesz - chyba (tak mi się przynajmniej wydaje skoro to napisałeś).
Tylko po prostu nie miałeś nikogo kto by Ci powiedział, że tak kodu się nie pisze. Wyobraź sobie, że nad tym projektem pracuje 10 osób i każdy wrzuca po 5k linii? Jak w tym się połapać?

Zrób sobie ćwiczenie i zrefaktoruj ten kod. Podziel klasy na mniejsze. Z jednej dużej metody, zrób kilkadziesiąt innych. Na pewno jest wiele kodu który jest powtarzalny.
Popraw też umiejętność korzystania z gita.

Zajrzałem na chwile do repo REST API - nie ma tam zbyt dużo kodu, jest za to dużo adnotacji.
Zacznij od podszkolenia javy, a potem dopiero zajmij się webówką.

ps masz już dyplom czyli ukończyłeś studia, a co ze stażem? Musiałeś jakiś robić w trakcie studiów. Nie zostałeś w firmie po skończeniu stażu?

1

Masz pełno duplikacji kodu, już nie wnikam, jak go poprawić, bo nie piszę nawet w Javie. Ale zobacz, co masz w ifach - dwa niby inne warunki, a w środku to samo albo prawie to samo (nawet wziąłem taką parę warunków i zrobiłem na nich diffa i wyszło, że dokładnie to samo się odpala w środku).

Jest taka zasada DRY(don't repeat yourself). Czyli dążenie do tego, żeby nie duplikować rzeczy niepotrzebnie.

Powiem tylko ze mam dyplom inż. z informatyki

Nie takiego kodu oczekiwałbym od absolwenta studiów. W sensie studia, przynajmniej w teorii, powinny uczyć pewnej dyscypliny w pisaniu i działaniu. A tymczasem kod wygląda jak wolna amerykanka, gdzie Ctrl+C, Ctrl+V już nawet bezmyślnie wciskasz. Tak jakby nie tyle brakowało by ci umiejętności kodzenia (nie chcę tego oceniać, bo jak mówię - nie piszę w Javie), tylko dyscypliny w tym kodzeniu. Ew. przespałeś zajęcia z programowania i jedyne, czego się nauczyłeś, to ify.

Od 3 miesiecy szukam i jest ciężko

Może się cofnij i zacznij robić mniejsze projekty, ale bardziej się przykładaj do tego, żeby kod był sensowny, bo taki kod może co najwyżej odstraszyć. Może potrzeba ci jakichś inspiracji, jak pisać ładniejszy kod, albo lepszej znajomości podstawowych klocków i praktyk pisania kodu.

No i masz bardzo mało commitów gita jak na tak duży kod. Lepiej commitować często i mniejsze zmiany (albo bardziej konkretne zmiany), bo dopiero wtedy można wykorzystać Gita w pełni.

1

Funkcja checkCollision() to jakiś żart.

0

Nie dodam tu nic odkrywczego, ilość tego kodu spokojnie można zmniejszyć o połowę, a podejrzewam że o wiele więcej.

Tak jak @Riddle: wspomniał, ta funkcja to jakaś abominacja, a takich miejsc jest na pewno więcej.
Klasa Pawn 5k linijek, w tylu to można prosty system operacyjny napisać.

Najpierw totalny refaktor a później wysyłaj CV'ki.

0

Zamiast tych szachów i innych mniejszych projektów zrób jakiś jeden, większy z użyciem Springa, Hibernata i Rest API, bo takie technologie są najczęściej używane w Javie. Tylko niech to nie będzie zwykły crud tylko coś ciekawszego np. apka do rezerwacji lotów czy coś w tym stylu. Poczytaj o dobrych praktych kodownia (clean code, clean architecture, SOLID itp.), bo patrząc na twój kod jeszcze masz z tym problem. Jeśli jeszcze nie ogłaszałeś się na różnych grupkach na FB dla programistów szukających pracy, to warto to zrobić. Ja niedawno dostałem swoją pierwszą pracę jako Java dev po ogłoszeniu na takiej grupce. Pokaż też swoje CV, z nim też mogą być jakieś problemy. Polecam https://flowcv.com/

3

Myślę że oczekujesz zbyt szybkich efektów. Ja pierwszej pracy szukałem jakies 1.5 roku. Było to dawno w innym świecie mimo wszytko teraz jest mały kryzys na rynku. Wysyłaj cv przeprowadź refaktoryzacje swojego kodu i ucz się tego czego nie będziesz wiedział na ewentualnych rozmowach. Teraz na nuke masz dużo siły i czasu. Jak zaczniesz pracować to bedzi inaczej.

1

Zobaczyłem na szybko szachy, funkcję checkCollision() to bym refaktorował mocno w 3 krokach: 1. Dekompozycja, 2. Dekompozycja, 3. Dekompozycja. Funkcja powinna mieć kilka linijek, tak gdzieś słyszałem.

2
Nofenak napisał(a):

Zamiast tych szachów i innych mniejszych projektów zrób jakiś jeden, większy z użyciem Springa, Hibernata i Rest API, bo takie technologie są najczęściej używane w Javie.

I wyjdzie kolejny crud który nic nie wnosi.

Juz lepsze są te szachy bo pokazują faktycznego skilla. Nie technologie są istotne ale umiejętność programowania, refaktorowania, znajomość gita i IDE, znajomość wzorców, SOLID, agile, umiejętność rozwiązywania problemów, znajomość algorytmów, znane podejscia do problemów, umiejętnośc nie wymyślania koła na nowo. Dopiero potem powiedziałbym wchodzi faktyczna znajomość jakiejś konkretnej technologii.

3

Szczerze? IMO nawet nie ma sensu tego refaktorować. Zaoraj to i stwórz coś nowego, od początku przykładając się do jakości i dobrych praktyk. No i kwestia samego projektu. Szachy itp to oklepana rzecz, którą piszę co drugi kandydat na juniora - Zbytnio się nie wyrózniasz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.