The 90-Day Learning Roadmap
A day-by-day plan that takes you from zero to confidently building tiny apps. Designed for ~1 hour per day.
Days 1–14: Foundations
Days 1–3 — Setup & Hello World
Read the complete guide. Open the playground. Type "Hello, world!" in JavaScript and Python. Don't copy — type.
Days 4–7 — Variables, types, operators
Read the variables, data types, and operators lessons. Take the matching quizzes. Build a tip calculator (input bill, percent → output tip).
Days 8–10 — Conditionals & logic
Read the conditionals lesson. Build a small "guess my number" game (no loops yet — let the user guess once).
Days 11–14 — Loops & iteration
Read the loops lesson. Now upgrade your guessing game to allow many guesses with "higher / lower" feedback.
Days 15–30: Functions & Data
Days 15–20 — Functions
The big one. Functions lesson. Refactor your earlier exercises into clean, named functions. Aim for each function to do one thing.
Days 21–25 — Arrays & loops together
Read arrays. Practice: sum of array, average, max, filter evens, count words in a sentence.
Days 26–30 — Objects
Read objects. Build a to-do list: array of objects with {task, done}.
Days 31–60: Build Small Things
Days 31–40 — Project 1
Pick one: simple calculator, weight tracker, expense splitter, quote-of-the-day app. Build twice — once with help, once from memory.
Days 41–50 — Project 2
Step up: hangman, tic-tac-toe, or a flashcard app. Use everything you've learned. Get unstuck on your own when possible.
Days 51–60 — Project 3
Pick a small app you actually use and clone it badly. Even a worse version of "Notes" teaches enormous amounts.
Days 61–90: Specialize
Days 61–70 — Pick a path
See Next Steps. Web, data, or mobile. Don't try all three.
Days 71–85 — Build in the path
Tutorial → adapt → build something new. By day 85, you should have a small project unique to you.
Days 86–90 — Show your work
Push your code to GitHub. Write a short README. Share with one friend. Even one person seeing your work is a milestone.
You'll have bad days where nothing makes sense. That's normal — keep showing up. The fluency is in the consistency, not the speed.