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

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

• New
View
Game Development with SDL2

Structuring SDL Programs

Discover how to organize SDL components using manager classes, inheritance, and polymorphism for cleaner code.

• Updated
View
Game Development with SDL2

Creating SDL2 Buttons

Learn to create interactive buttons in SDL2 and manage communication between different UI components.

• Updated
View
Game Development with SDL2

Creating Custom Events

Learn how to create and manage your own game-specific events using SDL's event system.

• Updated
View
Managing C++ Projects Using CMake

Modularizing CMake Code

Learn to create reusable logic with CMake functions and macros, and how to organize them into modules for clean, scalable build systems.

• Updated
View
Game Development with SDL2

Rectangles and SDL_Rect

Learn to create, render, and interact with basic rectangles using the SDL_Rect and SDL_Color types.

• Updated
View
Professional C++

Using SFINAE to Control Overload Resolution

Learn how SFINAE allows templates to remove themselves from overload resolution based on their arguments, and apply it in practical examples.

• Updated
View
Professional C++

Concepts in C++20

Learn how to use C++20 concepts to constrain template parameters, improve error messages, and enhance code readability.

• Updated
View
Professional C++

Using Concepts with Classes

Learn how to use concepts to express constraints on classes, ensuring they have particular members, methods, and operators.

• Updated
View
Managing C++ Projects Using CMake

Using Conan with CMake

Discover Conan, the binary-first C++ package manager, and learn how to integrate it with CMake using profiles and lockfiles for fast, reproducible builds.

• Updated
View