Programming Languages

JavaScript Roadmap: Step-by-Step Guide for 2026

This JavaScript roadmap shows you what to learn, step by step, to go from the basics of the language to building interactive web apps and servers.

Steps10Time4 to 6 monthsLevelBeginner to job-ready

What is a JavaScript Developer?

A JavaScript developer uses JavaScript to build interactive features for websites, web apps and servers. JavaScript runs in every web browser, and with Node.js it also runs on servers, so it is used across the whole web.

Learning JavaScript is the foundation for frontend frameworks like React and Vue, backend tools like Node.js and Express, and even mobile and desktop apps.

How to use this javascript roadmap

Work through this JavaScript roadmap in order. The language has many features, so focus on the core ideas first and leave advanced topics for later steps.

Practise in the browser and in Node.js. Seeing your code change a web page is motivating, and running it on a server shows how flexible JavaScript is.

1Step 1: JavaScript basics

Learn the core syntax and how to run JavaScript in the browser.

What is it?

JavaScript is the language that runs in every web browser. Variables store values: use const for values that do not change and let for values that do. You can test code instantly in the browser console.

What to learn

Variables (let and const)Data typesOperatorsConditionalsLoopsBrowser console

Use the browser console to experiment. It is the quickest way to test small ideas.

Example

javascript

const celsius = 30;
const fahrenheit = celsius * 9 / 5 + 32;
console.log(`${celsius}°C is ${fahrenheit}°F`);

Converts a temperature and prints the result in the browser console.

Practice project: Write a script that converts temperatures between Celsius and Fahrenheit.

Helpful resource: MDN: JavaScript first steps

2Step 2: Functions and scope

Organise code into reusable functions and understand where variables live.

What is it?

A function is a reusable block of code. Scope decides where a variable can be used. A closure is a function that remembers variables from where it was created, even after that code has finished.

What to learn

Function declarationsArrow functionsParameters and returnScopeClosures

Closures sound complex but are used everywhere. Take time to understand them with small examples.

Example

javascript

function makeCounter() {
  let count = 0;
  return () => ++count;
}
const next = makeCounter();
next(); next(); // 2

The inner function remembers count, so each call adds one to the private value.

Practice project: Build a simple counter that uses a closure to keep its value private.

Helpful resource: javascript.info: Closures

3Step 3: Arrays and objects

Store and work with collections of data.

What is it?

Arrays store lists of values and objects store named properties. Methods like map, filter and reduce transform arrays without writing long loops.

What to learn

ArraysObjectsmap, filter and reduceDestructuringSpread operatorJSON

Most real-world JavaScript is about transforming arrays and objects. Practise these methods until they feel natural.

Example

javascript

const products = [{ name: "Pen", price: 2 }, { name: "Bag", price: 30 }];
const cheap = products.filter(p => p.price < 10);
const total = products.reduce((sum, p) => sum + p.price, 0);

filter keeps cheap items and reduce adds up every price.

Practice project: Take a list of products and show the total price, the cheapest item and items under a set budget.

Helpful resource: MDN: Array reference

4Step 4: The DOM and events

Change web pages with JavaScript and respond to clicks, typing and other user actions.

What is it?

The DOM (Document Object Model) is the browser’s live tree of the page. JavaScript can find elements, change their text or style and listen for events like clicks and key presses.

What to learn

Selecting elementsChanging content and stylesEvent listenersFormsEvent delegation

This is where JavaScript becomes fun. Build small interactive widgets to practise.

Example

javascript

const img = document.querySelector("#photo");
document.querySelector("#next").addEventListener("click", () => {
  img.src = "photo-2.jpg";
});

Clicking the Next button swaps the image shown on the page.

Practice project: Build an image gallery with next and previous buttons and a modal view.

Helpful resource: MDN: The DOM

5Step 5: Asynchronous JavaScript

Handle tasks that take time, such as loading data from a server.

What is it?

Asynchronous code handles slow tasks, like network requests, without freezing the page. Promises represent a future result, and async/await lets you write that code in a simple, readable way.

What to learn

CallbacksPromisesAsync and awaitFetch APIError handling

Async code is one of the hardest parts of JavaScript for beginners. Go slowly and practise with real APIs.

Example

javascript

async function getQuote() {
  try {
    const res = await fetch("https://dummyjson.com/quotes/random");
    const { quote } = await res.json();
    console.log(quote);
  } catch (err) {
    console.error("Could not load quote");
  }
}

The function waits for the API, prints a quote and handles errors gracefully.

Practice project: Build a random quote app that loads quotes from a public API.

Helpful resource: javascript.info: Promises and async

6Step 6: Modern JavaScript and modules

Write clean, modern code and split it into modules.

What is it?

Modules split code into separate files that export and import functions. Modern syntax like classes, optional chaining and template literals keeps code short and clear.

What to learn

ES modulesClassesOptional chainingTemplate literalsIterators

Modern syntax makes your code shorter and easier to read. Use it in every new project.

Example

javascript

// math.js
export const add = (a, b) => a + b;

