CodeBlanks Logo Icon CodeBlanks
Free 4 levels

Node.js

Learn Node.js 22 and ES modules from modules to Express, clustering and expert topics with hands-on projects.

The Node.js course covers all levels with ES modules, fs, streams, Express, clustering, worker threads, databases, microservices and V8 internals.

  • 362 lessons
  • 30 h 27 min
  • 10 projects

No account needed, you can start right away. To save your progress, create a free account

Levels

The Node.js course goes from zero to expert in four levels. Start at any level you like.
Not sure of your level? Take the placement test
Beginner

Learn Node.js 22 and ES modules fundamentals: modules, file I/O, path, events and streams.

  • Node.js basics
  • Variables
  • Data types
  • Operators
116 lessons · 9 h 30 min See lessons →
Intermediate

Learn events, streams, HTTP, Express basics and middleware in Node.js.

  • Events
  • Streams
  • HTTP server
  • Express basics
116 lessons · 9 h 57 min See lessons →
Advanced

Learn clustering, worker threads, performance, security, databases and microservice basics in Node.js.

  • Clustering
  • Worker threads
  • Performance
  • Security
83 lessons · 7 h 0 min See lessons →
Expert

Learn V8 internals, C++ addons, internals, distributed systems and performance engineering in Node.js.

  • V8 internals
  • Native addons
  • Event loop internals
  • Memory internals
47 lessons · 4 h 0 min See lessons →

Projects you will build

At every level you combine what you learned into a real page.

How does it work?

Short explanation

Each lesson explains one concept in a few short cards; no long videos or walls of text.

Try it right away

Multiple choice, fill-in-the-blank and matching exercises lock in what you just learned.

Write it yourself

You write real code in the in-browser editor; it is checked instantly and you see the result live.

Curriculum

62 groups · 362 lessons · 30 h 27 min

Learn Node.js 22 and ES modules fundamentals: modules, file I/O, path, events and streams.

1
Node.js basics
6 lessons · 27 min
  1. 1 What is Node.js? Learn that Node.js is a V8-based runtime and the event loop. 4 min
  2. 2 Your first program Learn to run a script with node and use console.log. 4 min
  3. 3 ES modules Learn ES module syntax with import and export. 5 min
  4. 4 package.json Learn the package.json structure and npm. 4 min
  5. 5 CommonJS vs ESM Learn the difference between CommonJS (require) and ES modules. 5 min
  6. 6 Summary - Node.js basics Combine import, package.json and console.log to write your first Node.js program. 5 min
2
Variables
6 lessons · 26 min
  1. 1 let and const Learn to declare variables with let and const. 4 min
  2. 2 var and scope Learn var's function scope and hoisting. 4 min
  3. 3 Type inference Learn JavaScript's dynamic type inference. 4 min
  4. 4 Destructuring Learn to extract values from arrays and objects with destructuring. 4 min
  5. 5 Spread and rest Learn spread and rest parameters with the ... operator. 5 min
  6. 6 Summary - Variables Combine let, const, destructuring and spread to write a profile program. 5 min
3
Data types
6 lessons · 28 min
  1. 1 Primitive types Learn the primitive types string, number, boolean, null, undefined. 4 min
  2. 2 Template literals Learn to build strings with template literals. 5 min
  3. 3 Number and Math Learn Number methods and the Math object. 4 min
  4. 4 Symbol Learn unique identifiers with Symbol. 5 min
  5. 5 typeof Learn type checking with the typeof operator. 5 min
  6. 6 Summary - Data types Combine primitive types, template literals and Math to write a calculation card. 5 min
4
Project: CalculatorProject
5 lessons · 30 min
  1. 1 Project design Design the structure of the calculator project and write the skeleton code. 6 min
  2. 2 Add and subtract Add and test the addition and subtraction functions. 6 min
  3. 3 Multiply and divide Add multiplication, division and the divide-by-zero check. 6 min
  4. 4 process.argv Learn command-line arguments with process.argv. 6 min
  5. 5 Putting it together Combine all parts into a working CLI calculator. 6 min
5
Operators
6 lessons · 26 min
  1. 1 Arithmetic operators Learn basic arithmetic with +, -, *, / and %. 4 min
  2. 2 Assignment operators Learn shortcut assignments with =, +=, -=, *=, /= and ++/--. 4 min
  3. 3 Comparison operators Learn to compare values with ==, ===, !=, <, >, <= and >=. 4 min
  4. 4 Logical operators Learn boolean logic with &&, || and !. 4 min
  5. 5 Nullish coalescing Learn nullish coalescing with ?? and optional chaining. 5 min
  6. 6 Summary - Operators Combine arithmetic, comparison and nullish coalescing to build a grade calculator. 5 min
