├── .gitignore ├── CODEOWNERS ├── Programowanie-w-javie-solidne-fundamenty.jpg ├── README.md └── media ├── Programowanie-w-javie-solidne-fundamenty.jpg └── good_programmer.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | 25 | # IntelliJ 26 | .idea/** 27 | *.iml 28 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @honestit 2 | -------------------------------------------------------------------------------- /Programowanie-w-javie-solidne-fundamenty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/honestit/Junior_Java_Developer/b0f6f8e993185685106ca994ff00f18ba48eb479/Programowanie-w-javie-solidne-fundamenty.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Junior Java Developer 2 | Zbiór przydatnych materiałów dla osób gotowych do rozpoczęcia swojej przygody z zawodowym programowaniem i szukających drogi dalej. 3 | 4 | --- 5 | 6 | ## Prośba 7 | 8 | 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). 9 | Z góry bardzo dziękuję :) 10 | 11 | --- 12 | 13 | ## Kurs 14 | 15 | 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ę :) 16 | 17 | 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 :) 18 | 19 | ![Solidne-fundamenty](media/Programowanie-w-javie-solidne-fundamenty.jpg) 20 | 21 | [Promocja: kurs w cenie 4 x CD-Action = 49 zł](https://www.udemy.com/course/programowanie-w-javie-solidne-fundamenty/?couponCode=9BDD279891B9C7B313E5) 22 | 23 | **Polecam :)** 24 | 25 | --- 26 | 27 | ## Wstęp 28 | 29 | Przed ropoczęciem korzystania z udostępnionych tutaj materiałów zapoznaj się z kilkoma podstawowymi informacjami. 30 | 31 | --- 32 | 33 | ### Nota prawna 34 | 35 | Drogi użytkowniku. Ze względu na ochronę wartości intelektualnej zachęcam Cię, abyś 36 | na wstępie zapoznał się z poniższą notą prawną dotyczącą repozytorium. Uzyskałeś dostęp do repozytorium 37 | i tym samym poniższe zapisy w całości Cię dotyczą. Proszę Cię o współpracę w ochronie tej wartości i przestrzeganie 38 | niżej opisanych zasad. Dziękuję. 39 | 40 | >Repozytorium, jego treść i zawartość podlegają ochronie prawnej. Wykorzystywanie materiałów 41 | zawartych w repozytorium może odbywać się tylko za zgodą autora. 42 | 43 | >Repozytorium jest **prywatne**. Udostępniane jest wybranym osobom i tylko przez te osoby może być wykorzystywane. 44 | Dalsze rozpowszechnianie i/lub kopiowanie repozytorium bez zgody autora, w całości lub we fragmentach, jest zabronione. 45 | 46 | >Autorem i właścicielem repozytorium jest Michał Kupisiński Honest IT Consulting. 47 | 48 | >Repozytorium oraz każda jego kopia (fork) muszą zachować powyższą notę prawną. 49 | 50 | --- 51 | 52 | ### Materiały w repozytorium 53 | 54 | Zebrane materiały w repozytorium są wybiórczym i subiektwynym zbiorem, który ma prawo się zmieniać. 55 | Jednocześnie umieszczenie tego zbioru na poziomie repozytorium Git gwarantuje utrzymanie historii 56 | zmian, więc jeżeli taką jesteś zainteresowany, to czuj się wolny do śmiałego przeglądania hsitorii zmian. 57 | 58 | --- 59 | 60 | ### Rozwój zbioru materiałów 61 | 62 | Materiały będą rozwijane przeze mnie, ale również Ty, drogi Użytkowniku, jeżeli tylko 63 | masz wiedzę o wartościowych materiałach i chciałbyś takie zaproponować, to możesz śmiało zaktualizować zestaw 64 | materiałów wykonując `pull-request` (w razie potrzeby wsparcia: [*pull request*](https://help.github.com/articles/creating-a-pull-request)). 65 | Każda wykonana aktualizacja wymaga mojego zatwierdzenia. Propozycje zmian będę przeglądał przynajmniej raz w tygodniu, aby 66 | zbiór pozostał aktualny. Każdą złożoną przez Ciebie propozycję oznaczę też Twoim loginem, aby pamięć o Tobie nie umarła! ;) 67 | 68 | **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.** 69 | 70 | --- 71 | 72 | ## Materiały 73 | 74 | Zebrane materiały przeznaczone są dla osób, które posiadają już podstawową znajomość języka Java oraz 75 | towarzyszących im kategorii. Udostępnienione materiały nie mają charakteru planu nauczania języka Java 76 | czy przygotowania do stanowiska Junior Java Developer. 77 | 78 | Rolą udostępnionych tutaj materiałów jest wskazanie możliwości dalszej nauki i samodzielnego rozwoju 79 | w poznanych technologiach i elementach języka Java. 80 | 81 | --- 82 | 83 | ### Aktualizacja 84 | 85 | **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. 86 | 87 | - 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](https://github.com/iluwatar/java-design-patterns) 88 | - 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](https://www.marcobehler.com/guides/spring-transaction-management-unconventional-guide) 89 | - 2019-10-17 Dodaje kalkulator ze StackOverflow, który pozwala _wycenić się_ na rynku [StackOverflow Salary Calculator](https://stackoverflow.com/jobs/salary) 90 | - 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](https://www.youtube.com/watch?v=VzZV25YsSpk) 91 | - 2019-09-19 **WYRÓŻNIONE** W trakcie jednej z rozmów rekrutacyjnych Marcin [wuher44](https://github.com/wuher44) opowiedział o portalu [hyperskill.org](https://hyperskill.org/knowledge-map/73?v=table). _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. 92 | - 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**. 93 | - 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_**. 94 | - 2019-03-15 Dodano nową sekcję `Przygotowanie do rozmowy rekrutacyjnej` z pierwszym materiałem, a więc serwisem Pramp. Za cenną propozycją [ziehlke](https://github.com/ziehlke). 95 | - 2019-03-15 Dodano do `Zadania i tutoriale` nową pozycję: "_HTML RefCard_". Podstawowe elementy HTML w formie szybkiej pomocy. 96 | - 2019-01-31 Dodano do [Książki](#Ksiazki) 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). 97 | - 2018-12-14 Dodano do [Książki](#Ksiazki) 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! 98 | - 2018-12-14 Dodano do [Książki](#Ksiązki) nową pozycje: "_Java. Przewodnik dla początkujących. Wydanie VII_", od [AdrianGalus](https://github.com/AdrianGalus). Tym samym pojawiła się pierwsza aktywność naszej mikro społeczności :) 99 | - 2018-12-07 Dodano do #ksiazki nowe pozycje związane ze Spring Framework oraz klasyczną Javą. 100 | 101 | --- 102 | 103 | ### Kategorie materiałów 104 | 105 | Materiały zebrane są w trzech kategoriach: 106 | 1. Książki - materiały podstawowe, które pozwalają poznać kompleksowo wybrane zagadnienia 107 | 2. Tutoriale - materiały praktyczne, ktore pozwalają opanować wiele zagadnień w formie zadań czy tutoriali 108 | 3. Specjalistyczne - materiały omawiające wybrane zagadnienia z programowania lub konkretne technologie 109 | 110 | Wszystkie materiały zostały udostępnione w formie pytań. Jeżeli na zadane przy materiale pytanie 111 | odpowiadasz "TAK", to materiał ten jest dla Ciebie. W pierwszej kolejności skup się na materiałach, 112 | dla których odpowiadasz stanowczo "TAK". 113 | 114 | Nie skacz po wszystkim - Internet jest dzisiaj tak przepełniony treścią, 115 | 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 116 | na nim. Potem kolejne, kolejne. Dobrze oddaje to poniższa grafika: 117 | 118 | ![Good programmer](media/good_programmer.jpg) 119 | (Źródło: [tutaj](https://2.bp.blogspot.com/-rXTKoaxaE0k/WjT1QXzXnyI/AAAAAAAAJtY/9joXTM06QigGYFBh0AJjWWf_YYqzmL8mgCLcBGAs/s400/Good%2Bprogrammer.jpg)) 120 | 121 | --- 122 | 123 | ### Kalkulator wynagrodzenia 124 | 125 | Zajrzyj tutaj i wyceń siebie: [StackOvertflow Salary Calculator](https://stackoverflow.com/jobs/salary) 126 | 127 | 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ł` 128 | 129 | --- 130 | 131 | ### Wytyczne co powinien umieć "Junior Java Developer" 132 | 133 | 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! 134 | 135 | [Co Junior Java Developer umieć powinien](https://www.javacodegeeks.com/2019/04/best-way-to-learn-java-programming-online.html) 136 | 137 | --- 138 | 139 | ### Zasady SOLID 140 | 141 | 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: 142 | 143 | [Zasady SOLID](https://blog.bitsrc.io/solid-principles-every-developer-should-know-b3bfa96bb688) 144 | 145 | --- 146 | 147 | ### Książki 148 | 149 | Poniżej prezentuję subiektywną listę książek, które dla osoby aspirującej do stanowiska Junior Java Developer 150 | będą przydatne i wartościowe: 151 | 152 | |Pytanie|Materiał|Autor propozycji| 153 | |:------|:-------|:--------------:| 154 | |**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_](https://helion.pl/view/10695k/myprog.htm#format/e), V. Anton Spraul|[honestit](https://github.com/honestit)| 155 | |**Wyróżnione:** Całościowy, kompleksowy przegląd języka Java na najwyższym poziomie|[_Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI_](https://helion.pl/view/10695k/prjaso.htm#format/d)|[honestit](https://github.com/honestit)| 156 | |Czy chciałbyś raz jeszcze w lekki sposób dowiedzieć się o języku Java?|[_Java. Przewodnik dla początkujących_](https://helion.pl/view/10695k/javpp7.htm#format/d), Herbert Schildt|[AdrianGalus](https://github.com/AdrianGalus)| 157 | |Czy potrzebujesz jeszcze raz zrozumieć pewne podstawowe zagadnienia z języka Java?|[_JAVA. Programowanie praktyczne od podstaw_](https://ksiegarnia.pwn.pl/JAVA.-Programowanie-praktyczne-od-podstaw,216634685,p.html), Krzysztof Barteczko|[honestit](https://github.com/honestit)| 158 | |Czy potrzebujesz zrozumieć zagadnienia zaawansowane język Java?|[_JAVA. Uniwersalne techniki programowania_](https://helion.pl/view/10695k/a_03c6.htm#format/d), Krzysztof Barteczko|[honestit](https://github.com/honestit)| 159 | |Czy masz trudności z formułowaniem algorytmów i rozwiązywaniem zadań programistycznych?|[_Myśl w języku Java. Nauka programowania_](https://helion.pl/view/10695k/mysjav.htm#format/d), Allen B. Downey, Chris Mayfield|[honestit](https://github.com/honestit)| 160 | |Czy potrzebujesz poznać bardziej zaawansowane zagadnienia i dowiedzieć się JAK należy języka Java używać?|[_Java. Efektywne programowanie. Wydanie III_](https://helion.pl/view/10695k/javep3.htm#format/d), Joshua Bloch|[honestit](https://github.com/honestit)| 161 | |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_](https://helion.pl/view/10695k/javp10.htm#format/e), Cay S. Horstmann oraz [_Java. Techniki zaawansowane_](https://helion.pl/view/10695k/javtzx.htm#format/d), Cay S. Horstmann|[honestit](https://github.com/honestit)| 162 | |Chcesz zmierzyć się z różnego rodzaju łamigłowkami z pomocą języka Java?|[_Java Puzzlers_](http://www.javapuzzlers.com/), Joshua Bloch, Neal Gafter|[honestit](https://github.com/honestit)| 163 | |Rozumiesz język Java i chcesz poznać szerszy obraz tego co przed Tobą?|[_The Well Grounded Java Developer_](https://www.manning.com/books/the-well-grounded-java-developer), Benjamin J. Evans, Martijn Verburg|[honestit](https://github.com/honestit)| 164 | |Potrzebujesz raz jeszcze zrozumieć Spring MVC?|[_Spring MVC. Przewodnik dla początkujących_](https://helion.pl/view/10695k/sprimv.htm#format/e), Amuthan G. oraz [_Spring MVC 4. Projektowanie zaawansowanych aplikacji_](https://helion.pl/view/10695k/smvc4p.htm#format/d), Geoffroy Warin|[honestit](https://github.com/honestit)| 165 | |Rozumiesz już Spring Framework i potrzebujesz pozycji przeglądowej, zawsze pod ręką?|[_Spring w akcji_](https://helion.pl/view/10695k/sprwa4.htm#format/d), Craig Walls|[honestit](https://github.com/honestit)| 166 | |Jeżeli radzisz sobie z programowaniem, ale czujesz, że jakość tego co robisz mogłaby być wyższa?|[_Czysty Kod. Podręcznik dobrego programisty_](https://helion.pl/view/10695k/czykov.htm#format/d) Robert C. Martin|[honestit](https://github.com/honestit)| 167 | |Chcesz zrozumieć współczesne programowanie i osiągnąć w nim mistrzostwo?|[_Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja_](https://helion.pl/view/10695k/prorze.htm#format/d), Sandro Manusco|[honestit](https://github.com/honestit)| 168 | |Zachłysnąłeś/aś się programowaniem i szukasz inspirujących historii?|[_Piękny kod. Tajemnice mistrzów programowania_](https://helion.pl/view/10695k/szpppv.htm#format/d), Andy Oram, Greg Wilson|[honestit](https://github.com/honestit)| 169 | 170 | --- 171 | 172 | ### Zadania i tutoriale 173 | 174 | Kolejna lista to strony zawierająca zbiory zadań i tutoriale pod konkretne obszary techniczne 175 | 176 | #### Zbiory zadań 177 | 178 | |Pytanie|Materiał|Autor propozycji| 179 | |:------|:-------|:--------------:| 180 | |**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](https://hyperskill.org/knowledge-map/73?v=table)|[wuher44](https://github.com/wuher44)| 181 | |Czy masz problem z układaniem podstawowych algorytmów i samodzielnym wykorzystywaniem podstaw języka?|[CodingBat](https://codingbat.com/java)|[honestit](https://github.com/honestit)| 182 | |Czy chcesz rozwinąć swoje umiejętności rozwiązywania zadań algorytmicznych na trudniejszych przykładach?|[SPOJ](https://pl.spoj.com/)|[honestit](https://github.com/honestit)| 183 | |Chcesz ćwiczyć programowanie rozwiązując zadania i mając z tego sporo frajdy?|[Hacker Rank](https://www.hackerrank.com/)|[honestit](https://github.com/honestit)| 184 | |j.w.|[CodeWars](https://www.codewars.com/)|[honestit](https://github.com/honestit)| 185 | |j.w.|[CodingGame](https://www.codingame.com/start)|[honestit](https://github.com/honestit)| 186 | |j.w.|[Leet Code](https://leetcode.com/)|[honestit](https://github.com/honestit)| 187 | |j.w.|[Coderbyte](https://coderbyte.com/)|[honestit](https://github.com/honestit)| 188 | |Chcesz przygotować się do zadań, z którymi możesz się spotkać na rozmowie rekrutacyjnej?|[Codility](https://app.codility.com/programmers/)|[honestit](https://github.com/honestit)| 189 | 190 | #### Tutoriale 191 | 192 | |Pytanie|Materiał|Autor propozycji| 193 | |:------|:-------|:--------------:| 194 | |Chcesz poznać konkretne sposoby (przepisy) rozwiązania problemów technicznych na zasadzie "How to do"?|[Jenkov](http://tutorials.jenkov.com/)|[honestit](https://github.com/honestit)| 195 | |j.w.|[JavaTpoint](https://www.javatpoint.com/java-tutorial)|[honestit](https://github.com/honestit)| 196 | |j.w.|[Java online](https://www.learnjavaonline.org/)|[honestit](https://github.com/honestit)| 197 | |j.w.|[Tutorials point](https://www.tutorialspoint.com/)|[honestit](https://github.com/honestit)| 198 | 199 | 200 | #### Zagadnienia zaawansowane 201 | 202 | Ostatnia, ale największa lista, dotyczy już konkretnych obszarów technicznych w świecie języka Java. Jeżeli mogę Ci coś zasugerować, to 203 | 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ę 204 | najbardziej atrakcyjne, najciekawsze i w ten sposób buduj swój potencjał i pozycję. 205 | 206 | ##### Projektowanie aplikacji 207 | 208 | |Pytanie|Materiał|Autor propozycji| 209 | |:------|:-------|:--------------:| 210 | |Ś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](https://github.com/iluwatar/java-design-patterns)|[honestit](https://github.com/honestit)| 211 | |Potrafisz programować, ale chcesz lepiej poznać zasady projektowania i rozpocząć przygodę ze wzorcami|[JournalDev Design Patterns](https://www.journaldev.com/1827/java-design-patterns-example-tutorial)|[honestit](https://github.com/honestit)| 212 | |Podstawowa grupa wzorców to dla Ciebie już za mało i chcesz wejść naprawdę głęboko i szeroko w temat?|[Java Design Pattersn](https://github.com/iluwatar/java-design-patterns)|[honestit](https://github.com/honestit)| 213 | |Korzystasz z framework'ów typu Hibernate lub Spring/JEE i chce je zrozumieć?| | | 214 | |- Chcesz poznać źródło wszystkiego?|[Enterprise Patterns Catalog](https://martinfowler.com/eaaCatalog/)|[honestit](https://github.com/honestit)| 215 | |- Interesuje Cię po co jest warstwa serwisów?|[Service Layer](https://martinfowler.com/eaaCatalog/serviceLayer.html)|[honestit](https://github.com/honestit)| 216 | |- Obiekty transferowe wydają Ci się tylko przepisywaniem kodu?|[Data Transfer Object](https://martinfowler.com/eaaCatalog/dataTransferObject.html)|[honestit](https://github.com/honestit)| 217 | |- Zastanawiasz się o co chodzi z tymi transakcjami w serwisach?|[Transaction Script](https://martinfowler.com/eaaCatalog/transactionScript.html)|[honestit](https://github.com/honestit)| 218 | |- Nie wiesz czemu poza transakcją musisz zapisać zmiany w encjach, a wewnątrz transackji zapisują się same?|[Unit of Work](https://martinfowler.com/eaaCatalog/unitOfWork.html)|[honestit](https://github.com/honestit)| 219 | |- Chcesz zrozumieć różnice między Servletami i np. Spring MVC?|[Front Controller](https://martinfowler.com/eaaCatalog/frontController.html)|[honestit](https://github.com/honestit)| 220 | |- Stosujesz wzorzec MVC, ale czasami zastanawiasz się czym jest "M"?|[MVC](https://martinfowler.com/eaaCatalog/modelViewController.html), [Page Controller](https://martinfowler.com/eaaCatalog/pageController.html)|[honestit](https://github.com/honestit)| 221 | |- Wykorzystujesz repozytoria albo dao?|[Repository](https://martinfowler.com/eaaCatalog/repository.html)|[honestit](https://github.com/honestit)| 222 | |- Zastanawiasz się jaką rolę pełni `EntityManager`?|[Identity Map](https://martinfowler.com/eaaCatalog/identityMap.html)|[honestit](https://github.com/honestit)| 223 | |- Czym są Twoje encje i jaką magię czyni Hibernate?|[Data Mapper](https://martinfowler.com/eaaCatalog/dataMapper.html)|[honestit](https://github.com/honestit)| 224 | |- Nurtuje Cię po co encji ten klucz główny?|[Identity Field](https://martinfowler.com/eaaCatalog/identityField.html)|[honestit](https://github.com/honestit)| 225 | |- Męczy Cię błąd `could not initialize lazy collection...`?|[Lazy Load](https://martinfowler.com/eaaCatalog/lazyLoad.html)|[honestit](https://github.com/honestit)| 226 | |- Korzystasz z `Criteria API` i chcesz wiedzieć jak to się ma do wzorców projektowych?|[Query Object](https://martinfowler.com/eaaCatalog/queryObject.html)|[honestit](https://github.com/honestit)| 227 | |- Jeżeli poznanie wierzchołka góry lodowej to dla Ciebie za mało?|[Patterns of Enterprise Architecture](https://martinfowler.com/books/eaa.html), Martin Fowler ([wydanie polskie](https://helion.pl/ksiazki/architektura-systemow-zarzadzania-przedsiebiorstwem-wzorce-projektowe-martin-fowler,szabko.htm#format/d))|[honestit](https://github.com/honestit)| 228 | 229 | 230 | ##### JPA, Hibernate i SQL 231 | 232 | |Pytanie|Materiał|Autor propozycji| 233 | |:------|:-------|:--------------:| 234 | |Polubiłeś/aś `Java Persistence API` i chcesz je poznać w całośći?|[Java Persistene API Specification](https://jcp.org/en/jsr/detail?id=338)|[honestit](https://github.com/honestit)| 235 | |`JPA` jest interesujące ale bardziej jesteś ciekaw/a możliwości Hibernate'a?|[Vlad Mihalcea Blog](https://vladmihalcea.com/)|[honestit](https://github.com/honestit)| 236 | |Czujesz, że SQL jest Twoim żywiołem albo że będzie Ci potrzebny i potrzebujesz lepiej wszystko zrozumieć?|[SQL ZOO](https://sqlzoo.net/)|[honestit](https://github.com/honestit)| 237 | 238 | ##### Servlety i Spring 239 | 240 | |Pytanie|Materiał|Autor propozycji| 241 | |:------|:-------|:--------------:| 242 | |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](https://www.youtube.com/watch?v=VzZV25YsSpk)|[honestit](https://github.com/honestit) 243 | |Polubiłeś/aś `Java Servlets` i aplikacje webowe, chcesz poznać wszystko w całości?|[Java Servlets 4.0 Specification](https://jcp.org/en/jsr/detail?id=369)|[honestit](https://github.com/honestit)| 244 | |Znasz już Servlety i chcesz lepiej poznać Spring'a?|[Spring Project](https://spring.io/guides)|[honestit](https://github.com/honestit)| 245 | |Spring jest świetny, ale oficjalna dokumentacja trochę Cię przerażą?|[Baeldung](https://www.baeldung.com/start-here)|[honestit](https://github.com/honestit)| 246 | |Obsługa transakcji w Spring|[Transactions and Transactions in Spring](https://www.marcobehler.com/guides/spring-transaction-management-unconventional-guide)|[honestit](https://github.com/honestit)| 247 | 248 | ##### Przygotowanie do rozmowy kwalifikacyjnej 249 | 250 | 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: 251 | 252 | |Pytanie|Materiał|Autor propozycji| 253 | |:------|:-------|:--------------:| 254 | |Darmowa rejestracja i kredyty na pierwsze rozmowy - odbywając rozmowy zdobywasz kredyt na kolejne|[Pramp](https://www.pramp.com/#/)|[ziehlke](https://github.com/ziehlke)| 255 | 256 | ##### Wszystko w jednym miejscu - RefCardz 257 | 258 | W sytuacji, kiedy dana technologia jest już Ci znana, ale chcesz szybko odświeżyć informacje (idealne przed rozmową rekrutacyjną), to polecam 259 | poniższą listę: 260 | 261 | |Pytanie|Materiał|Autor propozycji| 262 | |:------|:-------|:--------------:| 263 | |Java:| | | 264 | |- Podstawy|[Java Core](https://dzone.com/refcardz/core-java?chapter=1)|[honestit](https://github.com/honestit)| 265 | |- Wielowątkowość|[Java Concurrency](https://dzone.com/refcardz/core-java-concurrency?chapter=1)|[honestit](https://github.com/honestit)| 266 | |- Cacheowanie|[Java Caching](https://dzone.com/refcardz/java-caching?chapter=1)|[honestit](https://github.com/honestit)| 267 | |- JPA|[Started with JPA](https://dzone.com/refcardz/getting-started-with-jpa?chapter=1), [JPA 2.0](https://dzone.com/refcardz/whats-new-jpa-20?chapter=1)|[honestit](https://github.com/honestit) 268 | |Narzędzia:| | | 269 | |- IntelliJ|[IntelliJ](https://dzone.com/refcardz/intellij-idea-update?chapter=1)|[honestit](https://github.com/honestit)| 270 | |- Git|[Git](https://dzone.com/refcardz/getting-started-git?chapter=1)|[honestit](https://github.com/honestit)| 271 | |- Maven|[Maven](https://dzone.com/refcardz/getting-started-repository?chapter=1)|[honestit](https://github.com/honestit)| 272 | |- Tomcat|[Tomcat](https://dzone.com/refcardz/getting-started-with-apache-tomcat?chapter=1)|[honestit](https://github.com/honestit) 273 | |Technologie:| | | 274 | |- JUnit|[JUnit and EasyMock](https://dzone.com/refcardz/junit-and-easymock?chapter=1)|[honestit](https://github.com/honestit)| 275 | |- Wyrażenia regularne|[Regex](https://dzone.com/refcardz/regular-expressions?chapter=1)|[honestit](https://github.com/honestit)| 276 | |- Protokół HTTP|[HTTP](https://dzone.com/refcardz/http-hypertext-transfer-0?chapter=1)|[honestit](https://github.com/honestit)| 277 | |- JSON|[JSON](https://dzone.com/refcardz/core-json?chapter=1)|[honestit](https://github.com/honestit)| 278 | |- HTML|[HTML Core](https://dzone.com/asset/download/192)|[honestit](https://github.com/honestit)| 279 | |- HTML5|[HTML5 Features](https://dzone.com/refcardz/html5-new-standards-web-interactivity?chapter=1)|[honestit](https://github.com/honestit)| 280 | |- CSS|[CSS 1](https://dzone.com/refcardz/corecss-part1?chapter=1), [CSS 2](https://dzone.com/refcardz/corecss2?chapter=1), [CSS 3](https://dzone.com/refcardz/corecss3?chapter=1)|[honestit](https://github.com/honestit)| 281 | |Projektowanie:| | | 282 | |- Refaktoryzacja|[Refactoring Patterns](https://dzone.com/refcardz/refactoring-patterns?chapter=1)|[honestit](https://github.com/honestit)| 283 | |- Wzorce GoF|[Design Patterns](https://dzone.com/refcardz/design-patterns?chapter=1)|[honestit](https://github.com/honestit)| 284 | |- Wzorce architektoniczen|[Modular Patterns](https://dzone.com/refcardz/patterns-modular-architecture?chapter=1)|[honestit](https://github.com/honestit)| 285 | |- Wzorce integracyjne|[SOA Patterns](https://dzone.com/refcardz/soa-patterns?chapter=1)|[honestit](https://github.com/honestit)| 286 | 287 | --- 288 | 289 | ## Podsumowanie 290 | 291 | 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 292 | choć jeden z zamieszczonych tutaj linków przyczyni się do Twojego sukcesu, to będzie to wystarczające wynagrodzenia. 293 | 294 | ## Powodzenia! 295 | 296 | -------------------------------------------------------------------------------- /media/Programowanie-w-javie-solidne-fundamenty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/honestit/Junior_Java_Developer/b0f6f8e993185685106ca994ff00f18ba48eb479/media/Programowanie-w-javie-solidne-fundamenty.jpg -------------------------------------------------------------------------------- /media/good_programmer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/honestit/Junior_Java_Developer/b0f6f8e993185685106ca994ff00f18ba48eb479/media/good_programmer.jpg --------------------------------------------------------------------------------