Slide Background

Programowanie C++

Szkolenia z programowania w języku C++

Nowoczesne programowanie w języku C++

Szkolenie przeznaczone dla osób chcących nauczyć się nowoczesnego programowania w języku C++. W trakcie szkolenia omawiane są podstawowe techniki programowania w języku C++ - tworzenie klas, dziedziczenie i polimorfizm, bezpieczne zarządzanie pamięcią dla obiektów (smart pointers), obsługa wyjątków. Szkolenie to polecane jest także dla programistów języka C, którzy chcą nauczyć się poprawnego programowania obiektowego w C++. Koncentrujemy się na nauce standardu C++11/14.

Zaawansowane programowanie w języku C++

Szkolenie przeznaczone dla programistów C++ chcących poszerzyć swoje wiadomości dotyczące tworzenia profesjonalnego i niezawodnego kodu. Szczegółowo omawiane są między innymi zagadnienia programowania generycznego (szablony funkcji i klas, klasy cech i wytycznych, variadic templates) i zarządzania zasobami (pamięcią) w C++ - idiom RAII oraz inteligentne wskaźniki. Uczestnicy poznają praktyczne wykorzystanie metaprogramowania z użyciem szablonów oraz wyrażeń i funkcji constexpr.

Programowanie w C++11/14

Szkolenie przeznaczone dla programistów C++ chcących poznać nowości wprowadzone do języka i biblioteki standardowej w standardzie C++11/14. W trakcie szkolenia omawiane są nowe elementy języka C++, takie jak nullptr, mechanizmy dedukcji auto i decltype, pętla range-based for, silnie typizowane typy wyliczeniowe (scoped enums) oraz jednolita składnia inicjalizacji. Uczestnicy kursu nauczą się jak zaimplementować semantykę przenoszenia dla klas oraz kiedy i jak stosować perfect forwarding. Na szkoleniu prezentowane jest praktyczne zastosowanie wyrażeń lambda w połączeniu z biblioteką STL. Omawiane są również nowości w bibliotece standardowej, takie jak std::tuple, kontenery z haszowaniem oraz nowe algorytmy standardowe.

Programowanie w C++17

Szkolenie przeznaczone dla programistów C++ chcących praktycznie zapoznać się z nowymi elementami języka C++ i biblioteki standardowej wprowadzonymi w najnowszym standardzie C++17. W trakcie szkolenia programiści poznają praktyczne użycie nowych elementów języka, między innymi structured bindings, instrukcji sterujących z sekcją inicjującą, nowych atrybutów. W trakcie kursu omówione zostaną również nowości w szablonach C++, takie jak mechanizm dedukcji parametrów dla klas szablonowych (CTAD) i wyrażenia fold dla szablonów wariadycznych. Uczestnicy szkolenia poznają nowe typy dostępne w bibliotece standardowej std::string_view, std::optional, std::any i std::variant oraz algorytmy współbieżne - Parallel STL.

Programowanie w C++20

Szkolenie ma na celu zapoznanie się z najważniejszymi zmianami wprowadzonymi w standardzie C++20. Uczestnicy kursu dokładnie poznają nowości związane z pisaniem kodu generycznego: takie jak koncepty i ograniczenia szablonów. Na szkoleniu omawiane jest przetwarzanie kolekcji przy pomocy biblioteki Ranges, nowe elementy biblioteki standardowej: std::span i std::format, nowy operator porównania <=> oraz nowości związane ze stałymi: consteval, constinit i constexpr. Omawiana jest również modularyzacja kodu za pomocą modułów C++ i implementacja korutyn (coroutines) w C++.

Programowanie generyczne w C++ - szablony

W trakcie kursu uczestnicy poznają techniki programowania generycznego w C++. Szczególny nacisk położony jest na praktyczne wykorzystanie szablonów do pisania kodu, który jest szybki, bezpieczny i łatwy do ponownego wykorzystania. Dokładnie omówione są najczęściej spotykane idiomy implementacji szablonów w C++: enable_if, tag dispatching, head-tail, itp.

STL - efektywne wykorzystanie biblioteki standardowej C++

Szkolenie przeznaczone dla programistów chcących optymalnie wykorzystać możliwości biblioteki STL. Uczestnicy szkolenia poznają różnice między dostępnymi w bibliotece standardowej kontenerami i nauczą się, jak wybrać optymalny kontener w zależności od kontekstu. W trakcie szkolenia przedstawione zostaną iteratory, ich kategorie (koncepty) i efektywne sposoby pisania własnych iteratorów. jak optymalnie dobrać algorytm do przetwarzania danych w aplikacji). Szczególny nacisk położony jest na zapoznanie uczestników z bogatą biblioteką algorytmów standardowych (również w wersji współbieżnej - Parallel STL) i nauczenie efektywnego wykorzystania ich w codziennej pracy programisty.

Programowanie wielowątkowe w języku C++

W trakcie szkolenia omawiane są zagadnienia dotyczące programowanie współbieżnego w języku C++11. Uczestnicy szkolenia zapoznają się z metodami tworzenia, łączenia oraz kończenia wątków. Szczegółowo prezentowane są również sposoby synchronizacji wątków przy dostępie do zasobów współdzielonych (muteksy, zmienne warunkowe, zmienne atomowe itp.). Uczestnicy szkolenia uczą się również tworzenia bezpiecznych wielowątkowo struktur danych (thread-safe queue) oraz implementacji wzorców Thread Pool i Active Object.

Wzorce projektowe w języku C++

Szkolenie dedykowane dla programistów C++ chcących poprawić jakość tworzonego kodu obiektowego. Szkolenie zawiera szczegółowe omówienie najpopularniejszych wzorców projektowych, reguły ich wykorzystywania oraz przykłady implementacji wzorców projektowych w C++11/14. Przy opisie każdego wzorca omawiane są również argumenty przemawiające za jego stosowaniem lub unikaniem w konkretnych przypadkach. Po szkoleniu każdy uczestnik będzie w stanie rozpoznać kontekst, w którym można zastosować odpowiedni wzorzec projektowy i skutecznie go zaimplementować. Duży nacisk w trakcie szkolenia kładziony jest na refaktoryzację kodu legacy do odpowiednich wzorców (refaktoring do SOLID).

Test-Driven Development w języku C++

Na szkoleniu omawiane są nowoczesne techniki Test Driven Development w języku C++. Uczestnicy zapoznają się z zasadami projektowania oprogramowania obiektowego pod kątem testów - SOLID OOP, Dependency Injection, itp. Szczególny nacisk położony jest na praktyczną naukę pisania testów jednostkowych z wykorzystaniem obiektów pozorujących (stub i mock) i organizowanie ich w projekcie rozwijanym w metodologii TDD.