Skip to content

Zbiór przydatnych materiałów dla osób gotowych do rozpoczęcia swojej przygody z zawodowym programowaniem i szukających drogi dalej.

Notifications You must be signed in to change notification settings

honestit/Junior_Java_Developer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Junior Java Developer

Zbiór przydatnych materiałów dla osób gotowych do rozpoczęcia swojej przygody z zawodowym programowaniem i szukających drogi dalej.


Prośba

Jeżeli znalazłeś się tutaj pierwszy raz, albo zaglądasz już kolejny, to daj gwiazdkę temu repozytorium (opcja Star w prawym, górnym rogu). Z góry bardzo dziękuję :)


Kurs

Razem z żoną przygotowaliśmy kurs z nauki podstaw programowania i podstaw języka Java. W kurs wrzuciłem wszystko, czego się nauczyłem w ostatnich latach jako trener programowania. Jeżeli sam chciałbyś skorzystać albo masz znajomych, którzy chcą rozpocząć przygodę z programowaniem, to poleć im to proszę. Wyświadczysz i mi i im ogromną przysługę :)

Poniżej znajduje się link do kursu z wbitą promocją - obecna pozwala na zakup kursu z 30% zniżką. Sam kurs jest na Udemy w najniższej możliwej cenia. To 50 godzin profesjonalnego materiału w cenie mniej więcej 4 numerów CD-Action (po 10.99 PLN każdy). Chciałem aby kurs był powszechnie i łatwo dostępny, stąd taka cena :)

Solidne-fundamenty

Promocja: kurs w cenie 4 x CD-Action = 49 zł

Polecam :)


Wstęp

Przed ropoczęciem korzystania z udostępnionych tutaj materiałów zapoznaj się z kilkoma podstawowymi informacjami.


Nota prawna

Drogi użytkowniku. Ze względu na ochronę wartości intelektualnej zachęcam Cię, abyś na wstępie zapoznał się z poniższą notą prawną dotyczącą repozytorium. Uzyskałeś dostęp do repozytorium i tym samym poniższe zapisy w całości Cię dotyczą. Proszę Cię o współpracę w ochronie tej wartości i przestrzeganie niżej opisanych zasad. Dziękuję.

Repozytorium, jego treść i zawartość podlegają ochronie prawnej. Wykorzystywanie materiałów zawartych w repozytorium może odbywać się tylko za zgodą autora.

Repozytorium jest prywatne. Udostępniane jest wybranym osobom i tylko przez te osoby może być wykorzystywane. Dalsze rozpowszechnianie i/lub kopiowanie repozytorium bez zgody autora, w całości lub we fragmentach, jest zabronione.

Autorem i właścicielem repozytorium jest Michał Kupisiński Honest IT Consulting.

Repozytorium oraz każda jego kopia (fork) muszą zachować powyższą notę prawną.


Materiały w repozytorium

Zebrane materiały w repozytorium są wybiórczym i subiektwynym zbiorem, który ma prawo się zmieniać. Jednocześnie umieszczenie tego zbioru na poziomie repozytorium Git gwarantuje utrzymanie historii zmian, więc jeżeli taką jesteś zainteresowany, to czuj się wolny do śmiałego przeglądania hsitorii zmian.


Rozwój zbioru materiałów

Materiały będą rozwijane przeze mnie, ale również Ty, drogi Użytkowniku, jeżeli tylko masz wiedzę o wartościowych materiałach i chciałbyś takie zaproponować, to możesz śmiało zaktualizować zestaw materiałów wykonując pull-request (w razie potrzeby wsparcia: pull request). Każda wykonana aktualizacja wymaga mojego zatwierdzenia. Propozycje zmian będę przeglądał przynajmniej raz w tygodniu, aby zbiór pozostał aktualny. Każdą złożoną przez Ciebie propozycję oznaczę też Twoim loginem, aby pamięć o Tobie nie umarła! ;)

Będąc tutaj korzystasz z wiedzy innych, więc gorąco Cię zachęcam, abyś wpłynął na rozwój zgromadzonych tu treści.


Materiały

Zebrane materiały przeznaczone są dla osób, które posiadają już podstawową znajomość języka Java oraz towarzyszących im kategorii. Udostępnienione materiały nie mają charakteru planu nauczania języka Java czy przygotowania do stanowiska Junior Java Developer.

Rolą udostępnionych tutaj materiałów jest wskazanie możliwości dalszej nauki i samodzielnego rozwoju w poznanych technologiach i elementach języka Java.


Aktualizacja

