C++ Programming
24 lesson course
All lessons

The purpose of this course

When I teach C++, I am not training students for a lifetime of typing program code into a computer. AI can now do a fair amount of that typing. This is useful, but typing was never the difficult part. The programmer must understand what the computation is actually doing. Where has the data gone? Why has the state changed? Is the answer correct, or merely convincing? Someone must decide what the program should do, inspect what it actually does and challenge it when it does something else. That someone is the programmer. If you think you are a programmer but do not accept this responsibility, then you are not an appropriate computer programmer. You are merely someone who can produce program code, and that is something quite different.

Static Carnival

C++ Programming

A complete 24-lesson sequence that asks what the language, compiler and running program are actually doing.

Open programming glossary

Lessons 01–15

Instructions, states and flow

Begin with the programmer, then examine instructions, state, functions and control flow.

Lessons 16–21

Structure, methodology and optimisation

Continue through scope, storage, classes, inheritance and runtime polymorphism.

Lessons 22–24

Solutions, evaluation and advanced features

Finish with operator design, templates and deterministic resource management.