The self-taught developer roadmap
Eight steps from knowing nothing to writing code someone will pay for. Click a step to see what it covers, how long it realistically takes, and the test for whether you are ready to move on. Double-click a step, or use the button, to mark it complete — progress is stored in your own browser only.
How the web works
Before any code, understand the pieces: a browser asks a server for a document, the server answers, the browser renders it. Learn what a URL, a domain, DNS, HTTP, a status code and a request header are. An afternoon here saves weeks of confusion later, because every error message you will ever see refers to one of these parts.
You are ready to move on when you can explain what happens between typing an address and seeing a page, and you can open the browser's network tab and read a request.
Start with the HTML basics guide.
HTML
Structure and meaning. Headings, paragraphs, links, images, lists, tables, forms, and the semantic elements that tell assistive technology and search engines what each region of a page is. Budget about two weeks of evenings.
Ready to move on when you can build a multi-section page with a working form, entirely from memory, and it passes the W3C validator.
Guide: HTML basics.
CSS
Presentation. The box model, selectors and specificity, flexbox, grid, custom properties, media queries and a usable type scale. Expect three to four weeks, and expect layout to be the part that takes the longest to click.
Ready to move on when you can rebuild a page you admire from a screenshot, and it holds together from 320 pixels to a wide desktop.
Guide: CSS layout.
JavaScript
Behaviour, and the largest single step on this path. Variables, functions, arrays and objects, the DOM, events, fetch, promises and async/await, plus modules and error handling. Six to eight weeks is realistic, and it is normal to feel slow for most of it.
Ready to move on when you can build something that loads data from a public API and renders it, handling the loading and error states.
Guides: JavaScript fundamentals and APIs explained.
Git and deployment
Version control and getting work online. Commits, branches, remotes, pull requests, plus a static host and a custom domain. One week, and it pays for itself immediately because your work stops living only on one laptop.
Ready to move on when a project of yours is in a repository and live at a URL you can send to someone.
Guides: Git and GitHub and deploying a static site.
A framework
Now, not earlier. React with Next.js is the common default; Vue, Svelte and Astro are all reasonable. Learn components, state, routing and data fetching. Four to six weeks. Learning a framework before JavaScript is the most common way people get stuck, because every error becomes two mysteries instead of one.
Ready to move on when you can build a multi-page application with a form, a list and a detail view.
Guide: choosing a tech stack.
Back end and data
Where data lives. A server runtime, an HTTP API, SQL and a relational database — PostgreSQL is the sensible default — plus authentication and the basics of hosting. Six to eight weeks. Python or Node both work; pick the one you will keep using.
Ready to move on when you have built and deployed an API that stores and returns real data with accounts behind it.
Guides: Python basics and APIs explained.
Craft
The difference between working and professional: testing, accessibility, performance, security basics, code review, and using AI assistants without shipping their mistakes. This part never finishes, and it is what employers are actually paying for.
Guides: web performance and AI coding assistants.
How to use this
The order matters more than the speed. Each step assumes the previous one, and the most common reason people stall is skipping ahead — usually straight to a framework, before the language underneath it makes sense. When that happens every error has two possible causes and no way to tell them apart.
The time estimates assume roughly ten hours a week. At that pace, the whole path takes most people nine to fifteen months. Going faster is possible with more hours; going slower is fine and extremely common.
Build things, not just lessons
Finishing a tutorial feels like progress and often is not. The learning happens when you build something that was not in the tutorial, get stuck, and work out why. After each step above, build one small thing from scratch — no tutorial open — even if it is ugly. A page about something you like, a script that renames your files, a form that saves to a list.
A portfolio that actually helps
Three finished projects beat twenty abandoned ones. Each should be live at a URL, have its code in a public repository, and include a short description of what problem it solves and what you learned. One of them should solve a real problem for a real person, even if that person is you — the difference between a to-do app clone and something genuinely used is obvious to anyone reading your work.
When you get stuck
Read the error message, properly and all the way through. Reduce the problem to the smallest code that still fails. Check the official documentation before searching for a blog post. Then ask somewhere public, with the code, the error and what you have already tried. Being stuck for two hours is normal; being stuck for two days without asking is not.