Menu Zamknij

Kurs C++

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 ikona
PROMOCJA – pierwsze spotkanie GRATIS

Już teraz

zapisz się na kurs​

Zostaw swoje namiary, a skontaktuję się z Tobą w sprawie kursu

    * - pola obowiązkowe

    Administratorem danych osobowych jest KM PROGRAMS KRZYSZTOF MAKOWSKI z siedzibą przy ul. Cicha 7, 42-454 Niegowonice, Polska. Dane osobowe osób korzystających z formularza kontaktowego przetwarzane są w celu identyfikacji nadawcy oraz obsługi zapytania przesłanego przez udostępniony formularz. Więcej informacji o przetwarzaniu danych osobowych, w tym o przysługujących Ci uprawnieniach, znajduje się w Polityce Prywatności.

    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

    Newsletter