Node.js is an open-source runtime environment used to execute server-side JavaScript code.
That is, Node.js is a program that allows us to run programs written in JavaScript. You write your program in JavaScript and Node.js’s function is to take your code and run it (that’s why it’s called a “runtime environment” 😉).
When we say “on the server side” we mean that, thanks to Node.JS, JavaScript no longer has to run exclusively inside a web page. But this does not mean that Node.js is only for servers.
You can install Node.js on your home computer, and use it for whatever you want. For example, to write your household’s shopping list, so you don’t forget to buy sweet potatoes 🍆. Or to list the files in a folder… to make whatever program you want.

When Node.js appeared it was a small but great revolution. It was 2009 and neither computing nor JavaScript were like they are today. At that time, JavaScript ran (almost) exclusively in the browser, when it displayed a web page.
Until then, server-side technologies were mainly based on languages like PHP, Ruby, Java, and Asp.NET. There was no runtime environment to use JavaScript, apart from a web browser.
But Node.js changed everything. Now we can run JavaScript to perform tasks, outside of a web page, such as managing files, interacting with databases, and creating web servers on your computer (or on a server).
How Node.js Works
Node.js is based on Google’s V8 engine, which compiles JavaScript code into machine code, instead of simply interpreting it. This makes it highly efficient and extremely fast.

One of the most innovative aspects of Node.js was its non-blocking I/O model. This allows handling multiple requests simultaneously without blocking the execution flow.
Another characteristic is an event-driven programming model. This means that operations like reading files or network requests are handled as events. When an event occurs, the corresponding callback is executed. This makes Node.js very efficient in handling asynchronous operations.
These three characteristics were focused on serving scalable, high-performance web applications that could handle a large number of requests. Such as, for example, online chats, multiplayer games, collaboration applications, and more.
Node.js as a Development Tool
Regardless of Node.js emerging as a technology for creating web application back-ends, the truth is that it soon started to be used for many other things.
Thus, many tools focused on improving the developer experience began to be created. If, let’s say, you had to copy some files on your computer (not on a web server, on your computer), with Node.js you could make a simple script.

By using JavaScript, web developers felt very comfortable using the same language they already knew and used every day (there was no need to learn another language, you could use JavaScript for everything).
Both Node.js and JavaScript benefited from that. So many, many (I repeat many) tools that helped you in development were created. It’s a circle that feeds itself.
With this, a large community of developers and a wide user base was generated. This means there are a lot of resources, tutorials, libraries, and frameworks available to help in application development.
Furthermore, many leading companies like Netflix, PayPal, Uber, and LinkedIn use Node.js in their applications. This gives it more weight and reliability, which encourages other companies to also use it.
So much so, that today Node.js is an essential tool in the development world. Not only as a web server, but because literally almost anything you want to do today in development requires using Node.js.
Of course, like everything successful in life, competitors and alternatives have also emerged. But, in general, they try to be Node.js-Compatible because otherwise they wouldn’t get anywhere it has become almost a de facto standard.
And for that reason, we are starting this Node.js course where we will see the use of this tool that, today, you should definitely know if you are in the development world.
Learn how to use the NPM package manager
