From a bit of HTML to shipping full-stack apps.
This isn't a pile of tutorials to watch. It's a path where every module ends with something real — built by you, pushed to GitHub, live on the internet. Work through it at your own pace. Roughly 6–9 months at 10–15 hrs/week.
Tick off each step as you go — it saves automatically on this device.
Set up your machine
Get your tools installed and accounts created. You're on a Mac, so we'll do it the way most developers do — with Homebrew, which turns the whole thing into a few one-line commands instead of a dozen downloads. Do it properly once and you never think about it again.
Homebrew is a package manager for macOS — think of it as an app store for developer tools that you drive from the terminal. Instead of finding a website, downloading an installer, and clicking through it for every single tool, you type one line — brew install git — and it's done. It also keeps everything up to date at once with brew upgrade. Almost every Mac developer uses it; it's the tidiest way to install everything below. (On Windows instead? Grab each tool from its download page, or use winget.)
In the terminal, brew --version, git --version and node -v all print version numbers, VS Code opens, running claude starts Claude Code, and your GitHub account exists.
Learning with Claude
You have a Claude subscription — so you already have a patient tutor, a code reviewer, and a tireless pair programmer available any time. Used well, it makes this whole roadmap faster and a lot less lonely. Used badly, it quietly stops you from actually learning. Here's how to get the good version.
- Explain anything, in plain words. Paste an error, a file, or one confusing line and ask "what does this do?" or "why is this red?". No question is too basic — that's the whole point.
- Be your always-on tutor. Ask it to teach a concept before you write code: "explain the box model like I'm new," "what's the real difference between props and state?"
- Review your code. After a project: "review this for security, performance, and readability issues." Then read what it found — that's where a lot of the learning is.
- Get you unstuck. Share the error and the relevant file and it walks you through the cause, not just a patch.
- Do the boring parts. Boilerplate, scaffolding, repetitive edits — so your energy goes to the interesting bits.
- Work across your whole project — that's Claude Code. In your terminal or VS Code, Claude Code can read every file, run commands, use git, and edit across many files at once. It's an agent that lives in your codebase, not just a chat window.
- It skims over security. It'll happily write code with missing auth checks, unvalidated input, secrets hardcoded in files, or SQL-injection holes — and won't mention them unless you ask. Get in the habit of asking: "is this safe?"
- It has performance blind spots. Code that's fine on 10 rows can crawl on 10,000 — N+1 database queries, nested loops, loading everything into memory. It looks correct because it is correct — just slow.
- It quietly drops things. While editing a file it can remove a check, a case, or an edge-handling branch and never say so — and won't reintroduce it later either. This is exactly why you read the diff.
- It over-engineers. Ask for a button and get a plugin system, three new dependencies, and layers of abstraction you don't need. Push back: "give me the simplest version that works."
- It's confidently wrong sometimes. It can invent functions, APIs, or config options that don't exist. Cross-check against the real docs — the MDN / official-docs habit from Module 1 pays off here.
- Slow, expensive overkill. Pointing the heaviest model at a one-line typo fix is slow and burns your limits for no benefit. Match the tool to the size of the job.
- The learning trap. If you paste in code you can't explain, you didn't learn — you assembled. Early on especially, prefer "explain it so I can write it" over "just write it."
The goal isn't to out-type the AI — you never will. It's to become the person who can tell when the AI is wrong: who spots the security hole, the slow query, the missing check, the needless complexity. AI is the fastest way to move; the fundamentals in these modules are how you steer. Learn both and you're dangerous in the best way.
Claude Code is set up, you've used it to explain something and to review a project — and you can look at AI-written code and say what it does and whether you'd trust it.
HTML & CSS, properly
Not just "make a div pink" — real structure and layout skills. Everything here builds toward one goal: your own CV / homepage, live on the internet by the end of week 3.
Your CV site is live at a real github.io URL, looks good on both phone and desktop, and you'd be happy to put the link on LinkedIn as "currently learning to code — here's my site."
- freeCodeCamp: Responsive Web Design — structured, free, with exercises. Your main track for this module.
- MDN Web Docs — the reference you'll come back to forever.
- Flexbox Froggy & Grid Garden — genuinely useful games for muscle memory.
- Kevin Powell on YouTube — the best CSS explainer out there.
- GitHub Pages quickstart — official deploy guide.
JavaScript
The real foundation. Jumping to React without solid JS is the #1 way people get stuck and give up — so don't rush this one.
You can build a small interactive app from a blank file without a tutorial open — and you can explain what async/await and .map() actually do in your own words.
- JavaScript.info — thorough, free, well-organised. Your main track.
- freeCodeCamp: JavaScript Algorithms & Data Structures
- Eloquent JavaScript — free book, great for more depth once the basics click.
- JavaScript30 by Wes Bos — 30 small vanilla-JS projects, free.
Git & GitHub
A small module, but non-negotiable — every single job uses this.
Your GitHub profile shows several repos with real commit history and readable READMEs, and you can create a branch, open a PR, and merge it without looking anything up.
- GitHub Skills — interactive, official.
- Learn Git Branching — visual and interactive; makes branches finally click.
React
Now you build interactive UIs the way most modern front-ends are built.
You can start a new React app, break a design into components, wire up state and an API call, and add a second page with routing — comfortably, without copying from a tutorial.
- react.dev — the official docs; genuinely excellent for beginners now.
- Scrimba: Learn React — interactive; the free tier is solid.
- freeCodeCamp: Front End Development Libraries
No copying tutorial code without understanding each line. Type it out, break it on purpose, then fix it. That's where the learning actually happens.
TypeScript basics
Worth adding once React feels comfortable — most real-world React / Node jobs use TypeScript.
You can add types to props, state, and functions without fear, and a red squiggle in your editor feels helpful rather than scary.
- TypeScript Handbook — official and concise.
- Total TypeScript free tutorials — beginner-friendly.
Node + Express
Now you build the other half — the backend that serves data to a front-end.
You have an Express API with GET / POST / PUT / DELETE routes returning sensible status codes, and your React app reads and writes data through it.
- Express official docs — short and actually readable.
- The Odin Project — NodeJS course — free, project-heavy, perfect for this stage.
SQL + Prisma
Learn plain SQL first — Prisma makes far more sense once you get what it's abstracting away.
Your API's data lives in a real PostgreSQL database, managed through Prisma — data survives a server restart, and you can model a one-to-many relationship on your own.
- SQLBolt — free, interactive SQL exercises.
- Prisma official docs — a very good "getting started" guide.
Capstone project
Combine everything into one real, deployed full-stack app. This is the project you'll talk about in interviews.
React front-end + Express / Prisma / PostgreSQL back-end, with basic auth (signup & login).
Anyone can visit a real URL (not localhost), sign up, log in, and use your app end-to-end. Having something live to point at changes everything — for confidence and for job applications.
Portfolio & job prep
You've got real projects now. This is about presenting them well and getting in front of people.
You have a tidy GitHub, a portfolio site linking 2–3 live projects, a resume built around them, and you're sending applications. This one never really "finishes" — keep iterating.
Read this whenever you feel stuck
The habits that decide whether this works — more than any single resource.
You've got this, Mina. ♥