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.
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?
Czym jest JDK, JRE, JVM?
Czym jest SE EE ME FX?
To są providerzy JDK?
Jak działa wersjonowanie w Java?
Instalacja JDK - weryfikacja instalacji
Czym jest kompilacja i kompilator? Uruchomienie Javy z terminala
Instalacja Intellij
Środowisko pracy - test 1
Intellij IDEA
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
Totalna abstrakcja - drukowanie kotów | Pierwszy program - podejdź do tego materiału z dystansem 😉
Zmienne
Jak zapisywane są zmienne w pamięci
Co to jest zmienna
Typy prymitywne
Mogę przypisać zmienną do zmiennej?
Słówko final
Rzutowanie
String i string pool
Konkatenacja stringów
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'
Operatory
Operatory arytmetyczne - dodawanie, odejmowanie itp.
Kolejność operatorów
Numeric promotion
Operatory relacji
Operatory logiczne
Operatory bitowe
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
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
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
Tablice wielowymiarowe
Sortowanie i binarySearch()
Bubble sort
VarArgs
Test 7 - Tablice
Zadania 6 - Arrays - z rozwiązaniami
Notatki 6 - Arrays
Programowanie obiektowe
Klasa a obiekt
What is OOP?
Zasięg zmiennych, metody vs pola
Domyślna wartość zmiennych
Overloading
This
equals() i hashCode()
ToString
Referencje a prymitywy, wstęp do stack i heap
Autoboxing
Dziedziczenie i Object, wielokrotne dziedziczenie
Obiekt a referencja
Modyfikatory dostępu, enkapsulacja, hermetyzacja
Konstruktory, przeciążanie konstruktorów
Test 8 - Programowanie obiektowe cz. 1
Notatki 7 - Object programming cz. 1
Overriding
Bloki inicjalizacyjne
Gettery i Settery
Kolejność elementów w klasie
Klasy abstrakcyjne
Interfejsy, podstawy, implementacja, dziedziczenie
Default methods w interfejsach
Polimorfizm, tracenie dostępnych metod
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
Immutable, rozszerzenie słówka final o klasy, metody
Import kilku klas o tej samej nazwie z kilku pakietów
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
Co to jest enum?
Sposoby pracy z enum
Test 11 - Enumy
Zadania 8 - Enum - z rozwiązaniami
Notatki 10 - Enum
Debugowanie
Notatki 11 - Debugging
Static
Czym jest static?
Definiowanie stałych
Instance, local, class variables
Dziedziczenie elementów statycznych klasy
Static import
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
Wyjątki
Co to i po co to?
Diagram hierarchii wyjątków
Try … catch
Wyjątki checked i unchecked
Czym jest stacktrace?
Łapiemy spadające wyjątki - hierarchia
Overriding i overloading a wyjątki
Wyjątki w konstruktorach
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
Kolekcje
Co to są kolekcje?
List i ArrayList
List i LinkedList
ArrayList vs LinkedList
Dlaczego lepiej używać Interfejsu w definicji zmiennej
Set i HashSet
Map i HashMap
Iterator
Zamiana listy na tablicę
Kolekcje w klasie immutable
Test 14 - Collections
Zadania 11 - Collections - z rozwiązaniami
Notatki 14 - Collections
Stack i Heap - Java memory model
Test 15 - Model pamięci
Zadania 12 - Java memory model - z rozwiązaniami
Notatki 15 - Java memory model
Java 8 date & time
Wprowadzenie
LocalDate, LocalTime, LocalDateTime
Manipulacja datami
OffsetDateTime
ZonedDateTime
Period
Duration
Instant
Formatting and parsing
Test 16 - Date & Time
Zadania 13 - Date & Time - z rozwiązaniami
Notatki 16 - Date & Time
Lambda
Czym jest lambda?
Pierwsze lambdy
Predykaty
Test 17 - Simple Lambdas
Zadania 14 - Lambda - z rozwiązaniami
Notatki 17 - Lambda
Przydatne klasy z Core Java Api
StringBuilder
BigInt
BigDecimal
Optional
Test 18 - Przydatne klasy z Java API
Zadania 15 - Core Java API - z rozwiązaniami
Notatki 18 - Core Java API
Refactoring Cz. 1
Refactoring Cz. 2
Notatki 19 - Refactoring
Kalkulator kredytu hipotecznego
Wstęp
Dane wejściowe
Drukowanie danych wejściowych
Serwis liczący kredyt (Mortgage calculation service)
Serwis liczący raty (Rate calculation service)
Punkty czasowe (timepoint)
Serwis liczący punkty czasowe (timepoint calculation service)
Serwis liczący kwoty składowe raty (amounts calculation service)
Serwis liczący pozostałą kwotę spłaty (residual calculation service)
Drukowanie rozpiski rat (drukowanie tabelki)
Stworzenie podsumowania
Dokładność obliczeniowa
Nadpłata z redukcją czasu trwania (reduce period) cz.1
Nadpłata z redukcją czasu trwania (reduce period) cz.2
Rozdzielenie serwisu liczącego kwoty (amounts calculation service)
Nadpłata z zachowaniem czasu trwania (reduce rate)
Podsumowanie i zabawa parametrami
Zadania 16 - Kalkulator Kredytu Hipotecznego - z rozwiązaniami
Klasy zagnieżdżone
Member inner classes (Main$Inner.class)
Local inner classes
Anonymous inner classes
Static nested classes
Multiple classes in one file
Test 19 - Klasy wewnętrzne i zagnieżdżone
Notatki 20 - Inner Classes