¿Qué es un Programador Full Stack?

A comienzos del año 2010 comenzó a ser escuchado en el ambiente de la programación un nuevo término, vacantes usaban este término para ser llamativas, al igual que cursos presenciales, el término fullstack era un perfil muy solicitado, donde se buscaba a un programador capaz de construir aplicaciones completas.

A comienzos del año 2010 comenzó a ser escuchado en el ambiente de la programación un nuevo término, vacantes usaban este término para ser llamativas, al igual que cursos presenciales, el término fullstack era un perfil muy solicitado, donde se buscaba a un programador capaz de construir aplicaciones completas.

Aunque estas cualidades no eran nuevas, ya en el 2005 abundaban los programadores llamados web masters, qué en sí, hacían aplicaciones completas, tal cual.

Existen ciertos factores que hicieron que se popularizara un nuevo término para los programadores, a pesar de que ya existían programadores que hacían toda la aplicación por si solos. Entre ellos está la llegada de JavaScript al backend y la revolución de los smartphones.

En el año 2010 los smartphones ya estaban en la mano de toda persona (o casi), esto involucro una separación de rol, la necesidad de aprovechar funcionalidades en distintos modos de presentación, y aquí comenzamos a ver una separación de backend y frontend, donde los devs se podían especializar en uno y el otro.

Esto dio paradójicamente una solución y problema, por un lado existían devs que hacían el backend en lenguajes como C#, PHP, Java, dejando como un servicio desacoplado de la presentación, y por otro lado teníamos a otros devs usando JS para el frontend, la solución siendo que podíamos tener desacoplada la app en 2 aplicaciones que no estaban fuertemente acopladas, pero por otro lado, si el programador del lenguaje de backend se iba de la empresa, se debía buscar un dev especializado en ese lenguaje, y las combinaciones entre JS en frontend y Otro lenguaje en backend podían ser muchísimas, un grave problema para el reclutamiento a como lo conocemos, el cual busca devs por etiqueta de lenguaje.

En 2009 nace Node.js, esto dio la posibilidad de poder trabajar JavaScript del lado del backend, algo que llamo la atención en las empresas, ya que esto resolvía el problema ocurrido por la separación de backend y frontend, ahora ya se podía buscar programadores de JavaScript que cubrieran las dos partes de una aplicación. Y aquí es cuando el término fullstack comienza a ser visto en las vacantes.

Recuerdo esa época donde las vacantes estaban llenas de MEAN, MERN, MEVN, stacks que prometían ser el futuro, todo hecho con JavaScript, hasta teníamos base de datos NoSQL que muchos las vieron como el nuevo camino contra las bases de datos relacionales (y no fue así).

Lamentablemente, estos stack no fueron el futuro absoluto, mucha empresa siguió optando por lenguajes fuertemente tipados como Java o C#, o también existían millones de aplicaciones funcionando hechas con PHP, lo cual, trajo con si otro problema: El término fullstack fue abusado.

En un inicio el término full stack contemplaba un stack en sí, una combinación de tecnologías, pero el hecho de que los stack podían tener muchísimas combinaciones posibles, hizo que el reclutamiento de programador full stack, no fuera el de buscar un dev en un stack en específico, sino fue, buscar un dev todólogo.

Ahora se necesitaban programadores que pudieran hacer de todo, hasta diseño muchas veces, y esto pasa ya que el término full stack nació vagamente, y tiene distintos significados, dependiendo el contexto, lo cual hace que se abuse de él.

En mi perspectiva, el término full stack debe aplicarse para 3 cosas en concreto que llevan a hacer una aplicación completa:

  • Reglas de negocio
  • Persistencia
  • Presentación

Una aplicación full stack, cualquiera que sea, presenta estas 3 cosas mínimo, un conjunto de reglas de negocio, que son las que le dan sentido a tu aplicación, le dan forma a lo que hace, una aplicación de ventas, sin que la veas, sabes que tendrá productos y clientes, o una aplicación para ver películas, sabes que tendrá un buscador y recomendaciones. En sí, las reglas de negocio le dan un sentido a la app.

Por otro lado, una aplicación fullstack debe tener persistencia, la información de alguna forma debe guardarse, a pesar de ser una aplicación que no guarde información del usuario, información tendrá en algún lado, hasta un array con un listado del menú es información persistente.

Y, por último, una aplicación debe tener presentación, un modo de entrada de información, ya sea un sitio web, ya sea una app móvil, o hasta una aplicación de escritorio que se conecte por HTTP a un backend, el frontend no es solo web, un error común que muchos tienen al clasificarlo como todo web.

Estas 3 cosas capturan la escencia de la programación fullstack, donde se habla de un backend y un frontend. Claro que una aplicación full stack podría tener muchas más cosas como monitoreo, resiliencia, o incluso pruebas unitarias.

Existen aplicaciones que no necesariamente deben cumplir con estas 3 cosas, por ejemplo, sensores en hardware que solo capturan información más no tienen presentación, una app 100% backend que sea un servicio intermedio, procesos en segundo plano, webhooks para capturar callbacks de servicios etc.

Pero cuando hablamos de fullstack, yo considero que deberían tener las 3 cosas indicadas: reglas de negocio, persistencia y presentación.

Un programador fullstack es un programador que puede resolver la parte de reglas de negocio, la parte de persistencia y presentación, y no necesariamente, debe ser un experto en todas las partes.

Por lo cual, un programador fullstack es un programador versátil, puede hacer una aplicación completa, pero sobre todo, sabe que muchas veces, toca buscar como hacer alguna de las partes.

Aunque esto antes dicho puede ser peligroso, ya que muchas veces se cree que puede ser un todólogo de lenguajes, que de una semana a otra puede pasar de Java a Python, lo cual no evita que pueda hacerlo, pero, todo a su tiempo. No se confunda la capacidad, con el forzar las cosas con inmediatez.

Si deseas aprender a ser full stack en C# .NET puedes adquirir mi curso que tiene un precio siempre bajo, igual, la primer parte es gratis: https://metalcode.io/curso/full-stack-dotnet

Si quieres aprender más sobre Programación, puedes suscribirte a mi plataforma Metal Code, donde encontrarás cursos de programación a un precio siempre accesible: https://metalcode.io/

Autor: Héctor de León

Desarrollador de software, lector compulsivo.