We may earn an affiliate commission when you visit our partners.
Course image
Anthony Alicea

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.

Read more

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.

Enroll now

What's inside

Learning objectives

  • 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
  • Show more
  • Show less

Syllabus

Introduction and Setup
Introduction and the Goal of this Course
Big Words and NodeJS
Watching this Course in High Definition
Read more
Conceptual Aside: The Command Line Interface
Command Line References
V8: The Javascript Engine
Conceptual Aside: Processors, Machine Language, and C++
Javascript Aside: Javascript Engines and The ECMAScript Specification
V8 Under the Hood
Adding Features to Javascript
The Node Core
Conceptual Aside: Servers and Clients
What Does Javascript Need to Manage a Server?
The C++ Core
The Javascript Core
Downloading Lecture Source Code
Let's Install and Run Some Javascript in Node
Modules, Exports, and Require
Conceptual Aside: Modules
Javascript Aside: First-Class Functions and Function Expressions
Let's Build a Module
Javascript Aside: Objects and Object Literals
Javascript Aside: Prototypal Inheritance and Function Constructors
Javascript Aside: By Reference and By Value
Javascript Aside: Immediately Invoked Function Expressions (IIFEs)
How Do Node Modules Really Work?: module.exports and require
Javascript Aside: JSON
More on require
Module Patterns
exports vs module.exports
Requiring Native (Core) Modules
Modules and ES6
Web Server Checklist
Events and the Event Emitter
Conceptual Aside: Events
Javascript Aside: Object Properties, First Class Functions, and Arrays
The Node Event Emitter - Part 1
The Node Event Emitter - Part 2
Javascript Aside: Object.create and Prototypes
Inheriting From the Event Emitter
Javascript Aside: Node, ES6, and Template Literals
Javascript Aside: .call and .apply
Inheriting From the Event Emitter - Part 2
Javascript Aside: ES6 Classes
Inheriting From the Event Emitter - Part 3
Asynchronous Code, libuv, The Event Loop, Streams, Files, and more…
Javascript Aside: Javascript is Synchronous
Conceptual Aside: Callbacks
libuv, The Event Loop, and Non-Blocking Asynchronous Execution
Conceptual Aside: Streams and Buffers
Conceptual Aside: Binary Data, Character Sets, and Encodings
Buffers
ES6 Typed Arrays
Javascript Aside: Callbacks
Files and fs
Streams
Conceptual Aside: Pipes
Pipes
HTTP and being a Web Server
Conceptual Aside: TCP/IP
Conceptual Aside: Addresses and Ports
Conceptual Aside: HTTP
http_parser
Let's Build a Web Server in Node
Outputting HTML and Templates
Streams and Performance
Conceptual Aside: APIs and Endpoints
Outputting JSON
Routing
NPM: the Node Package Manager
Conceptual Aside: Packages and Package Managers
Conceptual Aside: Semantic Versioning (semver)
npm and the npm registry: Other People's Code
init, nodemon, and package.json
npm Global Installation
init, nodemon, and package.json - Part 2
Using Other People's Code
Express
Installing Express and Making it Easier to Build a Web Server
Routes
Static Files and Middleware
Templates and Template Engines
Querystring and Post Parameters
RESTful APIs and JSON
Structuring an App
Javascript, JSON, and Databases
Conceptual Aside: Relational Databases and SQL
Node and MySQL
Conceptual Aside: NoSQL and Documents
MongoDB and Mongoose
The MEAN stack
MongoDB, Express, AngularJS, and NodeJS
AngularJS: Managing the Client
AngularJS: Managing the Client (Part 2)
AngularJS: Managing the Client (Part 3)
Conceptual Aside: Angular 1, Angular 2, React, and more…

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Anthony Alicea, who has a strong background in Node, open source, and Javascript
Examines NodeJS, which is a widely used backend framework for building scalable, fast web applications
Develops skills in Node, which is highly relevant in an industry and academic setting
Covers essential Node concepts such as modules, the event loop, asynchronous code, and more
Builds a strong foundation in Node fundamentals for beginners with no prior experience
Provides downloadable source code and starter code to aid in practice and understanding
Includes hands-on exercises and assignments
Teaches how to use Node to build web applications, APIs, and connect to databases

Save this course

Save Learn and Understand NodeJS to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn and Understand NodeJS with these activities:
Review Javascript
Refresh Javascript knowledge to make for a stronger base to build on in this course.
Browse courses on JavaScript
Show steps
  • Review Javascript fundamentals, data types, variables, and operators.
  • Review Javascript control flow, functions, and arrays.
  • Review Javascript DOM manipulation, events, and AJAX.
Learn about V8 and the Javascript Engine
Explore V8 and the Javascript Engine under the hood to gain a deeper understanding of how NodeJS works.
Show steps
  • Review the V8 Javascript Engine documentation.
  • Read articles and blog posts about V8 and NodeJS.
  • Follow along with a tutorial on using V8 to debug NodeJS applications.
Participate in a NodeJS Study Group
Join a NodeJS study group to connect with fellow learners, share knowledge, and reinforce understanding.
Browse courses on NodeJS
Show steps
  • Find or create a NodeJS study group.
  • Attend regular study group meetings.
  • Actively participate in discussions and code reviews.
One other activity
Expand to see all activities and additional details
Show all four activities
Build a NodeJS Project
Build a NodeJS project to apply new skills, reinforce core concepts, and gain hands-on experience.
Browse courses on NodeJS
Show steps
  • Design and plan the NodeJS project.
  • Write and test the NodeJS application.
  • Deploy the NodeJS application.

