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 SDL3
Learn C++ and SDL development by creating hands on, practical projects inspired by classic retro games
Progress0 of 132 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.

Iterators, Ranges, and Views

The Iterator Pattern

The bridge between data layout and algorithms. Learn how iterators abstract memory traversal and the hierarchy of capabilities.

• New
View
Iterators, Ranges, and Views

Standard Library Algorithms

An introduction to the C++ Standard Library's algorithms, lambda expressions, and handling memory safely with insertion iterators.

• New
View
Iterators, Ranges, and Views

C++20 Ranges

Learn how C++20 Ranges and Views allow us to compose safe, lazy-evaluated data pipelines without sacrificing performance.

• New
View
Iterators, Ranges, and Views

View Composition and Pipes

Learn how to build readable, lazy-evaluated data pipelines that execute in a single pass, and chain C++20 views together using the pipe operator |

• New
View
Iterators, Ranges, and Views

Subranges and Range Interoperability

Bridge the gap between iterators and views using std::ranges::subrange to turn any pair of iterators into a composable, safe C++20 View.

• New
View
Intro to C++ Programming

Enums

Learn about Enums and how they offer an efficient way to handle predefined values in your code

• Updated
View
Managing C++ Projects Using CMake

Source Control with Git

An introduction to Git, the version control system that underpins modern collaborative software development and automated build pipelines.

• 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

Packaging with CPack

Learn to package your C++ projects using CMake's CPack. This lesson covers creating developer ZIP archives and professional Windows MSI installers with components.

• Updated
View
Managing C++ Projects Using CMake

Packaging with GitHub Actions

Learn to automate the packaging process by integrating CPack with a multi-platform GitHub Actions workflow

• Updated
View
Managing C++ Projects Using CMake

Creating Installers with CPack and GitHub Actions

Learn to automate the creation of a professional Windows installer by integrating CPack, the WiX Toolset, and a multi-platform GitHub Actions workflow.

• Updated
View
Managing C++ Projects Using CMake

Deployment with GitHub Releases

Learn to automate the release process using a GitHub Actions workflow that builds, packages, and publishes artifacts to a GitHub Release

• Updated
View