Learn and Understand NodeJS
Course description
NodeJS is a rapidy growing web server technology, and Node developers are among the highest paid in the industry. Knowing NodeJS well will get you a job or improve your current one by enabling you to build high quality, robust web applications. In this course you will gain a deep understanding of Node, learn how NodeJS works under the hood, and how that knowledge helps you avoid common pitfalls and drastically improve your ability to debug problems.
Read more about the course
In this course we'll look at how the C++ written V8 Javascript engine works and how NodeJS uses it to expand the abilities of Javascript. You'll learn how to structure your code for reuse and to be easier to understand, manage, and expand using modules and understand how modules really work.
You'll learn how asynchronous code works in Node and the Node event loop, as well as how to use the event emitter, streams, buffers, pipes, and work with files. We'll see how that leads to building a web server in Node.
We'll dive into web sites, web apps and APIs with Express and learn how Express can save us time as Node developers.
You'll also gain an understanding of npm, connecting to databases, and the MEAN stack!
During it all you'll gain a deep understanding of the Javascript concepts and other computer science concepts that power Node.
NodeJS doesn't have to be hard to learn. The biggest mistake most coding tutorials make is expecting someone to learn simply by imitating others' code. Real world situations are never exactly like the tutorial.
I believe the best way to learn is to understand how a tool works and what it does for you, look at examples, and then try it yourself. That's how this course is built, with the goal to help you both learn and understand NodeJS.
Note: In this course you'll also get downloadable source code. You will often be provided with 'starter' code, giving you the base for you to start writing your code, and 'finished' code to compare your code to.
Watch Online
All Course Lessons (112)
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | 1.1. Introduction and the Goal of this Course Demo | 04:34 | |
| 2 | 1.2. Big Words and NodeJS | 01:14 | |
| 3 | 1.4. Conceptual Aside The Command Line Interface | 09:23 | |
| 4 | 2.1. Conceptual Aside Processors, Machine Language, and C++ | 10:08 | |
| 5 | 2.2. JavaScript Aside JavaScript Engines and The ECMAScript Specification | 04:02 | |
| 6 | 2.3. V8 Under the Hood | 05:58 | |
| 7 | 2.4. Adding Features to JavaScript | 15:05 | |
| 8 | 3.1. Conceptual Aside Servers and Clients | 06:46 | |
| 9 | 3.2. What Does JavaScript Need to Manage a Server | 02:19 | |
| 10 | 3.3. The C++ Core | 05:52 | |
| 11 | 3.4. The JavaScript Core | 03:05 | |
| 12 | 3.6. Let's Install and Run Some JavaScript in Node | 16:48 | |
| 13 | 3.7. LTS vs Current | 02:36 | |
| 14 | 4.1. Conceptual Aside Modules | 02:22 | |
| 15 | 4.2. JavaScript Aside First-Class Functions and Function Expressions | 12:04 | |
| 16 | 4.3. Let's Build a Module | 10:55 | |
| 17 | 4.4. JavaScript Aside Objects and Object Literals | 06:56 | |
| 18 | 4.5. JavaScript Aside Prototypal Inheritance and Function Constructors | 11:39 | |
| 19 | 4.6. JavaScript Aside By Reference and By Value | 05:45 | |
| 20 | 4.7. JavaScript Aside Immediately Invoked Function Expressions (IIFEs) | 07:43 | |
| 21 | 4.8. How Do Node Modules Really Work module.exports and require | 17:34 | |
| 22 | 4.9. JavaScript Aside JSON | 01:41 | |
| 23 | 4.10. More on require | 11:40 | |
| 24 | 4.11. Module Patterns | 19:13 | |
| 25 | 4.12. exports vs module.exports | 10:03 | |
| 26 | 4.13. Requiring Native (Core) Modules | 06:52 | |
| 27 | 4.14. ECMAScript Modules (ESM) | 06:06 | |
| 28 | 4.16. ESM and CJS | 05:02 | |
| 29 | 4.17. Web Server Checklist | 01:22 | |
| 30 | 5.1. Conceptual Aside Events | 05:25 | |
| 31 | 5.2. JavaScript Aside Object Properties, First Class Functions, and Arrays | 05:09 | |
| 32 | 5.3. The Node Event Emitter - Part 1 | 13:59 | |
| 33 | 5.4. The Node Event Emitter - Part 2 | 11:59 | |
| 34 | 5.5. JavaScript Aside Object.create and Prototypes | 06:19 | |
| 35 | 5.7. Inheriting From the Event Emitter | 14:41 | |
| 36 | 5.8. JavaScript Aside Node, ES6, and Template Literals (Node version = 12) | 07:56 | |
| 37 | 5.9. JavaScript Aside .call and .apply | 03:41 | |
| 38 | 5.10. Inheriting From the Event Emitter - Part 2 | 09:44 | |
| 39 | 5.11. JavaScript Aside ES6 Classes | 08:42 | |
| 40 | 5.12. Inheriting From the Event Emitter - Part 3 | 06:01 | |
| 41 | 6.1. JavaScript Aside Javascript is Synchronous | 02:39 | |
| 42 | 6.2. Conceptual Aside Callbacks | 01:30 | |
| 43 | 6.3. libuv, The Event Loop, and Non-Blocking Asynchronous Execution | 11:40 | |
| 44 | 6.4. Conceptual Aside Streams and Buffers | 04:32 | |
| 45 | 6.5. Conceptual Aside Binary Data, Character Sets, and Encodings | 11:10 | |
| 46 | 6.6. Buffers | 07:41 | |
| 47 | 6.7. ES6 Typed Arrays | 04:53 | |
| 48 | 6.8. JavaScript Aside Callbacks | 04:04 | |
| 49 | 6.9. Files and fs | 15:53 | |
| 50 | 6.10. Streams | 18:15 | |
| 51 | 6.11. Conceptual Aside Pipes | 02:15 | |
| 52 | 6.12. Pipes | 15:52 | |
| 53 | 6.14. Node and Promises | 02:06 | |
| 54 | 6.15. Files and Promises | 09:44 | |
| 55 | 6.16. Streams and Promises | 05:46 | |
| 56 | 6.17. Pipeline and Promises | 06:07 | |
| 57 | 6.18. Web Server Checklist | 02:38 | |
| 58 | 7.1. Conceptual Aside TCPIP | 07:56 | |
| 59 | 7.2. Conceptual Aside Addresses and Ports | 03:12 | |
| 60 | 7.3. Conceptual Aside HTTP | 06:07 | |
| 61 | 7.4. http_parser | 06:57 | |
| 62 | 7.5. llhttp | 01:36 | |
| 63 | 7.6. Let's Build a Web Server in Node | 17:27 | |
| 64 | 7.7. Outputting HTML and Templates | 11:44 | |
| 65 | 7.8. Streams and Performance | 05:12 | |
| 66 | 7.9. Conceptual Aside APIs and Endpoints | 02:38 | |
| 67 | 7.10. Outputting JSON | 06:40 | |
| 68 | 7.11. Routing | 11:03 | |
| 69 | 7.12. Routing (ESM) | 04:51 | |
| 70 | 7.13. Web Server Checklist | 02:25 | |
| 71 | 8.1. Conceptual Aside Packages and Package Managers | 03:08 | |
| 72 | 8.2. Conceptual Aside Semantic Versioning (semver) | 04:47 | |
| 73 | 8.3. npm and the npm registry Other People's Code | 05:00 | |
| 74 | 8.4. init, nodemon, and package.json | 13:03 | |
| 75 | 8.6. init, nodemon, and package.json - Part 2 | 15:18 | |
| 76 | 8.7. node --watch | 01:18 | |
| 77 | 8.8. Using Other People's Code | 01:44 | |
| 78 | 9.1. Installing Express and Making it Easier to Build a Web Server | 16:02 | |
| 79 | 9.2. Routes | 04:33 | |
| 80 | 9.3. Static Files and Middleware | 14:59 | |
| 81 | 9.4. Templates and Template Engines | 15:55 | |
| 82 | 9.5. Querystring and Post Parameters | 18:22 | |
| 83 | 9.6. express and body-parser | 03:02 | |
| 84 | 9.7. RESTful APIs and JSON | 05:22 | |
| 85 | 9.8. Structuring an App | 13:46 | |
| 86 | 10.1. Conceptual Aside Relational Databases and SQL | 03:49 | |
| 87 | 10.2. Node and MySQL | 09:29 | |
| 88 | 10.3. Conceptual Aside NoSQL and Documents | 03:13 | |
| 89 | 10.4. MongoDB | 09:35 | |
| 90 | 10.5. Web Server Checklist | 01:17 | |
| 91 | 11.1. PostgreSQL, Express, React, and NodeJS | 07:29 | |
| 92 | 11.2. React Managing the Client (Part 1) | 14:54 | |
| 93 | 11.3. React Managing the Client (Part 2) | 15:13 | |
| 94 | 11.4. React Managing the Client (Part 3) | 11:28 | |
| 95 | 11.5. Conceptual Aside React, Vue, Angular and more… | 02:26 | |
| 96 | 11.6. Working with The Full Stack (and being a Full Stack Developer) | 01:42 | |
| 97 | 12.1. MongoDB, Express, React, and NodeJS | 01:51 | |
| 98 | 12.2. The ClientServer Boundary | 02:15 | |
| 99 | 13.1. NodeTask Software Requirements | 01:44 | |
| 100 | 13.2. Initial Setup | 04:24 | |
| 101 | 13.3. Setting Up PostgreSQL | 03:40 | |
| 102 | 13.4. Adding Seed Data | 02:50 | |
| 103 | 13.5. Creating Our API | 20:29 | |
| 104 | 13.6. Testing Our API | 18:14 | |
| 105 | 13.7. Conceptual Aside fetch | 04:29 | |
| 106 | 13.8. Adding a Front-end With React (Part 1) | 12:20 | |
| 107 | 13.9. Adding a Front-end With React (Part 2) | 18:49 | |
| 108 | 13.10. A Change to Requirements | 02:18 | |
| 109 | 13.11. Switching to MongoDB | 21:45 | |
| 110 | 13.12. Updating the Client | 07:16 | |
| 111 | 13.13. Being a Full Stack Developer | 02:08 | |
| 112 | 14.1. Conclusion | 00:54 |
Unlock unlimited learning
Get instant access to all 111 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionComments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Build a Shopping Cart App
Chrome Extension Mastery: Build Full-Stack Extensions with React & Node.js
MERN Stack Front To Back: Full Stack React, Redux & Node.js.