Harmonogram 'Bootcampu Zajavka - Java w 12 tygodni'

Wróć do strony głównej Zajavka

Publikujemy Ci ten harmonogram z dwóch ważnych powodów. Przede wszystkim po to byś łatwiej mógł(a) się odnaleźć w tym, jak przebiega nauka, kiedy uczymy się czego, kiedy należy zrobić test, kiedy pobrać i przeczytać notatki czy wykonać zadania. Dzięki takiej 'mapie' droga Twojej nauki stanie się bardziej czytelna. Po drugie co prawda Bootcamp robisz we własnym tempie, to my rekomendujemy Ci wykonanie go w 12 tygodni. Dlatego też harmonogram jest podzielony wg takiego schematu. Oczywiście Twój tydzień nie musi zaczynać się w poniedziałek, zakładamy jednak, że trwa 7 dni, podczas których 6 dni to nauka. 5 dni tej nauki to materiały, w których występuje [Karol] oraz [Karol i Bartek K.], podczas gdy dzień 6 to materiał, w którym występuje [Karol i Bartek B.]. Dzień 7 to odpoczynek 😀. Oczywiście zrobisz jak zechcesz, byle robić systematycznie bez dłuższych przerw.

Chcemy jeszcze wspomnieć o jednej ważnej kwestii technicznej. Języki programowania żyją, są cały czas aktualizowane i wychodzą ich nowsze wersje. My o tym wiemy (inaczej nie przygotowywalibyśmy tych materiałów 😉) i Ty też zauważysz to na pewnym etapie nauki. Pamiętaj, że Bootcamp Zajavka został przygotowany w taki sposób, żeby wprowadzić Cię w świat Javy i dać Ci możliwość zapoznania się z podstawowymi aspektami tego języka. Oznacza to, że w ramach Bootcampu nie będziemy skupiać się na nowinkach technicznych, które zostały wprowadzone w kolejnych, coraz nowszych wersjach Javy (w ramach Bootcampu tłumaczymy czym są wersje Javy 😉) - skupimy się na podstawach programowania i podstawach konstrukcji tego języka. Moment, w którym dowiemy się o nowościach i nowinkach, przyjdzie w dalszych częściach kursu. Żeby dowiedzieć się jak wygląda dalsza część Zajavki, zapoznaj się z harmonogramem warsztatów 😉.

Bootcamp jest skonstruowany w taki sposób, żeby wprowadzić Cię w świat programowania w Javie. Oznacza to, że Bootcamp nie pozwoli Ci jeszcze opanować programowania w takim stopniu, by zdobyć pracę jako programista(ka). Jednak nie musisz zostać na takim poziomie, bowiem po zakończeniu Bootcampu przygotowaliśmy cykl warsztatów, niezależnych od Bootcampu, które pozwolą ich uczestnikom wskoczyć na poziom wymagany w pracy jako Java Developer. Cała ścieżka Zajavki to Bootcamp i seria warsztatów.



TYDZIEŃ 1

Dzień #1 - Przywitanie z Javą

Wstęp do języka - materiały promocyjne

Po co Ci ten Bootcamp? Co da się zrobić po jego ukończeniu?

W jakich sytuacjach wykorzystuje się Java w praktyce?

Ile osób pracuje w Javie?

Po co się w ogóle tego uczyć?

Sposób myślenia - jak myśleć jak programista?

Środowisko pracy

Jakie narzędzia będą nam potrzebne?

Dzień #2 - JDK, JRE, JVM, wersje i providerzy

Czym jest JDK, JRE, JVM?

Czym jest SE EE ME FX?

To są providerzy JDK?

Jak działa wersjonowanie w Java?

Dzień #3 - Instalacja i konfiguracja Javy oraz IntelliJ IDEA

Instalacja JDK - weryfikacja instalacji

Czym jest kompilacja i kompilator? Uruchomienie Javy z terminala

Instalacja Intellij

Środowisko pracy - test 1

Dzień #4 - Omawiamy IDE

Intellij IDEA

Dzień #5 - Metoda main, słowa zastrzeżone, komentarze

A więc chcesz programować?

Zaczynamy kodowanie! Metoda main()

Komentarze

TODO i FIXME

package & import

Java keywords

Test 2 - A więc chcesz programować?

Zadania 1 - z rozwiązaniami

Notatki 1 - Wprowadzenie



TYDZIEŃ 2

Dzień #6 - Abstrakcyjne koty

Totalna abstrakcja - drukowanie kotów | Pierwszy program - podejdź do tego materiału z dystansem 😉

Dzień #7 - Zmienne (Variables)

Zmienne

Jak zapisywane są zmienne w pamięci

Co to jest zmienna

Typy prymitywne

Dzień #8 - cd. zmiennych oraz String

Mogę przypisać zmienną do zmiennej?

Słówko final

Rzutowanie

String i string pool

Konkatenacja stringów

Dzień #9 - String intern, metody klasy String, var, czym jest metoda

String.intern()

Ważne metody z klasy String

Konwencja nazewnictwa

Formatowanie i drukowanie Stringów

Czym jest var?

Czym jest metoda?

