C++ Fundamentals You Wish You Had Known Earlier 2025

C++ Fundamentals You Wish You Had Known Earlier is a three-day online training course with programming examples, taught by Mateusz Pusz. It is offered online from 09:00 to 15:00 Aurora time (MDT), 11:00 to 17:00 EDT,  17:00 to 23:00 CEST, Monday through Wednesday, September 22nd – 24th, 2025 (following the conference).

Register HereSee Other Offerings

Course Description

C++ is a complex programming language. When used correctly, it delivers the best possible performance. Unfortunately, it is often misused, which causes many problems.

However, it turns out that consciously using selected language features can make it relatively easy to produce high-quality software that delivers excellent runtime performance and is error-proof. This coding style is called Modern C++.

The material of this workshop is the first chapter of the trainer’s most successful and popular training called “Advanced Modern C++”. During the class, we will go through all the key features of the C++ language, discuss potential issues and pitfalls, and provide guidelines on how to use them correctly. This training discusses various topics ranging from identifiers that do not result in undefined behavior through vital language features like name lookup, overload resolution, one definition rule, and move semantics up to the design recommendations like Rule of Zero. Among others, we will see how we can provide a custom dynamic allocation strategy for our programs and how we should design and implement customization points for our engine.

If you are wondering if you should attend this class, the short self-check quiz will help you decide. Those and many other questions will be addressed during the training.

What You Will Learn

  • Emphasis on understanding the philosophy and mechanisms of C++ programming language and learning how to reuse this knowledge in one’s own code
  • Particular focus on the usage of C++ templates in practical tasks
  • Development of error-unfriendly code
  • Selection of useful patterns and techniques that prove in a demanding production code

Workshops Structure

  • lecture 40%
  • discussion 30%
  • hands-on coding 20%
  • knowledge quiz 10%

During the workshop, we will work with the latest version of the compiler thanks to the Compiler Explorer, so no special environment preparation is needed.

Prerequisites

Experience

The training targets developers with some professional experience with C++ programming language and who realize the problems caused by careless ways of coding in this language. The workshop aims to strengthen the knowledge of the C++ core language and show how to avoid many problems that often appear in the production code.

If you are wondering if you should attend this class, the short self-check quiz will help you decide.

Environment

  • A laptop with a web browser and access to the Internet
  • All hands-on exercises will be implemented using Compiler Explorer

Course Topics

  • Identifiers and naming conventions
  • Namespaces
  • C++ Types and their properties
  • Value vs reference semantics
  • Pointers vs references
  • Unscoped vs scoped enumerations
  • Classes and friends
  • Special Member Functions
  • Rule of Three, Five, and Zero
  • Value categories
  • Automatic type deduction
  • Type conversions
  • Objects
  • Alignment
  • Scope
  • Lifetime
  • ODR and inline
  • Storage duration
  • Stack vs Heap vs Free Store
  • Initialization
  • Name Lookup
  • Overload Resolution
  • Customization points
  • Range-based for loop
  • Copy elision
  • Move semantics
  • Ref-qualifiers
  • noexcept

Course Instructor

Mateusz Pusz

Mateusz Pusz is a software architect, principal engineer, and security champion with over 20 years of experience designing, writing, and maintaining C++ code for fun and a living. A trainer with over 15 years of C++ teaching experience, a consultant, a conference speaker, and an evangelist. His main areas of interest and expertise are Modern C++, code performance, low latency, safety, and maintainability.

Mateusz worked at Intel for 13 years and is now a Principal Software Engineer and the head of the C++ Competency Center at EPAM Systems. He is also the founder of Train IT, which provides dedicated C++ training and consulting services to corporations worldwide.

Mateusz contributes to and is an active voting member of the ISO C++ Committee (WG21), where he, along with the top C++ experts worldwide, shapes the future of the C++ language.

Register HereSee Other Offerings