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

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
Managing C++ Projects Using CMake

Environment Variables and Conditional Presets

Learn to make your CMake presets portable by using environment variables and conditional logic to adapt to different machine configurations.

• 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

The CMake Cache

Discover the CMake Cache, the mechanism for storing persistent user-configurable options, and learn how to create and manage cached variables.

• Updated
View
Managing C++ Projects Using CMake

CMake Commands, Arguments, and Lists

Exploring CMake's command syntax and its list data type, including how to create, manipulate, and use lists in your projects.

• Updated
View
Practical DSA

Cardinality and HyperLogLog

Trade exactness for memory efficiency. Learn how to calculate distributed cardinality at scale using HyperLogLog and hardware intrinsics.

• New
View
Managing C++ Projects Using CMake

Managing Libraries and Dependencies

Learn to manage third-party libraries in C++, covering include/library paths, static vs. shared libraries, versioning, and platform differences.

• Updated
View
Managing C++ Projects Using CMake

Writing a CMakeLists File

Creating the bare minimum CMakeLists.txt file and build up to a project with an executable and a library, learning the fundamental commands along the way.

• Updated
View
Practical DSA

Cuckoo Hashing and Filters

Implement strict guarantees by bounding a lookup to exactly two memory locations, and build a fast rejection path for massive databases.

• New
View
Practical DSA

Hash Caching and Heterogeneous Lookups

Learn why string keys destroy cache locality, and how to fix it using Hash Caching and Heterogeneous Lookups.

• New
View