Why learn NodeJS β #
For a π¨ Frontend developer who heavily utilizes JavaScript, Node.js applications offer a significant advantage by enabling them to program both the frontend and the backend in a single language, which is convenient.
π Take Away Skills #
After completing this learning path you will be knowledgeable in:
- Blocking and Non-Blocking
- Event Loop and Timers
- Working with the File System and Streams
- Web Server Development
- Creating your own CLI applications
π οΈ Prerequisites #
π§π»βπ» Programming Knowledge #
-
A solid understanding of JavaScript fundamentals is essential.
-
Basic understanding of HTML and CSS is helpful for building web applications and understanding client-server interactions.
-
(Optional) Basic understanding of the CLI is important. This includes knowing how to navigate directories, create and edit files, and run commands.
-
(Optional) Basic understanding of API design principles and HTTP methods (GET, POST, PUT, DELETE) is helpful.
π² Installation and Setup #
You need a code editor, browser and Node.js to follow along this learning path. You can choose the code editor and browser of your choice. The preferred ones are listed below:
-
VS Code
Light-weight code editor by Microsoft with a large ecosystem of plugins to help your workflow
-
Google Chrome
A browser based on V8 JavaScript engine with developer tools.
-
Node.js
JavaScript runtime which helps you run JavaScript programs in your system.
Note: Install the stable version
π‘ Learning Session #
Fundamentals of Node JS
> Understanding Node Architecture
> Modules
> Blocking vs Non-Blocking
> File System and Streams
> Node Package Manager (npm)
π§π»βπ» Learn from
π½οΈ Video Tutorials
π Articles/Blogs
Working with web servers using Node JS
> Understanding 'http' module
> Creating an http server
> Lifecycle of an http request
> Routing incoming requests
> Handling errors
> Using third-party libraries
π§π»βπ» Learn from
π½οΈ Video Tutorials
π Articles/Blogs
Note: You can use popular libraries like Express to create web servers but it is recommended to understand the fundamentals of http before trying out other libraries
π οΈ Get into action
A small and easy project to test what you have learned so far:
Random Name Generator:
Create web server that displays a random name from a file named first-names.txt, which has each name on a separate line
π Resource Pool #
You can checkout these additional resources to learn more about Node JS
π Articles/Blogs #
π½οΈ Videos #
- Node JS Internal Architecture by Gabriel Zimmermann
- The Node.js Event Loop: Not So Single Threaded
- Node.js / Express Course - Build 4 Projects by FreeCodeCamp
π Project Pool #
Here are few project ideas you can try out, these are just an inspiration to get started. Try to learn and build ideas that come to your mind.
-
Real-time chat application:
- You can build a real-time chat application using Node.js and Socket.io.
-
To Do List:
- You can build a To Do List application that allows users to create, update, and delete tasks.
- This project will involve building an API with Node.js and using a database such as Mongo DB to store and retrieve tasks.
Working with external libraries:
-
Discord JS: Create a discord bot that greets a user when they say hello in chat learn more.
-
Twitter API: Try creating a Twitter bot that tweets on a daily basis indicating the percentage completion of the year corresponding to the date. check it out.
Don’t limit yourself to these ideas. Feel free to explore your own and try them out
Remember that learning Node JS is a continuous process, so don’t get discouraged if you encounter some challenges along the way. Keep practicing and experimenting, and you’ll eventually become proficient in Node JS.
Created with π by Ritin George & TinkerHub