How to Create a Learning Roadmap You'll Actually Follow
A five-step method for building a learning roadmap: pick an outcome, list the skills, order them, size each stage in hours, and attach a first task.
A learning roadmap is an ordered list of stages that takes you from where you are to one specific outcome, with a time budget and a date on each stage. This is how to create a learning roadmap: pick the outcome, list the skills it needs, put them in order, size each stage in hours, and attach a first task to the stage you are on now. This guide walks through those five steps with a worked example you can copy.
Most roadmaps fail for a plain reason: they are lists of topics, not plans. "HTML, CSS, JavaScript, React" tells you what exists. It does not tell you what to do on Tuesday evening, or when you will know you are done with a stage.
Step 1: Write the outcome as something you can show
Start with the end, because it decides what stays on the roadmap. "Learn web development" has no finish line. "Build and deploy a small task-tracking app with React and TypeScript that I can show in an interview" does.
A good outcome has three parts:
- A thing you can point to, such as a deployed app, a passed exam or a script that saves you an hour a week.
- A rough size, for example "small" or "one main feature plus login".
- A reason, in one sentence. You will reread it when motivation dips.
If you can't write the outcome yet, that is the first task. Spend 30 minutes looking at job posts, course syllabi or a project you admire, and write down what they have in common.
Step 2: List the skills the outcome needs
Now work backwards from the outcome. Ask: what would I need to know to build this without copying a tutorial line by line?
Use an existing roadmap as a checklist here, not as your plan. roadmap.sh publishes role-based roadmaps, and the other big free curricula (freeCodeCamp, The Odin Project) show a similar order of topics. Read the one closest to your outcome and strike out everything you do not need yet. Our guide to following a developer roadmap without getting lost covers that step in detail.
For the task-tracking app, the raw list might be:
- HTML and CSS basics, including layout
- JavaScript fundamentals
- TypeScript basics
- React components, state and props
- Fetching data and handling errors
- Git and GitHub
- Deploying a front-end app
Aim for 6 to 12 items. Fewer than that and the stages are too vague. More and you are cataloguing the whole field.
Step 3: Order the skills into stages
Group the list into 4 to 7 stages. Two rules make the order work:
- Dependencies first. You need JavaScript before React, and Git before you share anything.
- Make something at the end of every stage. A stage that ends in "finished the course" is easy to stall on. A stage that ends in "a working page that does X" gives you proof and a natural place to stop.
Here is the example in stages:
| Stage | Skills | Ends with |
|---|---|---|
| 1. Page basics | HTML, CSS layout | A static, responsive page |
| 2. JavaScript | Variables, functions, DOM, arrays | A small to-do list in the browser |
| 3. TypeScript | Types, interfaces, narrowing | Stage 2's to-do list converted to TypeScript |
| 4. React | Components, state, props, effects | The to-do list rebuilt in React |
| 5. Data and Git | Fetch, errors, Git, GitHub | The app saves tasks through an API and is on GitHub |
| 6. Ship it | Deploy, README, polish | A live URL |
Notice that the stages reuse the same project. Rebuilding one small app in each new tool takes longer than starting a fresh tutorial, but it shows you what each tool changes. If you are stuck watching courses and not building, the tutorial hell guide goes through how to break out.
Step 4: Size each stage in hours and give it a date
This is the step most roadmaps skip, and it is what turns a list into a plan. First decide your weekly budget honestly. If you have 45 minutes on four weekday evenings plus a 2-hour Saturday block, that is 5 hours a week.
Then guess the hours for each stage and divide:
| Stage | Hours (guess) | Weeks at 5 h/week |
|---|---|---|
| 1. Page basics | 15 | 3 |
| 2. JavaScript | 35 | 7 |
| 3. TypeScript | 15 | 3 |
| 4. React | 35 | 7 |
| 5. Data and Git | 20 | 4 |
| 6. Ship it | 10 | 2 |
| Total | 130 | 26 |
These numbers are placeholders, not benchmarks. Your pace depends on your background, and the same stage can take one person half as long as another. Treat them as a first draft, log the real hours of your first two weeks, and replace the guesses. When you do, divide the total by your weekly hours to get a finish date you can believe, then add a buffer of 20 to 30 percent for illness, work crunches and review. That buffer is a judgement call, not a rule from research.
A date matters because "someday" never arrives. If the date feels too far, shrink the outcome instead of squeezing the hours.
Step 5: Break only the current stage into tasks
Do not write tasks for stage 5 today. Write them for stage 1 only, and make the first one tiny and specific: "Create index.html and put a heading and one paragraph on the page" beats "Learn HTML".
Add an if-then plan to that first task, saying when and where you will do it: "If it is Monday at 7:30 pm, then I open the editor and do task 1." Gollwitzer and Sheeran's meta-analysis of implementation intentions found a medium-to-large effect on goal attainment (d = 0.65 across 94 tests with more than 8,000 participants). That is an average across many kinds of goals, not a promise for learning to code, but it is a cheap thing to try.
For help turning a stage into tasks, see how to break a big learning goal into next actions.
How to create a learning roadmap: a copyable version
Paste this into a note and fill it in:
Outcome (something I can show):
Why it matters to me (one sentence):
Weekly time budget: ___ hours (days/times: ___)
Target date: ___
Stage 1: ______ | hours: __ | ends with: ______
Stage 2: ______ | hours: __ | ends with: ______
Stage 3: ______ | hours: __ | ends with: ______
Stage 4: ______ | hours: __ | ends with: ______
Current stage tasks (next 2 weeks only):
[ ] Task 1 (≤ 30 min): ______
[ ] Task 2: ______
[ ] Task 3: ______
First session: if it is ___ at ___, then I will ___.
Review: every ______ I check hours done vs. planned and move dates.
A longer fill-in version, with space for resources and a weekly rhythm, is in the personal learning plan template.
Keep the roadmap alive
A roadmap you never reread is decoration. Once a week, spend 10 minutes comparing hours done with hours planned, and decide one of three things: keep going, shrink the stage, or move the date. Doing that is more useful than rewriting the roadmap from scratch every month.
Expect to change the plan. The first draft of any roadmap is wrong in its hour estimates, and that is fine; the point is to see it early. If you want a wider set of examples of how to phrase the outcome and the numbers, learning goals examples for developers has several you can adapt.
Where GoalZen fits
You can run this method in a notebook or spreadsheet. If you would like it in one place, GoalZen lets you create a goal for the outcome with a target date and a "Measure progress in" target such as 130 hours, add each stage as a sub-goal, and put the current stage's steps in as tasks with estimates. The Timeline shows all your goals across the coming months, and Today's "Start here" panel shows one task to do now. Start free: GoalZen is free during the beta, and there is a Pro waitlist on this page.
Frequently asked questions
How long should a learning roadmap be?
Plan the whole route in 4 to 7 stages, but only break the current stage into tasks. Detail for stages months away is usually guesswork and gets rewritten anyway.
Should I copy an existing roadmap or build my own?
Start from an existing one for the list of topics, then cut it down to your outcome and add your own hours and dates. A public roadmap tells you what exists; it does not know your time or goal.
How do I know how many hours a stage needs?
You don't at first. Make a rough guess, log the hours of the first two weeks, and correct the estimate from what you actually did.
What if I fall behind my roadmap?
Move the dates or shrink the stage, not your confidence. A roadmap is a plan you revise at your weekly review, not a promise you have to defend.
Sources
Free during the beta. Founding member price — Pro at $10/mo for life.
The first 200 people to subscribe keep $10 a month (or $100 a year (two months free)) for life; after that it's $12 a month. Leave your email to hear the day it opens, plus early access to new builds.