CppCon Academy is your gateway to leveling up as a C++ professional. We’re offering an exceptional lineup of onsite and online classes before and after the main conference.
Led by world-class instructors, these immersive courses are designed to give you practical, cutting-edge knowledge that will supercharge your C++ skills and help you stay ahead in a constantly evolving industry. Whether you want to master advanced C++ templates, enhance your concurrency expertise, or refine your design practices, there’s a class tailored to boost your career and deepen your expertise.

Important Information
Class registration and conference registration are separate. Attendees can register for either one or both. Class sizes are limited and may sell out.
Onsite classes are held at the Gaylord Rockies, Aurora, Colorado. Lunch is included for all full-day onsite classes.
For individuals whose organization requires it, a certificate of completion is available for classes attended. For information, contact the conference registrar.
Privacy Notice
In order to facilitate communications preparing students for class sessions, we share class attendee email addresses with instructors (and vice versa). By default we use the email address that you use for registration. If you’d like to use a different email address for the class than what you use for registration, please note that in the appropriate field during registration.
Schedule Overview
Onsite classes: Gaylord Rockies, Aurora, Colorado
- Saturday, September 12th – Sunday, September 13th from 09.00 – 17.00 MDT
- Saturday September 19th – Sunday, September 20th from 09.00 – 17.00 MDT
Online classes:
- Wednesday, September 9th – Friday, September 10th from 09.00 – 15.00 MDT.
- Monday, September 21st – Wednesday, September 23rd from 09.00 – 15.00 MDT.
Available Classes
Classes are listed in chronological order. They are grouped into Pre-Conference Classes and Post-Conference Classes.
Pre-Conference Classes
[Online] System Architecture And Design Using Modern C++
Instructor: Charley Bay
Duration: Three Days
Abstract: This course is intended for intermediate and advanced C++ engineers with experience making architectural and design decisions, or who are evolving into roles that demand proficiency in system-level analysis and decision making. We will focus on Modern C++ and deeply explore successes and failures in projects and systems from a variety of industries. And, we will discover that some crossroads are universal, despite the unique concerns that may present pragmatic challenges and cause technical implications to be ranked differently based on the specific domain to which the solution is applied.
Tags: architecture, design, Modern C++
[Onsite] Advanced and Modern C++ Programming: The Tricky Parts
Instructor: Nicolai Josuttis
Duration: Two Days
Abstract: Whenever I give C++ training I run into the same topics of “half knowledge”. We use a lot of pretty complicated features (e.g., templates, move semantics, and smart pointers) in our day-to-day programming without full understanding. Most of the time this works fine, but sometimes not. Even vectors and strings may cause surprises (e.g., to understand when and how memory is allocated).
This tutorial will discuss all these “tricky fundamental” C++ features application programmers see and use day by day. We will motivate them, understand them, and see how they should be used in practice. As a result, you will understand C++ a lot better and advance to the next level of an experienced C++ programmer.
As a long-time member of the C++ standards committee and experienced trainer, Nicolai will also give useful background information about purpose and design decisions.
Tags: move semantics, memory management, SSO, lambdas, universal references, shared pointers, PMR, special members
[Onsite] C++ Best Practices
Instructor: Jason Turner
Duration: Two Days
Abstract: “C++ Best Practices” is designed to help programmers elevate the quality of their C++ code. This course is intended for developers who have a beginner to intermediate knowledge of C++. You will learn how to write programs that perform well by default, are easier to maintain, memory safe, and have better compile times. We will cover best practices for new features added in C++17/20/23 and how to use the tools available to maintain code quality. Come prepared to interact and discuss.Tags: best practices, safety, tooling, constexpr
[Onsite] Essential GDB and Linux System Tools
Instructor: Mike Shah
Duration: One Day
Abstract: Developers spend more of their time debugging code, than actually writing code. So why do we not spend as much time learning debugging tools and associated utilities to help get us out of trouble? Part of the answer is that debugging is often not taught as a subject — but this workshop is here to fix that!In this workshop you will learn how to use a debugger (GDB) and associated tools (valgrind, sanitizers, code coverage tools, objdump, dwarfdump, etc.) to help debug and understand what your software is doing. In the age of AI generated code, legacy code, and massive code bases, understanding how to use tools is of critical importance.
In this workshop we’ll do interactive exercises to help ramp you up, and get you ready to tackle any project with tools in hand to help you understand how to write correct code, read code, and develop software with confidence.
Tags: debugging, toolingPost-Conference Classes
[Onsite]
Instructor:
Duration:
Abstract:
Tags:
[Online] C++23 in Practice: A Complete Introduction
Instructor: Nicolai Josuttis
Duration: Three Days
Abstract: C++23 is the latest C++ release, which major C++ compilers start to support now more and more. Therefore, it is time to look at the contents of C++23 (to both new features and relevant extensions/modifications).Deleted:This three-day training introduces and discusses all major language and library features of C++23 that are available in at least one major compiler (GCC, Clang, Visual C++) . The goal is to get a first impression of how to use C++23 in practice and benefit from the purpose and design of the new C++23 features in your day-to-day work.
As usual for his trainings and books, Nico Josuttis will focus on both the design and the practical usability of the new features for ordinary application programmers knowing Modern C++. so that attendees understand why we have them and how to use them right. As a long-term trainer and educator, Nico will concentrate on the essence for best usability. As Nico being an active member of the C++ Standards Committee, the training will be spiced with inside stories.Deleted:Tags: C++23, println(), std::generator, std::expected, stacktrace, views, recursive lambdas, deducing this, if consteval, monadic operations
