C++ from the Ground Up
Learn to write real C++ with direct control over how your machine runs code. Build your first programs, navigate types, and master memory from the inside out.
Like Duolingo, but for C++ from the Ground Up. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.
A short one: 12 levels across 2 sections, about 24 minutes end to end, roughly 5 days at five minutes a day. It moves through Writing Your First Working Programs and Direct Control of Data and Memory. It starts from scratch.
Free forever · No credit card · iPhone & Android

Key ideas in C++ from the Ground Up
- Execution of every standard C++ program begins at the function named main
- The main function returns an integer (int) back to the operating system to signal whether the program finished successfully
- Defining other functions like start or run will not automatically launch the program
- A C++ compiler translates human-readable source code directly into native machine code ahead of time
- The resulting output is a standalone binary executable file that the operating system runs directly at full speed without an interpreter
- C++ is statically typed, meaning you must specify the type (such as int, double, or char) when declaring a variable
- Declaring the type tells the C++ compiler exactly how many bytes of memory to allocate before the program ever runs
- std::cout represents standard output and uses the insertion operator << to push text to the console
- std::cin represents standard input and uses the extraction operator >> to pull typed input into a variable
- The arrows point in the direction the data flows: into cout (<<) or into a variable from cin (>>)
- #include tells the preprocessor to pull in declarations from a header file before compiling
- <iostream> provides the declarations for input and output streams like std::cout and std::cin
- C++ includes only the headers you ask for so you don't carry the overhead of unused components
- In C++, a variable declared inside a pair of curly braces {} only exists within that specific block scope
- Attempting to use a variable outside the block where it was declared produces a compile-time 'identifier not found' error
- Limiting variable scope inside blocks prevents accidental changes to state elsewhere in the function
You've tried the other tabs
Thirty open tabs. Four facts you actually kept.
You watched. You nodded. By Sunday it was gone.
One answer, then back to scrolling.
Eight weeks. You meant to finish. You didn't.
Tomo gives C++ from the Ground Up the Duolingo treatment: levels, streaks, and quick quizzes that test what you just learned. That game loop is what the tabs above never had, so it's the one you actually finish.
Here's what playing it feels like
A real question from this course. Take your best guess.
When you run a standard C++ program, where does your computer always look first to start executing your code?
Get it right to open this lesson and 11 more in the app.
How to learn C++ from the Ground Up, step by step
Go in order. 12 short levels across 2 sections, about 24 minutes in all, five minutes a day.
- 1
Writing Your First Working Programs
- The Anatomy of a C++ Program
- Guiding Flow and Variable Scope
- 2
Direct Control of Data and Memory
- Functions and Passing by Reference
- Peeking Under the Hood with Pointers
2 sections · 4 units · 12 levels. Built to play, not to enroll.
Questions about C++ from the Ground Up
How do I learn C++ from the Ground Up?
Go in order: start with Writing Your First Working Programs, then Direct Control of Data and Memory. On Tomo that's 12 short levels, about 24 minutes in all, played five minutes a day. Start free and play the first level in under a minute.
Is there a Duolingo-style app for C++ from the Ground Up?
Yes. Tomo works like Duolingo: short daily lessons, streaks and quick quizzes. C++ from the Ground Up is one of its free courses, and you can type any other topic to get a course of your own.
Is the C++ from the Ground Up course free?
Yes. C++ from the Ground Up is playable on Tomo's free plan, which doesn't expire. No credit card, no waitlist. Download the app and start your first lesson.
How long does it take to learn C++ from the Ground Up?
12 levels across 2 sections, about 24 minutes of play in total. It's built for five minutes a day, so you finish it a little at a time instead of all at once.
Do I need any background to start C++ from the Ground Up?
No. It's pitched at a beginner level, so it starts where you are and builds up. If you can tap a phone, you can start.
Tomo is in ChatGPT
Tomo is also a ChatGPT plugin: the same playable courses, built and played inside your chat.
Add Tomo to ChatGPT- What to ask
- “Make me a Tomo course on black holes.” “Turn this chat into a Tomo course.”
- What you get
- Quick questions with instant feedback, hearts and stars, ready to play in about a minute.
- Where it goes
- No sign-up to start. Connect your Tomo account and your streak carries on in the app.
You pick the voice
C++ from the Ground Up is taught in the Bestie style: your friend who just gets it. Want a different feel? In the app you can spin up the same topic in any of Tomo's teaching styles. Same facts, totally different vibe.
More Technology on Tomo
C++: Foundations and Pitfalls
Build a robust mental model of C++ from your first program to complex systems. Uncover the subtle language traps and memory quirks that catch even experienced programmers.
Writing Code with Python
Turn plain text into working programs that calculate, automate, and solve real problems. Learn how to direct computer logic, work with collections of data, and build reusable scripts.
Writing Idiomatic Python
Transform clunky, procedural script code into elegant, maintainable Python. Master lazy evaluation, function ergonomics, context managers, and the native data model.
Writing Your First Python Scripts
Build a working intuition for the world's most popular programming language. Learn how Python stores information, makes decisions, and automates repetitive tasks with clean, readable code.
JavaScript for the Web
Learn the programming language that powers interactivity on the web. Go from typing your first commands to building reactive interfaces and fetching live internet data.
How Circuits Work
Understand the unseen flow of electricity by building real, working circuits. Learn to light components, route power on a breadboard, and automate behavior with switches and transistors.
Start C++ from the Ground Up today.
Download Tomo, search C++ from the Ground Up, and play your first lesson in under a minute.