6
Strings
6 lessons · 28 min
  1. 1 String methods Learn .length, .toUpperCase and .toLowerCase methods. 4 min
  2. 2 String search Learn to search with .indexOf, .includes and .startsWith. 4 min
  3. 3 substring and slice Learn to take parts of a string with .substring and .slice. 5 min
  4. 4 replace and split Learn to modify strings with .replace and .split. 5 min
  5. 5 padStart and trim Learn string formatting with .padStart and .trim. 5 min
  6. 6 Summary - Strings Combine string methods to write a business card. 5 min
7
Conditionals
6 lessons · 27 min
  1. 1 The if statement Learn how to check a condition with if. 4 min
  2. 2 else and else if Learn else and else if chains for alternative cases. 4 min
  3. 3 switch Learn multi-way selection with switch, case, break and default. 5 min
  4. 4 Ternary Learn to write a conditional expression in one line with ? :. 4 min
  5. 5 Optional chaining Learn null-safe access with ?. 5 min
  6. 6 Summary - Conditionals Combine if, switch and optional chaining to write a day-of-week app. 5 min
8
Loops
6 lessons · 25 min
  1. 1 The for loop Learn to write counted loops with for. 4 min
  2. 2 The while loop Learn loops that run while a condition holds with while. 4 min
  3. 3 for...of Learn to iterate over iterables with for...of. 4 min
  4. 4 for...in Learn to iterate over object keys with for...in. 4 min
  5. 5 break and continue Learn to exit a loop with break and skip with continue. 4 min
  6. 6 Summary - Loops Combine for, while and for...of to write a multiplication table. 5 min
9
Project: Shopping cartProject
5 lessons · 30 min
  1. 1 Cart design Design the class structure for the shopping cart. 6 min
  2. 2 Adding items Learn to add items with the addItem method. 6 min
  3. 3 Calculating totals Learn to compute the subtotal and the tax-inclusive total. 6 min
  4. 4 Listing the cart Write the method that prints the cart formatted. 6 min
  5. 5 Putting it together Combine the cart class with a CLI. 6 min
10
Arrays
6 lessons · 28 min
  1. 1 Declaring arrays Learn to declare and initialize arrays with []. 4 min
  2. 2 Array access Learn to access array elements by index. 4 min
  3. 3 push and pop Learn to add/remove at the end with .push and .pop. 5 min
  4. 4 shift and unshift Learn to add/remove at the start with .shift and .unshift. 5 min
  5. 5 splice and slice Learn array slicing with .splice and .slice. 5 min
  6. 6 Summary - Arrays Combine push, slice and forEach to write a class list. 5 min
11
Array methods
6 lessons · 30 min
  1. 1 map Learn to transform each element with .map. 5 min
  2. 2 filter Learn to filter elements matching a condition with .filter. 5 min
  3. 3 reduce Learn to reduce an array to a single value with .reduce. 5 min
  4. 4 find and some Learn search and check with .find and .some. 5 min
  5. 5 forEach Learn side-effect loops with .forEach. 5 min
  6. 6 Summary - Array methods Combine map, filter and reduce to write a sales report. 5 min
12
Objects
6 lessons · 29 min
  1. 1 Object literal Learn to create objects with {}. 4 min
  2. 2 Property access Learn to access properties with . and []. 5 min
  3. 3 Computed properties Learn computed property names with [key]. 5 min
  4. 4 Object methods Learn to define methods inside an object. 5 min
  5. 5 Object spread Learn to merge and copy objects with .... 5 min
  6. 6 Summary - Objects Combine objects, methods and spread to write a phone book. 5 min
13
Functions
6 lessons · 28 min
  1. 1 Defining functions Learn to define functions with function and arrow function. 4 min
  2. 2 Return values Learn to return a value from a function with return. 4 min
  3. 3 Arrow functions Learn arrow function syntax with () => {}. 5 min
  4. 4 Default parameters Learn to define parameters with default values. 5 min
  5. 5 Rest parameters Learn to take a variable number of arguments with ...args. 5 min
  6. 6 Summary - Functions Combine arrow functions, default and rest to write a math helper. 5 min
