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

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 of 61 Completed
Updated
View

First Lesson

No upcoming lessons available.

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 of 61 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Game Development with SDL2
Learn C++ and SDL development by creating hands on, practical projects inspired by classic retro games
Progress0 of 129 Completed
Updated
View

First Lesson

No upcoming lessons available.

Get Started

Intermediate Course

Professional C++
Comprehensive course covering advanced concepts, and how to use them on large-scale projects.
Progress0 of 128 Completed
Updated
View

First Lesson

No upcoming lessons available.

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

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
Game Development with SDL3

Exponents and cmath

Understand the math foundations needed for game programming in C++, including power and root functions.

• Updated
View
Game Development with SDL3

Discrete and Continuous Values

Learn how to handle floating point precision issues when programming game physics and transformations between coordinate spaces.

• Updated
View
Game Development with SDL3

Moving, Selecting, and Deleting Actors

Add core interactions: drag actors to reposition them, click to select, and press delete to remove them.

• Updated
View
Game Development with SDL3

Grid-Based Placement

Convert the freeform placement to a grid-based system with snapping and single-actor cell limits

• Updated
View
Game Development with SDL3

Saving Levels

Implement footer buttons and binary serialization to save and load your custom game levels to disk.

• Updated
View
Game Development with SDL3

Loading Levels

Complete the save/load cycle by implementing level deserialization using SDL_IOStream and actor factories.

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

CMake Project Structure and Subdirectories

Learn how to organize large C++ projects in CMake using subdirectories and the add_subdirectory() command to create modular, maintainable builds.

• Updated
View
Managing C++ Projects Using CMake

CMake Variables and Logging

A primer on the fundamental building blocks of the CMake language: variables, string interpolation, and logging messages.

• Updated
View
Game Development with SDL3

Level Editor Starting Point

Establish the core structure for our level editor, including window, scene, and asset management.

• Updated
View
Game Development with SDL3

Building the Actor Menu

This lesson focuses on creating the UI panel for Actors and adding the first concrete Actor type.

• Updated
View