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

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

SIMD and Automatic Vectorization

Learn how SIMD registers allow you to process multiple data points in a single instruction, unlocking the full power of each CPU core.

• Updated
View
Practical DSA

Portable Vectorization with xsimd

Take direct control of the CPU's vector registers using xsimd. Implement batched loads, SIMD comparisons, and hardware bitmask extraction.

• New
View
Practical DSA

Finding and Filtering with xsimd

Replace scalar loops and conditional branches with SIMD comparison masks, trailing zero counts, and Kernighan's bit-clearing trick.

• 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.

• Updated
View
Managing C++ Projects Using CMake

Relationships Between Targets

Learn about target types, and how the PUBLIC, PRIVATE, and INTERFACE keywords control how properties are shared.

• Updated
View
Managing C++ Projects Using CMake

Build Servers and Continuous Integration

Learn how to automate your build and test process with Continuous Integration (CI) and a build server. This lesson provides a guide to creating a GitHub Actions workflow for a CMake project.

• Updated
View
Managing C++ Projects Using CMake

Using Shared Libraries

Adding support for user-configurable library types and an initial introduction to target installation.

• Updated
View
Game Development with SDL3

Multiple Windows and Utility Windows

Learn how to manage multiple windows in SDL3, with practical examples using utility windows like tooltips and menus.

• Updated
View
Managing C++ Projects Using CMake

Working with the File System

Exploring CMake's file() command, covering how to read, write, copy, and glob files, and how to manipulate paths.

• Updated
View
Managing C++ Projects Using CMake

CMake Presets

Learn the fundamentals of CMake Presets. This lesson introduces CMakePresets.json to simplify complex build commands.

• Updated
View
Managing C++ Projects Using CMake

User Presets and Inheritance

Learn to structure your CMake presets with inheritance and customize them for your local environment using CMakeUserPresets.json.

• Updated
View