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

Managing C++ Projects Using CMake
Manage complex, cross-platform builds using industry-standard tools. Create scalable build systems that automate the entire development lifecycle.
Progress0 of 61 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Game Development with SDL3
Learn C++ and SDL development by creating hands on, practical projects inspired by classic retro games
Progress0 of 132 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

Recent Updates

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

Using Algorithms and Views

The Four Algorithm Families

The Producer-Consumer model of C++20 Ranges and the hardware implications of eager vs lazy evaluation.

• New
View
Using Algorithms and Views

Sorting and Materialization

Integrate sorting into C++20 pipelines, the difference between stable and unstable sorts, and how to use partial sorting.

• New
View
Using Algorithms and Views

Comparators and Projections

Learn how C++20 Projections allow us to separate sorting logic from data layout, the mechanics of std::invoke and the hardware reality of sorting large objects.

• New
View
Using Algorithms and Views

Proxy Sort and Structure of Arrays

Learn why sorting large objects is slow, and how to optimize it using Proxy Sorting and Data-Oriented Design (SoA).

• New
View
Using Algorithms and Views

Composition, Zipping, and Indicies

Iterate multiple containers simultaneously with zip, handle indices with enumerate, and skip elements with drop and stride.

• New
View
Managing C++ Projects Using CMake

Building C++ Programs

Before working with CMake, it's useful to understand the tools it orchestrates. This lesson guides you through setting up a C++ toolchain.

• Updated
View
Managing C++ Projects Using CMake

The Compilation Pipeline

Walking through the steps of the C++ compilation process, from source code to machine code.

• Updated
View
Managing C++ Projects Using CMake

Object Files and the Linking Process

The linker's role in the build process, how it resolves symbols to combine object files, and how to troubleshoot common errors.

• Updated
View
Managing C++ Projects Using CMake

Static and Shared Libraries

The difference between static and dynamic libraries, how to create them, and the trade-offs between them.

• Updated
View
Iterators, Ranges, and Views

View Composition and Pipes

Learn how to build readable, lazy-evaluated data pipelines that execute in a single pass, and chain C++20 views together using the pipe operator |

• Updated
View
Iterators, Ranges, and Views

The Iterator Pattern

The bridge between data layout and algorithms. Learn how iterators abstract memory traversal and the hierarchy of capabilities.

• New
View
Iterators, Ranges, and Views

Standard Library Algorithms

An introduction to the C++ Standard Library's algorithms, lambda expressions, and handling memory safely with insertion iterators.

• New
View