14
Callbacks
6 lessons · 30 min
  1. 1 What are callbacks? Learn the callback function concept and usage. 5 min
  2. 2 Higher-order functions Learn functions that take functions as parameters. 5 min
  3. 3 forEach with callbacks Learn the callback pattern with .forEach. 5 min
  4. 4 Error-first callbacks Learn the Node.js error-first callback convention. 5 min
  5. 5 Callback hell Learn callback hell and how to prevent it. 5 min
  6. 6 Summary - Callbacks Combine higher-order, error-first and callback hell to write a file reader. 5 min
15
Project: To-do CLIProject
5 lessons · 30 min
  1. 1 Task model Design the Task object and array structure. 6 min
  2. 2 Adding tasks Learn to add tasks with the addTask function. 6 min
  3. 3 Listing tasks Learn to print tasks formatted with listTasks. 6 min
  4. 4 Completing tasks Learn to update task status with completeTask. 6 min
  5. 5 Putting it together Build a working CLI app with process.argv. 6 min
16
Promises
6 lessons · 30 min
  1. 1 What are promises? Learn the Promise concept and its states. 5 min
  2. 2 then and catch Learn promise chaining with .then and .catch. 5 min
  3. 3 Promise.all Learn parallel promises with Promise.all. 5 min
  4. 4 Promise.race Learn to await the first to finish with Promise.race. 5 min
  5. 5 finally Learn cleanup with .finally. 5 min
  6. 6 Summary - Promises Combine then, Promise.all and finally to write a parallel downloader. 5 min
17
async/await
6 lessons · 30 min
  1. 1 async function Learn to define async functions. 5 min
  2. 2 await Learn to await a promise. 5 min
  3. 3 try/catch Learn to catch errors in async functions with try/catch. 5 min
  4. 4 await with Promise.all Learn parallel operations with await Promise.all. 5 min
  5. 5 Sequential await Learn sequential operations with await. 5 min
  6. 6 Summary - async/await Combine async/await and Promise.all to write a file processor. 5 min
18
fs module
6 lessons · 30 min
  1. 1 fs.promises Learn async file operations with fs.promises. 5 min
  2. 2 readFile Learn to read files with fs.readFile. 5 min
  3. 3 writeFile Learn to write files with fs.writeFile. 5 min
  4. 4 appendFile Learn to append to files with fs.appendFile. 5 min
  5. 5 existsSync Learn to check file existence with fs.existsSync. 5 min
  6. 6 Summary - fs module Combine readFile, writeFile and existsSync to write a notes app. 5 min
19
path module
6 lessons · 28 min
  1. 1 path.join Learn to join paths with path.join. 4 min
  2. 2 path.resolve Learn to resolve absolute paths with path.resolve. 4 min
  3. 3 path.parse Learn to parse paths with path.parse. 5 min
  4. 4 path.dirname and basename Learn path.dirname and path.basename. 5 min
  5. 5 path.extname Learn to get the file extension with path.extname. 5 min
  6. 6 Summary - path module Combine join, resolve and parse to write a file explorer. 5 min
20
Beginner finalProject
5 lessons · 30 min
  1. 1 Project design Design the skeleton of the beginner final mini app. 6 min
  2. 2 Data model Set up the object and array structure for the app. 6 min
  3. 3 Business logic Write business rules with functions and conditional logic. 6 min
  4. 4 fs persistence Save and load data with fs. 6 min
  5. 5 Putting it together Combine all parts into a working CLI app. 6 min

Learn events, streams, HTTP, Express basics and middleware in Node.js.

1
Events
6 lessons · 30 min
  1. 1 EventEmitter Learn event management with EventEmitter. 5 min
  2. 2 on and emit Learn to listen with .on and emit events with .emit. 5 min
  3. 3 once Learn one-time listeners with .once. 5 min
  4. 4 removeListener Learn to remove listeners with .removeListener. 5 min
  5. 5 error event Learn the 'error' event and error handling. 5 min
  6. 6 Summary - Events Combine EventEmitter, on/emit and once to write a counter app. 5 min
2
Streams
6 lessons · 30 min
  1. 1 What are streams? Learn the stream concept and its types. 5 min
  2. 2 Readable stream Learn to read data with a Readable stream. 5 min
  3. 3 Writable stream Learn to write data with a Writable stream. 5 min
  4. 4 pipe Learn to connect streams with .pipe. 5 min
  5. 5 Transform stream Learn to transform data with a Transform stream. 5 min
  6. 6 Summary - Streams Combine Readable, Writable and pipe to write a file copy. 5 min
