Skill Roadmap

Node.js

Node.js runs JavaScript outside the browser, powering everything from REST APIs to CLI tools and background workers. This roadmap walks you from modules and npm through async programming, files, building APIs, databases, testing, and running Node.js reliably in production.

What skills does a Node.js developer need?

JavaScript on the server, with its own runtime concerns

Node.js lets you run JavaScript outside the browser, so a solid grasp of core JavaScript is the real prerequisite. On top of that, Node.js work is defined by its asynchronous, event-driven model — understanding the event loop, promises, and async/await is what separates code that merely runs from code that scales.

Day to day, that means being comfortable with npm for managing dependencies, the built-in modules for files and processes, and at least one web framework such as Express or Fastify for building and consuming APIs. Most real projects also need a database layer, whether that's an ORM like Prisma or a native driver.

As applications grow, Node.js skills extend into testing, structured logging, and understanding how to keep a process running reliably in production — including threads, streams, and diagnosing memory leaks when things go wrong.

The Node.js Roadmap

Beginner topics first, then intermediate and advanced — work through these roughly in order

STEP 1
JavaScript logo

JavaScript Fundamentals

Node.js is JavaScript running outside the browser — get comfortable with the language first.

JavaScript Roadmap
STEP 2
Node.js logo

Introduction to Node.js

What Node.js is, why it exists, and how it differs from running JavaScript in a browser.

What is Node.js? Why use Node.js? History of Node.js Node.js vs Browser Running Node.js Code
STEP 3

Modules

How Node.js code is split into files and shared between them.

CommonJS ESM Creating & Importing [global] keyword
STEP 4
npm logo

npm

Install, manage, and publish packages — the backbone of the Node.js ecosystem.

Global Installation Local Installation Installing Packages Updating Packages Running Scripts npm workspaces Creating Packages Semantic Versioning
STEP 5

Error Handling

Recognise the different kinds of errors Node.js throws, and how to trace and debug them.

Types of Errors
JavaScript Errors System Errors User Specified Errors Assertion Errors
Uncaught Exceptions Handling Async Errors Callstack / Stack Trace Using Debugger npx
STEP 6

Async Programming

The event-driven core of Node.js — understanding this well is what separates working code from code that scales.

Promises async/await Callbacks setTimeout setInterval setImmediate process.nextTick Writing Async Code Event Emitter Event Loop
STEP 7

Working with Files

Read, write, and navigate the filesystem from a Node.js process.

process.cwd() path module fs module __dirname __filename glob / globby fs-extra / chokidar Opensource Packages
STEP 8

Command Line Apps

Read input, print output, and manage config for tools meant to run in a terminal.

Config & Environment
dotenv package process.env Environment Variables Exitting / Exit Codes
Input / Output
process.stdin prompts package Inquirer Package Taking Input Printing Output stdout / stderr chalk package figlet package cli-progress process.argv commander Command line args
STEP 9

Building & Consuming APIs

Pick a framework to serve APIs, and a client to call other people's.

Frameworks
Making API Calls
Authentication
jsonwebtoken passport.js
Template Engines
ejs pug marko
Monitor Changes (Dev)
--watch nodemon
STEP 10

Working with Databases

Persist data with an ORM, query builder, or native driver — relational or NoSQL.

NoSQL DBs
Mongoose Prisma Native Drivers
Relational
STEP 11

Testing

Cover the code you write with unit, integration, and end-to-end tests.

STEP 12

Logging & Keeping the App Running

Know what your app is doing in production, and keep it alive when it crashes.

STEP 13

Threads, Streams & Debugging

Push past a single event loop, handle large data efficiently, and diagnose problems in production.

Threads
Child Process Cluster Worker Threads
Streams
Debugging
Memory Leaks node --inspect Using APM Garbage Collection Common Built-in Modules

GitHub Projects

Real, buildable projects to put on your own GitHub

Frequently Asked Questions

Common questions from people starting out with Node.js

Is Node.js single-threaded?

The main JavaScript execution runs on a single thread with an event loop, but Node.js itself uses a thread pool under the hood for things like file I/O, and offers Worker Threads and Cluster for genuine parallel work when you need it.

Should I use CommonJS or ESM?

ESM (`import`/`export`) is the modern standard and what most new projects and libraries use. CommonJS (`require`) is still common in older codebases and some tooling, so it's worth being able to read both even if you write new code in ESM.

Express, Fastify, or NestJS — which framework should I learn?

Express is the most widely used and the easiest starting point. Fastify offers better performance with a similar feel. NestJS adds a full, opinionated architecture on top of Express or Fastify, and suits larger teams and enterprise-style codebases.

How is Node.js different from Deno or Bun?

All three run JavaScript outside the browser, but Deno and Bun were built more recently with built-in TypeScript support, different module systems, and (for Bun) a focus on raw speed. Node.js remains the most established, with by far the largest ecosystem and production track record.

Do I need TypeScript for Node.js?

Not strictly, but it's common in production codebases, especially with frameworks like NestJS that are built around it. Learning plain Node.js first, then adding TypeScript, is a reasonable order to learn things in.

How do I prepare for a Node.js interview?

Be able to explain the event loop and the difference between synchronous and asynchronous code, know how to structure error handling around promises, be comfortable with at least one framework and one database layer, and have a project you can walk through end to end.

Track complete

From modules and npm to a tested, logged, production-ready API — that's the core of what employers expect from a Node.js developer. Keep building, and let the framework and database tools you enjoy most pull you toward the next roadmap.

Where next?

Keep exploring by domain or drill into a single skill