Mô tả

Welcome to the most comprehensive Node.js course on the internet!

In this course, we're going to do a deep dive into Node.js itself without cluttering our minds with other tools and NPM packages and truly master this powerful technology.

This course is heavily focused on computer science topics and fundamentals that are crucial to understand for becoming a great back-end engineer. You can only properly understand Node.js and unlock its full power if you understand these other computer science topics. So that's why we will also learn these other vital topics so that you can truly master Node.js and take your back-end engineering skills to a whole new level.

We will also use all these vital concepts that we'll learn in practice by building various exciting projects just using Node.js.

This is an intense course for people who want to get to the top of the field and get to a level of driving innovation and making an impact within the industry instead of just scratching the surface and following a few software trends and tools.

Each section of the course is like its own mini-course, and by completing each section, you'll learn some essential Node.js, computer science and back-end engineering concepts that will help you not just if you want to use Node.js but throughout your whole career as a software engineer. These things will stay with you for years and decades to come.


Let's do a quick walkthrough about what you will accomplish after completing some of the sections:

Understanding Buffers: Here, we will deeply understand buffers and how to work directly with binary data, which is essential for all the other sections.

Understanding File System: As a back-end developer, you'll work with files a lot, be it saving some data to disk, handling file uploads and many other examples, so it's essential to have a good understanding of them, which you'll gain after completing this section. We'll also learn how Node.js deals with files and master the "fs" module.

Understanding Streams: In this section, we're going to master Streams, which will allow us to develop highly-performant apps capable of handling terabytes of data with ease while having great memory usage. We'll build many mini-projects throughout the section, including an encryption-decryption app from scratch that could encrypt terabytes of data by directly modifying the binary data. This section lays the foundation for future sections where we'll utilize Streams heavily to create powerful and efficient network applications.

Understanding Networking: Node.js was primarily designed to create network applications, so it's of utmost importance that we gain a decent understanding of networking, which we will do after completing this section. Here's a list of items we'll learn in this section:

  • What exactly a network is

  • How the internet works

  • Mac Addresses

  • IPV4 & IPv6 Addresses

  • TCP

  • UDP

  • DNS

  • Fundamentals of deployment

We'll build 2 low-level apps using only Node.js, a chat and a file uploader app directly on top of TCP! And then, we'll deploy them to a Linux server in the most basic way without using unnecessary tools.

We'll see exactly what happens in our network card, every single 0s and 1s exchanged for a particular thing using Wireshark, and gain a much better understanding of networking and how most of the well-known protocols like HTTP, FTP, Email protocols, SSH, DNS and many others work. This section will broaden your horizons, and you'll realize that there are far more things that you can do with Node.js than just creating web servers.

Understanding HTTP: In this section, we'll utilize and combine all that we've learned from previous sections and finally deeply understand HTTP once and for all! We won't be learning how to use Express; instead, we will build something similar ourselves!

We'll start by understanding the most important HTTP concepts, such as connection types, client-server model, messages, requests, responses, HTTP Methods, status codes, mime types, necessary headers and so much more. And then emulate an HTTP protocol directly on top of TCP using the net module and see precisely every single 0s and 1s that get exchanged for an HTTP request and response interaction!

Once we understand the fundamentals of HTTP and the "http" module, we'll take things to the next level and start building our framework. And then, using our framework, we'll make a fully functional web application.

This section will take your web development skills to the next level. You'll have a much better understanding of how all these popular NPM packages, like Express, body-parser, Multer, cors, etc., that are built on top of the "http" module work. Well, you'll learn how to make them from scratch, just using them will not be that much of a problem!


Please note that there are many more exciting sections to come! The course is still in production, and the expected date for the course completion is within the fall of 2024.

If at any point in the course, you get stuck or feel like you need more clarification on something, I will be there in the QA to help you every step of the way from start to finish! Sign up today, and let's master Node.js and take your back-end engineering skills to a whole new level!

Bạn sẽ học được gì

Learn some of the vital concepts of back-end engineering

Get to a level capable of easily learning various NodeJS frameworks and libraries

Truly and deeply understand what exactly NodeJS is and see its full potentials far beyond just creating web servers

Understand and master NodeJS as it is without using any other NPM packages

Understand some of the most important operating systems concepts that every back-end developer needs to understand

Be able to easily learn and understand the NodeJS documentation

Learn how to directly deal with binary data and manipulate the 0s and 1s however you want