3
HTTP server
6 lessons · 30 min
  1. 1 http.createServer Learn to set up an HTTP server with http.createServer. 5 min
  2. 2 Request and response Learn the request and response objects. 5 min
  3. 3 Routing Learn simple URL routing logic. 5 min
  4. 4 JSON response Learn to return JSON-formatted responses. 5 min
  5. 5 Query string Learn to parse URL query strings. 5 min
  6. 6 Summary - HTTP server Combine createServer, routing and JSON to write an API. 5 min
4
Project: Helper libraryProject
5 lessons · 30 min
  1. 1 Module design Design the skeleton of the helper library module. 6 min
  2. 2 String helpers Add and test string processing functions. 6 min
  3. 3 Number helpers Add number conversion and calculation functions. 6 min
  4. 4 Date helpers Add Date processing functions. 6 min
  5. 5 Putting it together Combine helper functions into a module. 6 min
5
Express basics
6 lessons · 30 min
  1. 1 What is Express? Learn what the Express framework is and how to install it. 5 min
  2. 2 express() Learn to create an app with express(). 5 min
  3. 3 app.get Learn to define GET routes with app.get. 5 min
  4. 4 app.post Learn to define POST routes with app.post. 5 min
  5. 5 app.listen Learn to start the server with app.listen. 5 min
  6. 6 Summary - Express basics Combine express, app.get and app.listen to write an API. 5 min
6
Middleware
6 lessons · 30 min
  1. 1 What is middleware? Learn the middleware concept and the next function. 5 min
  2. 2 app.use Learn global middleware with app.use. 5 min
  3. 3 Router middleware Learn to use middleware at the Router level. 5 min
  4. 4 Error middleware Learn to write error-handling middleware. 5 min
  5. 5 Body parser Learn body parser middleware with express.json(). 5 min
  6. 6 Summary - Middleware Combine app.use, Router and error middleware to write a logging system. 5 min
7
Routing
6 lessons · 30 min
  1. 1 Route parameters Learn URL parameters. 5 min
  2. 2 Query parameters Learn query parameters with req.query. 5 min
  3. 3 express.Router Learn modular routing with express.Router. 5 min
  4. 4 Route groups Learn to create route groups with Router. 5 min
  5. 5 Method chaining Learn method chaining with app.route. 5 min
  6. 6 Summary - Routing Combine param, query and Router to write a user API. 5 min
8
Project: Quiz appProject
5 lessons · 30 min
  1. 1 Quiz model Design the skeleton of Question and Quiz classes. 6 min
  2. 2 Adding questions Learn to add questions with the addQuestion method. 6 min
  3. 3 Running the quiz Learn to ask questions in turn with the run method. 6 min
  4. 4 Score calculation Learn correct count with the score calculation method. 6 min
  5. 5 Putting it together Combine the Quiz class with an Express API. 6 min
9
Async patterns
6 lessons · 30 min
  1. 1 Async iteration Learn async iteration with for await...of. 5 min
  2. 2 Async generators Learn async generator functions. 5 min
  3. 3 Concurrency limit Learn to limit parallel work with a concurrency limit. 5 min
  4. 4 Retry pattern Learn the async retry pattern. 5 min
  5. 5 Debounce and throttle Learn debounce and throttle patterns. 5 min
  6. 6 Summary - Async patterns Combine for await, retry and debounce to write an API client. 5 min
10
Buffer and binary
6 lessons · 30 min
  1. 1 What is Buffer? Learn binary data management with Buffer. 5 min
  2. 2 Buffer.from Learn to create buffers with Buffer.from. 5 min
  3. 3 Buffer.concat Learn to combine buffers with Buffer.concat. 5 min
  4. 4 toString and encoding Learn Buffer.toString and encoding. 5 min
  5. 5 Buffer slice Learn to slice buffers with Buffer.slice. 5 min
  6. 6 Summary - Buffer Combine Buffer.from, concat and toString to write a base64 converter. 5 min
11
Process and CLI
6 lessons · 30 min
  1. 1 process.argv Learn CLI arguments with process.argv. 5 min
  2. 2 process.env Learn environment variables with process.env. 5 min
  3. 3 process.exit Learn exit codes with process.exit. 5 min
  4. 4 process.stdin/stdout Learn streams with process.stdin/stdout. 5 min
  5. 5 Child process Learn to run child processes with child_process.exec. 5 min
  6. 6 Summary - Process Combine argv, env and child_process to write a CLI tool. 5 min
