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

Handling Different Architectures

Learn to write architecture-aware CMake scripts for 32/64-bit systems and Apple's Universal Binaries (Intel/ARM).

• Updated
View
Managing C++ Projects Using CMake

Creating a Consumable Package

Learn how to make your libraries consumable by other projects using CMake by turning your build-tree into a distributable install-tree.

• Updated
View
Managing C++ Projects Using CMake

Using Shared Libraries

Adding support for user-configurable library types and an initial introduction to target installation.

• Updated
View
Managing C++ Projects Using CMake

Build Configurations (Debug, Release, etc.)

Learn how CMake manages different build configurations like Debug and Release, the difference between generator types, and how to apply settings conditionally using modern techniques.

• Updated
View
Game Development with SDL3

Creating a Collision Component

Enable entities to detect collisions using bounding boxes managed by a dedicated component.

• Updated
View
Game Development with SDL3

Collision Response

Make entities react realistically to collisions, stopping, bouncing, and interacting based on type.

• Updated
View
Managing C++ Projects Using CMake

Relationships Between Targets

Learn about target types, and how the PUBLIC, PRIVATE, and INTERFACE keywords control how properties are shared.

• Updated
View
Game Development with SDL3

SDL3 Surfaces and Colors

Explore SDL3 surfaces, the canvases for drawing, understand pixel formats, colors, and set your window's background.

• Updated
View
Game Development with SDL3

Image and Entity Scaling

Add width, height, and scaling modes to our entities and images

• Updated
View
Game Development with SDL3

Creating a Physics Component

Integrate basic physics simulation into entities using a dedicated component

• Updated
View
Professional C++

Type Traits: Compile-Time Type Analysis

Learn how to use type traits to perform compile-time type analysis, enable conditional compilation, and enforce type requirements in templates.

• Updated
View
Game Development with SDL3

Positioning and Rendering Entities

Updating our TransformComponent and ImageComponent to support positioning and rendering

• Updated
View