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 / 46
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.

Practical DSA

Data Structures & Algorithms

An introduction to data structures and algorithms from a practical, hardware-first perspective. Learn how the physical layout of your data in memory impacts performance.

• Updated
View
Practical DSA

Locks and Atomics

Learn how mutexes and atomics prevent race conditions, and why hardware contention can make multithreaded code slower than single-threaded code.

• Updated
View
Practical DSA

Cache Coherency and False Sharing

Explore the performance cost of synchronization, how to mitigate it, and how to avoid it entirely with better algorithm design.

• Updated
View
Practical DSA

Compare-And-Swap and Optimistic Concurrency

Learn how to perform complex lock-free atomic updates using compare_exchange_weak() and the hardware limitations.

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