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.
What you'll learn, floor by floor
- 1
Basics (Beginner)
- Values and variables
- Decisions and loops
- Functions
- 2
Data (Beginner)
- Arrays
- Objects and JSON
- Strings, numbers and money maths
- 3
The page (Intermediate)
- The DOM
- Events and forms
- State, render and undo
- 4
Async (Intermediate)
- Promises and async/await
- fetch and APIs
- Storage, dates and time zones
- 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.
The towers
HTML & CSS · Python · SQL · C++ · Node.js · Python for Data · Flask · Logic & Problem Solving · Algorithms & Data Structures · Java · Machine Learning · Building with AI