Modern C++ Made Simple

Whether you're new to coding or switching careers, we've got you covered. Learn C++ from the ground up starting with our introductory course.

Intro to C++ Programming

Beginner Course

Intro to C++ Programming
Become a software engineer with C++. Starting from the basics, we guide you step by step along the way
Progress0 of 61 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Game Development with SDL2
Learn C++ and SDL development by creating hands on, practical projects inspired by classic retro games
Progress0 of 129 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Professional C++
Comprehensive course covering advanced concepts, and how to use them on large-scale projects.
Progress0 of 128 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Managing C++ Projects Using CMake
This course is currently under construction. New content will be added regularly, and you can preview what is already available
Progress0 of 55 Completed
Updated
Preview

First Lesson

No upcoming lessons available.

Get Started

Recent Updates

New content is added on a regular basis, and we consistently update, improve, and revise what's already available.

Managing C++ Projects Using CMake

Using Google Benchmark

Adding benchmarks to our build to measure the performance of our code, and track how it changes over time

• New
View
Managing C++ Projects Using CMake

Using Clang-Tidy

Integrating Clang-Tidy to enforce good practices and find bugs before we even compile

• New
View
Professional C++

Value Categories (L-Values and R-Values)

A straightforward guide to l-values and r-values, aimed at helping you understand the fundamentals

• Updated
View
Managing C++ Projects Using CMake

Managing a Test Suite

Move beyond individual tests to manage a full test suite. Learn to organize tests, run tests in parallel, filter by labels, and measure our code coverage

• New
View
Managing C++ Projects Using CMake

Using AddressSanitizer (ASan)

Learn to find memory bugs at runtime by integrating AddressSanitizer (ASan) into a CMake project

• New
View
Managing C++ Projects Using CMake

Dependency Injection and Mocking

Learn how to isolate dependencies that our project uses, and then how to replace those dependencies at test time using Google Mock.

• New
View
Managing C++ Projects Using CMake

Testing Executables

Learn the standard pattern for testing application logic by refactoring it into a linkable library

• New
View
Professional C++

C++20 Modules

A detailed overview of C++20 modules - the modern alternative to #include directives. We cover import and export statements, partitions, submodules, how to integrate modules with legacy code, and more.

• Updated
View
Game Development with SDL2

SDL2 Timers and Callbacks

Learn how to use callbacks with SDL_AddTimer() to provide functions that are executed on time-based intervals

• Updated
View
Managing C++ Projects Using CMake

Integrating GoogleTest with CMake

Learn to refactor manual C++ tests into a professional test suite using the GoogleTest framework, managed by vcpkg and integrated with CTest.

• New
View
Managing C++ Projects Using CMake

Assertions and Parameterized Tests

Learn to use a wide range of assertions, write data-driven parameterized tests, and isolate dependencies with Google Mock.

• New
View
Managing C++ Projects Using CMake

Cross-Compilation and Toolchain Files

Learn to build for different operating systems and architectures using CMake's cross-compilation support and toolchain files.

• Updated
View