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.

Working with Bits

Working with Bits

Learn to use bitwise operators to pack multiple states into a single byte, reducing memory bandwidth use.

• New
View
Working with Bits

Fast Filtering and Branchless Logic

Replace slow logical operators with fast bitwise arithmetic. Learn how to filter data without branching, avoiding pipeline flushes and speeding up queries.

• New
View
Working with Bits

Quantization and Delta Encoding

Trade CPU cycles for memory bandwidth by compressing data using bit packing, quantization, and delta encoding.

• New
View
Working with Bits

Advanced Bitwise Techniques

Use bloom filters for fast rejection, hierarchical bitmasks for spatial skipping, and hardware intrinsics using C++20's <bit> library.

• New
View
Managing C++ Projects Using CMake

Object Files and the Linking Process

The linker's role in the build process, how it resolves symbols to combine object files, and how to troubleshoot common errors.

• Updated
View
Managing C++ Projects Using CMake

Static and Shared Libraries

The difference between static and dynamic libraries, how to create them, and the trade-offs between them.

• Updated
View
Managing C++ Projects Using CMake

Organizing a C++ Project

Learn how to structure your C++ projects for scalability and maintainability, from basic directory layouts to managing multiple modules.

• Updated
View
Managing C++ Projects Using CMake

Managing Libraries and Dependencies

Learn to manage third-party libraries in C++, covering include/library paths, static vs. shared libraries, versioning, and platform differences.

• Updated
View
Managing C++ Projects Using CMake

Automated Build Systems and Their Limitations

An introduction to traditional build tools like Makefiles and IDE projects, highlighting the maintenance, scalability, and cross-platform challenges that result

• 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 Conditionals and Loops

Transform your static build descriptions into dynamic scripts with CMake's control flow commands, if() and foreach().

• Updated
View
Managing C++ Projects Using CMake

Working with the File System

Exploring CMake's file() command, covering how to read, write, copy, and glob files, and how to manipulate paths.

• Updated
View