Nauka programowania

Poznaj techniki programowania obiektowego w Java/C# oraz inne języki aby poznać szeroką perspektywę technologii i ich zastosowań.

Program szkoleń

Proponowany jest główny nacisk na poznanie języków obiektowych - Java/C#. W ramach szkolenia zaprezentowane zostaną też języki: Python, C++, JavaScript/HTML/CSS oraz Lua. Celem jest poznanie metodologii projektowania aplikacji przy użyciu języków obiektowych oraz zademonstrowanie różnic między językami programowania oraz ich zastosowaniem.

Moduł / TematZawartość90h140h320h
Wprowadzenie do szkolenia i programowania: zmienne, typy, operatory, instrukcje warunkowe i pętle
Na czym polega praca programisty? Podstawy programowania: deklaracja zmiennych, typy danych, operatory arytmetyczne i logiczne, konwersje typów. Instrukcje warunkowe i pętle.
1
1
1
Funkcje i podstawy obsługi wyjątków
Definicja i wywoływanie funkcji, przekazywanie parametrów, wartość zwracana. Obsługa wyjątków: try/catch/finally, rzucanie wyjątków.
1
1
1
Programowanie obiektowe: klasy, obiekty, hermetyzacja
Diagramy UML. Tworzenie klas i obiektów, modyfikatory dostępu, pola i metody, konstruktorzy, zasada enkapsulacji.
1
2
2
Dziedziczenie, polimorfizm, interfejsy, klasy abstrakcyjne
Mechanizmy dziedziczenia, nadpisywanie metod, polimorfizm, implementacja interfejsów, użycie klas abstrakcyjnych.
1
1
2
Zasady SOLID, modularność, pakiety/namespaces
Omówienie zasad SOLID, strukturyzacja kodu w moduły, organizacja kodu w pakiety i przestrzenie nazw.
0.5
0.5
2
Architektura warstwowa, MVC, dobre praktyki kodowania
Budowa aplikacji warstwowej, wzorzec MVC, separacja logiki, prezentacji i danych, konwencje kodowania.
0
0.5
2
Wzorce projektowe: Singleton, Factory, Observer, MVC
Najważniejsze wzorce projektowe, ich implementacja i zastosowania. Różnice między strukturą a celem wzorców.
0.5
1
2
Wielowątkowość i podstawy programowania współbieżnego
Tworzenie i zarządzanie wątkami, synchronizacja, problemy typu race condition i deadlock, wprowadzenie do tasków.
0
1
2
Asynchroniczność, różnice między blokującym i nieblokującym kodem
Asynchroniczne programowanie: async/await, promisy, event loop, różnice w podejściu synchronicznym i asynchronicznym.
0
0
1
Wprowadzenie do GUI (JavaFX) i ogólne zasady pracy z grafiką
Tworzenie graficznych interfejsów użytkownika w JavaFX: kontrolki, układy, obsługa zdarzeń, powiązania danych. Jak wygląda programowanie gier?
0.5
1
2
Wprowadzenie do frameworka: Spring Boot / ASP.NET
Wprowadzenie do frameworków webowych: struktura aplikacji, routing, kontrolery, integracja z bazą danych.
1
2
3
Wprowadzenie do innych języków: Python, JavaScript, C++
Podstawy składni i różnice między językami, przykłady konstrukcji kodu, zastosowania poszczególnych języków.
0.5
1
1
Warsztat projektowy: iteracje + wzorce. Organizacja pracy w firmach.
Iteracyjne podejście do pracy, AGILE, struktura pracy w firmie, omówienie różnych ról dookoła programisty.
0.5
1
1
Refaktoryzacja i testowanie
Zasady refaktoryzacji kodu, testy jednostkowe, TDD, biblioteki testowe, analiza pokrycia testami.
0
0
1
Praca z kodem asynchronicznym i testy jednostkowe
Testowanie kodu asynchronicznego, mockowanie, dobre praktyki testowania komponentów działających równolegle lub w tle.
0
0
1
Sumarycznie spotkań
8
12
24
Przewidziany dodatkowy indywidualny czas z mentorem
Czas na pomoc; indywidualne omówienie projektu czy przekazanie ponadprogramowej wiedzy.
6h
10h
15h

*0.5 - oznacza, że połowa spotkania jest przeznaczona na dany temat.

Harmonogram pracy

Szkolenia indywidualne

Szkolenie 90h - 2 spotkania tygodniowo przez 4 tygodnie.

Szkolenie 140h - 3 spotkania tygodniowo przez 4 tygodnie.

Szkolenie 320h - 2 spotkania tygodniowo przez 12 tygodni.

Każde spotkanie trwa 90 minut. Dni spotkań ustalane są wspólnie. Możliwe terminy obejmuje poniższy terminarz:

Poniedziałek - 17:00-20:00

Wtorek - 16:00-20:00

Środa - 16:00-18:00

Czwartek - 17:00-20:00

Piątek - 16:00-19:00

Sobota - 10:00-13:00

Elastyczność doboru godzin i dni jest znacznie większa niż w przypadku zajęć grupowych. Można zmienić dzień i godzinę szkolenia w razie potrzeby.

Zadania praktyczne

  • checkbox--checked--filled
    Do każdego tematu przygotowany jest zbiór zadań praktycznych.
  • checkbox--checked--filled
    Uczestnik wykonuje powierzone zadania praktyczne i wysyła rezultaty do określonego terminu.
  • checkbox--checked--filled
    Mentor może indywidualnie wspierać wspierać uczestnika przy problemach z wykonaniem zadań.
  • checkbox--checked--filled
    Wiele ćwiczeń posiada formę prawdziwego projektu, w którym należy dodać nową funkcjonalność lub poprawić błąd. Odwzorowuje to realne warunki pracy.
  • checkbox--checked--filled
    Zadania są na bieżąco tworzone w celu rozbudowy indywidualnego projektu uczestnika do swojego portfolio.

Wymagania

  • checkbox--checked--filled
    Zainstalowany komunikator Discord i dołączenie do wskazanego przez mentora serwera. Wymagany jest mikrofon do rozmów głosowych.
  • checkbox--checked--filled
    Komputer ze stałym dostępem do internetu i systemem Windows.
  • checkbox--checked--filled
    Zarejestrowane konto na stronie Github .
  • checkbox--checked--filled
    Zainstalowane darmowe oprogramowanie: Visual Studio Code, IntelliJ IDEA Community Edition, Sourcetree.

Dostępna oferta szkoleń indywidualnych

Dokumenty

Dokumenty związane z programem szkoleń, zakresem obowiązków i zdobywanej wiedzy.

Regulamin szkoleń
Szablon umowy
Szablon rezygnacji z umowy