Learn the most important Networking concepts and understand where NodeJS exactly comes into play

Learn exactly what happens when you deploy your back-end applications rather than focusing on a few tools

Learn how to create low-level network applications directly on top of TCP or UDP and develop your own protocols

Deeply understand what HTTP really is and how it works

Get a deep understanding of the File System

Master Streams to develop highly performant and memory-efficient applications capable of dealing with terabytes of data with ease

Understand the EventEmitter object

Yêu cầu

  • At least one year of programming experience
  • A good knowledge of JavaScript
  • While not mandatory, a little bit of experience with ExpressJS and HTML could be helpful

Nội dung khoá học

14 sections

Introduction

8 lectures
Course Overview
29:43
A Note About the Sections In Production
01:01
Setting Up - For Windows Users Only
49:40
Setting Up - For Mac Users Only
59:56
Setting Up - For Linux Users Only
53:05
Introduction to the Command Line
40:46
Learning NVM & Node.js Versions
15:23
Node.js Under the Hood
01:36:01

Understanding EventEmitter

2 lectures
Understanding EventEmitter
34:05
EventEmitter Object
1 question

Understanding Buffers

11 lectures
Introdcution
06:47
Understanding Binary Numbers
13:31
Understanding Hexadecimal Numbers
21:09
Using a Programming Calculator
11:48
Understanding Character Encodings
25:20
The Concept of Buffers
07:34
Buffers in Action
38:46
Allocating Huge Buffers
18:14
Fastest Way of Allocating Buffers
20:58
Reading the Node.js Docs
14:01
Outro
02:08

Understanding File System

15 lectures
Introduction
11:18
What Exactly Is a File?
07:31
How Node.js Deals with Files
04:05
Three Different Ways of Doing the Same Thing
14:42
Starting Point for Building Our Application
00:19
Watching the Command File for Changes
13:32
Reading the Content of the Command File
18:40
Cleaning Up the Code using EventEmitter
04:22
Making Sense Out of the Read Data
03:53
Implementing the Create File Command
15:36
Defining the Rest of the Commands
15:20
Solution - Implementing the deleteFile Function
11:06
Solution - Implementing the renameFile Function
03:38
Solution - Implementing the addToFile Function
11:06
Outro
01:06

Understanding Streams

19 lectures
Introduction
04:51
Benchmarking Writing a Million Times to a File
26:25
Using Streams Naively in Our Solution
07:57
So What Exactly Are Streams?
08:58
Understanding Different Types of Streams
17:52
Fixing the Memory Issue in Our Program
36:54
Reading Writable Streams Node.js Docs and Recap
09:48
Readable Streams in Action
21:35
Selectively Writing Our Data from the Readable Stream
09:17
Understanding the Splitting Issue
16:56
Implementing the Solution and Resolving the Splitting Issue
16:27
Reading Node.js Docs and Recap
08:03
Building Our Own Streaming Solution Using Buffers
23:30
Understanding Piping
25:42
Implementing Our Own Writable Stream
42:28
Implementing Our Own Readable Stream
20:01
Understanding Duplex and Transform Streams
17:26
Creating an Encryption/Decryption Application
39:02
Final Notes
26:04

Understanding Networking

31 lectures
Introduction
11:59
Understanding MAC Addresses and Switches
15:02
Understanding Routers and How the Internet Works
15:15
Understanding Networking Layers
16:28
A Quick Tip About Filtering in Wireshark
01:08
Creating a Simple TCP Application in Node.js
24:43
Understanding the Transport Layer - TCP/UDP
13:02
A Networking Scenario in Action
25:18
Understanding Port Numbers
12:02
Starting Point for Building Our Chat App
00:16
Creating a Chat Application PART 1
29:46
Creating a Chat Application PART 2
34:18
Improving the UI of our Chat App
21:34
Identifying Users in the Chat App
18:46
Notifying Everyone When Somebody Joins/Leaves the Chat
04:09
A Note About the 'end' Event on Windows
01:00
Some Final Notes About the Chat App
15:26
Deploying our Chat App to AWS
34:30
Commands Used for Installing NVM
00:25
Understanding IPv4 Addresses
40:09
Understanding DNS
31:36
Understanding IPv6 Addresses
26:44
Starting Point for Building Our Uploader App
00:16
Creating an Uploader Application
26:02
Taking Care of Backpressures in the Uploader App
33:15
Getting the File Names Dynamically in the Uploader App
20:43
Displaying the Upload Progress in Our Uploader App
16:02
Deploying our Uploader App
20:05
AWS Cost Warning - Server Termination Reminder
00:20
Understanding UDP and the Dgram Module
32:37
Outro
01:30

