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.

Entity-Component-System

Entity-Component-System (ECS)

Transitioning from monolithic data structures to the ECS architecture, splitting our data into dedicated component pools.

• New
View
Entity-Component-System

Relational Data and Sparse Sets

Connecting components to their entities using the sparse set pattern, achieving fast lookups while maintaining cache-friendly contiguous data.

• New
View
Entity-Component-System

The Join Algorithm

Efficiently pulling data from multiple component pools simultaneously using the smallest set driver pattern, and optimizing it using bitmasks to minimize cache misses.

• New
View
Entity-Component-System

Templatizing Components

Improving our API using templates and a centralized registry using std::tuple.

• New
View
Entity-Component-System

Creating Views

Updating our ECS to support composable, range-based views that handle the smallest-set algorithm automatically using C++20 ranges.

• New
View
Professional C++

Hash Maps using std::unordered_map

Creating hash maps using the standard library's std::unordered_map container

• Updated
View
Intro to C++ Programming

Setting up a C++ Development Environment

Getting our computer set up so we can create and build C++ programs. Then, creating our very first application

• Updated
View
Intro to C++ Programming

Objects, Variables and Types

An introduction to the building blocks of our software - objects, and the variables that can be associated with them.

• Updated
View
Intro to C++ Programming

Creating Variables

Creating variables to store and update the data that describes our objects. We also introduce comments, allowing us to describe our code in plain language.

• Updated
View
Working with Bits

Working with Bits

Learn to use bitwise operators to pack multiple states into a single byte, reducing memory bandwidth use.

• New
View
Working with Bits

Fast Filtering and Branchless Logic

Replace slow logical operators with fast bitwise arithmetic. Learn how to filter data without branching, avoiding pipeline flushes and speeding up queries.

• New
View
Working with Bits

Quantization and Delta Encoding

Trade CPU cycles for memory bandwidth by compressing data using bit packing, quantization, and delta encoding.

• New
View