Learn and Understand NodeJS

Dive deep under the hood of NodeJS. Learn V8, Express, the MEAN stack, core Javascript concepts, and more.
4.6 (6,063 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
34,795 students enrolled Bestselling in NodeJS
$19
$195
90% off
Take This Course
  • Lectures 97
  • Length 13 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 8/2015 English

Course Description

NOTE: This is an EARLY BIRD version of the course, meaning all content is not yet published. New content being added as course completion nears!

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.

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.

What are the requirements?

  • Basic Javascript knowledge (variables, loops, and basic functions)
  • Basic HTML knowledge
  • A text editor

What am I going to get from this course?

  • Grasp how NodeJS works under the hood
  • Understand the Javascript and technical concepts behind NodeJS
  • Structure a Node application in modules
  • Understand and use the Event Emitter
  • Understand Buffers, Streams, and Pipes
  • Build a Web Server in Node and understand how it really works
  • Use npm and manage node packages
  • Build a web application and API more easily using Express
  • Connect to a SQL or Mongo database in Node
  • Understand how the MEAN stack works
  • Be the coder that explains NodeJS to everyone else because you understand it better than anyone else

What is the target audience?

  • Those looking to build a career as a NodeJS developer
  • Those desiring to become MEAN stack developers
  • Those who don't have server technology experience but wish to gain this skill
  • Those coming from other server technologies (like PHP, ASP.NET, or Ruby on Rails) and want to learn Node
  • Those who want to only have to write both client and server code in one language: Javascript
  • Those who want to grasp Express

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction and Setup
Introduction and the Goal of this Course
Preview
04:33
Big Words and NodeJS
Preview
01:13
Watching this Course in High Definition
Article
Conceptual Aside: The Command Line Interface
Preview
09:49
Command Line References
Article
Section 2: V8: The Javascript Engine
Conceptual Aside: Processors, Machine Language, and C++
Preview
10:07
Javascript Aside: Javascript Engines and The ECMAScript Specification
Preview
04:01
V8 Under the Hood
Preview
05:57
Adding Features to Javascript
Preview
15:04
Section 3: The Node Core
Conceptual Aside: Servers and Clients
Preview
06:45
What Does Javascript Need to Manage a Server?
Preview
02:18
The C++ Core
Preview
05:51
The Javascript Core
Preview
03:04
Downloading Lecture Source Code
Article
Let's Install and Run Some Javascript in Node
Preview
16:47
Section 4: Modules, Exports, and Require
Conceptual Aside: Modules
02:21
Javascript Aside: First-Class Functions and Function Expressions
12:03
Let's Build a Module
10:54
Javascript Aside: Objects and Object Literals
06:55
Javascript Aside: Prototypal Inheritance and Function Constructors
11:38
Javascript Aside: By Reference and By Value
05:44
Javascript Aside: Immediately Invoked Function Expressions (IIFEs)
07:42
How Do Node Modules Really Work?: module.exports and require
17:33
Javascript Aside: JSON
01:40
More on require
11:39
Module Patterns
19:12
exports vs module.exports
10:02
Requiring Native (Core) Modules
06:51
Modules and ES6
02:36
Web Server Checklist
01:21
Section 5: Events and the Event Emitter
Conceptual Aside: Events
05:24
Javascript Aside: Object Properties, First Class Functions, and Arrays
05:08
The Node Event Emitter - Part 1
13:58
The Node Event Emitter - Part 2
11:58
Javascript Aside: Object.create and Prototypes
06:18
Inheriting From the Event Emitter
14:40
Javascript Aside: Node, ES6, and Template Literals
07:55
Javascript Aside: .call and .apply
03:40
Inheriting From the Event Emitter - Part 2
09:43
Javascript Aside: ES6 Classes
08:43
Inheriting From the Event Emitter - Part 3
06:00
Section 6: Asynchronous Code, libuv, The Event Loop, Streams, Files, and more…
Javascript Aside: Javascript is Synchronous
02:38
Conceptual Aside: Callbacks
01:29
libuv, The Event Loop, and Non-Blocking Asynchronous Execution
11:39
Conceptual Aside: Streams and Buffers
04:31
Conceptual Aside: Binary Data, Character Sets, and Encodings
11:09
Buffers
06:48
ES6 Typed Arrays
04:52
Javascript Aside: Callbacks
04:03
Files and fs
15:52
Streams
18:14
Conceptual Aside: Pipes
02:14
Pipes
15:51
Web Server Checklist
02:37
Section 7: HTTP and being a Web Server
Conceptual Aside: TCP/IP
07:55
Conceptual Aside: Addresses and Ports
03:11
Conceptual Aside: HTTP
06:06
http_parser
06:56
Let's Build a Web Server in Node
17:26
Outputting HTML and Templates
11:43
Streams and Performance
05:11
Conceptual Aside: APIs and Endpoints
02:37
Outputting JSON
06:39
Routing
11:02
Web Server Checklist
02:24
Section 8: NPM: the Node Package Manager
Conceptual Aside: Packages and Package Managers
03:07
Conceptual Aside: Semantic Versioning (semver)
04:46
npm and the npm registry: Other People's Code
04:59
init, nodemon, and package.json
13:02
npm Global Installation
Article
init, nodemon, and package.json - Part 2
15:17
Using Other People's Code
01:43
Section 9: Express
Installing Express and Making it Easier to Build a Web Server
16:01
Routes
04:32
Static Files and Middleware
14:58
Templates and Template Engines
15:54
Querystring and Post Parameters
18:21
RESTful APIs and JSON
05:21
Structuring an App
13:45
Section 10: Javascript, JSON, and Databases
Conceptual Aside: Relational Databases and SQL
03:48
Node and MySQL
09:28
Conceptual Aside: NoSQL and Documents
03:12
MongoDB and Mongoose
10:50
Web Server Checklist
01:07
Section 11: The MEAN stack
MongoDB, Express, AngularJS, and NodeJS
06:58
AngularJS: Managing the Client
10:32
AngularJS: Managing the Client (Part 2)
08:09
AngularJS: Managing the Client (Part 3)
19:17
Conceptual Aside: Angular 1, Angular 2, React, and more…
03:06

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Anthony Alicea, Software Developer, Architect, and UX Designer

Newly married in Cleveland Ohio, Tony is primarily focused these days on trying to be a good husband. While inexperienced at that, he's quite experienced in all things web.

Tony has been programming since he was 12 years old, and got into web sites and web application development at 16. After graduating with a Computer Science degree from Case Western Reserve University, Tony continued with that interest as a Microsoft certified software application developer and architect, database designer, and user interface designer.

His experience has ranged across technologies such as HTML5, CSS3, ASP .NET MVC, JavaScript, jQuery, KnockoutJS, AngularJS, NodeJS, LESS, Bootstrap, SQL, Entity Framework and more.

He believes strongly that deeply understanding any topic allows you to properly learn it and, even more importantly in a real-world environment, quickly overcome problems.

He also has a deep interest in human nature and behavior, and how that impacts human-computer interaction. This interest translated into extending his career into user experience design and usability research.

Another link in the chain is his 25 years of experience in public speaking and teaching, both in front of large groups and as a one-on-one private instructor.

Putting all these pieces together, he has spent his career listening to a client need, designing a database and software to meet that need, building it, testing it, teaching others how to use it, then improving user experience by watching people actually use it and adjusting accordingly.

Tony loves teaching every aspect of what he does, and even more loves teaching in a way that imparts understanding, as opposed to just examples intended to be parroted. He loves that moment when a student 'gets it', and that's what he wants for you when you take one of his courses.

He has found that those that learn purely by example, and not by understanding, end up much more limited than they need to be.

"Examples need to be built on top of context, and once you have context, you can not only copy the examples you find, but adjust and improve upon them."

He firmly believes that everyone has the ability to develop software, if they are just taught properly. Including you.

"It is my pleasure and privilege to teach you. I hope you'll come away knowing something you didn't before, understanding at a level deeper than before, and feeling positive that you can accomplish what you've set out to accomplish. Thank you!" - Tony Alicea

Ask Tony a question, read a post, or follow him around internet.

Ready to start learning?
Take This Course