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 Advanced 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 / 74
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

Concurrency and Striped Hashing

Scale the Swiss Table across multiple CPU cores with sharded striping, reader-writer locks, and cache-line alignment.

• New
View
Practical DSA

Swiss Table Memory Layout

Rethink hash table memory layout for SIMD hardware by splitting metadata from payloads and extracting 7-bit hash signatures.

• New
View
Practical DSA

Swiss Table SIMD Probing

Combine structure of arrays metadata with xsimd batch operations to search 16, 32, or 64 hash buckets in a single clock cycle.

• New
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
Intro to C++ Programming

Pointers

This lesson provides a thorough introduction to pointers in C++, covering their definition, usage, and the distinction between pointers and references

• Updated
View
Intro to C++ Programming

Bitwise Operators and Bit Flags

Unravel the fundamentals of bitwise operators and bit flags in this practical lesson

• 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

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