Build with C++ · free core course + advanced labs
Learn C++ from zero, with nothing skipped.
Write C++, press Run, and see what it draws. Fifteen free modules that start from zero, then eight advanced modules on what C++ does underneath.
#include "scimigo.h"
using namespace scimigo;
int main() {
canvas(600, 400);
std::string eye_color = "green";
rectangle(200, 100, 200, 180, "orange");
circle(260, 170, 15, eye_color);
circle(340, 170, 15, eye_color);
text(235, 60, "My Robot", 28);
}Your Learning Path
Parts 1 and 2 teach C++ from nothing, up to a game you build yourself. Part 3 is the advanced track: what C++ does underneath, and the data structures and patterns behind efficient programs. Its labs use an earlier version of the lab page, so they look a little different.
Part 1 · Programs7 modules · free
Part 2 · Data8 modules · free
Part 3 · Advanced track8 modules · free lessons, paid labs
The guided labs include
- 40 guided exercises with 208 compiled checks that say what your code got wrong
- Panels that draw lifetimes, owners, vector buffers, trees and heaps from your own program
- Work counters that catch a solution doing more work than it needs to
- 8 mastery challenges: write your plan and its invariant before you code
- Hints when you are stuck, and a worked solution for every exercise
- One-time purchase, not a subscription
$49
Built for
Who this course helps
- College students taking a first programming course in C++
- People who have never written a program
- Learners who know some Python or Java and want C++ from the ground up
What you leave with
A playable Tic-Tac-Toe game with a computer opponent, built from functions you tested
- Read a program and say what it will do before running it
- Write and test programs with input, decisions, loops, functions, strings, vectors and files
- Build a playable Tic-Tac-Toe game with a computer opponent
Every idea is taught before it is used, every lab asks you to predict before you run, and every task is checked against the mistakes people really make.
About This Course
Build with C++ starts from nothing: no programming experience is assumed, and nothing is used before a lesson has explained it.
Every free module is a short written lesson and then a lab that runs in your browser. In the lab you first predict what a program will do, then change one, then write your own. Your C++17 is compiled by clang on the page: your program draws on a canvas, prints, reads input and files, and checks tell you whether it is right. You can step through a program line by line and see every value change.
Part 1, Programs, is seven modules: a first program, values and types, input and output, decisions, loops, functions, and testing and debugging. Part 2, Data, is eight more: strings, vectors, references, grids with searching and sorting, recursion, structs and enums, files, and a Tic-Tac-Toe project that uses all of it. Each module ends with homework to do on your own. No account, installation or local setup is needed.
The advanced track goes where C++ is different: object lifetime and RAII, pointers and ownership with unique_ptr, shared_ptr and weak_ptr, how std::vector really grows, the STL with lambdas and comparators, interview patterns, dynamic programming, binary search trees and what std::set and std::map are inside, and stacks, heaps and std::priority_queue. Every advanced lesson is free to read. One purchase unlocks the guided labs: 40 exercises and 208 compiled checks that say what your code got wrong, panels that draw lifetimes, owners, buffers, trees and heaps from your own program, work counters that catch a loop doing more than it needs to, and eight mastery challenges where nobody names the technique and you write your plan before you code.
Prerequisites
- No programming experience required
What You Will Learn
- Read a short C++ program and say what it will do before running it
- Write programs with variables, input and output, decisions, loops and functions
- Work with strings, vectors, structs and files, and pass data to functions without copying it
- Write searches, sorts and recursive functions yourself, and build a small game from tested parts
- Read a compiler message, test a function at its boundaries, and find a bug by watching values change
- Give every resource one owner with RAII, unique_ptr and shared_ptr, and say when a pointer only borrows
- Choose an STL container and algorithm for a problem, and know what std::vector, std::set, std::map and std::priority_queue do inside
Build with C++: frequently asked questions
Do I need to install a compiler?
No. Your code is compiled by clang inside your browser, so there is nothing to install, and the free modules need no account. Nothing is sent to a server.
Is it real C++?
Yes. The exercises are standard C++17, compiled by clang 21 to WebAssembly and run on the page. Programs include the standard headers they use, just as they would on your own computer. The drawing instructions such as canvas, rectangle and circle come from a small header made for this course.
Is Build with C++ free?
The fifteen core modules are free, lessons and labs, with no account or payment. Every advanced lesson is free to read too. A one-time purchase unlocks the guided labs of the eight advanced modules.
What does the purchase include?
The guided labs for modules 16–23: object lifetime and RAII, pointers and smart pointers, how std::vector grows, the STL, interview patterns, dynamic programming, search trees, and stacks and heaps. That is 40 exercises with 208 checks, compiled with your code, that say what it got wrong (such as a resource released twice, a pointer kept across a reallocation, or a heap whose parent is smaller than its child); panels that draw object lifetimes, owners, vector buffers, trees and heaps from your own program; and work counters that catch a solution doing more work than it needs to. Each module ends with a mastery challenge that does not name its technique: you write down your plan and its invariant before you code. Every exercise has hints and a worked solution. It is a one-time purchase, not a subscription.
Can I learn C++ as my first language?
Yes. No programming experience is required. Module 1 starts with a single drawing instruction and takes it apart, and each module uses only what the ones before it taught.
How long does the course take?
The free modules have not been timed with learners yet. Each one is a lesson, ten or so guided activities and a set of homework, so plan on a few hours per module. The advanced track adds about 17 hours, roughly two hours per module for the lesson and its lab. The first run of a session downloads the compiler, so it takes a little longer than the runs after it.
What will I build?
In the free modules: a robot, a sunset controlled by three variables, a receipt in aligned columns, a checkerboard, a street of houses drawn by your own functions, a Caesar cipher, a bar chart, a sorting replay, the Towers of Hanoi, a score table read from a file, and a playable Tic-Tac-Toe game with a computer opponent. In the advanced labs: a move-only owning type, a dispatch desk whose jobs have exactly one owner, a vector that grows its own buffer, a departure board built from STL algorithms, binary-search, sliding-window and breadth-first solvers, dynamic-programming solutions that recover their choices, a search tree you grow, walk and prune, and a heap that merges hundreds of sorted logs.
How is this different from other C++ tutorials?
Most activities ask you to predict what a program will do before you run it. Then you can step through it line by line and see every value change, and checks tell you what your own code got wrong. The aim is that you can say why a program does what it does.
Start now
Module 1: Your First Program
A robot, then a sign with a printed caption. No installation and no account needed. Your work is saved in this browser.
Start module 1 — free