Desarrollador Full Stack: ¿Mito o Realidad?

Anderson Vargas
Analista de Desarrollo

De acuerdo con una encuesta de StackOverflow (Sí, esa que estás pensando) realizada en 2018, la mayoría de los desarrolladores se podrían consideran “Full Stack”, un perfil intrínsecamente superior, muy exigente en conocimiento y con alta demanda en el sector.

Hablamos de un desarrollador capaz de diseñar e implementar proyectos, tanto en el lado del servidor como en el lado del cliente, lo que significa conocer las fortalezas y debilidades de cada tecnología y mantenerse actualizado a medida que evolucionan y / o aparecen nuevas.

Orígenes del Full Stack

Iniciando el milenio actual, empezó a tomar fuerza un término denominado “Full Stack Developer”. Varias tecnologías, entre ellas la web, eran de las menos complejas y no había mucho de donde escoger en aquel entonces. Trataré de traducir un poco las circunstancias de la época:

  • El ancho de banda solía ser hasta 50 veces menor de lo que conocemos hoy en día.
  • Para el Front End se utilizaba un Javascript no muy potente y un DOM basado en lo que era HTML4/CSS2. Todo esto orientado a la capacidad de poder visualizar documentos y en donde la diversidad de resoluciones de pantalla era un problema.
  • Existían unas cuantas aplicaciones de servidor, en las cuales los idiomas y entornos tenían una variación, pero el modelo Cliente-Servidor, los patrones de desarrollo y las técnicas utilizadas eran relativamente similares.
  • Cuando se hablaba de base de datos, el término ”Modelo Relacional”  era inevitable cuando se entraba en una conversación sobre el tema.

Continuemos… Resulta que a alguien se le ocurrió la idea de que era posible que un mismo desarrollador asumiera la responsabilidad de todo el desarrollo, y así fue como el perfil Full Stack nació. De hecho, como dato curioso, pude conocer que un grande, como lo es Facebook, durante su etapa de expansión, aparentemente solo contrató desarrolladores con este perfil, ¿lo pueden creer?

Hoy en día

Desde entonces, la evolución de las tecnologías Back End y Front End, ha sido exponencial:

  • Ha habido un cambio de paradigma fundamental sobre dónde reside el estado de una aplicación, que claramente ha tenido al Back End como protagonista. Este cambio de paradigma también ha modificado el centro de gravedad del conocimiento del desarrollador Full Stack, que pasó de ser, al principio, un experto en Back End con conocimiento de Front, a ser ahora más un experto en Front End con buen conocimiento de Back End.
  • Javascript se ha mejorado y sofisticado (ECMAScript del 5 al 7) hasta el punto de poder implementar soluciones de ingeniería de software a un nivel muy similar al de C# o Java. De hecho los frameworks JS modernos son casi tan complejos como los Frameworks de Back End.
  • Los Browser’s han evolucionando, desde la mera presentación de documentos de la que hablamos al comienzo de este artículo, hasta convertirse en una verdadera plataforma para aplicaciones.

Después de echar un vistazo al pasado y asimilar el presente, tratemos de responder la siguiente pregunta, son ¿Mito o Realidad?

Para responder esta pregunta propongamos el perfil de un desarrollador Full Stack. Partiendo de que una sola persona puede ser, potencialmente, más productiva que dos, tres o incluso cuatro personas. Especialmente desde una perspectiva comercial, el potencial de pagarle a una persona un poco más para hacer un trabajo que, anteriormente, requería de  cuatro es extremadamente tentadora, no? Ahora miremos eso que yo llamo DFRV.

“¿Pero Anderson, que significa eso?”.

Tranquilos, no es un término mitológico, es solo el acrónimo para “Desarrollador Full Stack Realista Viable” y a continuación resumamoslo en algunas habilidades que giran alrededor de este anhelado perfil:

  1. HTML / CSS

Estos son la base para que cualquier desarrollador cree un sitio web. HTML se implementa para agregar contenido web, mientras que CSS se utiliza como herramienta de personalización en cualquier sitio web.

  1. JavaScript

Se considera el lenguaje obligatorio utilizado por cualquier desarrollador Full Stack. Por lo tanto, tener un vasto conocimiento sobre esto te llevará al destino. Como el conocimiento práctico basado en la teoría siempre se considera una habilidad acogedora en cualquier sector.

  1. Back End

Como desarrollador Full Stack, uno necesita tener el conocimiento relacionado con la codificación del proceso de fondo. Para obtener una mejor exposición, de hecho es necesario tener un inmenso conocimiento en varios lenguajes de programación. Mientras más sabes es mejor. Algunos de los lenguajes son Java, C#, Python y muchos más.

  1. HTTP / HTTPS

Desempeña un papel vital en el establecimiento de la comunicación entre el cliente y el servidor debido a su implementación en el sector de seguridad de cualquier aplicación.

  1. Base de datos / almacenamiento web

El almacenamiento será bastante difícil debido a la enorme cantidad de datos generados, usualmente, a diario. Además, la creación de cualquier sitio web o almacenamiento de aplicaciones definitivamente será un problema. Por lo tanto, tener conocimiento de la relación entre bases de datos y memoria, es crucial.

  1. Seguridad

Como todo el desarrollo se realiza a través de Internet, la seguridad se convierte en una preocupación importante. Por lo tanto, es necesario que cada desarrollador cuente con conocimientos básicos de seguridad. Como desarrollador web de Back End , el conocimiento sobre problemas de seguridad es imprescindible.

  1. Existen otras claramente, te invito a consultarlas XD

Finalmente quiero resaltar, que todos y cada uno de los perfiles son importantes y tienen su fin. 

Tal vez no seré un Full Stack Developer, tal vez sere un Adaptive Developer, ¡Sí! Me lo acabo de inventar XD. Y lo digo por que al final del día no existe una guía definitiva para determinar quienes somos, eso lo determinamos nosotros mismos, no importa qué se desarrolle: Front, Back, DB o todos los anteriores, soy feliz si al poner en marcha mi capacidad algorítmica, logró darle solución a un problema retador.