Thinking in Code
Learn how to command computers and build working software from scratch. Discover the core mechanics of programming, from simple step-by-step instructions to data structures and debugging.
Like Duolingo, but for Thinking in Code. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.
22 levels across 4 sections, about 44 minutes end to end, roughly 9 days at five minutes a day. It moves through Instructing the Computer, Scaling Up with Repetition and Data, Building Reliable Software, and How the Machine Runs Code. It starts from scratch.
Free forever · No credit card · iPhone & Android

Key ideas in Thinking in Code
- Code executes sequentially one line at a time from top to bottom
- A line that modifies a value depends directly on what earlier lines already set
- Computers cannot infer which action was intended to happen first
- A variable holds only its most recent assigned value
- Assigning a new value overwrites whatever was stored in the variable before
- Reading a variable looks up its current value at that exact moment
- Text (strings) are wrapped in quotes and cannot perform arithmetic
- Numbers represent quantities and support mathematical operations
- Booleans represent binary true/false conditions
- Expressions compute a single new value using existing variables and operators
- Standard order of operations applies when evaluating mixed mathematical operators
- Evaluating an expression calculates a new result without altering the original variables
- Computers calculate and update variables in memory silently
- A print instruction is required to make internal memory values visible to the user
- Printing an expression displays its calculated output at that specific moment
- A program evaluates the condition inside an if-statement before running the block underneath it
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 Thinking in Code 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.
If a line of code changes a player's score, what does it rely on?
Get it right to open this lesson and 21 more in the app.
Where Thinking in Code takes you
- 1
Instructing the Computer
- Giving Orders in Sequence
- Making Branching Decisions
- 2
Scaling Up with Repetition and Data
- Automating Repetition with Loops
- Organizing Groups of Data
- 3
Building Reliable Software
- Packaging Logic with Functions
- Diagnosing and Fixing Bugs
- 4
How the Machine Runs Code
- How Text Becomes Running Software
4 sections · 7 units · 22 levels. Built to play, not to enroll.
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
Thinking in Code is taught in the Professor style: clear, structured, thorough. 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
Python from Scratch
Learn to write real, working Python code to automate repetitive tasks, analyze information, and build your own applications. Master core syntax, data structures, and practical libraries through hands-on logic.
Python: Writing Useful Scripts
Learn how to write real, functioning Python code to automate tedious tasks and crunch everyday numbers. Build confidence step-by-step from your first variable to clean, reusable custom functions.
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.
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.
Python Programming for Beginners
Stop reading about code and start writing it. Build your first programs immediately and learn how to think like a developer to solve real-world problems.
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.
Start Thinking in Code today.
Download Tomo, search Thinking in Code, and play your first lesson in under a minute.