Programowanie C++
Szkolenia z programowania w języku C++
Nowoczesne programowanie w C++
Szkolenie w kompleksowy sposób wyjaśnia i pokazuje w praktyce kluczowe funkcje wprowadzone w C++11/14/17, które poprawiają jakość kodu, wydajność i produktywność programistów. Uczestnicy uczą się pisać czysty, efektywny i łatwy w utrzymaniu kod, korzystając z nowoczesnych idiomów, RAII, inteligentnych wskaźników, semantyki przenoszenia, szablonów, biblioteki ranges oraz najlepszych praktyk stosowanych w rzeczywistych projektach C++.
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ą także zaawansowane techniki metaprogramowania z użyciem szablonów oraz wyrażeń i funkcji constexpr.
Programowanie wielowątkowe w języku C++
Szkolenie obejmuje zagadnienia dotyczące programowania współbieżnego w języku C++. 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.
Programowanie asynchroniczne w C++ - Structured Concurrency
Szkolenie prezentuje nowoczesny paradygmat programowania współbieżnego w C++26 zakładający odejście od klasycznych wątków i callbacków na rzecz korutyn oraz modelu Senders/Receivers. Celem szkolenia jest praktyczne zrozumienie korutyn i biblioteki std::execution umożliwiających projektowanie asynchronicznych algorytmów. Omawiane są nowe techniki kompozycji i obsługi zadań asynchronicznych.
Programowanie generyczne w C++ - szablony
Szkolenie prezentuje techniki programowania generycznego w C++. Uczestnicy nauczą się jak, używać 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.
Wzorce projektowe w języku C++
Dedykowane dla programistów C++ chcących poprawić jakość tworzonego kodu obiektowego. Szkolenie omawia najpopularniejsze wzorce projektowe i reguły ich wykorzystywania w nowoczesnym C++. Prezentowane są również argumenty za stosowaniem lub unikaniem wzorca w konkretnych przypadkach. Duży nacisk kładziony jest na refaktoryzację kodu legacy do odpowiednich wzorców (refaktoring do SOLID). Uczestnicy nauczą się rozpoznawać kontekst, w którym można zastosować odpowiedni wzorzec projektowy i skutecznie go implementować.
Test-Driven Development w języku C++
Szkolenie omawia 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. Praktyczne warsztaty obejmują naukę pisania testów jednostkowych z wykorzystaniem obiektów pozorujących (stub i mock) i organizowanie ich w projekcie rozwijanym w metodologii TDD.
Safe C++
Uczestnicy szkolenia nauczą się, jak pisać, przeglądać i utwardzać kod C++, aby minimalizować podatność na ataki związane z bezpieczeństwem pamięci i undefined behavior, przy zachowaniu wydajności i interoperacyjności z istniejącym kodem.
STL & Ranges - 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. Uczestnicy poznają bogatą biblioteką algorytmów standardowych (również w wersji współbieżnej - Parallel STL) i nauczą się jak je stosować w codziennej pracy programisty.
Programowanie w C++26
Szkolenie prezentuje kluczowe nowości wprowadzone w C++26 i ich praktyczne zastosowanie. Uczestnicy poznają kontrakty i ich rolę w podnoszeniu jakości API oraz nowy zunifikowany model asynchroniczny oparty na Senders/Receivers. Nauczą się również korzystać ze statycznej refleksji do automatycznego generowania kodu. Program obejmuje także najważniejsze rozszerzenia biblioteki standardowej, takie jak nowe kontenery, ulepszenia w std::ranges, arytmetykę saturacyjną oraz funkcje zwiększające bezpieczeństwo. Szkolenie przygotowuje do projektowania nowoczesnych interfejsów, refaktoryzacji istniejących projektów i pełnego wykorzystania możliwości C++26.
Programowanie w C++20
Szkolenie omawia najważniejsze zmiany wprowadzone w standardzie C++20. Uczestnicy kursu poznają nowości związane z operatorem porównania <=> oraz 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 oraz zmiany związane z możliwością programowania w C++ na etapie kompilacji (consteval i constexpr). Omawiana jest również modularyzacja kodu za pomocą modułów C++ i implementacja korutyn (coroutines) w C++.
Programowanie w C++17
Szkolenie prezentuje nowe elementy języka C++ i biblioteki standardowej wprowadzone w standardzie C++17. Warsztaty obejmują nowe elementy języka, między innymi structured bindings, instrukcje sterujące z sekcją inicjującą, nowe atrybuty. 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++11/14
Szkolenie prezentuje nowości wprowadzone do języka i biblioteki standardowej w standardzie C++11/14. Praktyczne warszataty obejmują 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. Wyjaśnimy, jak stosować wyrażenia lambda w połączeniu z biblioteką STL. Omówimy również nowości w bibliotece standardowej, takie jak std::tuple, kontenery z haszowaniem oraz nowe algorytmy standardowe.
Programowanie w języku C++
Szkolenie przeznaczone dla osób chcących nauczyć się nowoczesnego programowania w języku C++. Omawiamy 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/17.