Career center

Learners who complete Learn and Understand NodeJS will develop knowledge and skills that may be useful to these careers:
Node.js Developer
Node.js Developers are responsible for developing and maintaining Node.js applications. They are proficient in JavaScript and Node.js, and understand the underlying principles of how Node.js works. This course will provide the Node.js knowledge needed for this role.
JavaScript Developer
JavaScript Developers develop and maintain web and mobile applications. They can work on front-end or back-end development, and are proficient in JavaScript, HTML, and CSS. This course will help build the skills necessary to be a successful JavaScript Developer by covering JavaScript in great depth.
Front-End Engineer
Front End Engineers are responsible for the design, implementation, and usability of what a user sees in a web browser. They handle the 'front end', or client-side, components of a web or mobile application. This course's coverage of JavaScript, HTML, and CSS are used by front end engineers.
Full-Stack Developer
Full Stack Developers work on both the front and back end of web and mobile applications. They are proficient with a wide array of programming languages, from front-end technologies like HTML and CSS, to back-end technologies like Python and Node. The NodeJS knowledge and practice from this course will contribute towards preparing for a Full Stack Developer position.
Web Developer
Web Developers design and develop websites and web applications. They are proficient in HTML, CSS, and JavaScript, and may also have experience with other web technologies such as PHP and MySQL. This course will help develop the necessary skills to become a Web Developer by providing a deep understanding of HTML, CSS, and JavaScript, the essential technologies for building websites.
Software Engineer
Software Engineers design, develop, and test software applications. They work on a variety of projects, from small personal apps to large enterprise systems. Software Engineers must be proficient in at least one programming language, and typically need experience with several. This course will teach Node.js, a popular and powerful programming language.
Database Administrator
Database Administrators keep databases optimized for performance. They have knowledge of database structures, indexing, and query resolution. They also know network security and data encryption. The database structures that this course covers, like SQL and NoSQL, help build a foundation for what a database administrator encounters on the job.
Information Security Analyst
Information Security Analysts are responsible for keeping data safe. They monitor computer networks, perform security audits, and can plan and implement new security systems. This course goes over NodeJS security best practices that these professionals will need to understand and implement.
Data Engineer
Data Engineers design, build, and maintain the systems that store and process data. They work with a variety of data sources, including databases, data warehouses, and big data platforms. This course may be useful to Data Engineers as it covers databases and data structures.
Webmaster
Webmasters are responsible for the maintenance and upkeep of websites. They ensure that websites are running smoothly and that content is up-to-date. Webmasters may also work on website design and development. This course may be useful as it goes over HTML, CSS, and JavaScript, the technologies used to build websites.
Computer Systems Analyst
Computer Systems Analysts design, implement, and maintain computer systems. They work with clients to understand their business needs and then design and implement solutions. This course may be useful for Computer Systems Analysts as it covers a variety of computer science concepts, including data structures, algorithms, and operating systems.
Cloud Architect
Cloud Architects design and manage cloud computing systems. They work with clients to understand their business needs and then design and implement cloud solutions. This course may be helpful for Cloud Architects as it provides a deep understanding of how web servers work and how to build one in Node.js.
Cybersecurity Analyst
Cybersecurity Analysts protect computer systems and networks from security threats. They work with a variety of security technologies, including firewalls, intrusion detection systems, and anti-malware software. This course may be somewhat useful for Cybersecurity Analysts as it covers the basics of network security and web server security.
Network Administrator
Network Administrators design, implement, and maintain computer networks. They work with a variety of network technologies, including routers, switches, and firewalls. This course may be somewhat useful for Network Administrators as it covers the basics of networking, including TCP/IP and HTTP.
IT Manager
IT Managers plan, organize, and direct the operations of an organization's IT department. They work with a variety of IT technologies, including hardware, software, and networks. This course may be somewhat useful for IT Managers as it provides a broad overview of computer science concepts, including programming, databases, and networking.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn and Understand NodeJS.
This comprehensive guide to MongoDB covers everything from the basics to advanced topics like replication and sharding. It great choice for both beginners and experienced developers looking to work with MongoDB.
This classic book provides a deep dive into the JavaScript language. It great resource for developers who want to understand JavaScript better and write more effective code.
This comprehensive book provides a modern and thorough introduction to JavaScript. It great choice for beginners and experienced developers alike who want to learn JavaScript in depth.
This comprehensive guide to Node.js covers everything from the basics to advanced topics like scaling and performance optimization. It great choice for both beginners and experienced developers looking to deepen their understanding of Node.js.
Provides a collection of JavaScript design patterns for building reusable and maintainable code. It valuable resource for developers who want to improve the quality and efficiency of their code.
This guide provides a comprehensive overview of Node.js. It covers everything from the basics to advanced topics like debugging and performance optimization.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Learn and Understand NodeJS.
Secure Full Stack MEAN Developer
Most relevant
Node JS Curso Completo do Básico ao Avançado
Most relevant
Set up your dev environment for MERN developers on Linux
Most relevant
Use React with Express to build a Web Application
Most relevant
Microservices with NodeJS, React, Typescript and...
Most relevant
Modern JavaScript From The Beginning 2.0 (2024)
Most relevant
Build a CRUD Node.js and MongoDB employee management web...
Most relevant
TypeScript 4: Getting Started
Most relevant
Node.js for Beginners - Become a Node js Developer +...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser