Opis kursu
- Profesjonalne przygotowanie do pracy na stanowisku programisty w wybranym języku programowania oraz powiązanymi z nim bibliotekami oraz frameworkami.
- Nauka od podstaw po zaawansowane rozwiązania komercyjne.
- Zoptymalizowany kod napisany zgodnie z dobrymi praktykami programistycznymi.
- Szkolenie według planu dopasowanego do najnowszych standardów IT.
- Nagrania ze spotkań grupowych, które możesz oglądać kiedy tylko chcesz.
- Ogromna ilość zadań teoretycznych i praktycznych o różnym poziomie trudności.
- Wsparcie mentora przy rozwiązywaniu problemów związanych z pytaniami teoretycznymi, zadaniami praktycznymi i projektami komercyjnymi.
- Elastyczny kontakt z mentorem.
- Profesjonalne przygotowanie do rozmowy kwalifikacyjnej.
- Profesjonalnie przygotowane portfolio z rozbudowanymi projektami komercyjnymi.
- Skuteczne techniki nauki programowania.

PROMOCJA – pierwsze spotkanie GRATIS
Już teraz
zapisz się na kurs
- C plus plus
Zostaw swoje namiary, a skontaktuję się z Tobą w sprawie kursu
Plan kursu
- Konfiguracja i uruchomienie środowiska programistycznego
- Zmienne
- Zmienne inline
- Podstawowe oraz złożone typy danych
- Inicjalizacja zmiennych
- Słowo kluczowe auto
- Stałe – specyfikator const oraz constexpr
- Literały binarne i separatory dziesiętne
- Literały definiowane przez użytkownika
- Literały UTF-8 oraz heksadecymalne liczby zmiennoprzecinkowe
- Stała nullptr
- Specyfikator volatile
- Typ void
- Zakres ważności oraz czas życia zmiennej
- Przesłanianie nazw zmiennych
- Tworzenie dodatkowej nazwy typu – using oraz typedef
- Typ wyliczeniowy enum oraz enum class
- Określanie typu zadanego wyrażenia – decltype
- Zastosowanie słowa kluczowego alignas
- Omówienie pojęć lwartość oraz rwartość
- Pobieranie oraz prezentacja danych
- Operatory arytmetyczne, logiczne, bitowe
- Operatory przypisania
- Operatory uzyskiwania adresu
- Inne operatory: sizeof, noexcept, static_assert, alignof
- Rzutowanie static_cast, const_cast, dynamic_cast
- Rzutowanie reinterpret_cast
- Instrukcje sterujące oraz pętle
- Pętla for dla zakresów
- Instrukcje if oraz switch z inicjalizacją zmiennych
- Instrukcja constexpr if
- Instrukcje break oraz continue
- Tablice jednowymiarowe i wielowymiarowe
- Zagadnienia uzupełniające
- Odwoływanie się do adresu zmiennych
- Definiowanie wskaźników oraz referencji
- Praca ze zmiennymi wskaźnikowymi i referencyjnymi
- Stałe wskaźniki i wskaźniki do stałych
- Definiowanie wskaźnika z użyciem słowa kluczowego auto
- Operator rzutowania reinterpret_cast w pracy ze wskaźnikami
- Wskaźnik void*
- Rezerwacja obszarów pamięci z wykorzystaniem wskaźników
- Zagadnienia uzupełniające
- Definicja funkcji i jej wywołanie
- Argumenty funkcji oraz wynik zwracany przez funkcję
- Automatyczne określanie typu zwracanego przez funkcję
- Stos i sterta
- Sposoby przesyłania argumentów do funkcji
- Argumenty domniemane i nienazwane
- Funkcje inline
- Funkcje a podział na pliki
- Rekurencja
- Omówienie wybranych funkcji bibliotecznych
- Funkcje constexpr
- Przeładowanie funkcji
- Wskaźniki do funkcji
- Zagadnienia uzupełniające
- Napisy w stylu C
- Wprowadzenie do klasy std::string
- Omówienie zasady działania napisów std::string
- Standardowe operatory w pracy z napisami
- Prezentacja funkcji bibliotecznych klasy std::string
- Konwersje pomiędzy dowolnym typem a obiektem std::string
- Klasy std::ostringstream oraz std::istringstream
- Wyrażenia regularne
- Zagadnienia uzupełniające
- Algorytmy badające właściwości geometryczne
- Algorytm badające właściwości matematyczne
- Konwersje pomiędzy systemami liczbowymi
- Badanie ciągów danych pod kątem wybranych właściwości
- Sortowanie ciągów danych
- Zastosowanie metody dziel i zwyciężaj
- Wybrane metody numeryczne
- Programowanie zachłanne
- Algorytmy na tekstach
- Wybrane algorytmy kryptograficzne
- Rekurencja
- Przegląd wybranych struktur danych
- Zagadnienia uzupełniające
- Definiowanie klasy i obiektu
- Struktury
- Różnica pomiędzy klasą a strukturą
- Omówienie założeń enkapsulacji
- Pola składowe klasy
- Proste funkcje składowe klasy
- Funkcje składowe typu const, volatile oraz constexpr
- Funkcje składowe ze specyfikatorami default oraz delete
- Słowo kluczowe this
- Modyfikatory dostępu
- Klasa a dynamiczny przydział pamięci
- Konstruktory
- Słowo kluczowe explicit
- Lista inicjalizacyjna a lista std::initializer_list
- Konstruktory constexpr
- Wyjaśnienie pojęć glwartość, xwartość oraz prwartość
- Konstruktory kopiujące i przenoszące
- Destruktory
- Składniki statyczne w klasie
- Słowo kluczowe mutable
- Klasa a podział na pliki
- Operatory konwersji
- Deklaracja przyjaźni
- Przeładowanie operatorów
- Kompozycja
- Klasy zagnieżdżone
- Tablice obiektów
- Zastosowanie wskaźników do pracy z klasami
- Klasy POD (Plain Old Data)
- Zagadnienia uzupełniające
- Omówienie zasad dziedziczenia
- Klasa podstawowa i klasa pochodna
- Dostęp do składników klasy podstawowej
- Konstruktory w dziedziczeniu
- Kolejność wywołania konstruktorów w dziedziczeniu
- Wirtualne funkcje składowe
- Polimorfizm
- Wczesne i późne wiązanie
- Destruktory w dziedziczeniu
- Słowa kluczowe final oraz override
- Klasy final
- Klasy abstrakcyjne
- Dynamiczna identyfikacja typu
- Rzutowanie dynamic_cast a polimorfizm
- Wielodziedziczenie
- Zagadnienia uzupełniające
- Sposoby przechwytywania i obsługi sytuacji wyjątkowych
- Zagnieżdżanie bloków try
- Specyfikator noexcept oraz operator noexcept
- Wyjątki std::uncaugth_exceptions
- Zagadnienia uzupełniające
- Omówienie założeń programowania uogólnionego
- Definiowanie szablonu klasy
- Definiowanie szablonu funkcji
- Dopuszczalne parametry szablonów
- Szablony a podział na pliki
- Funkcje składowe w szablonach klas
- Składniki statyczne w szablonach klas
- Implementacja obiektu klasy szablonowej za pomocą new
- Przeładowanie operatorów w szablonach klas
- Zagnieżdżanie szablonów
- Deklaracja przyjaźni w szablonach klas
- Specjalizacje szablonów klas
- Szablony zmiennych
- Atrybut auto jako parametr szablonu
- Zagadnienia uzupełniające
- Funktory wbudowane i definiowane przez programistę
- Wyrażenia lambda i jego różne postaci
- Lista argumentów
- Ciało wyrażenia lambda
- Lista wychwytywania
- Słowo kluczowe mutable w wyrażeniu lambda
- Wyjątki w wyrażeniach lambda
- Wyrażenie lambda zastosowane w funkcji składowej
- Szablon std::function
- Wyrażenie lambda jako domniemana wartość argumentu
- Zagadnienia uzupełniające
- Klasyfikacja wzorców projektowych
- Implementacja wzorców kreacyjnych
- Implementacja wzorców strukturalnych
- Implementacja wzorców czynnościowych
- Zagadnienia uzupełniające
- Wzorzec projektowy iterator
- Wprowadzenie do kontenerów
- Klasyfikacja kontenerów
- Kontenery sekwencyjne (std::vector, std::list, std::deque)
- Kontenery asocjacyjne (std::set, std::multiset, std::map, std::multimap)
- Kontenery asocjacyjne z haszowaniem (std::unordered_set, std::unordered_map)
- Adaptery kontenerów (std::stack, std::queue, std::priority_queue)
- Typy krotkowe std::tuple
- Typ std::pair
- Omówienie algorytmów STL
- Wskaźniki inteligentne
- Zastosowanie wskaźników inteligentnych do pracy z kontenerami
- Zagadnienia uzupełniające
- Omówienie formatu JSON
- Przegląd bibliotek do pracy z formatem JSON
- Konfiguracja aplikacji do pracy z formatem JSON
- Proste przykłady konwersji danych
- Wykorzystanie formatu JSON do pracy z komponentami biblioteki STL
- Zastosowanie formatu JSON w aplikacjach komercyjnych
- Zagadnienia uzupełniające
- Wprowadzenie do relacyjnych baz danych
- Język SQL
- Omówienie architektury aplikacji bazodanowej
- Przegląd bibliotek do pracy z relacyjnymi bazami danych
- Konfiguracja aplikacji do pracy z relacyjnymi bazami danych
- Implementacja relacji bazodanowych
- Zarządzanie danymi relacyjnej bazy danych
- Implementacja kompletnej aplikacji bazodanowej
- Zagadnienia uzupełniające
- Omówienie założeń wielowątkowości
- Różne sposoby tworzenia wątków
- Dołączanie i odłączanie wątków
- Przekazywanie argumentów do wątków
- Omówienie zagadnienia wyścigów
- Sposoby współdzielenia danych pomiędzy wątkami
- Rozwiązanie problemu wyścigów z wykorzystaniem std::mutex
- Wykorzystanie szablonu std::lock_guard
- Wprowadzenie do zagadnienia przechwytywania zdarzeń w aplikacjach wielowątkowych
- Zastosowanie condition variables do przechwytywania zdarzeń
- Przykłady zastosowań typów std::future oraz std::promise
- Programowanie asynchroniczne z wykorzystaniem std::async()
- Przykład zastosowania szablonu std::packaged_task
- Zagadnienia uzupełniające
- Preprocesor
- Unie i pola bitowe
- Operacje wejścia / wyjścia
- Operacje wejścia / wyjścia na plikach
- Semantyka przenoszenia
- Rozszerzony mechanizm generowania liczb losowych
- Atrybut deprecated
- Przestrzenie nazw i zagnieżdżone przestrzenie nazw
- Nowe typy C++17: std::string_view, std::byte, std::optional,
std::variant, std::any - Wykorzystanie debuggera do analizy pracy programu
- Architektura Qt
- Wzorzec MVC
- Przegląd oraz implementacja komponentów graficznych Qt
- Obsługa zdarzeń
- Zarządzanie rozkładem
- Aplikacje o wielu oknach / zakładkach
- Implementacja nawigacji pomiędzy oknami / zakładkami
- Parsowanie XML / JSON
- Wyrażenia regularne z wykorzystaniem bibliotek Qt
- Walidacja danych
- Architektura aplikacji bazodanowej
- Język SQL
- Implementacja kompletnej aplikacji bazodanowej z wykorzystaniem
frameworka Qt - Zagadnienia uzupełniające
- Wprowadzenie do aplikacji Qt Quick
- Język QML
- Przegląd oraz implementacja kontrolek Qt Quick
- Mechanizm sygnałów oraz slotów
- Wykorzystanie JavaScript w pracy z Qt Quick
- Pozycjonowanie kontrolek Qt Quick
- Dialogi
- Modele i delegaty
- Animacje
- Transformacje i tranzycje
- Programowanie sieciowe
- Komunikacja z REST API
- Komunikacja z bazą danych
- Zagadnienia uzupełniające
- Omówienie architektury GIT
- Przegląd instrukcji GIT
- Rozgałęzianie i scalanie w GIT
- Aplikacje i wtyczki do pracy z GIT
- Praca ze zdalnym repozytorium
- GitHub Pages
- Zagadnienia uzupełniające
Materiały video
-
C++ - DYNAMICZNE STRUKTURY DANYCH - STOS
-
C++ - DYNAMICZNE STRUKTURY DANYCH - ARRAYLIST
-
C++ - DYNAMICZNE STRUKTURY DANYCH - LISTA JEDNOKIERUNKOWA
-
C++ - DYNAMICZNE STRUKTURY DANYCH - LISTA DWUKIERUNKOWA
-
C++ - DYNAMICZNE STRUKTURY DANYCH - DRZEWO BST CZĘŚĆ 2
-
C++ - DYNAMICZNE STRUKTURY DANYCH - DRZEWO BST CZĘŚĆ 1