// app.js
import { add } from "./math.js";
console.log(add(2, 3));

add lives in its own file and is imported wherever it is needed.

Practice project: Refactor your gallery and quote apps into separate modules.

Helpful resource: MDN: JavaScript modules

7Step 7: Tooling and Git

Use the tools professional JavaScript developers rely on.

What is it?

npm installs packages, Vite runs and builds projects, and ESLint and Prettier keep code clean and consistent. Git saves your history and GitHub stores it online.

What to learn

npmViteESLintPrettierGit and GitHub

Tooling can feel overwhelming. Learn just enough to start a project, install packages and format your code.

Example

bash

npm create vite@latest quotes-app
cd quotes-app && npm install
npm install -D eslint prettier
npm run dev

Create a new project, install linting tools and start a local development server.

Practice project: Create a new project with Vite and publish it to GitHub.

Helpful resource: Vite guide

8Step 8: Node.js basics

Run JavaScript on the server and build simple APIs.

What is it?

Node.js lets JavaScript run outside the browser, on servers and your own computer. With Express you can quickly build APIs that send and receive JSON.

What to learn

Node.js runtimeFile systemExpressREST APIsEnvironment variables

Knowing Node.js lets you build full applications with one language. See our backend developer roadmap for more.

Example

javascript

import express from "express";
const app = express();
const quotes = ["Stay curious."];
app.get("/quotes", (req, res) => res.json(quotes));
app.listen(3000, () => console.log("Running on 3000"));

A tiny API that returns a list of quotes at /quotes.

Practice project: Build a small API that serves your quotes and lets users add new ones.

Helpful resource: Node.js Learn

9Step 9: TypeScript and testing

Catch bugs early with types and automated tests.

What is it?

TypeScript is JavaScript with types, which catch mistakes while you type. Testing tools like Vitest run small checks that confirm your functions return the right values.

What to learn

TypeScript basicsTypes and interfacesVitest or JestUnit testing

TypeScript is now common in job listings. Learn the basics and use it in at least one project.

Example

typescript

export function add(a: number, b: number): number {
  return a + b;
}
// add.test.ts
test("adds numbers", () => expect(add(2, 3)).toBe(5));

Types stop you passing text to add, and the test confirms the result.

Practice project: Convert your quote API to TypeScript and add unit tests.

Helpful resource: TypeScript documentation

10Step 10: Pick a path and build a portfolio

Use your JavaScript skills in a framework or on the server, and show your best work.

What is it?

With strong JavaScript, you can choose a path: a frontend framework like React, backend work with Node.js, or both. A portfolio of finished projects shows employers what you can do.

What to learn

React or VueNode.js backendPortfolio siteInterview questions

Continue with our React roadmap or frontend developer roadmap to keep growing.

Example

json

{
  "name": "my-portfolio",
  "scripts": { "dev": "vite", "build": "vite build" }
}

The scripts section in package.json defines how your project runs and builds.

Practice project: Build and deploy a portfolio site that shows your three best JavaScript projects.

Helpful resource: Career advice in our latest articles.

JavaScript roadmap project ideas

Projects turn what you learn into real skills. Build at least one project from each level below, and put every finished project on GitHub with a clear README.

Beginner

Temperature converter

Convert between units with input validation.

Beginner

Image gallery

Next and previous buttons, thumbnails and a modal view.

Intermediate

Random quote app

Load quotes from an API with loading and error states.

Intermediate

Budget tracker

Track income and expenses with charts and local storage.

Advanced

Quotes API with Node.js

Express API with validation, tests and TypeScript.

Advanced

Browser game

A canvas game like Snake or Breakout with scores and levels.

Tips to finish this javascript roadmap

  • Learn by building. Spend at least two thirds of your study time writing code and making projects, not watching videos.
  • Be consistent. One focused hour every day beats a long session once a week. Small daily progress adds up quickly.
  • Share your work. Post your projects on GitHub and LinkedIn. It builds your confidence and helps recruiters find you.
  • Ask for feedback. Join a community, ask questions and review other people’s code. Explaining things to others is one of the fastest ways to learn.
  • Do not chase every new tool. The fundamentals in this javascript roadmap change slowly. Master them first, then explore new libraries.

Career paths and next steps

After this JavaScript roadmap, you will be ready to learn a framework such as React, or to move into backend work with Node.js. Many people use JavaScript as the base for a full stack career.

Good next steps are the React roadmap and the full stack developer roadmap.

Related roadmaps

JavaScript Roadmap FAQs

How long does it take to learn JavaScript?

You can learn the basics in a month or two. Becoming confident enough for a job usually takes 4 to 6 months.

Is JavaScript hard to learn?

The basics are easy to start with. Some topics, like async code and closures, take more practice, but a step-by-step plan helps a lot.

Can I get a job with only JavaScript?

JavaScript is the core skill, but most jobs also expect HTML, CSS, Git and a framework such as React.

Should I learn TypeScript instead of JavaScript?

Learn JavaScript first. TypeScript is built on top of it, so it is much easier once you know JavaScript well.