Learn and Understand NodeJS
4.6 (9,940 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.
52,835 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn and Understand NodeJS to your Wishlist.

Add to Wishlist

Learn and Understand NodeJS

Dive deep under the hood of NodeJS. Learn V8, Express, the MEAN stack, core Javascript concepts, and more.
Bestselling
4.6 (9,940 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.
52,835 students enrolled
Created by Anthony Alicea
Last updated 12/2016
English
English
Learn Fest Sale
Current price: $10 Original price: $195 Discount: 95% off
2 days left at this price!
30-Day Money-Back Guarantee
Includes:
  • 13 hours on-demand video
  • 5 Articles
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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
View Curriculum
Requirements
  • Basic Javascript knowledge (variables, loops, and basic functions)
  • Basic HTML knowledge
  • A text editor
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.

Who 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
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 98 Lectures Collapse All 98 Lectures 13:10:21
+
Introduction and Setup
5 Lectures 16:44
+
Modules, Exports, and Require
15 Lectures 02:08:11
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
+
Events and the Event Emitter
11 Lectures 01:33:27
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
+
Asynchronous Code, libuv, The Event Loop, Streams, Files, and more…
13 Lectures 01:41:57
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
+
HTTP and being a Web Server
11 Lectures 01:21:10
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
+
NPM: the Node Package Manager
7 Lectures 43:04
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
00:10

init, nodemon, and package.json - Part 2
15:17

Using Other People's Code
01:43
+
Express
7 Lectures 01:28:52
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
+
Javascript, JSON, and Databases
5 Lectures 28:25
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
2 More Sections
About the Instructor
Anthony Alicea
4.7 Average rating
37,210 Reviews
130,932 Students
7 Courses
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.