Muchos dicen que para ser full stack tienes que saber mil cosas e incluso que los desarrolladores full stack no existen (o que son unicornios 🦄).

La razón de esto es que los full stack se mueven en distintas capas de un proyecto de software: en lo relacionado a interfaz de usuario (frontend), en la parte de procesamiento y entrega de datos (backend), entre otras cosas. Y para dominar cada una, se necesita manejar muchas herramientas.

Como cada mundo involucra miles de tecnologías, ahora nos hacemos la pregunta: ¿qué es lo mínimo que debe saber un desarrollar para considerarse full stack?

Definición de un desarrollador full stack

Antes es importante ponernos de acuerdo de qué es un desarrollador full stack.

Muchos piensan que un full stack debe dominar todas las tecnologías de frontend y de backend. Algo difícil de lograr…

A mí me gusta usar una definición más amplia:

Desarrollador full stack: Alguien que es capaz de crear una aplicación que involucre interacción con usuarios finales y también procesamiento y entrega de datos.

Esta definición tiene 2 consecuencias:

  1. Se basa en lo que una persona es capaz de lograr y no a lo que se supone que sabe.
  2. Las tecnologías y herramientas quedan en segundo plano, a servicio del profesional. Tal y como debe ser.

Ahora sí… Lo mínimo que tienes que saber para considerarte full stack

Debido a la definición anterior, tienes que saber crear aplicaciones que involucren el mundo del frontend (interfaz de usuario) y del backend (entrega y procesamiento de datos).

Como son muchas aristas y tecnologías, el full stack es capaz de complementar los conocimientos que tenga más débiles o que no le interesen.

Hay muchas combinaciones que logran esto:

  • En vez de aprender sobre servidores, devOps y sistemas operativos (donde colocas tu aplicación “backend”) puedes aprender una herramienta tipo Heroku que hace todo esto por ti.
  • En vez de aprender a crear backend complejos desde 0 puedes utilizar un framework con muchas cosas ya hechas (Ruby on rails, Django, Laravel) o incluso puedes usar “backend as a service” tipo Firebase.
  • En vez de aprender a hacer frameworks frontend desde 0 puedes usar herramientas ya existentes como Angular, Vue o React.
  • En vez de aprender CSS puedes usar templates ya hechos.
  • En vez de aprender a desarrollar en Android (Java/Kotlin) e iPhone (Swift) puedes usar React native (javascript) o Flutter (Dart) para crear plataformas en ambas plataformas.

Esto nos abre las puertas a muchos perfiles interesantes.

Ejemplos de perfiles de desarrollador full stack

Algunos ejemplos de perfiles full stack:

  • Javascript con jQuery + Firebase
  • Ruby on rails en AWS on react
  • React Native con Django en un VPS
  • React native con Nodejs sobre Heroku
  • Vue con Laravel en docker sobre AWS
  • AWS Amplify

Mi elección personal

Yo me considero un desarrollador full stack por que he hecho varias aplicaciones que involucran ambos mundos de manera exitosa.

Para que tengas una referencia, mis elecciones tecnológicas son:

  • Backend: me considero buen backend con Ruby on Rails (RoR). Lo aprendí mientras estudiaba y desde ahí que quedé enamorado del framework. También manejo bien node.js, pero mi elección casi siempre es RoR.
  • Frontend: por temas de trabajo tuve que aprender React. No me encanta, pero hace bien su trabajo.
  • UI: no soy experto en CSS. Por eso, suelo utilizar frameworks de CSS, como por ejemplo Bootstrap o AntDesign.
  • Devops: nunca me gustó lo relacionado con servidores. Así que mi elección es utilizar Heroku.