Zasięg i cykl życia zmiennych - na przykładzie metod

Test 3 - Zmienne

Zadania 2 - Variables - z rozwiązaniami

Notatki 2 - Variables

Materiał bonusowy (wideo) - 'keyboard master - skróty klawiszowe'

Dzień #10 - operatory

Operatory

Operatory arytmetyczne - dodawanie, odejmowanie itp.

Kolejność operatorów

Numeric promotion

Operatory relacji

Operatory logiczne

Operatory bitowe



TYDZIEŃ 3

Dzień #11 - kończymy operatory i zaczynamy instrukcje sterujące

Złożone operatory przypisania

Test 4 - Operatory

Zadania 3 - Operators - z rozwiązaniami

Notatki 3 - Operators

Instrukcje sterujące

If … else

If … else bez klamer

Ternary operator

Dzień #12 - Instrukcje sterujące i pętle

Switch

Goto (które de facto nie istnieje w Javie)

Test 5 - Instrukcje sterujące

Zadania 4 - Conditionals - z rozwiązaniami

Notatki 4 - Conditionals

Pętle

While

While bez klamer

Do...while

For

Break i continue

Dzień #13 - optional loop labels, return w pętli i tablice jednowymiarowe

Optional loop labels

Return w pętli

Test 6 - Pętle

Zadania 5 - Loops - z rozwiązaniami

Notatki 5 - Loops

Tablice

Tablice jednowymiarowe

Pętla foreach i operacje na tablicach

Dzień #14 - tablice wielowymiarowe

Tablice wielowymiarowe

Dzień #15 - sortowanie

Sortowanie i binarySearch()

Bubble sort

VarArgs

Test 7 - Tablice

Zadania 6 - Arrays - z rozwiązaniami

Notatki 6 - Arrays



TYDZIEŃ 4

Dzień #16 - Przechodzimy do programowania obiektowego!

Programowanie obiektowe

Klasa a obiekt

What is OOP?

Zasięg zmiennych, metody vs pola

Domyślna wartość zmiennych

Dzień #17 - this is it

Overloading

This

equals() i hashCode()

Dzień #18 - referencje, autoboxing, dziedziczenie, toString

ToString

Referencje a prymitywy, wstęp do stack i heap

Autoboxing

Dziedziczenie i Object, wielokrotne dziedziczenie

Obiekt a referencja

Test 8 - Programowanie obiektowe cz. 1

Notatki 7 - Object programming cz. 1

Dzień #19 - Konstruktory i modyfikatory dostępu

Modyfikatory dostępu, enkapsulacja, hermetyzacja

Konstruktory, przeciążanie konstruktorów

Dzień #20 - Overriding, bloki inicjalizacyjne

Overriding

Bloki inicjalizacyjne



TYDZIEŃ 5

Dzień #21 - Gettery i settery, kolejność elementów, klasy abstrakcyjne

Gettery i Settery

Kolejność elementów w klasie

Klasy abstrakcyjne

Dzień #22 - interfejsy - polimorfizm - default methods

Interfejsy, podstawy, implementacja, dziedziczenie

Default methods w interfejsach

Polimorfizm, tracenie dostępnych metod

Dzień #23 - rzutowanie, pass by reference/value, is a has a

Rzutowanie

Is Java pass by reference or pass by value?

Is-a has-a

Test 9 - Programowanie obiektowe cz. 2

Notatki 8 - Object programming cz. 2

Dzień #24 - Immutable, import

Immutable, rozszerzenie słówka final o klasy, metody

Import kilku klas o tej samej nazwie z kilku pakietów

Dzień #25 - Java benefits, method chaining, garbage collection

Ktoś za nas posprząta? Garbage collection, finalize()

Zalety Java

Method chaining

W jaki sposób kompilator Javy nam pomaga?

Test 10 - Programowanie obiektowe cz. 3

Zadania 7 - Object programming - z rozwiązaniami

Notatki 9 - Object programming cz. 3


TYDZIEŃ 6

Dzień #26 - enum

Co to jest enum?

Sposoby pracy z enum

Test 11 - Enumy

Zadania 8 - Enum - z rozwiązaniami

Notatki 10 - Enum

Dzień #27 - debugging

Debugowanie

Notatki 11 - Debugging

Dzień #28 - czym jest static, definiowanie stałych

Static

Czym jest static?

Definiowanie stałych

Instance, local, class variables

Dzień #29 - static import, dziedziczenie elementów klasy

Dziedziczenie elementów statycznych klasy

Static import

Dzień #30 - statyczne bloki inicjalizacyjne, kolejność elementów w klasie, metody …

Statyczne bloki inicjalizacyjne i kolejność inicjalizacji

Kolejność elementów w klasie

Metody statyczne w interfejsach

Test 12 - Static

Zadania 9 - Static - z rozwiązaniami

Notatki 12 - Static



TYDZIEŃ 7

Dzień #31 - Czym są wyjątki, diagram hierarchii, try... catch, checked i …

Wyjątki

Co to i po co to?

Diagram hierarchii wyjątków

Try … catch

Wyjątki checked i unchecked

Czym jest stacktrace?

