Szkolenie dostępne na zamówienie

Zaawansowane programowanie w języku C++

Uczestnicy szkolenia Zaawansowane programowanie w języku C++ zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów języka C++ oraz szablonów STL. Na zajęciach poruszymy zagadnienia związane z koncepcjami algorytmów, iteratorów i zaawansowanych struktur danych. W przykładach wykorzystywane są elementy biblioteki standardowej oraz elementy biblioteki Boost te, które stają się kandydatami do rozwijania następnego standardu.

Czas trwania szkolenia:4 dni (32h)

Poziom zaawansowania:

Kod kursu:CPP/ADV

solid

Szkolenie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Zapytanie o szkolenie

Zaawansowane programowanie w języku C++

Cele szkolenia

  • Kształcenie umiejętności rozwijania wiedzy dotyczącej tworzenia zaawansowanych rozwiązań w języku C++
  • Osadzenie narzędzi i procesów tworzenia oprogramowania w realiach współczesnych wymagań Inżynierii Oprogramowania
  • Dokonanie konsolidacji wiedzy i uzupełnienie braków w kompetencjach w kontekście standardu C++
  • Nauka testowania jednostkowego aplikacji w języku C++
  • Nauka tworzenia aplikacji wielowątkowych z użyciem mechanizmów biblioteki standardowej
  • Nauka identyfikacji i tworzenia oprogramowania z użyciem wzorców GoF oraz elementów programowania funkcyjnego
  • Zapoznanie się ze współczesnymi bibliotekami przetwarzającymi dane

Dla kogo?

  • Programiści programujący w języku C i C++ w środowisku GNU/Linux lub MS Windows
  • Osoby znające w podstawowym zakresie system szablonów STL
  • Programiści tworzący oprogramowanie na platformie systemowej GNU/Linux lub MS Windows
  • Programiści tworzący aplikacje głównego nurtu oraz aplikacje sieciowe

Zalety

  • Uczestnicy szkolenia Zaawansowane programowanie w języku C++ poznają aspekty programowania uogólnionego oraz wstępnie koncepcje leżące u podstaw metaprogramowania ze szczególnym uwzględnieniem cech typów
  • Szczególny nacisk w trakcie szkolenia Zaawansowane programowanie w języku C++ kładziemy na zrozumienie aspektów wydajności oraz gospodarowania zasobami z użyciem wskaźników inteligentnych. Zajmiemy się także zarządzaniem czasem życia obiektu w odniesieniu do mechanizmu wyjątków oraz semantyki r-referencji
  • Na zajęciach posługujemy się technologiami otwartymi z dostępem do kodu źródłowego
  • Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień stosują technologie związane z językiem C++ w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych
  • Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
  • Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
  • Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Wymagania

  • Posługiwanie się wybranym środowiskiem IDE
  • Znajomość koncepcji programowania obiektowego, systemowego i aplikacyjnego
  • Znajomość koncepcji związanych z programowaniem w języku C++ na poziomie podstawowym i średnio zaawansowanym

W cenie otrzymasz:

  • Materiały szkoleniowe
  • Certyfikat ukończenia szkolenia
  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program

Pobierz program w PDF

Elementy nowych standardów C++

Inicjalizacja danych

  • Podstawowe rodzaje inicjalizacji
  • Przez kopiowanie i wprost
  • Pole po polu
  • Zmienne statyczne i globalne
  • Lista inicjalizacyjna

Semantyka przeniesienia

  • Kategorie wartości
  • Referencje na lewe i prawe wartości
  • Konstruktor i operator przeniesienia

Inteligentne wskaźniki

  • Własność danych
  • Jawne określanie własności
  • Przekazywanie i nieprzekazywanie własności
  • Zwalnianie pamięci
  • Współdzielenie własności
  • Modelowanie bez użycia wskaźników inteligentnych

Programowanie uogólnione

  • Dedukcja typów
  • Filozofia używania auto
  • Algorytmy biblioteki standardowej
  • Iteratory

Zakresy C++20

  • Iteracja po zakresie
  • Definicja zakresu
  • Algorytmy oparte o zakresy
  • Odwzorowania
  • Widoki i adaptery
  • Składanie widoków

Szablony funkcji i klas

  • Rodzaje szablonów
  • Parametry szablonów
  • Kompilacja szablonów
  • Specjalizacja

Programowanie czasu kompilacji

  • Wyrażenia wykonywalne podczas kompilacji
  • Elementy meta-programowania
  • Cechy typów

Autorem szkolenia jest Witold Wysota

Architekt i programista systemowy z dużym doświadczeniem komercyjnym oraz asystent w Instytucie Informatyki PW. Zajmuje się głównie technologiami związanymi z językiem C++, zarówno na platformach biurkowych jak i wbudowanych. Jest specjalistą od Qt - w tym autorem książek i artykułów. Od kilkunastu lat prowadzi wykłady i szkolenia z tej tematyki.