←All towers

Raahaao Code: JavaScript

Make the web think: logic, data, the DOM, async, and games.

9+ hours of lessons · 2 projects · €35

Helps you prepare for: JSE – Certified Entry-Level JavaScript Programmer (JS Institute) · IT Specialist – JavaScript (Certiport)

Or get it in a monthly plan from €3.46 a week (billed €15 monthly) →

You need an account to open any lessons. Without one you can browse the towers and prices.

Pay in

What you'll learn, floor by floor

  1. 1

    Basics (Beginner)

    • Values and variables
    • Decisions and loops
    • Functions
  2. 2

    Data (Beginner)

    • Arrays
    • Objects and JSON
    • Strings, numbers and money maths
  3. 3

    The page (Intermediate)

    • The DOM
    • Events and forms
    • State, render and undo
  4. 4

    Async (Intermediate)

    • Promises and async/await
    • fetch and APIs
    • Storage, dates and time zones
  5. 5

    Pro (Job-ready)

    • Canvas and the game loop
    • Classes and modules
    • Real-time: SSE and reconnecting
    • Debugging, testing and performance

The two rooftop projects

Word-guess game

Build a five-letter word-guessing game that runs entirely in the browser. You will write the scoring logic that colours each letter green, yellow or grey (including the tricky repeated-letter rule), then wire it to a keyboard-driven board, a message line and saved statistics.

  • score() marks letters in the right spot green.
  • score() marks letters that are in the word but elsewhere yellow.
  • score() handles repeated letters correctly (a letter is only yellow as many times as it appears).
  • The board shows 6 rows of 5 tiles.
  • Typing on the keyboard fills the current row, Backspace deletes, Enter submits.
  • A word that is not in WORDS is rejected with a message.
  • Winning or using all 6 rows shows a message.
  • Games played and wins are saved in localStorage under the key 'wordStats'.

Arcade game

Build a brick-breaker arcade game. The heart of it is two pure functions: collide(), which decides whether a circle touches a rectangle, and step(), which takes the whole game state and returns the next one.

  • collide() detects overlap between the ball and a rectangle.
  • The ball bounces off the left, right and top walls.
  • The ball bounces off the paddle.
  • Hitting a brick removes it and adds 10 points.
  • Missing the ball loses a life and resets the ball.
  • step() uses dt, so movement does not depend on frame rate.
  • Clearing all bricks raises the level and makes the ball faster.
  • Pressing Space toggles paused, and a paused step changes nothing.
  • The game draws on a canvas with requestAnimationFrame.

Questions

Do I need to install anything?

No. Everything runs in your browser. For the projects you can also work on your own computer and upload your files.

Can I skip what I already know?

Yes. Once you own a tower, each floor has a skip test: score 8 out of 10 and that floor opens.

What is the refund policy?

Refunds within 5 days of purchase. After 5 days, no refunds or returns.

Do I keep access?

Yes. A tower you buy is yours, with no subscription.

Refund policy