Understanding HTTP

33 lectures
Introduction
10:38
The Idea of HTTP
07:00
Creating a Simple HTTP Server in Node
15:09
Understanding HTTP Messages, Requests & Responses
12:51
Understanding Connection Types
16:12
Building our Client and Sending a Request
21:10
Sending a Response to the Client
12:43
Learning Postman & Testing Our Server with It
25:35
Reading Some Docs
28:33
Sending an HTTP Request Directly on Top of TCP! PART 1
20:05
Sending an HTTP Request Directly on Top of TCP! PART 2
22:05
Emulating our HTTP Server Using the Net Module
11:19
Understanding Media Types (MIME Types)
16:51
Understanding HTTP Methods
21:36
Understanding HTTP status codes
15:04
Creating a Simple Web Server in Node
18:22
Serving a CSS and JavaScript File
22:05
Adding Some JSON Routes
07:54
Adding a File Upload Route
13:01
Creating our Own Little Mini-Express Framework!
23:18
Making our Framework More Robust
15:04
Getting Ready for Our Next Project
11:25
Using Our Framework to Create a Web App
16:15
Adding the Login Route
21:15
Understanding HTTP Proxies
18:18
HTTP is Stateless
12:57
Understanding Cookies
13:07
Recognizing Users for Future Requests after Logging In
18:15
Sending the User’s Info in Profile
09:14
Enhancing Our Framework with Middleware Support
23:04
Defining the Middleware Functions
18:07
Implementing the Create Post, Update User, and Logout Routes
25:02
Outro
02:53

Understanding Unix

42 lectures
Introduction
13:09
What Is Unix?
10:49
Why Should We Care About Unix?
04:40
Setting Up Unix on Windows (WSL) - For Windows Users Only
20:17
A First Look at the Child Process Module
16:06
Understanding Unix Shells
40:06
Demystifying Bash Execution Order: Aliases, Functions, Built-ins, and Path
27:03
A Few Notes about Unix File Permissions
14:19
Sourcing in Bash
05:11
Understanding Shell Config Files
38:08
What Exactly is a Child Process?
24:08
Understanding Environment Variables
14:09
Understanding Unix File System, Paths & CWD
49:06
Understanding Stdout, Stdin, and Stderr
33:02
Understanding Pipes and Output Redirection in Bash
12:08
Building a Command Line Utility with Node.js
17:07
Building Massive Communication App - Node Part
18:29
Intro to the C Part
11:05
Learning C - Our First App
12:32
Learning C - Static Types & Our Memory
42:33
Learning C - Memory Allocation
31:14
Learning C - Reading the Arguments
04:37
Building Massive Communication App - C Part
50:39
Only Watch if You Skipped the C Part
09:48
Another Way of IPC - Unix Domain Sockets
21:29
Understanding Clustering
32:58
Clustering in Action
45:32
Installing & Building FFmpeg from Source Code
12:11
Video Editor App - Setup & Walkthrough
37:59
Adding the Upload Route
35:47
Quick Intro to FFmpeg and Video Files
20:02
Making a Thumbnail and Getting the Dimensions After an Upload
25:15
Returning the List of Uploaded Videos
04:15
Adding a Route for Returning the Video Assets
23:57
Adding a Route to Extract the Audio of a Video File
15:49
Adding the Resize Route
19:20
Scheduling the Resizes
25:27
More on Queue-based Processing
16:31
Resuming Scheduled Resize Operations Upon App Restart
19:27
Running Our Application in Cluster Mode
31:16
Refactor from Cpeak to Express in Less than 20 Minutes!
07:40
Outro
22:42

Understanding Cryptography

1 lectures
Sneak Peek into What's Next
00:21

Understanding Compression

1 lectures
Sneak Peek into What's Next
00:16

Understanding Worker Threads & Multi-Threading

1 lectures
Sneak Peek into What's Next
00:16

Security

1 lectures
Sneak Peek into What's Next
00:24

Setting Up the TBD Project

1 lectures
Sneak Peek into What's Next
00:36

Deploying the TBD Project

1 lectures
Sneak Peek into What's Next
00:18

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.