Learn JavaScript for free, one small question at a time

Join the School of Scriptology in Preschool, with Professor Curly, and work your way up to College, where you build small web apps of your own. JavaScript runs every website, so you’ll see what you make straight away.

Start JavaScript

Free, and it works on phones and computers. Sign up with Google or a free account to keep your progress on every device. HTML and CSS are there too.

Predict the output

let apples = 3;
apples = apples + 2;
console.log(apples);

What does this print?

Four courses, all from zero

Pick one, or try them all: each course has its own map, tests and certificate, and keeps its own progress.

  • HTML School

    4 levels, 12 lessons

    Build web pages: headings, links, pictures, lists, tables and forms. Your page changes as you type.

    Play HTML School
  • CSS School

    4 levels, 12 lessons

    Make pages look good: colors, fonts, the box model, Flexbox and layouts that work on phones.

    Play CSS School
  • JavaScript

    20 grades, 60 lessons

    The School of Scriptology, from Preschool to College: from what a program is to building small web apps.

    Play JavaScript
  • Python School

    6 levels, 18 lessons

    Real Python 3, right in your browser: variables, loops, lists, functions, files and classes.

    Play Python School

Made for people who know nothing yet

Most coding tutorials are written by people who have forgotten what it was like to know nothing.

They say “just loop through the list” as if you were born knowing what a loop is. You weren’t. Nobody was.

So we built a school for complete beginners. In every course, the very first lesson answers the question everyone else skips: what is this, anyway? From there you go up one step at a time, and every new idea builds on one you already know.

Class starts whenever you’re ready.

Who you’ll meet

  • Professor Curly Your teacher in every course, and a curly brace. He explains every answer, and earns new hats and colors as you learn.
  • Sly Python School’s snake. Very patient about indentation, which is lucky, because Python cares about it a lot.
  • Tagz and Swatch They run HTML School and CSS School: one builds the page, the other paints it.
  • Buggsy The troublemaker. Sneaks bugs into code and waits for you in the test at the end of every level. You’ll beat him. A lot.

JavaScript, from Preschool to College

The biggest course: twenty grades and sixty lessons, with a test against Buggsy at the end of each grade. Every school builds on the one before, so you never meet something you haven’t been taught.

See everything each school teaches

Or read the course notes, free

  1. Kiddie School

    Preschool and Kindergarten

    What JavaScript is, and your very first program.

  2. Elementary School

    Grades 1 to 5

    Variables, data types, operators, decisions and loops.

  3. Middle School

    Grades 6 to 8

    Functions, arrays and objects: the big three.

  4. Summer School

    Debugging camp

    Bugs, errors, and how to squash them.

  5. High School

    Grades 9 to 13

    Closures, array power tools, the DOM, events and modern JavaScript.

  6. College

    Freshman to Senior Year

    Async code, classes, modules, and guided projects: a calculator, a to-do list, a quiz game and a weather app.

What a lesson looks like

Short questions with the explanation right after, and the course notes open beside you when you want more.

Pick a lesson, answer, see why. The map shows where you are in the course, and every question explains itself, right or wrong.
A page of the notes explaining variables, with a code example that has Run and Watch it run buttons
Read the page behind it. Every JavaScript lesson links to its pages in the course notes: 218 pages, with more than 450 code examples.
Watch it run: a program shown one line at a time, with each variable’s value listed below
Watch it run. Step through a program line by line and see every variable change.

Questions people ask

Is it really free?
Yes. While CurlyScript is in early access, everything on this website is free, including the extras that will be part of CurlyScript Plus in the apps: the guided projects, every Dojo belt and the progress reports.
Which languages can I learn?
Four, each in its own course: JavaScript (the School of Scriptology, twenty grades), Python (six levels of real Python 3 that runs right in your browser), HTML and CSS (four levels each, where your page changes as you type). All of them start from zero.
Which one should I start with?
Any of them works as a first language. If you want to build websites, start with HTML, then CSS, then JavaScript. If you’re curious about data, AI or automating things, or you’d like code that reads almost like English, start with Python. You can switch courses on the map whenever you like, and each one keeps its own progress.
Do I need to know anything first?
No. Every course starts at the very beginning. If you can read and use a phone or a computer, you can start.
Is it OK for children?
Yes. The JavaScript course starts with Kiddie School, written for young beginners. There are no ads in the game (the free course notes for the older grades show ads, which keep it free), and nothing about children is collected (accounts are only for players 13 and over). We only count anonymous things, like how many people finish the first lesson.
Where is my progress saved?
Online, in your free account. Sign up with Google (or with a username) and your progress is saved as you play, so you can log in on any phone or computer and carry on where you left off. If you play without an account, it stays in your browser on that one device.
Is there an app?
Android and iPhone apps are on the way. Until then, you can put the website on your phone’s home screen and it opens like an app. It takes four taps: here’s how, on Android and iPhone.

Lesson one takes a few minutes

Your progress saves as you go, so you can stop and carry on whenever you like.

Start learning