Menu Zamknij

Kurs C++

Cena kursu

  • Cena spotkania grupowego wynosi 90 zł netto za 60 minut (110,7 zł brutto za 60 minut).
  • Cena spotkania indywidualnego wynosi 140 zł netto za 60 minut (172,2 zł brutto za 60 minut).
  • Płacisz zawsze za 25 kolejnych spotkań grupowych.
  • Płacisz zawsze za jedno kolejne spotkanie indywidualne.
  • Pierwsze spotkanie grupowe gratis.
  • Istnieje możliwość wystawienia faktury VAT.

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.

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

Zapisz się na KURS i zyskaj - licencja JetBrains na 6 miesięcy za darmo!