Słówko finally (nie mylić z final)

Dzień #32 - Łapiemy spadające wyjątki - hierarchia wyjątków, overriding i overloading …

Łapiemy spadające wyjątki - hierarchia

Overriding i overloading a wyjątki

Dzień #33 - Wyjątki w konstruktorach

Wyjątki w konstruktorach

Dzień #34 - Wyjątki w blokach inicjalizacyjnych, rzucanie wyjątku w catch i finally …

Wyjątki w blokach inicjalizacyjnych

Rzucanie wyjątku w catch i finally

Łapanie errorów

Test 13 - Exceptions

Zadania 10 - Exceptions - z rozwiązaniami

Notatki 13 - Exceptions

Dzień #35 - Co to są kolekcje

Kolekcje

Co to są kolekcje?



TYDZIEŃ 8

Dzień #36 - List i ArrayList

List i ArrayList

Dzień #37 - List i LinkedList, ArrayList vs LinkedList

List i LinkedList

ArrayList vs LinkedList

Dzień #38 - Set i HashSet, interfejs w definicji zmiennej

Dlaczego lepiej używać Interfejsu w definicji zmiennej

Set i HashSet

Dzień #39 - Map i HashMap

Map i HashMap

Dzień #40 - iterator, converting between Array and List, kolekcje w klasie immutable

Iterator

Zamiana listy na tablicę

Kolekcje w klasie immutable

Test 14 - Collections

Zadania 11 - Collections - z rozwiązaniami

Notatki 14 - Collections



TYDZIEŃ 9

Dzień #41 - Memory model

Stack i Heap - Java memory model

Test 15 - Model pamięci

Zadania 12 - Java memory model - z rozwiązaniami

Notatki 15 - Java memory model

Dzień #42 - Java 8 date & time - wprowadzenie, LocalDate, LocalTime...

Java 8 date & time

Wprowadzenie

LocalDate, LocalTime, LocalDateTime

Manipulacja datami

Dzień #43 - OffsetDateTime, ZonedDateTime, Period

OffsetDateTime

ZonedDateTime

Period

Dzień #44 - Duration, Instant, formatting and parsing

Duration

Instant

Formatting and parsing

Test 16 - Date & Time

Zadania 13 - Date & Time - z rozwiązaniami

Notatki 16 - Date & Time

Dzień #45 - Lambda - wstęp, pierwsze lambdy, predykaty

Lambda

Czym jest lambda?

Pierwsze lambdy

Predykaty

Test 17 - Simple Lambdas

Zadania 14 - Lambda - z rozwiązaniami

Notatki 17 - Lambda



TYDZIEŃ 10

Dzień #46 - StringBuilder

Przydatne klasy z Core Java Api

StringBuilder

Dzień #47 - BigInt i BigDecimal

BigInt

BigDecimal

Dzień #48 - Optional

Optional

Test 18 - Przydatne klasy z Java API

Zadania 15 - Core Java API - z rozwiązaniami

Notatki 18 - Core Java API

Dzień #49 - Refactoring (Refaktoryzacja, ang. refactoring) cz. 1

Refactoring Cz. 1

Dzień #50 - Refactoring (Refaktoryzacja, ang. refactoring) cz. 2

Refactoring Cz. 2

Notatki 19 - Refactoring



TYDZIEŃ 11

Dzień #51 - Projekt cz.1

Kalkulator kredytu hipotecznego

Wstęp

Dane wejściowe

Drukowanie danych wejściowych

Dzień #52 - Projekt cz.2

Serwis liczący kredyt (Mortgage calculation service)

Serwis liczący raty (Rate calculation service)

Dzień #53 - Projekt cz. 3

Punkty czasowe (timepoint)

Serwis liczący punkty czasowe (timepoint calculation service)

Dzień #54 - Projekt cz. 4

Serwis liczący kwoty składowe raty (amounts calculation service)

Serwis liczący pozostałą kwotę spłaty (residual calculation service)

Dzień #55 - Projekt cz. 5

Drukowanie rozpiski rat (drukowanie tabelki)

Stworzenie podsumowania

Dokładność obliczeniowa



TYDZIEŃ 12

Dzień #56 - Projekt cz. 6

Nadpłata z redukcją czasu trwania (reduce period) cz.1

Nadpłata z redukcją czasu trwania (reduce period) cz.2

Dzień #57 - Projekt cz. 7

Rozdzielenie serwisu liczącego kwoty (amounts calculation service)

Dzień #58 - Projekt cz. 8

Nadpłata z zachowaniem czasu trwania (reduce rate)

Podsumowanie i zabawa parametrami

Zadania 16 - Kalkulator Kredytu Hipotecznego - z rozwiązaniami

Dzień #59 - Klasy zagnieżdżone w Javie, cz. 1

Klasy zagnieżdżone

Member inner classes (Main$Inner.class)

Local inner classes

Dzień #60 - Klasy zagnieżdżone, cz. 2

Anonymous inner classes

Static nested classes

Multiple classes in one file

Test 19 - Klasy wewnętrzne i zagnieżdżone

Notatki 20 - Inner Classes

Wróć do strony głównej Zajavka