Example Curriculum
Available in
days
days
after you enroll
- Complete Node.js Developer: Zero to Mastery (2:50)
- Course Outline (6:22)
- Exercise: Meet Your Classmates and Instructor
- Node.js - How We Got Here (9:19)
- Node.js Runtime (8:19)
- How To Succeed In The Course (3:59)
- Latest Version Of Node.js (1:16)
- Course Projects + Code + Cheatsheet
- How-to's: Speed up videos, Downloading videos, Subtitles
Available in
days
days
after you enroll
- OPTIONAL: Installing Node.js (6:33)
- OPTIONAL: Windows Installation Tips (3:05)
- Node.js Release Cycle (4:04)
- The Node.js REPL (6:08)
- Setting Up Our Developer Environment (4:30)
- Our First Node App (11:35)
- Node.js VS JavaScript (5:45)
- The global Object (5:45)
- Introduction to Backend VS Frontend (8:55)
- Monthly Coding Challenges, Free Resources and Guides
Available in
days
days
after you enroll
- What Node.js Includes (9:38)
- Node Internals Deep Dive (10:57)
- libuv Internals Deep Dive (12:53)
- Synchronous vs Asynchronous (5:23)
- Asynchronous Callbacks (5:55)
- Non-Blocking Input & Output (3:32)
- Exercise: Is JavaScript Asynchronous? (2:27)
- Multi-Threading, Processes, and Threads (11:40)
- Is Node.js Multi-Threaded? (10:56)
- The Event Loop (4:03)
- Callback Queues (4:51)
- Phases of the Event Loop (9:18)
- Comparing Node With PHP and Python (6:33)
- What Is Node.js Best At? (4:52)
- Observer Design Pattern (5:27)
- The Node Event Emitter (14:06)
- Recommended Path: Asynchronous JavaScript
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- NPM: The Node Package Manager (4:39)
- Creating Our First NPM Package (9:23)
- Packages And The NPM Registry (1:56)
- Using Third Party Modules (11:11)
- The node_modules Folder (9:54)
- Semantic Versioning (2:37)
- package-lock.json and Versioning (9:42)
- Vulnerabilities In Dependencies (4:54)
- Installing NPM Tools: nodemon (9:56)
Available in
days
days
after you enroll
- Code For This Section
- Exploring Planets With Node (1:49)
- Importing Kepler Space Telescope Data (4:52)
- Latest Version of CSV Parser
- Setting Up Our CSV Parser (5:24)
- Streaming Large Data Files (5:32)
- Reading Our Planets Data (6:48)
- Parsing Our Planets Data (6:04)
- Finding Habitable Planets (8:26)
- Exploring Habitable Planets (7:18)
Available in
days
days
after you enroll
- Code For This Section
- What is a Web Server? (5:24)
- Introduction to HTTP Responses and Requests (3:57)
- HTTP Requests (7:41)
- HTTP Responses (13:36)
- Our First Webserver (10:12)
- HTTP APIs and Routing (9:00)
- Parameterized URLs (10:37)
- Same Origin Policy (9:23)
- Exercise: Same Origin Policy
- Cross Origin Resource Sharing (CORS) (10:29)
- POSTing Data to the Server (11:31)
- Requests and Responses as Streams (11:50)
- Web Servers Recap (4:05)
Available in
days
days
after you enroll
- Code For This Section
- Why Express? (3:35)
- Introduction to Express (9:36)
- Express vs Next.js vs Koa (11:18)
- Route Parameters (9:04)
- Postman and Insomnia (6:07)
- Development Dependencies (3:49)
- Middleware (7:30)
- Writing Our Own Logging Middleware (10:25)
- POST Requests in Express (16:21)
- Model View Controller (MVC) (7:38)
- Model View Controller in Express (37:00)
- Express Routers (16:38)
- RESTful APIs (11:39)
- Create Read Update and Delete (CRUD) (6:56)
- Sending Files (6:06)
- Serving Websites With Node (9:45)
- Templating Engines (11:33)
- Layouts and Separation of Concerns (7:43)
Available in
days
days
after you enroll
- Code For This Section
- Introduction & Architecture (22:04)
- NASA Dashboard Front End Setup (5:47)
- NASA Dashboard Functionality (5:11)
- What You Need To Know (2:14)
- React.js Front End Code Walkthrough (18:10)
- API Server Setup (12:32)
- Environment Variables On Windows
- GET /planets (15:32)
- CORS Middleware (7:22)
- Models vs Controllers vs Routers (4:41)
- The Planets Model (5:30)
- Loading Data On Startup (15:40)
- Common Issues With NPM Scripts
- Automating Full Stack Applications With NPM (13:44)
- Serving React.js Front End In Production (12:15)
- Setting BUILD_PATH On Windows
- Logging Requests With Morgan (8:44)
- The Launches Model (12:56)
- GET /launches (16:56)
- Serving Applications With Client Side Routing (5:58)
- Working With Data Models: Building a Data Access Layer (8:49)
- POST /launches: Creating Launches 1 (13:15)
- POST /launches: Creating Launches 2 (10:41)
- POST /launches: Validation For POST Requests (12:39)
- Connecting POST /launches With Front End Dashboard (13:39)
- DELETE /launches: Aborting a Launch 1 (13:05)
- DELETE /launches: Aborting a Launch 2 (12:00)
- Updating Our Architecture Diagram (11:42)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Code For This Section
- Node Server Performance (4:15)
- Building A Simple Blocking Server (10:20)
- Real Life Blocking Functions (8:47)
- Running Multiple Node Processes (3:18)
- The Node Cluster Module (4:17)
- Clustering In Action (12:27)
- Maximizing Cluster Performance (7:40)
- Load Balancing (5:36)
- The PM2 Tool (2:26)
- Using PM2 To Create Clusters (9:38)
- Managing Live Clusters With PM2 (6:10)
- Zero Downtime Restart (3:46)
- Improving Performance Of Our NASA Project (8:06)
- Worker Threads (8:21)
- Worker Threads In Action (8:15)
Available in
days
days
after you enroll
- Introduction to Databases (3:46)
- Recommended Path: SQL
- Comparing SQL vs NoSQL (8:10)
- Database Schemas & Schemaless Databases (3:45)
- Choosing a Database for our NASA Project (5:32)
- SQL vs MongoDB: Trends and Object-Relational Impedance Mismatch (8:18)
- SQL vs MongoDB: Schemas, References, and ACID Transactions (14:19)
- Setting up MongoDB Atlas (12:55)
- Connecting to MongoDB (8:54)
- Connecting with the Latest Version of Mongoose
- Mongoose (5:24)
- Creating Mongoose Schema for Launches (15:18)
- Exercise: Creating Mongoose Schema for Planets (5:29)
- Creating Models From Schemas (4:30)
- Mongoose Models vs MVC Models (4:15)
- Inserting And Updating Documents (8:09)
- Finding Documents (6:48)
- The Upsert Operation (8:20)
- Exploring Data Using Atlas (4:52)
- Updating Project Architecture (5:09)
- ObjectIDs (3:51)
- Excluding Fields From The Response (3:30)
- Saving Launches (4:51)
- Listing All Launches (2:57)
- Referential Integrity (10:56)
- Auto Increment In MongoDB (7:28)
- Getting Latest Flight Number (5:58)
- Scheduling New Launches (9:00)
- Investigating A Mongoose Mystery (7:10)
- Aborting Launches (12:54)
- Aborting with the Latest MongoDB Driver
- Updating Tests For Mongoose 1 (15:02)
- Updating Tests For Mongoose 2 (10:00)
- Fixing A Bug In Jest: Open Handles
Available in
days
days
after you enroll
- Working With SpaceX (2:47)
- The SpaceX API (3:22)
- Versioning Node APIs (9:09)
- Updating Our API Tests (1:00)
- Exploring SpaceX Launches API (5:39)
- Running Search Queries (13:04)
- Loading SpaceX Data In Our API (14:51)
- Mapping SpaceX Data To Our Database (11:56)
- Using Paginated APIs (7:59)
- Minimizing API Load (8:18)
- Persisting SpaceX Launches (6:40)
- Paginating Our Endpoints 1 (7:57)
- Paginating Our Endpoints 2 (15:27)
- Sorting Paginated Data (3:48)
- Cleaning Up Launch Data (3:33)
- Managing Secrets With Dotenv (9:04)
- Running API Tests With Dotenv
- Securing Leaked Secrets (5:09)
Available in
days
days
after you enroll
- Code For This Section
- Security and Authentication Overview (3:43)
- Encrypted Connections with SSL and TLS (6:28)
- Digital Certificates, Signing, and Man In The Middle Attacks (5:42)
- Setting Up Our Security Example (4:18)
- HTTPS With Node, Self Signed Certificates, and Public Key Cryptography (16:17)
- Helmet.js (9:46)
- Authentication vs Authorization (7:28)
- Social Sign In (5:11)
- API Keys (11:03)
- JWT Tokens (14:32)
- The OAuth Standard (5:40)
- OAuth 2.0 Authorization Code Flow (6:34)
- OAuth In Action with Single Sign On (15:15)
- Registering with the Google Authorization Server (14:11)
- Authentication Endpoints With Middleware (11:07)
- Passport.js (3:24)
- Dotenv for Client Secrets (8:23)
- Authentication With Google And OAuth 1 (11:11)
- Authentication With Google And OAuth 2 (11:45)
- Cookie Based Authentication (6:54)
- Sessions (3:33)
- Server VS Client Side Sessions With Cookies (9:04)
- Session Middleware in Express (9:50)
- Setting Up OAuth Cookie Session (12:34)
- Reading and Writing the OAuth Session 1 (13:02)
- Reading and Writing the OAuth Session 2 (6:44)
- Restricting Access to Endpoints (7:53)
- Implementing Logout (7:12)
- Experimenting With Fake Sessions (5:11)
- Wrap Up and Next Steps (5:54)
- Resource: Security Cheat Sheet
Available in
days
days
after you enroll
- Introduction to CI and CD (6:41)
- Continuous Integration (8:23)
- Continuous Delivery (9:37)
- Continuous Deployment (6:00)
- Pipelines (4:26)
- GitHub Actions (9:42)
- Setting Up GitHub Actions (5:36)
- Continuous Integration: Build Pipeline (12:02)
- Build Pipeline In Action (8:37)
- GitHub Actions Marketplace (3:07)
- Continuous Integration: Test Pipeline (11:20)
- Mocking Out Databases (5:18)
- Databases With Continuous Integration (10:18)
- Populating Data For Continuous Integration (8:50)
Available in
days
days
after you enroll
- Deploying to the Cloud (2:14)
- Serverless vs Containers (3:58)
- Virtual Machines (4:16)
- What is a Container? (4:59)
- Installing Docker (3:28)
- Running Our first Docker Container (5:38)
- Your DockerHub Account (1:39)
- Creating a Dockerfile (14:02)
- Improving Our Dockerfile With Layers (13:22)
- Updating Our API URL (2:16)
- Building NASA Project Docker Image (5:36)
- Running NASA Project in a Container (4:29)
- Pushing Images to Docker Hub (3:46)
- Exploring Amazon Web Services (6:28)
- Creating an EC2 Instance 1 (7:50)
- Creating an EC2 Instance 2: Security (13:10)
- What is SSH? (2:58)
- Connecting To Our EC2 Instance With SSH (7:48)
- Setting Up Our EC2 Server (5:45)
- Deploying Our NASA API (10:38)
Available in
days
days
after you enroll
- Code For This Section
- GraphQL Overview (8:03)
- Our First GraphQL Query (8:15)
- GraphQL Queries In Action (5:47)
- GraphQL vs REST: Over-fetching & Under-fetching (10:52)
- GraphQL vs REST Summary (10:08)
- Exploring GraphQL Implementations (3:24)
- GraphQL In Node (11:01)
- GraphiQL (4:25)
- Designing An E-Commerce Schema (16:01)
- GraphQL Tools (3:39)
- Modularizing Large GraphQL Projects: Schemas (14:01)
- Resolvers (9:01)
- Modularizing Large GraphQL Projects: Resolvers (9:27)
- Filtering with Queries and Resolvers (10:20)
- Exercise: Query Products By ID (5:30)
- Mutations In Action (6:40)
- Implementing Mutations on the Server (10:10)
- Exercise: Add New Product Review (10:58)
- GraphQL With Apollo (7:15)
- Building an Apollo Server With Node.js (13:19)
Available in
days
days
after you enroll
- Code For This Section
- Introduction to Sockets (2:11)
- Polling (3:57)
- What is a Socket? (2:58)
- Sockets VS Polling (5:01)
- WebSockets (5:25)
- Introduction to socket.io (3:20)
- socket.io Client and Server APIs (8:43)
- Multiplayer Pong Overview (3:31)
- Recommended Path: Pong Front End
- Reviewing Our Pong Front End (11:57)
- Multiplayer Pong Message Sequence (7:38)
- Setting Up a socket.io Server (4:29)
- Connecting to socket.io (4:03)
- Handling CORS With Sockets
- Identifying Connected Clients (6:38)
- Listening for Events in the Pong Server (3:08)
- Broadcasting Events (2:46)
- Handling Events in the Pong Client (7:15)
- Implementing the Game Logic: Paddle (9:20)
- Implementing the Game Logic: Ball (8:46)
- What Happens When You Disconnect? (5:23)
- Using Socket.io with Express (11:45)
- Namespaces (6:05)
- Rooms (10:39)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Quick Note: Upcoming Videos
- Why Deno? (6:00)
- Deno Runtime And V8 Engine (5:25)
- Deno Installation (4:41)
- Quick Note: Installing Deno
- MAC/LINUX Installation Tips (5:33)
- WINDOWS Installation Tips (1:17)
- Setting Up Our Developer Environment (5:15)
- Quick Note: Official VS Code Plugin
- Our First Deno App (8:18)
- Exercise: Our First Deno App
- The Most Important Video (0:59)
- Deno Internals And Architecture (12:39)
- Deno Metrics (6:50)
- Exercise: Deno Architecture (4:01)
- Deno 1.5 Compiler Update
- Deno Game Changers (9:58)
- Deno Game Changers 2 (7:56)
- Will Deno Kill NodeJS? (2:08)
- Single Executable To Rule Them All (4:08)
- Exciting Times: Deno 1.6
- Deno Security (8:09)
- Deno Permissions (6:24)
- Deno Permissions 2 (3:09)
- Deno Permissions 3 (5:10)
Available in
days
days
after you enroll
- Quick Note: Upcoming Videos
- JavaScript Engine (5:28)
- Exercise: Javascript Engine (0:56)
- Inside the Engine (4:05)
- Exercise: JS Engine For All (2:33)
- Interpreters and Compilers (6:21)
- Inside the V8 Engine (8:56)
- Comparing Other Languages (4:15)
- Writing Optimized Code (8:53)
- WebAssembly (3:15)
- Call Stack and Memory Heap (14:37)
- Stack Overflow (3:21)
- Garbage Collection (4:30)
- Memory Leaks (6:34)
- Single Threaded (1:58)
- Exercise: Issue With Single Thread (2:40)
- Javascript Runtime (14:07)
- Node.js (6:27)
- Recommended Path: Back To Node
Available in
days
days
after you enroll
- Quick Note: Upcoming Videos
- Section Overview (4:51)
- Promises (22:26)
- ES8 - Async Await (15:22)
- ES9 (ES2018) (5:21)
- ES9 (ES2018) - Async (11:11)
- Job Queue (6:55)
- Parallel, Sequence and Race (10:00)
- ES2020: allSettled() (4:22)
- Threads, Concurrency and Parallelism (11:27)
- Recommended Path: Back To Node
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Quick Note: Upcoming Videos
- Introduction To TypeScript (1:27)
- Dynamic vs Static Typing (11:50)
- Strongly vs Weakly Typed (3:18)
- Static Typing In JavaScript (9:45)
- Quick Note: Upcoming Videos
- OPTIONAL: Installing TypeScript Compiler (3:41)
- OPTIONAL: Installing Node.js + TypeScript
- TypeScript (11:33)
- TypeScript 2 (3:16)
- TypeScript 3 (7:24)
- Resources: TypeScript Types
- TypeScript 4 (5:38)
- TypeScript 5 (6:39)
- TypeScript 6 (4:48)
- Resources: Type VS Interface
- TypeScript 7 (3:34)
- Resources: Type Assertion
- TypeScript 8 (6:04)
- TypeScript 9 (1:21)
- TypeScript 10 (1:23)
Available in
days
days
after you enroll
- Quick Note: Upcoming Videos
- Exercise: Building Amazon (5:34)
- Exercise: Building Amazon 2 (5:28)
- 5 Types Of Databases (5:37)
- Exercise: What Is A Database? (1:11)
- SQL Playground (1:54)
- What Is SQL? (2:17)
- What Is A Query? (6:27)
- Exercise: Setting Up Your First Database
- Imperative vs Declarative (3:24)
- History of SQL (2:21)
- Optional: History of SQL Deep Dive
- Exercises: The Select Statement
- SQL Standards (4:25)
- Tables (3:45)
- Columns (4:07)
- Rows (2:27)
- Primary And Foreign Keys (5:03)
- Relational vs NoSQL, PostgreSQL vs MongoDB Databases (10:35)
- Scalability (4:19)
- Sharding (3:04)
- Recommended Path: Back to Node