Kurs Java Developer K-JAVA

Nauka programowania od podstaw

  • obiekty
  • algorytmy
  • GUI
  • SQL
  • Spring
  • Web
Warszawa
  • 14.12 - zaoczny (sob-niedz., średnio co 2 tygodnie)
    zostało 8 miejsc
  • 19.12 - dzienny (bloki 3- lub 4-dniowe, średnio co 2 tyg.)
Zdalnie
  • 14.12 - zaoczny (sob-niedz., średnio co 2 tygodnie)
    zostało 8 miejsc
  • 19.12 - dzienny (bloki 3- lub 4-dniowe, średnio co 2 tyg.)

Tryb zdalny: online na żywo z trenerem i grupą (→ więcej o kursach zdalnych). Można: zrezygnować do 15 dni przed startem; w każdej chwili przejść na tryb zdalny; w razie potrzeby skorzystać z nagrań. W cenie:
- stanowisko komputerowe i poczęstunek (dla zajęć stacjonarnych)
- dla chętnych dodatkowe, bezpłatne warsztaty HR
- dostęp do nagrań z zajęć w razie potrzeby
Kursy dostępne również na zamówienie, w terminie i lokalizacji do uzgodnienia, dla grup od 6 osób.

4,7/5 (1259)
Stars
Pakiet Standard:

dla tych, którzy chcą wejść do świata IT, porządnie nauczyć się programowania i wykorzystać to w małych projektach

4790 PLN

lub 958 PLN miesięcznie (5 rat)

80 godzin zajęć na żywo
+40h pracy samodzielnej

Pakiet XL:

dla tych, którzy chcą osiągnąć poziom junior developera aplikacji webowych

8990 PLN

lub 1798 PLN miesięcznie (5 rat)

160 + 80 godzin

icon percent first minute (30+ dni do startu) - 3%

Wersja podstawowa


