Modern C++
Everything here compiles
Which is the difficulty. A moved-from string, an iterator held across an append, a lambda that captured a dead local — every one of those builds without a word, and the only thing between them and a learner is whether somebody read them properly. Five judgements, drilled until they arrive unasked.
- Modules
- 6
- Drills
- 11
- Build steps
- 0
- Time
- ~3h
Walk out able to
Read unfamiliar C++ and say who owns each resource, what a move left behind, which handle that call just killed, and what the pipeline will yield.
What you judge
Owners and handovers
Which handle owns it, and what a move leaves behind.
Containers and handles
The promise you needed, and what a mutation killed.
Lambdas and captures
What the brackets took, and whether it outlives them.
Lazy pipelines
What a view yields, and when the work actually runs.
The pitch
What you practise, and what you leave with
Not an artifact — a reflex. Forty lines of unfamiliar C++, five verdicts, and nothing on the page naming the rule.
You will practise
- Smart pointers, counts and cycles
- Moves, and which member actually ran
- Containers, and what a mutation invalidated
- Captures, pipelines, and writing the line
Afterwards you can
- Pick the handle a situation asks for
- Say what a moved-from object is now
- Name which handles that call invalidated
- Read a pipeline and say what comes out
Modules
6 modules, 26 items
Lessons explain one idea. Drills repeat it until it sticks. Build steps make something that exists afterwards.
- 1
Say who owns it
~37 minName the owner of any resource, and count the owners at any line.
- LessonName the owner, and what frees it9 min
- LessonCount the owners, break the ring8 min
- DrillPick the handle the situation asks for9 min
- DrillCount the owners at the last line11 min
- 2
Move it, and know what is left
~34 minSay what a moved-from object is, and which special member a line calls.
- LessonSay what the source is afterwards9 min
- DrillRead the type, call the source9 min
- LessonSay which special member ran6 min
- DrillName the member that runs10 min
- 3
Pick it, then keep your handles
~36 minChoose a container by its promise, and say which handles a mutation killed.
- LessonChoose by the promise, not by habit7 min
- DrillChoose by the promise you need10 min
- LessonSay which handles the call killed8 min
- DrillSay whether the handle survived11 min
- 4
Capture exactly what you meant
~34 minSay what a lambda captured, when, and whether it outlives what it refers to.
- LessonRead the brackets as a declaration8 min
- DrillPredict what the closure held10 min
- LessonWhere the closure goes decides it6 min
- DrillSay whether the closure outlives it10 min
- 5
A pipeline is a recipe
~35 minRead a pipeline, say what it yields, and say when the work actually happens.
- LessonSay when the pipeline actually runs8 min
- DrillRead the pipeline, say what comes out11 min
- DrillSay when the work happened10 min
- LessonA view keeps nothing of its own6 min
- 6
Write it, then read it cold
~30 minWrite the modern spellings from memory, then read one file for five verdicts.
- DrillWrite the modern C++ line9 min
- LessonWhat the caller is left holding5 min
- LessonWhich member the archive calls4 min
- LessonWhat the prune loop does4 min
- LessonThe counter it hands out4 min
- LessonWhat the view sees4 min
More in Languages
Keep going
Python Foundations
Read a program before you run it. Then write one worth showing.
Foundational~6h8 modules
Python Fluency
Choose the shape before you type. Then say it in one line.
Intermediate~5h7 modules
Python Confidence
Somebody else wrote it. Find out whether it works.
Advanced~7h7 modules
Python Craft
It works. Now make it somebody else's.
Advanced~10h7 modules
It compiles. Now say what it does.
The first item is free. ~3h of focused work, at your own pace.
Advanced~3h6 modules