12
Project: Library APIProject
5 lessons · 30 min
  1. 1 Model design Design the skeleton of Book and Member models. 6 min
  2. 2 Express app Set up the API skeleton with an Express app. 6 min
  3. 3 CRUD routes Write CRUD (Create, Read, Update, Delete) routes. 6 min
  4. 4 Middleware Add logging and error middleware. 6 min
  5. 5 Putting it together Combine all parts into a working API. 6 min
13
npm and packages
6 lessons · 29 min
  1. 1 npm install Learn to install packages with npm install. 4 min
  2. 2 package.json scripts Learn to define commands with package.json scripts. 5 min
  3. 3 devDependencies Learn development packages with devDependencies. 5 min
  4. 4 Semver Learn semver and ^/~ version ranges. 5 min
  5. 5 npm publish Learn to publish packages with npm publish. 5 min
  6. 6 Summary - npm Combine install, scripts and semver to set up a project. 5 min
14
Error handling
6 lessons · 30 min
  1. 1 The Error class Learn the Error class and its properties. 5 min
  2. 2 try/catch Learn to catch errors with try/catch. 5 min
  3. 3 Custom errors Learn to write your own Error-derived class. 5 min
  4. 4 Error middleware Learn to write Express error middleware. 5 min
  5. 5 Unhandled rejection Learn unhandled rejection and uncaughtException. 5 min
  6. 6 Summary - Error handling Combine Error, try/catch and custom error to write an error class hierarchy. 5 min
15
Testing basics
6 lessons · 30 min
  1. 1 node:test Learn the built-in node:test test framework. 5 min
  2. 2 assert Learn assertions with assert. 5 min
  3. 3 describe and it Learn test organization with describe and it. 5 min
  4. 4 Before and after Learn before/beforeEach/afterEach hooks. 5 min
  5. 5 Mock Learn mock functions and module mocking. 5 min
  6. 6 Summary - Testing basics Combine node:test, assert and mock to write a calculator test. 5 min
16
Debugging
6 lessons · 30 min
  1. 1 node inspect Learn to debug with node inspect. 5 min
  2. 2 Chrome DevTools Learn to debug Node.js with Chrome DevTools. 5 min
  3. 3 console methods Learn console.log, console.error and console.table. 5 min
  4. 4 util.inspect Learn to inspect objects with util.inspect. 5 min
  5. 5 Source maps Learn to debug transpiled code with source maps. 5 min
  6. 6 Summary - Debugging Combine inspect, console and util.inspect to write a debug session. 5 min
17
Date and time
6 lessons · 29 min
  1. 1 The Date object Learn date and time with the Date object. 4 min
  2. 2 Date methods Learn getDate, getMonth and getFullYear methods. 5 min
  3. 3 Intl.DateTimeFormat Learn localization with Intl.DateTimeFormat. 5 min
  4. 4 performance.now Learn high-resolution time with performance.now. 5 min
  5. 5 setTimeout and setInterval Learn timers with setTimeout and setInterval. 5 min
  6. 6 Summary - Date and time Combine Date, Intl and setTimeout to write a timer. 5 min
18
Crypto
6 lessons · 30 min
  1. 1 crypto module Learn the crypto module and hash functions. 5 min
  2. 2 createHash Learn to create hashes with crypto.createHash. 5 min
  3. 3 randomBytes Learn random bytes with crypto.randomBytes. 5 min
  4. 4 HMAC Learn HMAC with crypto.createHmac. 5 min
  5. 5 AES Learn AES encryption with crypto.createCipheriv. 5 min
  6. 6 Summary - Crypto Combine createHash, randomBytes and HMAC to write an encryptor. 5 min
19
URL and query string
6 lessons · 29 min
  1. 1 URL object Learn to parse URLs with new URL(). 4 min
  2. 2 URLSearchParams Learn query strings with URLSearchParams. 5 min
  3. 3 URL properties Learn URL.pathname, hostname and port properties. 5 min
  4. 4 URL.resolve Learn to resolve relative URLs with URL.resolve. 5 min
  5. 5 querystring Learn query strings with the querystring module. 5 min
  6. 6 Summary - URL and query string Combine URL, URLSearchParams and querystring to write a URL parser. 5 min
