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.

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

Numbers

An introduction to the different types of numbers in C++, and how we can do basic math operations on them.

• Updated
View
Professional C++

Using HTTP in Modern C++

A detailed and practical tutorial for working with HTTP in modern C++ using the cpr library.

• Updated
View
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

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