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 / 45
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

Types and Literals

Explore how C++ programs store and manage numbers in computer memory, including integer and floating-point types, memory allocation, and overflow handling.

• Updated
View
Practical DSA

The Physical Reality of new and delete

Understanding the mechanisms of memory allocation, and the severe hardware cost of working with the heap.

• New
View
Practical DSA

Memory Fragmentation

Why do long-running programs inevitably degrade and crash? Discover the hardware reality of memory fragmentation and TLB thrashing.

• New
View
Practical DSA

Linear and Arena Allocators

Bypass the OS and the global allocator. Build a custom linear arena allocator to implement fast memory allocation with zero fragmentation.

• New
View
Practical DSA

Object Pools and Free Lists

Solve the problem of dynamic entity lifespans. Build a zero-allocation object pool using an implicit free list hidden inside dead memory.

• New
View
Intro to C++ Programming

Booleans - true and false values

An overview of the fundamental true or false data type, how we can create them, and how we can combine them.

• Updated
View
Intro to C++ Programming

Conditional Logic

Use booleans and if statements to make our functions and programs more dynamic, choosing different execution paths.

• Updated
View
Intro to C++ Programming

Switch Statements

Learn an alternative way to write conditionals, which is often used when we want to take different paths based on a specific value

• Updated
View
Managing C++ Projects Using CMake

Fetching External Dependencies

Learn how to create self-contained, reproducible builds by fetching dependencies from source using FetchContent() and ExternalProject_Add().

• Updated
View
Game Development with SDL3

Delegates and the Observer Pattern

An overview of the options we have for building flexible notification systems between game components

• 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

Numbers

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

• Updated
View