20
Intermediate finalProject
5 lessons · 30 min
  1. 1 Project design Design the skeleton of the intermediate final mini app. 6 min
  2. 2 Express API Set up the REST API skeleton with Express. 6 min
  3. 3 fs persistence Save and load data as JSON with fs. 6 min
  4. 4 Middleware Add logging, error and validation middleware. 6 min
  5. 5 Putting it together Combine all layers into a working API. 6 min

Learn clustering, worker threads, performance, security, databases and microservice basics in Node.js.

1
Clustering
6 lessons · 30 min
  1. 1 cluster module Learn to use multiple cores with the cluster module. 5 min
  2. 2 cluster.fork Learn to create workers with cluster.fork. 5 min
  3. 3 Worker IPC Learn inter-worker communication with IPC. 5 min
  4. 4 cluster.isMaster Learn master/worker distinction with cluster.isMaster. 5 min
  5. 5 Graceful reload Learn graceful reload with clusters. 5 min
  6. 6 Summary - Clustering Combine fork, IPC and isMaster to write a cluster server. 5 min
2
Worker threads
6 lessons · 30 min
  1. 1 worker_threads Learn CPU-heavy tasks with worker_threads. 5 min
  2. 2 Worker Learn to create workers with new Worker. 5 min
  3. 3 postMessage Learn worker communication with postMessage. 5 min
  4. 4 MessageChannel Learn inter-worker channels with MessageChannel. 5 min
  5. 5 SharedArrayBuffer Learn shared memory with SharedArrayBuffer. 5 min
  6. 6 Summary - Worker threads Combine Worker, postMessage and SharedArrayBuffer to write a parallel computation. 5 min
3
Performance
6 lessons · 30 min
  1. 1 perf_hooks Learn performance measurement with perf_hooks. 5 min
  2. 2 Event loop latency Learn event loop latency and blocking. 5 min
  3. 3 Memory usage Learn memory usage with process.memoryUsage. 5 min
  4. 4 CPU profiling Learn CPU profiling and flame graphs. 5 min
  5. 5 Optimization Learn common performance optimizations. 5 min
  6. 6 Summary - Performance Combine perf_hooks, memoryUsage and profiling to write a benchmark tool. 5 min
4
Security
6 lessons · 30 min
  1. 1 Helmet Learn HTTP security headers with the helmet middleware. 5 min
  2. 2 CORS Learn CORS with the cors middleware. 5 min
  3. 3 Rate limiting Learn rate limiting with express-rate-limit. 5 min
  4. 4 Input validation Learn input validation with express-validator. 5 min
  5. 5 JWT Learn JWT authentication with jsonwebtoken. 5 min
  6. 6 Summary - Security Combine helmet, cors, rate-limit and JWT to write a secure API. 5 min
5
MongoDB
6 lessons · 30 min
  1. 1 Mongoose Learn MongoDB connection with the Mongoose ODM. 5 min
  2. 2 Schema Learn model schemas with Mongoose Schema. 5 min
  3. 3 Model Learn CRUD operations with Mongoose Model. 5 min
  4. 4 Query Learn Mongoose queries and filtering. 5 min
  5. 5 Aggregate Learn the Mongoose aggregate pipeline. 5 min
  6. 6 Summary - MongoDB Combine Schema, Model and aggregate to write a user API. 5 min
6
SQL database
6 lessons · 30 min
  1. 1 pg module Learn PostgreSQL connection with the pg module. 5 min
  2. 2 Pool Learn connection pooling with pg.Pool. 5 min
  3. 3 Parameterized query Learn SQL injection protection with parameterized queries. 5 min
  4. 4 Transactions Learn transactions with pg.Client. 5 min
  5. 5 Sequelize Learn SQL with the Sequelize ORM. 5 min
  6. 6 Summary - SQL database Combine Pool, parameterized queries and transactions to write a sales API. 5 min
7
WebSocket
6 lessons · 30 min
  1. 1 ws module Learn WebSocket servers with the ws module. 5 min
  2. 2 WebSocket server Learn to set up a server with new WebSocket.Server. 5 min
  3. 3 Connection Learn to accept connections with ws.on('connection'). 5 min
  4. 4 Message Learn messaging with ws.send and ws.on('message'). 5 min
  5. 5 Broadcast Learn to broadcast to all clients. 5 min
  6. 6 Summary - WebSocket Combine server, message and broadcast to write a chat server. 5 min
