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

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

Intermediate Course

Managing C++ Projects Using CMake
This course is currently under construction. New content will be added regularly, and you can preview what is already available
Progress0 of 45 Completed
Updated
Preview

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

Using Clang-Format

Using the Clang-Format tool to automatically enforce a consistent coding style, and integrating it into our build using a custom CMake target

• New
View
Managing C++ Projects Using CMake

Using File Sets

An introduction to file sets and the target_sources() command, allowing us to manage our header files in a more controlled way

• New
View
Game Development with SDL2

Callbacks and Function Pointers

An introduction to first-class functions, function pointers, and the flexible design options that they unlock

• Updated
View
Managing C++ Projects Using CMake

Generating Files with Protobuf and add_custom_command()

Learn to integrate code generators like Protobuf into your build process using add_custom_command(), creating automated file-level dependencies in CMake.

• New
View
Managing C++ Projects Using CMake

Custom Targets and Build Utilities

Learn to create standalone, non-code targets using add_custom_target() for utility tasks like code formatting and documentation generation.

• New
View
Game Development with SDL2

Adjacent Cells and Bomb Counting

Implement the techniques for detecting nearby bombs and clearing empty cells automatically.

• Updated
View
Game Development with SDL2

Ticking

Using Tick() functions to update game objects independently of events

• Updated
View
Managing C++ Projects Using CMake

Generator Expressions and Conditional Logic

Learn how to use generator expressions $<...> for build-time conditional logic.

• New
View
Managing C++ Projects Using CMake

Integrating Tools with add_custom_command()

Learn how to attach commands to specific points in a target's build lifecycle using add_custom_command(TARGET) for tasks like post-build file copying.

• New
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
Game Development with SDL2

Engine Overview

An introduction to the generic engine classes we'll use to create the game

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

• New
View