UWAGA! Repozytorium w 2020 roku nie doczekało się jeszcze żadnej aktualizacji ale niedługo będziemy to nadrabiać :) Pojawią się namiary na nowe materiały (w czerwcu) ale mam nadzieję, że uda się też przejść z formatu repozytorium do formatu aplikacji/serwisu udostępniającego takie materiały.

  • 2020-06-08 Gorąco polecam bardzo dobrze repozytorium z wieloma opracowaniami wzorców projektowych, nie tylko podstawowych ale również większości wzórców klasy enterprise czy wzorców integracyjnych: Iluwatar: Java Design Patterns
  • 2019-11-13 Częstym tematem rekrutacyjnym są transakcje, a w szczególności ich obsługa w Spring. Pomijając nawet samą rekrutację, to jest to temat istotny dla każdego programisty backendu. Polecam bardzo dobry artykuł na ten temat: Transactions and Transactions in Spring
  • 2019-10-17 Dodaje kalkulator ze StackOverflow, który pozwala wycenić się na rynku StackOverflow Salary Calculator
  • 2019-10-16 Bardzo dobry tutorial wideo, w którym tworzona jest od podstaw aplikacja w Spring. Zaletą akurat tego tutorialu jest to, że aplikacja posiada naprawdę poprawną architekturę (warstwy serwisów, kontrolerów, obiektów transferowych - tutaj w roli obiektów XXXRequest) oraz tworzone są w niej testy jednostkowe. Polecam: CRUD Application with Spring
  • 2019-09-19 WYRÓŻNIONE W trakcie jednej z rozmów rekrutacyjnych Marcin wuher44 opowiedział o portalu hyperskill.org. Miejsce to oceniam jako genialne. Już wskazanie kto jest autorem tych materiałów wiele mówi: JetBrains, a więc wydawcy IntelliJ. Nie wiem jakim cudem dopiero teraz wpadło to w moje ręcę :) Od razu dziele się tym z całą tutejszą grupą i wszystkimi nadchodzącymi.
  • 2019-07-19 Dodano wyróznioną pozycję dotyczącą zasad SOLID. Bardzo często pojawiają się one w trakcie naszych rozmów IT Interview, czy z mojej inicjatywy czy z Waszej. Warto zapoznać się ich praktyczną realizacją na wybranych przykładach czystej Javy. Polecam, aby skoczyć wyżej w zasadach tworzenia oprogramowania o wysokiej jakości.
  • 2019-06-28 Dodano wyróżnioną pozycję z wylistowanym zakresem wymagań dotyczących Junior Java Developer. Bardzo kompleksowa lista (aż tyle nie trzeba umieć), ale jednocześnie z podliknowanymi materiałami do każdego z tematów. Polecam jako checklistę na ile jestem przygotowany/przygotowana.
  • 2019-03-15 Dodano nową sekcję Przygotowanie do rozmowy rekrutacyjnej z pierwszym materiałem, a więc serwisem Pramp. Za cenną propozycją ziehlke.
  • 2019-03-15 Dodano do Zadania i tutoriale nową pozycję: "HTML RefCard". Podstawowe elementy HTML w formie szybkiej pomocy.
  • 2019-01-31 Dodano do Książki nową pozycję: "Myśl jak programista. Techniki kreatywnego rozwiązywania problemów". Lektura polecana absolutnie dla wszystkich, którzy chcą zrozumieć, co jest w tym zawodzie najważniejsze: nie język, nie framework, nie środowisko i narzędzia, a właściwy sposób myślenia (możliwy do wyuczenia krok po kroku).
  • 2018-12-14 Dodano do Książki nową pozycje: "Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI". Szczególnie polecam tą książkę, jako źródło całościowej wiedzy o języku Java. Uczyłem się od tych autorów programowania w C++ 20 lat temu, z książki "Arkana Programowania C++". Nigdy w swoim całym życiu zawodowym nie spotkałem już innej pozycji tak kompleksowej jak ta. Gorąco polecam!
  • 2018-12-14 Dodano do Książki nową pozycje: "Java. Przewodnik dla początkujących. Wydanie VII", od AdrianGalus. Tym samym pojawiła się pierwsza aktywność naszej mikro społeczności :)
  • 2018-12-07 Dodano do #ksiazki nowe pozycje związane ze Spring Framework oraz klasyczną Javą.

Kategorie materiałów

Materiały zebrane są w trzech kategoriach:

  1. Książki - materiały podstawowe, które pozwalają poznać kompleksowo wybrane zagadnienia
  2. Tutoriale - materiały praktyczne, ktore pozwalają opanować wiele zagadnień w formie zadań czy tutoriali
  3. Specjalistyczne - materiały omawiające wybrane zagadnienia z programowania lub konkretne technologie