8
Realtime
6 lessons · 30 min
  1. 1 Socket.io Learn realtime communication with Socket.io. 5 min
  2. 2 io.on Learn to accept connections with io.on('connection'). 5 min
  3. 3 emit and on Learn events with socket.emit and socket.on. 5 min
  4. 4 Rooms Learn room management with Socket.io rooms. 5 min
  5. 5 Namespaces Learn namespaces with Socket.io namespaces. 5 min
  6. 6 Summary - Realtime Combine Socket.io, emit/on and rooms to write a room system. 5 min
9
Microservice basics
6 lessons · 30 min
  1. 1 What are microservices? Learn the microservice architecture. 5 min
  2. 2 Service communication Learn inter-service HTTP communication. 5 min
  3. 3 API gateway Learn the API gateway pattern. 5 min
  4. 4 Service discovery Learn the service discovery pattern. 5 min
  5. 5 Circuit breaker Learn the circuit breaker pattern. 5 min
  6. 6 Summary - Microservices Combine HTTP communication, gateway and circuit breaker to write a service mesh. 5 min
10
Message queue
6 lessons · 30 min
  1. 1 What are message queues? Learn the message queue concept. 5 min
  2. 2 Bull Learn Redis-based queues with Bull. 5 min
  3. 3 Producer Learn to add jobs to the queue with a Bull producer. 5 min
  4. 4 Consumer Learn job processing with a Bull consumer/process. 5 min
  5. 5 Retry and backoff Learn Bull retry and backoff strategies. 5 min
  6. 6 Summary - Message queue Combine producer, consumer and retry to write a background job system. 5 min
11
Logging
6 lessons · 30 min
  1. 1 Winston Learn configurable logging with Winston. 5 min
  2. 2 Log levels Learn log levels (error, warn, info, debug). 5 min
  3. 3 Transports Learn output targets with Winston transports. 5 min
  4. 4 Structured logging Learn structured logging and JSON format. 5 min
  5. 5 Pino Learn high-performance logging with Pino. 5 min
  6. 6 Summary - Logging Combine Winston, levels and structured to write a log system. 5 min
12
Configuration
6 lessons · 30 min
  1. 1 dotenv Learn .env files with dotenv. 5 min
  2. 2 Environment variables Learn environment variables with process.env. 5 min
  3. 3 Config hierarchy Learn the config file hierarchy. 5 min
  4. 4 Validation Learn config validation and schema checking. 5 min
  5. 5 Secrets management Learn secrets management and secure storage. 5 min
  6. 6 Summary - Configuration Combine dotenv, env and validation to write a config system. 5 min
13
Advanced testing
6 lessons · 30 min
  1. 1 Integration tests Learn to write integration tests. 5 min
  2. 2 Supertest Learn HTTP testing with supertest. 5 min
  3. 3 Test database Learn test databases and fixtures. 5 min
  4. 4 Coverage Learn test coverage measurement. 5 min
  5. 5 E2E tests Learn end-to-end tests with Playwright. 5 min
  6. 6 Summary - Advanced testing Combine integration, supertest and coverage to write an API test suite. 5 min
14
Advanced finalProject
5 lessons · 30 min
  1. 1 Project design Design the skeleton of the advanced final mini app. 6 min
  2. 2 Express + DB Set up the Express API and database layer. 6 min
  3. 3 WebSocket Write the realtime layer with WebSocket. 6 min
  4. 4 Security Add JWT, helmet and rate limiting. 6 min
  5. 5 Putting it together Combine all layers into a working mini service. 6 min

Learn V8 internals, C++ addons, internals, distributed systems and performance engineering in Node.js.

1
V8 internals
6 lessons · 30 min
  1. 1 What is V8? Learn what the V8 engine is and how it works. 5 min
  2. 2 JIT compilation Learn V8 JIT compilation and TurboFan. 5 min
  3. 3 Hidden classes Learn V8 hidden classes and inline cache. 5 min
  4. 4 Garbage collection Learn V8 garbage collection and generational GC. 5 min
  5. 5 Snapshot Learn V8 snapshot and fast startup. 5 min
  6. 6 Summary - V8 internals Combine JIT, hidden classes and GC to write a V8 optimization guide. 5 min
2
Native addons
6 lessons · 30 min
  1. 1 N-API Learn to write native addons with N-API. 5 min
  2. 2 node-addon-api Learn the node-addon-api C++ wrapper. 5 min
  3. 3 Binding Learn JS-to-C++ binding. 5 min
  4. 4 Callback Learn native callbacks and async. 5 min
  5. 5 Build Learn to build native addons with node-gyp. 5 min
  6. 6 Summary - Native addons Combine N-API, binding and build to write a native module. 5 min
