Nothing to install — 7 courses run in this tab

Learn to code by running real code

Short lessons, a guide book and a real editor for Python, PHP, TypeScript, React, C++ and more. Type it, run it, see what happened.

main.pytyping…
output
Check passed — printed three times

Real interpreters and compilers — not imitations of them

  • PythonCPython 3.14 · Pyodide
  • PHP8.5 · php-wasm
  • Laravel 13php-wasm
  • TypeScript6 · in a worker
  • Reactsandboxed iframe
  • C++clang · wasm
  • Rustyour rustc
  • Dartyour SDK
  • Flutteryour SDK
What's inside

Everything between reading it and writing it

Most courses stop at the explanation. Here every lesson runs, gets checked, and can be taken apart line by line.

Visualizer

See what the computer does, one step at a time

Every variable, list and function call drawn as it happens. Press Play, or step forwards and back yourself.

Visualizer · Loop over a list
In Python and C++ lessons, the Visualize tab does this with your own code.All 12 demos
How it works

Three steps, then repeat

Short lessons, each ending with a blank editor. You learn a piece, use it once, then write it yourself.

  1. 01Pick a course

    Start with the language you need. Each course runs from its first lesson with no setup.

    Pick a course
    • PyPython
    • PhPHP
    • LaLaravel 13
    • TsTypeScript
    • ReReact
    • CpC++
    • RsRust
    • DaDart
  2. 02Read, then try it

    Every example has a Try it button that drops it into the editor so you can change it.

    Loops

    for runs its body once per item.

    for c in "hi":
        print(c)
    h · iTry it →
  3. 03Write it yourself

    The challenge starts from an empty file. The check runs your code and tells you what's off.

    Your turn· count the vowels
    # write it from scratch
    print(sum(c in "aeiou"
              for c in word))
    Check passed
Why it sticks

The problem was never that you weren't trying

The gap isn't effort. It's practice you can actually run — all of it in one place.

  • You finished the tutorial. Could you write it from a blank file?

    Every lesson ends in an empty editor with a check that runs your code — not a quiz about it.

  • Three hours on setup. Zero lines written.

    Nothing to install. Python, PHP, TypeScript, C++ and React run in this tab, right now.

  • It printed the right answer. You still don't know why.

    Step through your own code and watch every variable change, one line at a time.

  • Nine tabs open. Nine half-finished courses.

    One place, one editor, one progress bar — across every language you're learning.

courses
10
lessons
188
guide chapters
106
run in your tab
7
Courses

10 courses, one editor

See every course
Questions

Before you start

The short answers. The longer ones are one click into any course.

Learning Rust, Dart or Flutter?

Those run on your own toolchain, in a local copy of ThongLearn. Setup walks you through it.

Open setup
Do I need to install anything?

Not for 7 of the 10 courses. Python, PHP, Laravel, TypeScript, React, C++ and Claude Code run in your browser tab. Rust, Dart and Flutter use your own toolchain through a local copy.

Where does my code run?

On your machine. The browser courses run in workers inside this tab: CPython through Pyodide, PHP through php-wasm, C++ through clang compiled to wasm. No server runs your code.

Do I need an account?

No. Progress, drafts and run history are stored in your browser. Signing in only adds a copy of your progress and drafts that follows you to other browsers; run history never leaves the tab.

How are challenges checked?

Your code runs first. Then a short check runs against what it printed or built, and tells you whether it passed.

Can I see what my code is doing?

Yes, for Python. The Visualize tab steps through your own code one line at a time and shows every variable as it changes.

Open the editor. Write a line. Press Run.

No account and no install to begin. Your progress stays in this browser until you choose to sync it.