Wszystkie materiały zostały udostępnione w formie pytań. Jeżeli na zadane przy materiale pytanie odpowiadasz "TAK", to materiał ten jest dla Ciebie. W pierwszej kolejności skup się na materiałach, dla których odpowiadasz stanowczo "TAK".

Nie skacz po wszystkim - Internet jest dzisiaj tak przepełniony treścią, często bezużyteczną, że możesz całe życie poświęcić na samo szukanie, z którego nic nie wyniesiesz. Lepiej wybierz swoje największe "TAK" i skup się tylko na nim. Potem kolejne, kolejne. Dobrze oddaje to poniższa grafika:

Good programmer (Źródło: tutaj)


Kalkulator wynagrodzenia

Zajrzyj tutaj i wyceń siebie: StackOvertflow Salary Calculator

Dla lokalizacji w Polsce, przy braku wykształcenia technicznego, ze znajomością Java, Spring i MySQL/Postgres oraz braku doświadczenia komercyjnego kalkulator podpowie nam średnią stawkę 4.600,- zł


Wytyczne co powinien umieć "Junior Java Developer"

Na stronie Java Code Geeks kilka miesięcy temu pojawiła się bardzo kompleksowa lista tego, co powinna nauczyć się osoba chcąca zostać Junior Java Developer. Lista jest szeroka i część wymagań może być ponad rozpoczęcie kariery. Jednak olbrzymią wartością tej listy jest to, że każde z wymagań posiada również linki do materiałów, z których można się ich nauczyć bądź zweryfikować już posiadaną wiedzę. Gorąco polecam!

Co Junior Java Developer umieć powinien


Zasady SOLID

Zrozumienie dobrych praktyk programistycznych i umiejętność ich samodzielnej obrony, zaprezentowania na przykładach (swoich i cudzych) jest kluczem do tego, aby wyróżnić się na rozmowie rekrutacyjnej. Również jest bramą do Waszego samorozwoju. Jeżeli zastanowicie się nad tym jak wygląda dzisiaj programowanie, to niemal każdy problem został już rozwiązany i można go znaleźć przeważnie na StackOverflow. Zatem wyzwaniem, które dzisiaj rzuca programowanie nie jest napisanie działającego fragmentu kodu, a pisanie kodu w taki sposób, aby idealnie łączył się z innymi fragmentami. Prawdziwym wyzwaniem jest więc projektowanie, a nie programowanie. Zasady SOLID otwierają Wam drogę i pozwalają wystartować z dobrej pozycji. Jedno z najlepszych (o ile nie najlepsze) opracowanie poniżej:

Zasady SOLID


Książki

Poniżej prezentuję subiektywną listę książek, które dla osoby aspirującej do stanowiska Junior Java Developer będą przydatne i wartościowe:

Pytanie Materiał Autor propozycji
Wyróżnione: Jeżeli zgadzasz się ze mną, że nie istnieją predyspozycje do programowania, a umiejętności, które masz dzisiaj, jutro mogą być na zupełnie innym, wyższym poziomie, to ta książka jest dla Ciebie. Jeżeli się nie zgadzasz, to ta książka też jest dla Ciebie Myśl jak programista. Techniki kreatywnego rozwiązywania problemów, V. Anton Spraul honestit
Wyróżnione: Całościowy, kompleksowy przegląd języka Java na najwyższym poziomie Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI honestit
Czy chciałbyś raz jeszcze w lekki sposób dowiedzieć się o języku Java? Java. Przewodnik dla początkujących, Herbert Schildt AdrianGalus
Czy potrzebujesz jeszcze raz zrozumieć pewne podstawowe zagadnienia z języka Java? JAVA. Programowanie praktyczne od podstaw, Krzysztof Barteczko honestit
Czy potrzebujesz zrozumieć zagadnienia zaawansowane język Java? JAVA. Uniwersalne techniki programowania, Krzysztof Barteczko honestit
Czy masz trudności z formułowaniem algorytmów i rozwiązywaniem zadań programistycznych? Myśl w języku Java. Nauka programowania, Allen B. Downey, Chris Mayfield honestit
Czy potrzebujesz poznać bardziej zaawansowane zagadnienia i dowiedzieć się JAK należy języka Java używać? Java. Efektywne programowanie. Wydanie III, Joshua Bloch honestit
Potrafisz sprawnie posługiwać się językiem Java i rozumiesz poznane zagadnienia, ale szukasz pełnego przeglądu języka Java w zakresie młodszego programisty? Java. Podstawy, Cay S. Horstmann oraz Java. Techniki zaawansowane, Cay S. Horstmann honestit
Chcesz zmierzyć się z różnego rodzaju łamigłowkami z pomocą języka Java? Java Puzzlers, Joshua Bloch, Neal Gafter honestit
Rozumiesz język Java i chcesz poznać szerszy obraz tego co przed Tobą? The Well Grounded Java Developer, Benjamin J. Evans, Martijn Verburg honestit
Potrzebujesz raz jeszcze zrozumieć Spring MVC? Spring MVC. Przewodnik dla początkujących, Amuthan G. oraz Spring MVC 4. Projektowanie zaawansowanych aplikacji, Geoffroy Warin honestit
Rozumiesz już Spring Framework i potrzebujesz pozycji przeglądowej, zawsze pod ręką? Spring w akcji, Craig Walls honestit
Jeżeli radzisz sobie z programowaniem, ale czujesz, że jakość tego co robisz mogłaby być wyższa? Czysty Kod. Podręcznik dobrego programisty Robert C. Martin honestit
Chcesz zrozumieć współczesne programowanie i osiągnąć w nim mistrzostwo? Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja, Sandro Manusco honestit
Zachłysnąłeś/aś się programowaniem i szukasz inspirujących historii? Piękny kod. Tajemnice mistrzów programowania, Andy Oram, Greg Wilson honestit

