VERSIÓN EN ESPAÑOL
Desde que empecé a estudiar programación por mi propia cuenta he intentado comprender todo lo que ella implica al menos de manera general. Desde un principio una de las cosas que más llamaron mi atención fue todo lo relacionado con el desarrollo web, de manera especial lo que significaba el desarrollo frontend (del lado del cliente) y el desarrollo backend(del lado del servidor).
He hecho mi camino con el frontend, integrando librerías, como react.js y framework, como next.js, a mis prácticas, por ello, me siento en un momento óptimo para comenzar a indagar en lo referente al backend que en palabras simples es todo lo que del desarrollo web no vemos, pero que es esencial para el funcionamiento del mismo, es donde está prácticamente la lógica de nuestra aplicación que mostramos en el frontend, es el puente donde hacemos pasar los datos que alimentan nuestros productos y servicios.
Las maravillas de Nodejs
Qué grandioso es que luego de aprender con JavaScript todo lo relacionado con el frontend me consiga conque en el backend también puedo usar este mismo lenguaje pero desde otro contexto. En efecto, Node.js es - según lo dice su misma página de descarga - un entorno de ejecución para JavaScript, más allá del navegador. Esta es de hecho una de las ventajas de aprenderlo, al final no son tantas las cosas que hay que estudiar, sino integrar lo que sea necesario según la plataforma donde se quiera usar, pues, al poder ejecutarlo fuera del navegador se puede usar en cualquier otra manera además del backend, por ejemplo, para aplicaciones de escritorio o teléfonos móviles.
Por esta razón, saber sobre Node.js es en realidad una habilidad muy demandada, tanto por la rama del desarrollo web (varios de los stacks que se exigen en empresas lo incluyen) como también de programas para sistemas operativos de escritorio, entre otros. Esto lo convierte en una herramienta sumamente versátil que vale la pena tener en nuestra caja de herramientas de programación, es como tener una multiuso entre nuestros haberes.
Módulos externos y nativos
Los módulos son piezas de código que podemos reutilizar para nuestras aplicaciones, algunas de estas piezas constituyen un software completo que nos ayudan a agilizar nuestros proyectos. Por ello, la mayoría de los lenguajes de programación prevén la utilidad de los módulos, no obstante, aquí JavaScript (recordemos que Node.js es JavaScript fuera del navegador) tiene la ventaja sobre los demás, en el sentido de que posee una gran comunidad e inmenso ecosistema de registro de paquetes de módulos.
Además de todos estos paquetes, que son externos a nuestros servicios y desarrollos, Node.js también tiene integrados paquetes nativos, desde los cuales ya podemos crear cosas maravillosas, ya que hay las que nos proveen de funciones predeterminadas (como el console.log(), que también existe en el navegador), para manipular los archivos del sistema, crear un servidor, obtener información del sistema operativo, controlar los proceso de ejecución de nuestros programas, entre otros; todos están explicados en la sección de documentación de Node.js..
ENGLISH VERSION
Since I started studying programming on my own, I have tried to understand everything it implies at least in general terms. From the beginning, one of the things that caught my attention the most was everything related to web development, especially what frontend (client-side) development and backend (server-side) development meant.
I have made my way with the frontend, integrating libraries, such as React.js and frameworks, such as Next.js, into my practices, for this reason, I feel at an optimal time to begin to investigate what refers to the backend, which in simple words is everything we do not see from web development, but which is essential for its operation, it is where the logic of our application that we show in the frontend is practically located, it is the bridge where we make the data that feed our products and services pass.
The Wonders of Node.js
How great it is that after learning with JavaScript everything related to the frontend I find that on the backend I can also use this same language but from another context. In fact, Node.js is - as its own download page says - an execution environment for JavaScript, beyond the browser. This is in fact one of the advantages of learning it, in the end there are not so many things to study, but to integrate what is necessary according to the platform where it is to be used, because, by being able to execute it outside the browser it can be used in any other way besides the backend, for example, for desktop or mobile applications.
For this reason, knowing about Node.js is actually a very in-demand skill, both by the branch of web development (several of the stacks that are required in companies include it) as well as programs for desktop operating systems, among others. This makes it an extremely versatile tool that is worth having in our programming toolbox, it is like having a multi-purpose among our assets.
External and Native Modules
Modules are pieces of code that we can reuse for our applications, some of these pieces constitute complete software that helps us to streamline our projects. For this reason, most programming languages provide for the usefulness of modules, however, here JavaScript (remember that Node.js is JavaScript outside the browser) has the advantage over the others, in the sense that it has a large community and immense ecosystem of module package registry.
In addition to all these packages, which are external to our services and developments, Node.js also has integrated native packages, from which we can already create wonderful things, since there are those that provide us with default functions (such as console.log(), which also exists in the browser), to manipulate system files, create a server, get operating system information, control the execution process of our programs, among others; all are explained in the Node.js documentation.