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.
What you get
Skills that stick
Every project mixes short lessons, focused drills and real build steps, so you finish with working code and the judgement behind it.
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
Step by step
Each module builds on the last. Read a short lesson, drill it until it's second nature, then put it to work.
- 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
Ready when you are.
Work through it at your own pace and pick up right where you left off.