Zadania i tutoriale

Kolejna lista to strony zawierająca zbiory zadań i tutoriale pod konkretne obszary techniczne

Zbiory zadań

Pytanie Materiał Autor propozycji
Wyróżnione: Jeżeli potrzebujesz całościowego zestawu zadań, pokrywającego WSZYSTKO co musisz wiedzieć, stworzonego w sposób niezwykle atrakcyjny i w okół budowania mini projektów - TO TUTAJ hyperskill.org wuher44
Czy masz problem z układaniem podstawowych algorytmów i samodzielnym wykorzystywaniem podstaw języka? CodingBat honestit
Czy chcesz rozwinąć swoje umiejętności rozwiązywania zadań algorytmicznych na trudniejszych przykładach? SPOJ honestit
Chcesz ćwiczyć programowanie rozwiązując zadania i mając z tego sporo frajdy? Hacker Rank honestit
j.w. CodeWars honestit
j.w. CodingGame honestit
j.w. Leet Code honestit
j.w. Coderbyte honestit
Chcesz przygotować się do zadań, z którymi możesz się spotkać na rozmowie rekrutacyjnej? Codility honestit

Tutoriale

Pytanie Materiał Autor propozycji
Chcesz poznać konkretne sposoby (przepisy) rozwiązania problemów technicznych na zasadzie "How to do"? Jenkov honestit
j.w. JavaTpoint honestit
j.w. Java online honestit
j.w. Tutorials point honestit

Zagadnienia zaawansowane

Ostatnia, ale największa lista, dotyczy już konkretnych obszarów technicznych w świecie języka Java. Jeżeli mogę Ci coś zasugerować, to znajdź temat, który Ci się spodobał i rozwijaj się w nim. Nie próbuj nauczyć się wszystkiego, bo to niemożliwe. Skup się na tym, co wydało Ci się najbardziej atrakcyjne, najciekawsze i w ten sposób buduj swój potencjał i pozycję.

Projektowanie aplikacji
Pytanie Materiał Autor propozycji
Świetne opracowanie bardzo wielu wzorców projektowych, aż ciężko pomyśleć o jakich ponad dostępną tutaj listę. Co więcej - każdy wzorzec jest oprogramowany, a przykłady są w Javie. Gorąco polecam Iluwatar: Java Design Patterns honestit
Potrafisz programować, ale chcesz lepiej poznać zasady projektowania i rozpocząć przygodę ze wzorcami JournalDev Design Patterns honestit
Podstawowa grupa wzorców to dla Ciebie już za mało i chcesz wejść naprawdę głęboko i szeroko w temat? Java Design Pattersn honestit
Korzystasz z framework'ów typu Hibernate lub Spring/JEE i chce je zrozumieć?
- Chcesz poznać źródło wszystkiego? Enterprise Patterns Catalog honestit
- Interesuje Cię po co jest warstwa serwisów? Service Layer honestit
- Obiekty transferowe wydają Ci się tylko przepisywaniem kodu? Data Transfer Object honestit
- Zastanawiasz się o co chodzi z tymi transakcjami w serwisach? Transaction Script honestit
- Nie wiesz czemu poza transakcją musisz zapisać zmiany w encjach, a wewnątrz transackji zapisują się same? Unit of Work honestit
- Chcesz zrozumieć różnice między Servletami i np. Spring MVC? Front Controller honestit
- Stosujesz wzorzec MVC, ale czasami zastanawiasz się czym jest "M"? MVC, Page Controller honestit
- Wykorzystujesz repozytoria albo dao? Repository honestit
- Zastanawiasz się jaką rolę pełni EntityManager? Identity Map honestit
- Czym są Twoje encje i jaką magię czyni Hibernate? Data Mapper honestit
- Nurtuje Cię po co encji ten klucz główny? Identity Field honestit
- Męczy Cię błąd could not initialize lazy collection...? Lazy Load honestit
- Korzystasz z Criteria API i chcesz wiedzieć jak to się ma do wzorców projektowych? Query Object honestit
- Jeżeli poznanie wierzchołka góry lodowej to dla Ciebie za mało? Patterns of Enterprise Architecture, Martin Fowler (wydanie polskie) honestit
JPA, Hibernate i SQL
Pytanie Materiał Autor propozycji
Polubiłeś/aś Java Persistence API i chcesz je poznać w całośći? Java Persistene API Specification honestit
JPA jest interesujące ale bardziej jesteś ciekaw/a możliwości Hibernate'a? Vlad Mihalcea Blog honestit
Czujesz, że SQL jest Twoim żywiołem albo że będzie Ci potrzebny i potrzebujesz lepiej wszystko zrozumieć? SQL ZOO honestit
Servlety i Spring
Pytanie Materiał Autor propozycji
Tutorial widoe, w którym możesz zobaczyć jak stworzyć pełną aplikację wykorzystującą najważniejsze modułu/projekty Spring Framework, a co najważniejsze zrealizowaną w prawidłowej architekturze i z uwzględnieniem testów jednostkowych CRUD Application with Spring honestit
Polubiłeś/aś Java Servlets i aplikacje webowe, chcesz poznać wszystko w całości? Java Servlets 4.0 Specification honestit
Znasz już Servlety i chcesz lepiej poznać Spring'a? Spring Project honestit
Spring jest świetny, ale oficjalna dokumentacja trochę Cię przerażą? Baeldung honestit
Obsługa transakcji w Spring Transactions and Transactions in Spring honestit
Przygotowanie do rozmowy kwalifikacyjnej

Nie wiesz czy jesteś już gotowy wysyłać CV na oferty pracy? Chcesz spóbować swoich sił przed prawdziwą rozmową kwalifikacyjną? Skorzystaj z portali, gdzie możesz umówić się z innymi osobami takimi jak Ty:

Pytanie Materiał Autor propozycji
Darmowa rejestracja i kredyty na pierwsze rozmowy - odbywając rozmowy zdobywasz kredyt na kolejne Pramp ziehlke
Wszystko w jednym miejscu - RefCardz

W sytuacji, kiedy dana technologia jest już Ci znana, ale chcesz szybko odświeżyć informacje (idealne przed rozmową rekrutacyjną), to polecam poniższą listę:

Pytanie Materiał Autor propozycji
Java:
- Podstawy Java Core honestit
- Wielowątkowość Java Concurrency honestit
- Cacheowanie Java Caching honestit
- JPA Started with JPA, JPA 2.0 honestit
Narzędzia:
- IntelliJ IntelliJ honestit
- Git Git honestit
- Maven Maven honestit
- Tomcat Tomcat honestit
Technologie:
- JUnit JUnit and EasyMock honestit
- Wyrażenia regularne Regex honestit
- Protokół HTTP HTTP honestit
- JSON JSON honestit
- HTML HTML Core honestit
- HTML5 HTML5 Features honestit
- CSS CSS 1, CSS 2, CSS 3 honestit
Projektowanie:
- Refaktoryzacja Refactoring Patterns honestit
- Wzorce GoF Design Patterns honestit
- Wzorce architektoniczen Modular Patterns honestit
- Wzorce integracyjne SOA Patterns honestit

Podsumowanie

Mam nadzieję, że powyższa lista będzie dla Ciebie dobrym przejściem od nauki programowania do rozpoczęcia kariery w branży IT. Jeżeli choć jeden z zamieszczonych tutaj linków przyczyni się do Twojego sukcesu, to będzie to wystarczające wynagrodzenia.

Powodzenia!

About

Zbiór przydatnych materiałów dla osób gotowych do rozpoczęcia swojej przygody z zawodowym programowaniem i szukających drogi dalej.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •