Author: Andrei Neagoie, Adam Odziemkowski
Duration: 35+ hours
Course Source: https://academy.zerotomastery.io/p/learn-node-js
Learn from Node.js experts. This is the only Node JS tutorial + projects course you need to learn Node, build advanced large-scale applications from scratch & get hired as a Backend Developer in 2021. Go from Zero To Node Mastery.
We guarantee you that this is the most comprehensive and up-to-date Node JS tutorial + projects course that you can find. You will learn Node from scratch, build your own professional Node.js apps and get hired as a Node.js Backend Developer in 2021!
This Node course is focused on efficiency. Never spend time on confusing, out-of-date, incomplete tutorials anymore. Instead, we'll push you beyond the basics so that you can build professional, modern apps using the latest version of Node and become a Backend or Fullstack Developer.
Graduates of Zero To Mastery are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook, Shopify + other top tech companies. This could be you.
By enrolling today, you’ll also get to join our exclusive live online community classroom to learn alongside thousands of students, alumni, mentors, TAs and Instructors. Most importantly, you will be learning from industry experts that have actual real-world experience working with Node.js and building large-scale apps for companies in Toronto And Silicon Valley.
This project based Node course will introduce you to all of the modern toolchain of a Node JS developer in 2021. Along the way, you will build a massive NASA Space launch application using Node.js, Express Framework, RESTful APIs (including the SpaceX API), GraphQL, and much more. This is a large, fullstack MERN stack project.
All code is going to be provided step-by-step and even if you don’t like to code along, you will get access to the the full master project code so when you join the Zero To Mastery Academy, you will have a professional project to put on your portfolio right away.
The curriculum is very hands on as we guide you from start to finish of releasing a professional (performant and secure) Node project all the way into production.
However, we will start from the very beginning by teaching you Node basics and fundamentals. We then dive into advanced topics so you can make good decisions on architecture and tools on any of your future Node.js projects.
Finally, this course will be constantly evolving and updating as the landscape changes. Just as the Node ecosystem evolves, this course will also constantly evolve and be updated with new lectures and resources for you. Come back to this course anytime you want to review the absolute latest Node best practices.
In this course you will learn:
• Build enterprise-level Node applications and deploy to the cloud (AWS)
• Lead Node JS projects by making good architecture decisions and helping others on your team
• Work with real-life data and the SpaceX API to build a NASA launch system to discover new planets that may contain life + other projects
• Build a MERN (MongoDb, Express, React, Node) fullstack app and deploy to production
• Become a top 10% Node Developer by learning advanced topics most courses don't cover
• Master the latest ecosystem of a Backend Node JS Developer from scratch
• Learn to build secure and performant, large-scale applications like a Senior Backend Developer
• Use Node JS to build production grade apps including REST APIs and GraphQL APIs
• Authentication, File I/O, Databases (SQL, MongoD, Express Framework, Sockets, plus many other important topics a Backend Developer should know
• Load balancing, Monitoring, CI/CD, and Zero Downtime Deployment
• Learn security best practices throughout the course so you can be confident with your deployments
Here is what the course will cover:
• Focus on Node internals
• Libuv, threads, processes, event loop
• Asynchronous programming
• Node vs PHP vs Python
• Observer Design Pattern
• Event Emitters
2. Module System
• The require Function
• Creating Your Own Modules
• CommonJS vs ECMAScript (ES6) modules
• Module Caching
• Using index.js
3. Package Management
• NPM: The Node Package Manager
• Creating Your Own Packages
• Package And the NPM Registry
• Third Party Modules
• The node_modules Folder
• Semantic Versioning
• Package-lock.json And Versioning
• Vulnerabilities in Dependencies
4. File I/O: Planets Project
• Exploring Exoplanets With Node
• Exploring Kepler Space Telescope Data
• Working With Streams
• Streaming Large Data Files
• Parsing Our Planets Data
• Working With CSV Files
• Finding Habitable Planets
5. Web Servers
• What is a Web Server?
• HTTP Responses and Requests
• HTTP APIs and Routing, Parameterized URLs
• Same Origin Policy, CORS
• Requests and Responses as Streams
• Express vs Next.js vs Koa
• Route Parameters
• Model View Controller (MVC) pattern
• Postman and Insomnia
• Development Dependencies
• Logging Middleware Example / Writing Our Own Middleware
• POST Requests in Express
• MVC In Express
• Express Routers
• RESTful APIs
• Sending Files
• Serving Websites With Node
• Templating Engines
7. NodeJS NASA Project
• Architecture diagrams on LucidChart
• GET, POST, DELETE routes
• Serving React.js Applications in Express
• CORS middleware
• Models vs Controllers vs Routers
• Loading Data On Startup
• Automating Full Stack Applications With NPM
• Serving React Front End (in Production)
• Logging Requests with Morgan
• Serving Applications With Client Side Routing
• Building A Data Access Layer
• Integrating with Frontend, Top Down Approach, Bottom Up Approach
• Updating Our Architecture
8. Testing APIs
• Unit tests vs API tests vs UI tests
• Testing Node APIs with Jest and Supertest
9. Improving Node Performance
• Example app which blocks event loop + real-life blocking functions
• Node Cluster Module theory + in action
• Clustering in the real world
• Load balancing
• PM2 theory + in action
• Managing Live Clusters with PM2
• Zero Downtime Restarts
• Improving Performance of NASA Project
• Stateless APIs
• Node Worker Threads
• Using MongoDB to add persistence to NASA Project
• Big focus on NoSQL vs SQL, PostgreSQL vs MongoDB, when to use both including Trends, Object-Relational Mismatch, ACID, References, Schemas, Schema-less vs Schemas
• MongoDB Atlas
• Horizontally Scaling Databases
• Mongoose Models vs MVC Models
• ObjectIDs in MongoDB
• Choosing A Database For Our NASA API
11. Working With REST APIs
• Demonstrate integrating with a REST API by working with SpaceX API
• Versioning REST APIs
• Running Search Queries
• SpaceX Launch Data
• Mapping API Data to Our Database
• Using Paginated APIs
• Adding Pagination To Our API
• Focus on Security first principles with JWT, cookies, CSRF
• Servers with HTTPS and SSL / TLS
• Working With Auth0
13. Deployment and CI/CD
• Focus on building out a simple CI pipeline for NASA Project on GitHub
• What is CI vs CD?
• Automated tests
• Dynamic configuration with secrets
14. Node Production and the Cloud (AWS)
• Deploy to production with Docker to Amazon EC2
• Virtual Machines
• Serverless vs Containers
• Docker files
• Managing Docker Containers and Images
• Working With SSH
• Production Deployment with PM2 and Mongo Atlas
• GraphQL vs REST
• Building a GraphQL API
16. Sockets (WebSockets, Socket io)
• Sockets overview
• Sockets vs polling
• WebSockets (vs Socket io)
• Socket io Client and Server APIs
• Broadcasting Events
• Build out Full Stack Multiplayer Pong with Sockets
• Implementing Pong Game Logic
• Using Socket io With Express.js
• Namespaces and Rooms
Meet your instructors
Hi! I'm Andrei.
Senior Software Developer turned Instructor, Founder of ZTM
Andrei is the instructor of some of the highest rated programming courses on the web. Some of his students (400,000+ in the past few years) now work for some of the biggest tech companies around the world like Apple, Google, Amazon, Tesla, IBM, Shopify and many more.
He has worked as a Senior Software Developer in Silicon Valley and Toronto for many years and is now taking all that he has learned to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life.
Hi! I'm Adam.
Senior Software Developer and Instructor
Adam has been working as a Senior Software Developer for many years and has worked for some of the top companies in the world. As an Instructor of the Zero To Mastery Academy, Adam aims to instill his students with his love for learning and development, while helping them achieve real world success that extends far beyond the completion of his courses.
Adam walks the walk when it comes to building applications that are secure, scalable, and performant and he is going to share his expertise with you to show you how real world systems are built.
Drawing from his vast experiences, Adam’s courses will show you that you don’t need to spend tens of thousands of dollars to get the skills you need to build real world projects, get hired and make a difference.