Quién es full stack (web) developer?
Older Article
This article was published 8 years ago. Some information may be outdated or no longer applicable.
Este es mi primer artículo escrito en Español. Muchísimas gracias a @iamcherta por sus correcciónes.
En este artículo vamos a tratar de responder una pregunta muy importante: quién es un desarrollador full stack? Qué responsabilidades necesita tener?
La palabra “full stack web developer” ha aparecido en todas partes. Empresas publican anuncios buscando full stack developers, full stack ninjas, full stack gurus. El término se pegó y no se va.
Voy a compartir mi opinión sobre este tema. Vamos a ver los requisitos que uno debería tener para ganarse ese título.
Qué conocimientos debe tener un full (web) stack developer?
Si van a recordar una sola cosa de este artículo, que sea esta: Un full stack (web) developer necesita entender todas las cosas relacionadas con el desarrollo web pero no necesita hacerlo todo.
Qué significa esto? La mayor parte del tiempo, un desarrollador trabaja en frontend o en backend. Un desarrollador full stack puede moverse entre los dos mundos. Puede escribir un API con Node.js, y también puede trabajar con Angular o React. Puede instalar y configurar servidores Linux. Puede armar diseños y escribir CSS.
Lo más importante es que un desarrollador full stack puede comunicarse con todas las partes de un proyecto. Eso es poder real. Pero seamos honestos: es casi imposible que una persona sepa todo sobre todo. Nadie puede tener conocimiento profundo de DevOps y sistemas operativos, y al mismo tiempo dominar Angular2+. Pero entender cómo instalar Linux, configurarlo para que funcione npm y el angular-cli? Eso sí deberíamos poder hacerlo. La idea es no quedarse esperando que alguien de otro departamento lo haga por uno.
Hasta ahora hablé de tecnologías JavaScript como Node.js y Angular a propósito. Usar el mismo lenguaje en todo el stack simplifica todo. Si ya sabemos escribir una función en Node.js, podemos usar ese mismo conocimiento en Angular. No hay que aprender un lenguaje nuevo.
Esta es mi lista de cosas que un desarrollador full stack necesita entender al menos a nivel básico (asumiendo que JavaScript es el lenguaje en todo el stack):
- sistemas operativos - configurar, instalar y usar tecnologías de virtualización (Docker, AWS, Azure, Virtual Box) o tambien tener conocimiento de *ervicios como Digital Ocean
- comprensión de la arquitectura de aplicaciones de web
- servicios backend - programar una API, usar bases de datos (relacional y también NoSQL)
- frameworks frontend - seleccionar, aplicar y usar un frontend framework (conocer los frameworks, librerías principales y sus diferencias)
- conocimiento de JavaScript - un profundo conocimiento del lenguaje sería deseado (event loop, callbacks, hoisting, closures, ECMAScript2015) — si ya *onocemos JavaScript es más fácil entender y usar TypeScript también
- habilidades básicas de diseño - conocer como crear un wireframe, comprender CSS y tecnologías relacionadas (Less, Sass)
- conocimientos de HTML, HTTP(s) y tambien HTTP/2
- conocimientos de sistemas de control de versiones - Git / GitHub o una plataforma parecida
La lista no cubre todo, pero si querés ganar el título de desarrollador full stack, puede servir como punto de partida para estudiar y familiarizarte con estas tecnologías.
Espero que este artículo te haya dado una introducción clara al mundo del full stack (web) development.