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.

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
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
Managing C++ Projects Using CMake

Indirect Relationships and the Dependency Graph

Discover how CMake's target_link_libraries() command builds a dependency graph, and how it uses this graph to automatically manage transitive dependencies and link order.

• Updated
View
Managing C++ Projects Using CMake

Using INTERFACE, ALIAS, and IMPORTED Libraries

Learn to use abstract target types like INTERFACE, ALIAS, and IMPORTED to model complex project needs, organize build properties, and integrate pre-compiled binaries.

• 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