Przed napisaniem jakiegokolwiek kawałka kodu niezbędne jest poznanie narzędzi i oprogramowania, dzięki któremu wytwarzanie oprogramowania będzie proste i przyjemne. Konieczne jest również zapoznanie się z zasadą działania aplikacji napisanych w języku Java i sposobie zamieniania kodu napisanego przez programistę w działający program.
Środowisko programistyczne Intellij
Narzędzia języka Java
Programowanie w dowolnym języku składa się z pewnych podstawowych koncepcji i założeń, dlatego naukę programowania rozpoczynamy od zapoznania się właśnie z nimi.
Pierwsza aplikacja
Struktura aplikacji w Java
Uruchamianie projektu
Typy danych w Java
Zmienne
Operatory wbudowane w język Java
Instrukcje warunkowe
Pętle
Tablice
Kiedy tworzone programy stają się coraz większe i bardziej skomplikowane podstawowe mechanizmy programowania przestają nam wystarczać. Tu do gry wchodzi idea programowania obiektowego. Musimy zapoznać się z tą techniką programowania, zasadami obiektowości w języku Java oraz narzędziami języka Java związanymi z obiektowością.
Klasy i obiekty
Metody
Enkapsulacja
Dziedziczenie
Polimorfizm
Abstrakcja w języku Java
Static oraz final
Konwersja i rzutowanie
Oprócz samego sterowania aplikacją niezwykle ważne są również sposoby przetwarzania i przechowywania danych w pamięci komputera. Z tego właśnie powodu musimy zapoznać się ze strukturami danych w języku Java, sposobami wielowątkowego, równoległego przetwarzania tych danych i sposobem zarządzania pamięcią w Java. Poza działającą aplikacją wymiernym efektem pracy programisty jest jakość kodu, który wytwarza -poznamy również mechanizmy pozwalające upraszczać, skracać i porządkować kod który piszemy.
Kolekcje
Wyjątki
Wielowątkowość
Strumienie wejścia/wyjścia
Obsługa plików
Typy generyczne
Interfejs funkcyjny
Strumienie oraz wyrażenia lambda
Wartości opcjonalne w Java
Zarządzanie pamięcią –GC
Debugowanie aplikacji
Oprócz danych przechowywanych w pamięci aplikacji, musimy również przechowywać wiele danych “na stałe”. Do tego wykorzystujemy bazy danych. Musimy zapoznać się z działaniem baz danych oraz ich obsługą. Nauczymy się również sposobów łączenia aplikacji napisanych w języku Java z bazami danych wykorzystując nowoczesne biblioteki i API języka Java.
Relacyjne bazy danych
Język SQL
JOIN
JDBC
Będziemy również potrzebować narzędzi do utrzymywania i zarządzania projektami oraz kontroli wersji oprogramowania. Kiedy nasze aplikacje staną się bardziej skomplikowane sam język Java przestanie nam wystarczać. Nauczymy się wykorzystywać dodatkowe narzędzia zewnętrzne, nie wbudowane w język Java. Poznamy nowe idee i koncepcje tworzenia komercyjnych aplikacji. Aby zobaczyć efekty naszej pracy wprowadzimy interfejs użytkownika do aplikacji Java i napiszemy testy automatyczne sprawdzające poprawność ich działania.
Maven
GIT
Spring Boot
Spring IoC
Metody konfiguracji Spring
Spring MVC
Kiedy aplikacje stają się ogromne chcemy zmienić podejście do ich wytwarzania. Korzystamy w metody “dziel i zwyciężaj”, czyli dzielimy nasz wielki projekt na kilka mniejszych programów. Żeby te mniejsze “moduły” naszego systemu mogły ze sobą współpracować musimy nauczyć się sposobów na zaimplementowanie komunikacji między nimi.
REST
Oprócz wytwarzania oprogramowania programista musi również dokumentować wytwarzany kod oraz projekty aplikacji. Nauczymy się, jakie dokumenty funkcjonują w świecie IT i dowiemy się jak przekładać nasz kod na formę papierową w postaci diagramów UML. Poznamy również strategie pracy podczas wytwarzania oprogramowania.
Scrum
Dokumentacje w IT
UML