Learn to code by making the tests pass.

Short lessons beside a browser editor. Nothing to install. HTML and CSS first, then JavaScript and beyond.

Lines of code on a monitor in a dark room
initials.js

Try it now. Fix the function so it returns the initials of any name, in capitals.

Tab adds two spaces. Press Escape, then Tab, to leave the editor. Control or Command with Enter runs the tests.

Not run yet

  1. initials("Ada") returns "A"
  2. initials("Ada Lovelace") returns "AL"
  3. initials("alan mathison turing") returns "AMT"
Stuck? Show the answer
function initials(name) {
  const words = name.split(" ");

  return words
    .map((w) => w[0].toUpperCase())
    .join("");
}

Each topic builds on the one before it.

Start at the top and follow the line. The solid blocks are projects, where you use what you have picked up.

  1. HTML

    Headings, links, images, lists and forms: the elements every page is made of.

  2. CSS

    Colour, type and spacing, then the visual design choices that make a page easy to read.

  3. Accessibility

    Pages that work with a keyboard and make sense to a screen reader.

  4. Responsive layout

    Flexbox, CSS Grid and layouts that adapt to the screen in front of them.

  5. Web page projects

    • Tribute page
    • Survey form
    • Product landing page
    • Technical documentation page
    • Personal portfolio
  6. JavaScript basics

    Variables, functions, loops and objects, then the newer ES6 syntax.

  7. Regular expressions and debugging

    Matching patterns in text, and finding out why your code misbehaves.

  8. Data structures and algorithms

    Working with arrays and objects, then writing your own small algorithms.

  9. Object oriented and functional programming

    Two ways of organising a program once it outgrows a single function.

  10. JavaScript projects

    • Palindrome checker
    • Roman numeral converter
    • Caesar cipher
    • Telephone number validator
    • Cash register
  11. And further

    React, Redux and Sass, data visualisation with D3, then Python. What appears on your dashboard depends on your plan.

The lesson sits next to your code.

You never switch windows. The task stays on the left, the editor stays on the right, and the tests say what is still missing.

Spread the menu across the page

A flex container places its children in a row. Give .menu a display of flex.

Then set justify-content to space-between so the links push apart.

  • .menu has display: flex
  • .menu has justify-content: space-between
styles.css
.menu {
  display: flex;
  justify-content: space-between;
  padding: 1rem;
}

.menu a {
  color: #e6ebe1;
  text-decoration: none;
}
Two hands typing on a laptop with code on the screen

All of it happens in a browser tab.

Nothing to install
No setup and no downloads. Open a lesson and the editor is already there.
Tests that read your code
Automatic tests point at what is still wrong, so you are not left guessing.
Projects along the way
Hands-on builds that ask you to combine several topics at once.
Your place is kept
Progress is saved to your account. Stop on one device and carry on from another.

Pick a plan and run your first test today.

Pastroding Ultra

€29.99

Billed every 28 days

3-day trial, €0.01

Start learning
  • Structured learning paths in JavaScript, Python and HTML and CSS
  • Short daily lessons with hands-on coding exercises
  • Feedback on every exercise you submit
  • Real projects you build and keep
  • Track your progress through every course
  • Learn at your own pace, on any device
  • Early access to new courses and features
  • Priority Support

Pastroding Dev Toolkit

€24.99

One-time payment

Start learning
  • One-time purchase with continued access
  • Syntax cheat sheets for HTML, CSS, JavaScript and Python
  • Git and terminal command reference
  • Starter project templates ready to download
  • Debugging checklist for common beginner errors

Secure checkout. Cancel at any time.

Things people ask first.

↑ ↓ to move Enter to open

Do I need any experience?

No. The track starts with basic HTML and each lesson assumes only the ones before it. If you already know some of it, jump ahead to a later topic.

What do I have to install?

Nothing. The editor runs in your browser, right beside the lesson.

What happens when my code is wrong?

The tests fail and show what still needs work. Change the code and run them again, as many times as you like.

Is there a schedule or a deadline?

No. Work at your own pace. Your progress stays on your account until you come back.

How does the trial work?

If a plan has a trial, its length and price are printed on the plan. The regular subscription begins when the trial ends, unless you cancel first.

How do I cancel?

From your profile or the unsubscribe page, at any time. You keep access until the end of the period you have paid for.

Your first lesson is one HTML tag.

Start learning