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

Free 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 / 61
Get Started

Free Intermediate Course

Professional C++

Comprehensive course covering advanced concepts, and how to use them on large-scale projects.

Progress0 / 128
Get Started

Free Intermediate Course

Practical DSA

Learn data structures and algorithms by building real systems, measuring performance, and understanding how your code interacts with the physical hardware.

Progress0 / 41
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 / 61
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 / 132
Get Started

Recent Updates

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

Professional C++

Variable Templates

An introduction to variable templates, allowing us to create variables at compile time.

• Updated
View
Practical DSA

Entity-Component-System (ECS)

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

• New
View
Practical DSA

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
Practical DSA

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
Practical DSA

Templatizing Components

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

• New
View
Practical DSA

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
Practical DSA

Working with Bits

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

• New
View
Practical DSA

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