3
Event loop internals
6 lessons · 30 min
  1. 1 Event loop phases Learn the event loop phases (poll, check, close). 5 min
  2. 2 Microtask Learn microtasks and nextTick. 5 min
  3. 3 Timers queue Learn the timers queue and setTimeout ordering. 5 min
  4. 4 I/O callbacks Learn I/O callbacks and the poll phase. 5 min
  5. 5 setImmediate Learn setImmediate and the check phase. 5 min
  6. 6 Summary - Event loop internals Combine phases, microtasks and I/O to write an event loop visualizer. 5 min
4
Memory internals
6 lessons · 30 min
  1. 1 Heap and stack Learn Node.js heap and stack management. 5 min
  2. 2 Generational GC Learn generational GC and Scavenge. 5 min
  3. 3 Mark-sweep Learn mark-sweep and mark-compact algorithms. 5 min
  4. 4 Memory leaks Learn memory leak detection and prevention. 5 min
  5. 5 Heap snapshot Learn heap snapshot and analysis. 5 min
  6. 6 Summary - Memory internals Combine heap, GC and snapshot to write a memory profiler. 5 min
5
Stream internals
6 lessons · 30 min
  1. 1 Stream backpressure Learn stream backpressure and buffering. 5 min
  2. 2 HighWaterMark Learn highWaterMark and the buffer limit. 5 min
  3. 3 Object mode Learn the difference between stream object mode and binary mode. 5 min
  4. 4 Pipeline Learn error-safe chaining with stream.pipeline. 5 min
  5. 5 Custom stream Learn to write your own stream class. 5 min
  6. 6 Summary - Stream internals Combine backpressure, highWaterMark and pipeline to write a custom stream. 5 min
6
Distributed systems
6 lessons · 30 min
  1. 1 CAP theorem Learn the CAP theorem and distributed system trade-offs. 5 min
  2. 2 Consensus Learn Raft and Paxos consensus algorithms. 5 min
  3. 3 Distributed tracing Learn distributed tracing with OpenTelemetry. 5 min
  4. 4 Event sourcing Learn the event sourcing pattern. 5 min
  5. 5 CQRS Learn the CQRS pattern. 5 min
  6. 6 Summary - Distributed systems Combine CAP, consensus and tracing to write a distributed service. 5 min
7
Performance engineering
6 lessons · 30 min
  1. 1 Flame graph Learn flame graphs and CPU profiling. 5 min
  2. 2 V8 flags Learn V8 flags and optimization. 5 min
  3. 3 Memory profiling Learn memory profiling and heap analysis. 5 min
  4. 4 Benchmark Learn to write and compare benchmarks. 5 min
  5. 5 Production tuning Learn production tuning and Node.js flags. 5 min
  6. 6 Summary - Performance engineering Combine flame graph, V8 flags and benchmark to write a perf tool. 5 min
8
Expert finalProject
5 lessons · 30 min
  1. 1 Project design Design the skeleton of the expert final mini app. 6 min
  2. 2 Native addon Write a native addon with N-API. 6 min
  3. 3 Distributed Add distributed tracing and event sourcing. 6 min
  4. 4 Performance Add optimization with V8 flags and flame graph. 6 min
  5. 5 Putting it together Combine all expert topics into a working mini app. 6 min

Lessons are free, an account keeps your progress

You do not have to sign up. If you do, you continue where you left off and never lose your work.

  • Progress saved on every device
  • Earn XP and badges
  • Keep your daily streak
  • Get a certificate when you finish
create a free account

Frequently asked questions

Are the Node.js lessons free?

Yes. All 362 lessons of the Node.js course are free and you can start without an account.

Do I need any prior knowledge?

No. The beginner level starts from zero; a browser is all you need. If you already know the basics, start at a higher level.

How long does the course take?

Lessons take 2–8 minutes. The whole course is about 30 hours; with 15–20 minutes a day you can finish in a few months.

Do I get a certificate?

Yes. When you complete the course with a free account, a verifiable certificate is issued in your name.

Will I lose my progress without an account?

Without an account your progress is kept only in your current browser. When you create a free account it is moved to your account.

Next step React Native

Learn mobile app development with React Native 0.7x and Expo from basics to expert level.