Web development technology stack
Los “stacks” son un conjunto de tecnologías que un desarrollador de software implementa para crear aplicaciones, usualmente el desarrollador cuenta con un perfil Full Stack, esto quiere decir que el desarrollador es apto para implementar las 3 fases fundamentales de una aplicación o es un desarrollador que se especializa en alguna de las fases del stack.
Frontend
Es la interfaz gráfica por medio de la cual podemos interactuar de una manera amigable con una aplicación, contamos con botones, animaciones, colores, formularios, textos que nos guían a través de los servicios que ofrece la aplicación, así mismo el frontend brinda al usuario la experiencia de interactuar con nuestra aplicación, también nos comunica lo que sucede en las capas que no podemos ver como usuarios, por ejemplo si la información que solicite esta siendo procesada, mostrar un loader (cargando…), es decir, presentamos al usuario una forma sensata de comunicación, por ejemplo “espera un momento, todavía no tengo lo que me solicitas”, también nos puede comunicar mensajes de éxito “tu transporte viene en camino” o de error “tu método de pago no es válido”, en esta fase conocemos como cliente al navegador web donde interactúa el usuario.
Backend
Todas las entradas que el usuario ha generado, es decir las peticiones o los requerimientos que deben ser procesados para contestar sus peticiones, son analizados y procesados en el servidor.
En esta parte del proceso se analizan peticiones como autenticación que es lo mismo que preguntarle al usuario ¿Quién eres?, ¿Estás registrado con nosotros?, muéstrame tus credenciales para saber si lo que dices es cierto. También preguntamos su nivel de autorización, es decir ¿Qué permisos tiene?, ¿Es un usuario, un administrador o un operador?.
El backend interactúa con la base de datos, la base de datos es un contenedor de información que nos ayuda a organizar de manera lógica los datos obtenidos y generados, para tener un acceso fácil, rápido y protegido, esta estructura de datos, es el corazón de toda la información que contiene nuestra aplicación.
También el backend puede estar hecho para clientes que no necesitan una interfaz de usuario, es decir, puede atender otros dispositivos electrónicos que se comunican entre sí por medio de la world wide web WWW, que es conocido como “Application Programming Interface” o API.
DevOps
Developer Operations, es el área que se encarga de desplegar la aplicación, poner en producción o dicho en otras palabras, es quien instala, configura y mantiene, todos los requisitos técnicos de hardware y de software para hacer que esa aplicación esté funcionando en el servidor, lo que implica que la aplicación esté disponible para cualquier persona.
Diseña e implementa la arquitectura de hardware necesaria para que el servidor pueda atender al público para el cuál está hecha la aplicación, requerimientos de seguridad para proteger la aplicación y a los usuarios, además de mantener en ejecución tanto el frontend, como del backend en sincronía con la base de datos.
Ahora que hemos descrito de manera general los responsables y las actividades que realizan para dar vida a una aplicación web, podemos explicar los stacks de tecnologías.
JavaScript
Es el lenguaje por antonomasia de la programación web, ya que con esta tecnología es posible escribir (programar) aplicaciones tanto para el frontend, como para el backend, incluso también desarrollar aplicaciones de escritorio, por ejemplo si utilizas la aplicación de Slack que es multiplataforma, está desarrollada en este lenguaje de programación, sin olvidar las extensiones de los frontend frameworks que también han migrado al desarrollo de aplicaciones móviles como Ionic y React Native.
A partir de JavaScript, se desprenden una serie de tecnologías que forman los stacks, variando en su totalidad por el front end framework que utilizan, también difieren entre el binomio de usar un modelo de base de datos relacional o no relacional, los stacks más populares con JavaScript son los siguientes:
MERN

- - MongoDB - tecnología de bases de datos no relacionales
- - ExpressJS - es un server side web framework que se utiliza con NodeJS para crear un servidor web
- - ReactJS - frontend framework para crear interfaces de usuario
- - NodeJS - es la tecnología escrita en JS por Ryan Dahl en 2009 para utilizar JavaScript en el lado del servidor.
MEAN
Todas las tecnologías anteriores, pero el frontend framework a utilizar es Angular.
MEVN
Al igual que los stacks anteriores, lo que cambia es el frontend framework, este caso utilizamos VueJS.
PERN
- - PosgreSQL - base de datos relacional
- - ExpressJS
- - ReactJS
- - NodeJS
En general estos son los stacks más populares y utilizados en la industria del desarrollo de software para la web, esto no quiere decir que sean los únicos, sin embargo la cantidad de contenido que existe tanto para aprender a programar como para aplicarlo en el mercado laboral, es bastante amplio.
No obstante existe un gigantesco y jugoso mercado empresarial que en la mayoría de los casos te encontrarás con bases de datos no relacionales y tecnologías para desarrollo de backend como Java y .NET, si es correcto leiste bien .NET, también puede ser Python con el LAMP stack y sus variantes:
- - Linux
- - Apache
- - MySQL
- - PHP/Perl/Python
Como desarrollador es importante no caer en el fanatismo maniqueo de quien es bueno y quién es malo, en pensar que solo aprendiendo un stack será suficiente, porque si comienzas a laborar para compañías transnacionales o globales, lo mas seguro es que no llegues con la última versión del ECMAScript a comenzar a construir aplicaciones, porque gran parte del entorno empresarial, está construido con una visión y filosofía diferente, claro que sería genial comenzar en un proyecto de NodeJS pero siendo realistas gran parte del sector ya tiene todo montado con JAVA o con .NET

Tal vez en ese momento comiences a temblar y pienses, ¿pero si llevo toda mi carrera pensando en JS?, dar el salto a TypeScript me hizo sentir que era un gran avance, bueno incluso comenzar a aplicar un poco de SQL me hacía sentir fuera de mis límites y mi siguiente paso era aprender Python o Solidity para la web 3.0.
Pues te tengo una noticia querida colega y/o querido colega, lo más seguro es que tengas que aprender el stack de Microsoft como me pasó a mí, porque gran parte de los clientes para los que desarrollamos soluciones, no solo usan Microsoft como su entorno empresarial de colaboración interna, sino como materia prima para desarrollar productos y servicios para los clientes que atienden, entonces es importante que te familiarices con:
- - .NET Core
- - C#
- - SQL Server
- - Microsoft Azure
También otra tecnología muy utilizada en el entorno empresarial es Java con el Framework de Spring, nada más y nada menos que nuestros amigos de Bitso lo utilizan en su infraestructura tecnológica.
Claro como frontend Framework puede que si utilices los de JavaScript como Angular, React o Vue, pero siendo sinceros lo más probable es que sea Angular o ASP.NET el front end framework de Microsoft. Para las versiones móviles Ionic o Xamarin (tecnología de Microsoft para aplicaciones móviles).
En conclusión, es importante no solo manejar los stacks de JavaScript, sino familiarizarte con otras tecnologías, ecosistemas y también sistemas operativos, aprende lo básico de Windows, Linux y MacOS, para que estés totalmente listo, miralo como un reto divertido, donde puedas comparar las diferentes tecnologías y sacar tus propias conclusiones.