Witam serdecznie towarzystwo
Kształcę się na Java backend developera, a jako że jest promocja na udemy, to pomyślałem, że dokupię parę kursów.
Z ogłoszeń o pracę wydedukowałem, że najbardziej pożądany stack technologiczny przy Javie to:
  • Spring
  • Hibernate
  • PostgreSQL
  • ew. Apache server
Czy ktoś mógłby polecić jakieś dobre materiały z ćwiczeniami, na które warto poświęcić czas i ew. pieniądze (np. na udemy)? Jestem nowicjuszem i nadal ciężko ocenić mi jakość materiałów.
Dotychczas miałem do czynienia z materiałami dr. Chucka (python 4 everybody), które uważam za świetne, jeżeli chodzi o formę, sposób tłumaczenia, quizy i zadania praktyczne dla takiego nowicjusza jak ja.
Aktualnie uczę się na udemy javy z kursu pana Buchalki, który zły nie jest, ale imo mocno rozwleczony (np. zamiast w połowie kursu pisać już snippetami "sout" albo "psvm" to nadal klepie cały kod z klawiatury, jakby chciał celowo zrobić czasowo dłuższy kurs) a dr. Chuck dużo lepiej i przystępniej tłumaczył sporo konceptów, ale niestety pominął trochę spraw, które później mogą się przydać (np. nie wiedziałem nawet, że integery mogą być również przedstawione jako hex)
Stąd też takie pytanie, czy jest tu ktoś kto już ma jakieś doświadczenie i obeznanie i jest w stanie podpowiedzieć, które materiały są ok, a które smrut, z wymienionego przeze mnie stacku?
panek

bump bo na javie sie nie znam

b0lec

Moim zdaniem lepiej porządnie się nauczyć podstaw działania baz danych (łyknąć nawet trochę teorii np. o co chodzi z normalizacją baz danych, po co są indeksy, co to indeks złożony czasowy i takie tam) i sql-a a potem dopiero rzucać się na hibernate, który swoją drogą uważam prywatnie że jest gównem, paradoks hibernate trochę jest taki że sprawdza się w relatywnie prostych aplikacjach jakichś crudach z kilkoma tabelkami na krzyż, tam gdzie masz wszystkiego dużo i wymagana jest wydajność lepiej jest pisać native query a żeby native query pisać to znajmość baz jako takich i sql-a jest obowiązkowa. Swoją drogą te rzeczy których się używa w pracy z hibernate też bazują na podobnych zasadach jakie masz w bazach danych więc łatwiej będzie ci to wszystko zrozumieć o co tu chodzi. No i często w firmach jest tak że ludzie biznesu i analitycy umieją się posługiwać sql-em i jest to język w którym potrafią się "dogadać" z programistami, więc no polecam

kao

@b0lec super, w takim razie z mojego "bazowego" stacku wypada jedna rzecz. A co sądzisz o Springu i znajomości jakiegoś serwera? Ma to sens na początek?

Meverth

@kao Spring jak najbardziej, ale sam spring to mało. Spring + spring data, trochę hibernate. Nie dużo, raczej prosta encja, ew, jakaś z listą. Podstawy, bo bardziej skomplikowane rzeczy często robi się za pomocą native query. Docker na tyle, by sobie postawić środowisko. Oczywiście obsługa git, branch, merge itp. Baza danych na tyle, by móc sprawdzić, czy zapytanie coś zwraca, stworzyć join-a, z innymi tabelkami, tak by móc poprawić zapytania hibernate.

"Apache server" 404, did you mean Apache tomcat? To nie "serwer", tylko kontener aplikacyjny. Wrzucasz tam war-a i serwuje apkę. Na początku nie musisz tego tykać. Spring-boot tworzy jar-a wykonywalnego, który w środku zawiera w sobie tomcat/netty.


Nie polecam kursów, ale skoro taki jest twój sposób nauki to spoko. Powodzenia.

kao

@Meverth Co polecasz zatem? Jak dla mnie, to kursy to taka podstawa, żeby w ogóle cokolwiek rozumieć i móc razem z dokumentacją i stackoverflow coś napisać.

Meverth

@kao a jak się najlepiej uczysz? Wybierz sobie jakiś cel: zrobić stronkę, zrobić aplikację, pomóc w aplikacji mobilnej hejto, czy cokolwiek. Byle należało wymyślić rozwiązanie jakiegoś problemu. Później realizując projekt, ucz się i googlaj.

Nie wiesz, jak uruchomić lokalnie projekt w spring-boot? google: "run spring-boot project" i wchodzisz na pierwszy wynik, np.: https://www.geeksforgeeks.org/how-to-run-spring-boot-application/

Jak nie to, to szukasz jak odpalić z konsoli. Albo jak odpalić za pomocą gradle. Jest mnóstwo poradników, artykułów itp. Możesz też podpytać AI i GTP3, ale może wprowadzać w błąd i często ma przestarzałe dane. Jednak na początek nauki powinien się nadać.

kao

@Meverth szczerze, to najlepiej uczy mi się zaczynając od kursów prowadzących za rączkę, później przechodząc do własnych projektów. Kiedy na studiach uczyłem się oprogramowania CAD, to najlepiej mi szło, zaczynając od tutoriali prowadzących za rączkę na YouTube, później przechodząc do zadanek z książek i inżynierii własnych pomysłów. Tutaj wydaje mi się, że podobnie będzie się to sprawdzać

Na pewno przechodząc z Pythona na Javę, dużo łatwiej mi po prostu wpisać "how to parse int to string in java" w Google zamiast przechodzić samouczki od zera. Z frameworkami i bazami danych trochę trudniej, bo nie miałem nigdy z nimi do czynienia, a zanim zacznę się czymś bawić sam, lubię dobrze zrozumieć od podstaw co i dlaczego jakoś działa.

Meverth

@kao zrozumienie każdego szczegółu bardzo mocno cię spowolni. Zagłębiać się można w nieskończoność. Pod językiem obiektowym mamy wszystko sprowadzone do komend ala assembler, pod tym de facto bity. Zaczniesz roztrząsać, jak interpretujemy ten sam bajt w różnych kodowaniach, to wejdziesz na algorytmy, od tego już prosta droga do algorytmów zapisu, kompresji, różnych sposobów przesyłu danych. Wejdziesz na działanie procesora, operacje bitowe, całki i zaawansowaną matematykę, przy okazji zahaczysz o AI, bo raz, że to teraz modne a dwa, że korzysta z tych wszystkich dobrodziejstw, a projekt w tym czasie leży odłogiem i kwiczy.


Nie mówię, że nie warto zrozumieć jak działa dany framework, język czy serwer aplikacyjny. Mówię, że nie ma się co za bardzo zagłębiać, jeśli nie jest to w tym momencie niezbędne. Warto zagłębić się bardziej, po godzinach, w ramach ciekawostki, po rozwiązaniu problemu biznesowego, ale niech to nie stoi na przeszkodzie w dowiezieniu funkcjonalności.


To, że (teraz/jeszcze) nie pracujesz w zawodzie, nie ma znaczenia: chodzi o nastawienie. Wpierw niech działa, a później zagłębiamy się w to czy to najlepsze rozwiązanie. Podejście w programowaniu: dostarczamy feature (wraz z testami), później refaktoring.

Zaloguj się aby komentować