Si nos paramos un segundo a pensar en la traducción de Full Stack sería algo así como “Todas las agrupaciones de tecnologías”, es decir, que ser Full Stack implicaría conocer todas las agrupaciones de tecnologías ¿Es esto posible?
Una respuesta corta sería que no.
Ahora te estarás preguntando qué, entonces, cómo es posible que existan cursos para convertirse en Full Stack o cómo es posible que haya puestos de trabajo dirigidos a ser Full Stack ¿mienten los cursos?, ¿mienten las empresas?, ¿miento yo?
Te invito a seguir leyendo para conocer la respuesta.
Cómo funcionan las webs
Para darte la respuesta larga primero debes entender cómo funcionan las webs.
Por lo general las páginas webs constan de tres partes: frontend, backend y servidor.
Cada una de estas partes se desarrolla con unas tecnologías específicas y cumplen con una labor concreta. Vamos a ver por encima de qué se encargan y qué tecnologías son necesarias programarlas.
Frontend 🎨
El Front o Frontend es la parte visual, la parte con la que interacciona el usuario.
Todo lo que ves en una web, títulos, textos, iconos, formularios, menús y un larguísimo etcétera forma parte del desarrollo Frontend, incluidas las animaciones o los botones que nos llevan a otras páginas.
Para desarrollar esta parte es necesario tener conocimientos de HTML, CSS y Javascript -JS en adelante- , que son los lenguajes que nos dan la estructura, el diseño y las interacciones respectivamente.
HTML, CSS y JS son la base, pero sobre ellos hay mucho construido para hacer más fácil el desarrollo y poder llegar a conseguir cosas que antes no podíamos pensar en tener una web como son Netflix y Spotify porque, sí, cuando navegas por estas páginas todo lo que ves es Frontend.
Algunas de las herramientas más famosas dentro del desarrollo Front serían, React, librería creada por Facebook que nos facilita la reutilización de elementos web, Webpack que nos permite integrar todo nuestro código o NPM que nos permite instalar diferentes funcionalidades para nuestra web.
Backend 🤖
El Back o Backend es el encargado de comunicarse con la base de datos u otros servidores para guardar información u obtener información que se mostrará en el Frontend.
Sé que es algo un poco más abstracto, pero voy a ponerte dos ejemplos a ver si así te es más fácil de entender.
Antes hablábamos que gracias al Front podíamos ver películas en Netflix o escuchar música en Spotify, pero todas esas pelis o canciones no están en nuestro ordenador. Están en una base de datos a la que se conecta el servidor para enviárselas al Front y que este nos las muestre. Además no sólo envía información, si no que es capaz de hacernos recomendaciones basándose en analizar lo que solemos escuchar o ver.
En el Back tenemos montones de lenguajes de programación. Uno de los más famosos es Python que es muy popular por lo fácil que es aprenderlo y porque nos permite hacer cosas como calcular qué canción nos puede apetecer más en un momento o programar nuestra lavadora para manejarla desde el móvil.
También tenemos herramientas muy usadas como las bases de datos, una de las más populares es PostgreSQL que almacena grandes cantidades de información en tablas de forma que sea fácil consultarla.
Servidor ☁️
El servidor guarda toda la información, ya sea el código del Front, del Back o la base de datos, y permite que esté disponible a todo el mundo a través de Internet.
Además es capaz de poner a funcionar el código para que la web funcione y, que funcione, para miles de usuarios a la vez. Y todo esto lo hace para muchas webs, porque un servidor es un ordenador muy potente capaz de hacer funcionar a la vez millones de webs.
Tenemos proveedores de servidores muy famosos como Google, Amazon o Heroku que nos permite desplegar nuestra web fácilmente. Además, existen herramientas que nos permiten automatizar el despliegue de los cambios en nuestra web en nuestro servidor, cómo por ejemplo las GitHub Actions o registrar los errores que puedan ocurrir como Sentry.
Ahora que conoces cómo funcionan las webs, podemos volver a la pregunta principal.
¿Qué significa ser Full Stack? (respuesta larga)
Significa conocer en cada una de las áreas anteriores alguna tecnología para llevarla a cabo.
Es imposible saber todo de todo. La magia de la programación es que, conociendo un lenguaje de programación, es muy fácil pivotar a otro, por ejemplo entre Python y NodeJS. De igual forma, es fácil pivotar entre tecnologías parecidas como pueden ser React y Vue o a nivel de bases de datos entendiendo SQLite podemos pasar a PostgreSQL y así con todo.
Otra cosa genial que tiene el mundo del desarrollo es Internet, sí, así como suena. La experiencia te da soltura buscando en navegadores y conociendo buenas fuentes de recursos, además de personas o comunidades de las que aprender.
Creo que esto último es la parte más bonita de este mundillo, hay muchas personas ayudándose y ofreciendo su conocimiento para que otras crezcan apoyándose en él.
Si he visto más lejos, es poniéndome sobre los hombros de Gigantes - Isaac Newton
Impulsa tu carrera, gracias a la programación
Te invitamos a impulsar tu carrera, aprendiendo a programar con nuestro Programa Full-Stack Developer.
Ahora que conoces de qué va el desarrollo "It's Time to code" 😉