1. Wprowadzenie do programowania

  • Jak rozmawiać z komputerem?
    • Kod maszynowy i kod źródłowy
    • Języki programowania, kompilatory, interpretery
    • Proces, program, aplikacja
  • Rzut oka na współczesny świat technologii programistycznycha
    • Rodzaje aplikacji: frontend vs backend, aplikacje wsadowe, graficzne, webowe i mobilne; adekwatne technologie
    • Przegląd języków i paradygmatów programowania
    • Platforma Java – dlaczego powstała, jej miejsce w dzisiejszym świecie IT, cechy charakterystyczne i zastosowania
    • Biblioteki i frameworki

    2. Konfiguracja środowiska pracy

    • Instalacja i konfiguracja platformy Java
      • Podstawy pracy w wierszu poleceń
      • Kompilacja i uruchamianie
      • Interaktywny interpreter jshell
    • Instalacja i konfiguracja wybranego środowiska deweloperskiego (IDE)
      • Przegląd środowisk właściwych dla języka Java
      • Zalety IDE i techniki pozwalające na sprawną pracę

    3. Pierwsze kroki w Javie

    • Budowa programu w języku Java
    • Struktura projektu: pliki źródłowe i skompilowane, katalogi, pakiety, klasy
    • Konwencje dot. nazw i formatowania kodu
    • Proste metody komunikacji z użytkownikiem: standardowe wejście i wyjście, okna dialogowe

    4. Podstawowe techniki programistyczne

    • Zmienne i typy
      • Podstawowe typy danych: liczby całkowite i z ułamkiem, napisy, typ logiczny
      • Wyrażenia arytmetyczne i logiczne
    • Instrukcje sterujące języka Java
      • Instrukcje warunkowe: if, switch
      • Pętle: while, for
      • Pisanie prostych algorytmów
    • Tablice
    • Elementy proceduralnego stylu programowania
      • Metody w języku Java
      • Tworzenie sparametryzowanych funkcji i procedur
      • Wydzielanie powtarzających się fragmentów kodu; podstawy refaktoryzacji

    5. Programowanie obiektowe w Javie

    • Obiektowy styl programowania
      • Czym są obiekty, czym są klasy?
      • Odniesienia do pojęć ze świata rzeczywistego
    • Obiekty i klasy technicznie
      • Elementy składowe klas, budowa obiektów
      • Struktura pamięci maszyny wirtualnej Javy; stos i sterta; referencje do obiektów
    • Dziedziczenie i interfejsy
      • Rozszerzanie klas i nadpisywanie metod
      • Polimorfizm, zasada podstawiania
      • Interfejsy i klasy abstrakcyjne
    • Enkapsulacja (hermetyzacja)
      • Modyfikatory widoczności
      • Techniki i korzyści z enkapsulacji
    • Wyjątki w języku Java

    6. Aplikacje z graficznym interfejsem użytkownika

    • GUI w programowaniu obiektowym: komponenty graficzne jako obiekty
    • Technologia Swing jako jedna z możliwości tworzenia GUI w Javie
    • Obsługa zdarzeń w aplikacji okienkowej
    • Budowanie interfejsu użytkownika na dwa sposoby: pisząc odpowiedni kod w Javie oraz za pomocą edytora graficznego

    7. Najważniejsze klasy narzędziowe platformy Java SE

    • Napisy
      • Klasa String: możliwości i ograniczenia
      • Budowanie napisów
      • Przetwarzanie tekstu, w tym podstawy wyrażeń regularnych
    • Kolekcje: listy, zbiory, słowniki; Java Collections Framework
      • Wykorzystanie w algorytmach i schematach przetwarzania danych
      • Wpływ właściwego doboru struktur danych na wydajność aplikacji
    • Podstawy funkcyjnych technik programowania: lambdy i strumienie
    • Obsługa daty i czasu
    • Obsługa plików
      • Pliki binarne i tekstowe, bajty i znaki, kodowania znaków
      • Strumienie wejścia/wyjścia i podstawowa obsługa plików w programach Javy (z większym naciskiem na pliki tekstowe)
      • Klasa Files i operowanie na całych plikach
      • Popularne formaty zapisywania danych strukturalnych i podstawy ich obsługi w Javie: CSV, XML, JSON
      • Dostęp do zdalnych serwisów typu Web API / Rest API

    Wersja XL - dodatkowe tematy


    8. Java - elementy zaawansowane

    • Wątki i synchronizacja
      • Elementy wielowątkowości wbudowane w język Java
      • Klasy biblioteki standardowej wspierające wielowątkowość
    • Typy generyczne
    • Elementy programowania funkcyjnego od Javy 8
      • Wyrażenia lambda i referencje do metod
      • Strumienie i operacje na nich
      • Redukcje, kolektory i schematy przetwarzania danych

    9. Maven jako standard budowy projektów w świecie Javy

    • Budowanie projektów Java: command-line/Ant/Maven/Gradle
    • Projekt jako biblioteka; zależności między projektami
    • Centralne Repozytorium Mavena i wykorzystywanie bibliotek „trzeciej strony” we własnych projektach
      • Przegląd użytecznych bibliotek programistycznych open source

    10. Dodatkowe narzędzia, biblioteki i techniki pracy

    • GIT i kontrola wersji kodu
      • Zapisywanie i odtwarzanie historii zmian
      • Rozgałęzienia i ich późniejsze łączenie (branch/merge)
      • Repozytoria lokalne i zdalne; różne scenariusze pracy zespołowej
    • Testy i kontrola jakości kodu
      • Zapewnianie poprawności oprogramowania
      • Dobre i złe praktyki programistyczne
      • Wypisywanie informacji diagnostycznych (tzw. logów)
      • Uruchamianie programu w trybie debug
      • JUnit i testy jednostkowe w Javie
      • Dodatkowe biblioteki przydatne w pisaniu testów: AssertJ, Mockito

    11. Tworzenie aplikacji webowych na platformie Java

    • Zasada działania aplikacji webowej strony serwera
      • Protokół HTTP
      • Podstawy HTML i CSS - w razie potrzeby
    • Podstawy technologii serwletów w Javie
      • Filozofia pracy na serwerze aplikacji. Czym jest Java Enterprise Edition? RedHat WildFly i inne serwery aplikacji
      • Obsługa żądań i generowanie odpowiedzi
      • Parametry zapytań i obsługa formularzy
      • Utrzymywanie sesji i atrybuty w różnych zakresach
      • Wprowadzenie do technologii Java Server Pages (JSP) i różne podejścia do podziału odpowiedzialności między JSP a Javę

    12. Framework aplikacyjny Spring

    • Tworzenie i uruchamianie projektu w oparciu o Spring Boot
    • Aplikacja webowa w technologii Spring MVC
      • Kontroler: rola, zasada działania, mapowanie URL-i i wybór metody na podstawie zapytania
      • Obsługa parametrów i nagłówków
      • Warstwa widoku i technologie szablonowe (JSP / Thymeleaf)
      • Model: przekazywanie danych między aplikacją a widokiem
      • Obsługa formularzy
    • Zasada działania aplikacji Spring
      • Warstwy typowego projektu
      • Adnotacje i wstrzykiwanie zależności; rola interfejsów w projektach Spring
      • Różne sposoby inicjalizacji i wstrzykiwania komponentów („beanów”)
    • Zabezpieczanie aplikacji - podstawy Spring Security

    13. Bazy danych i ich obsługa w Javie

    • Wprowadzenie do technologii baz danych
      • Serwer baz danych (DBMS)
      • Koncepcja relacyjnych baz danych i pomysły alternatywne
      • Instalacja i konfiguracja PostgreSQL lub innego serwera baz danych
    • Podstawy języka SQL
      • Polecenie SELECT, wyrażenia i warunki
      • Sortowanie i grupowanie
      • Łączenie danych z wielu tabel
      • Wstawianie i aktualizacja danych
    • Projektowanie relacyjnych baz danych (na przykładzie)
      • Definiowanie tabel, typy kolumn
      • Klucze i inne więzy integralności
      • Unikanie redundancji, postacie normalne
    • JDBC i bezpośrednie zadawanie zapytań SQL z aplikacji Java
      • Zalety i wady bezpośredniego dostępu do baz danych
      • Modyfikacja danych i praca z transakcjami
    • Obiektowy dostęp do baz danych (ORM) w technologii JPA/Hibernate
      • Klasy encji; generowanie na podstawie tabel
      • Operacje odczytu i modyfikacji danych
      • Zadawanie własnych zapytań JPQL oraz natywnych
    • Dostęp do danych z aplikacji Spring
      • Warstwa danych („repository”) w aplikacji Spring
      • Automatyczne instancjonowanie interfejsu przez technologię Spring Data

    14. Usługi sieciowe („web services”)

    • Koncepcja SOA i rodzaje usług sieciowych
    • Usługi sieciowe typu SOAP
      • Technologia JAX-WS i tworzenie serwera SOAP w ramach Java EE
      • Generowanie i rola WSDL
      • Tworzenie klienta i architektura klient/serwer
    • Usługi typu REST
      • Zasoby, URL-e i metody HTTP
      • Technologia JAX-RS i tworzenie serwera REST w ramach Java EE
      • Parametry, nagłówki, odnośniki i przekierowania
      • Rozszerzanie JAX-RS o własne typy zawartości na przykładzie generowania PDF
      • Tworzenie serwera REST za pomocą Spring MVC
      • Dostęp do usług REST od strony klienta

    15. Zastosowania języka i platformy Java (w ramach całego kursu)

    • Tworzenie aplikacji tekstowych i wsadowych
      • Zastosowanie Javy do przetwarzania danych zawartych w plikach
    • Tworzenie aplikacji z graficznym interfejsem użytkownika
    • Tworzenie aplikacji webowych
      • w oparciu o serwlety i JSP (podstawy)
      • w oparciu o Spring MVC i Thymeleaf
    • Podstawy tworzenia usług sieciowych typu SOAP i REST