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
• Learn how to incorporate compression to enhance the speed of your network applications
• Understand Unix and open up a world of new possibilities
• Understand the EventEmitter object
• Master Multi-Threading in NodeJS & achieve significant performance improvements
Course content
Module1
• Setting Up – For Windows Users Only
• Setting Up – For Mac Users Only
• Setting Up – For Linux Users Only
• Learning NVM & Node.js Versions
• Node.js Revision
Module 2
• Understanding Event Emitter
• Understanding Buffers
• Binary and Hexadecimal Number
• Programming Calculator
• Character encoding
• Buffers in action
• Node.js Docs
Module 3
• File System
• What Exactly Is a File?
• How Node.js Deals with Files
• Three Different Ways of Doing the Same Thing
• Starting Point for Building Our Application
• Watching the Command File for Changes
• Reading the Content of the Command File
• Cleaning Up the Code using EventEmitter
• Making Sense Out of the Read Data
• Implementing the Create File Command
• Defining the Rest of the Commands
• Solution – Implementing the deleteFile Function
• Solution – Implementing the renameFile Function
• Solution – Implementing the addToFile Function
Module 4
Streams
Benchmarking Writing a Million Times to a File
• Using Streams Naively in Our Solution
• So What Exactly Are Streams?
• Understanding Different Types of Streams
• Fixing the Memory Issue in Our Program
• Reading Writable Streams Node.js Docs and Recap
• Readable Streams in Action
• Selectively Writing Our Data from the Readable Stream
• Understanding the Splitting Issue
• Implementing the Solution and Resolving the Splitting Issue
• Reading Node.js Docs and Recap
• Building Our Own Streaming Solution Using Buffers
• Understanding Piping
Module 5
Understanding Networking
• Understanding Routers and How the Internet Works
• Understanding Networking Layers
• A Quick Tip About Filtering in Wireshark
• Creating a Simple TCP Application in Node.js
• Understanding the Transport Layer – TCP/UDP
• A Networking Scenario in Action
• Understanding Port Numbers
• Starting Point for Building Our Chat App
• Creating a Chat Application PART 1
• Creating a Chat Application PART 2
• Improving the UI of our Chat App
• Identifying Users in the Chat App
• Notifying Everyone When Somebody Joins/Leaves the Chat
• A Note About the ‘end’ Event on Windows
• Some Final Notes About the Chat App
• Deploying our Chat App to AWS
• Commands Used for Installing NVM
• Understanding IPv4 Addresses
• Understanding DNS
• Understanding IPv6 Addresses
• Starting Point for Building Our Uploader App
• Creating an Uploader Application
• Taking Care of Backpressures in the Uploader App
• Getting the File Names Dynamically in the Uploader App
• Displaying the Upload Progress in Our Uploader App
• Deploying our Uploader App
• AWS Cost Warning – Server Termination Reminder
• Understanding UDP and the Dgram Module
Module 6:
The Idea of HTTP
• Creating a Simple HTTP Server in Node
• Understanding HTTP Messages, Requests & Responses
• Understanding Connection Types
• Building our Client and Sending a Request
• Sending a Response to the Client
• Learning Postman & Testing Our Server with It
• Reading Some Docs
• Sending an HTTP Request Directly on Top of TCP!
• Understanding Media Types (MIME Types)
• Understanding HTTP Methods
• Understanding HTTP status codes
• Creating a Simple Web Server in Node
• Serving a CSS and JavaScript File
• Adding Some JSON Routes
• Adding a File Upload Route
• Creating our Own Little Mini-Express Framework!
• Making our Framework More Robust
• Getting Ready for Our Next Project
• Using Our Framework to Create a Web App
• Adding the Login Route
• Understanding HTTP Proxies
• HTTP is Stateless
• Understanding Cookies
• Recognizing Users for Future Requests after Logging In
• Sending the User’s Info in Profile
• Enhancing Our Framework with Middleware Support
• Defining the Middleware Functions
• Implementing the Create Post, Update User, and Logout Routes
Module 7
Learn Linux and its command
Module 8
Learn Compression
Module 9
Multi Threading
Module 10
Cryptography and security
Module 11
Project