Volver al Blog
Career15 de noviembre de 202510 min de lectura

Lo Que una Década en TI Me Enseñó Sobre Cambiar de Stack

DR

Doug Ribeiro

10 min de lectura

La mayoría de los consejos sobre cambiar de stack lo tratan como un problema técnico: aprende la nueva sintaxis, las nuevas APIs, el nuevo tooling. Esa es la parte fácil. La parte difícil es saber cuándo un cambio de stack vale la inversión de tiempo, cómo comprometerse completamente para realmente profundizar en lugar de quedarse a caballo entre stacks, y qué debes confiar que se transferirá incluso cuando la rotación de frameworks se sienta total. Más de una década y tres cambios mayores de stack después (de jQuery y AngularJS a React, de React a Angular, y de Angular a su era de signals con back ends en Python), este es el modelo de decisión que uso.

Cambia con cada stackSintaxis y APIsPatrones de frameworksTooling y sistemas de buildConvenciones de la comunidadPosicionamiento en el mercado l…Permanece igualDescomposición de problemasLeer documentación rápidoMetodología de debuggingComunicación bajo presiónSaber cuándo no usar la herrami…VS

Empecé con jQuery, Bootstrap, JavaScript vanilla y AngularJS. Más de una década después estoy escribiendo componentes TypeScript para la plataforma Angular de un gran banco empresarial y construyendo mi propio SaaS sobre Angular basado en signals. La distancia entre esos dos puntos es enorme, no solo técnicamente, sino profesional y filosóficamente. Quiero hablar sobre cómo navegué esa distancia, en qué me equivoqué en el camino, y qué la experiencia me enseñó sobre aprender nuevas tecnologías sin perder el equilibrio.

La Evolución del Stack, Honestamente

Aquí hay un mapa aproximado de cómo evolucionó mi stack:

  • 2014-2015: HTML/CSS, JavaScript, jQuery y Bootstrap. Sitios responsive para una plataforma de empleo con millones de currículums. Aquí es donde aprendí a realmente construir cosas que funcionaban, y donde di mi primera charla sobre HTML semántico y diseño responsive.
  • 2015-2017: React emergió como el ganador claro de la industria y tomé la decisión deliberada de aprenderlo, construyendo con él una plataforma de viajes en grupo. Conflictuaba con mi cerebro de diseñador (JSX se sentía incorrecto al principio) pero aprendí a apreciar su composabilidad.
  • 2017-2019: Angular 2+ tomó el control, impulsado por los proyectos que tenía enfrente: una plataforma de chequeos de salud, dashboards de trading en tiempo real con D3.js y WebSockets, apps legacy en jQuery migradas a Angular, y un portal de activación de seguros. TypeScript vino con él y nunca se fue.
  • 2020-2021: Una etapa con mucho peso de diseño. Dashboards de datos durante un diploma en analítica de datos y la pasantía que corrió en paralelo, luego liderar el rediseño de una plataforma de salud mental como UX lead. Angular se mantuvo al día por el lado, no en producción.
  • 2022-presente: Angular a escala. Una PWA de tarjetas de crédito migrada de Angular 13 a 15 en un monorepo, la plataforma de solicitud de préstamos de un banco construida sobre micro-frontends a la que acabo de sumarme, y mi propio SaaS con un front end de Angular basado en signals y un back end en Python. Aquí es donde estoy ahora.

Esa progresión se ve limpia en retrospectiva. En el momento era más desordenada. Hubo años donde estaba a caballo entre dos o tres stacks simultáneamente, sin ser experto en ninguno, intentando mantenerme empleable mientras mantenía la cordura.

Qué Cambia Con Cada Stack

Cuando cambias de stack, obviamente la sintaxis cambia. El tooling cambia. Los modismos y patrones cambian. Si pasas de React a Angular, no estás solo aprendiendo nombres de funciones diferentes: estás aprendiendo un modelo mental diferente de cómo se organiza una aplicación. Angular es centrado en módulos (o centrado en componentes con standalone), opinionado, cargado de convenciones. React es no opinionado, flexible, deja las decisiones de arquitectura a ti.

El ecosistema cambia. La comunidad cambia. El lenguaje del mercado laboral cambia. Los desarrolladores Angular y los desarrolladores React están pescando en aguas parcialmente superpuestas pero significativamente diferentes cuando se trata de empleos, equipos y conversaciones.

La carga cognitiva de cambiar es real y subestimada. Recuerdo mis primeros meses haciendo Angular serio después de React. Seguía recurriendo a patrones de React instintivamente y luego chocando con una pared. La tentación de escribir código estilo React en Angular es fuerte y produce mal Angular. Tienes que comprometerte a aprender el nuevo paradigma en sus propios términos, no como una traducción del anterior.

Qué Permanece Igual

Esta es la lista más importante. Esto es lo que ha sido verdad en cada stack en el que he trabajado, a lo largo de más de una década:

  • El pensamiento de componentes, descomponer una UI en piezas con responsabilidades claras, es universal. La sintaxis difiere, los nombres de métodos de ciclo de vida difieren, pero la habilidad de descomposición se transfiere completamente.
  • El pensamiento de gestión de estado, local vs compartido, síncrono vs asíncrono, derivado vs fuente de verdad, es idéntico entre frameworks. NgRx y Redux son filosóficamente lo mismo con diferente ropa.
  • La intuición de rendimiento, entender reflows y repaints, el costo de sobre-renderizado, el valor de la memoización, aplica en todas partes y solo se profundiza.
  • TypeScript y el pensamiento de tipos. Una vez que desarrollas una mentalidad genuina de tipos primero, te sigue a todas partes. TypeScript es ahora tan omnipresente que esto es casi una habilidad universal.
  • Los principios de testing, aislamiento, assertions significativas, testear comportamiento no implementación, no cambian. La librería de testing cambia pero la disciplina no.
  • Leer documentación y leer código fuente. Esta habilidad se compone masivamente. Después de más de diez años puedo navegar el código fuente de un framework desconocido más rápido de lo que la mayoría de los desarrolladores junior pueden leer su documentación.
  • Comunicación. Cómo escribir una descripción de PR clara. Cómo explicar una decisión técnica a un stakeholder no técnico. Cómo pushbackear una spec sin crear conflicto. Esto nunca se deprecia.

Cómo Evaluar Si Invertir en Una Nueva Tecnología

Esta es la pregunta que me hacen más frecuentemente los desarrolladores en mitad de carrera: ¿cómo decides cuándo hacer una inversión importante en algo nuevo? Este es mi framework honesto:

1. ¿Está siendo adoptada por organizaciones como aquellas para las que quieres trabajar?

Este es el filtro más práctico. La adopción tecnológica sigue patrones de industria. Si quieres trabajar en finanzas empresariales, ciertas tecnologías (Angular, Java, .NET) tienen raíces profundas. Si quieres trabajar en startups de producto, el stack es diferente. Investiga cómo se ven las ofertas de empleo reales en tu segmento objetivo. ¿Qué se pide consistentemente? Ahí es donde el ROI de aprender es más alto.

2. ¿Resuelve un problema real que tienes, o solo es nuevo?

Siempre hay un framework nuevo. Svelte, Solid, Qwik, Astro: todos son genuinamente interesantes. Algunos resuelven problemas reales. Pero si estás trabajando en Angular y Angular resuelve bien tu problema, el ROI de cambiar a Svelte es bajo. Invierto en nueva tecnología cuando resuelve algo con lo que realmente estoy luchando. De lo contrario, aprendo sobre ella superficialmente para estar informado y sigo adelante.

3. ¿Cuál es el costo de oportunidad?

Aprender un nuevo framework toma tiempo real. El tiempo gastado aprendiendo Svelte es tiempo no gastado profundizando en Angular, que es por lo que me pagan. Rastreo esto conscientemente. Mi presupuesto de aprendizaje no es infinito, y hay rendimientos decrecientes en la amplitud una vez que ya eres generalista.

4. ¿Hay señales de comunidad y longevidad?

Me quemé al principio de mi carrera invirtiendo en tecnologías que se desvanecieron rápidamente. Ahora espero una segunda ola de adopción antes de comprometerme completamente con algo. La segunda ola es cuando los early adopters han encontrado y documentado los puntos de dolor, cuando el ecosistema ha madurado lo suficiente para soportar uso en producción, y cuando las organizaciones empiezan a publicar ofertas para ello. Surfear la primera ola es emocionante; surfear la segunda ola es más productivo.

La Mentalidad del Especialista Generalista

El término que he llegado a usar para lo que soy es 'especialista generalista.' Tengo profundidad genuina en áreas específicas, Angular, TypeScript, arquitectura front-end, UX/UI, y tengo alfabetización funcional en un rango más amplio de tecnologías. Esa combinación es diferente de ser un generalista puro (superficial en muchas cosas) o un especialista puro (profundo en una cosa).

El especialista generalista es más valioso cuando los problemas son complejos y cross-funcionales, cuando resolver algo bien requiere tirar de múltiples habilidades simultáneamente. En un equipo empresarial construyendo una interfaz bancaria compleja, ser capaz de pensar sobre la arquitectura TypeScript, el sistema de design tokens SCSS, y el diseño de interacción del usuario simultáneamente es más valioso que cualquier especialidad individual.

El riesgo del especialista generalista es la identidad. Al principio de mi carrera no estaba seguro de cómo describirme y esa incertidumbre se notaba en las entrevistas. Ahora soy claro: soy un Senior Front-End Developer con background en UX. Liderar con la habilidad primaria y nombrar la segunda como background posiciona la habilidad secundaria como un amplificador de la primaria, no un diluyente.

Lo Que Le Diría a Alguien en el Año 5 de Su Carrera

Cinco años es usualmente cuando los desarrolladores empiezan a cuestionar seriamente sus decisiones de stack. Sabes lo suficiente para ver las limitaciones de lo que estás usando, y eres consciente de que el campo se mueve rápido. Este es mi consejo honesto:

No cambies de stack por ansiedad. Cambia cuando tengas una razón clara: un nuevo rol, un problema genuino resuelto por la nueva herramienta, una expansión deliberada de tu valor de mercado. El salto de stack impulsado por ansiedad produce expertise superficial en todas partes y expertise profunda en ninguna.

Cuando cambies, comprométete completamente. No escribas tu nuevo stack en los modismos de tu stack anterior. Aprende cómo piensa la nueva comunidad, no solo la sintaxis. Lee la guía de estilo oficial. Estudia codebases reales de producción en la nueva tecnología. La forma más rápida de ir profundo es inmersión deliberada, no pruebas cautelosas.

Cada cambio de stack se siente como empezar de nuevo. No lo es. Traes contigo todo lo que no tiene nombre.

Referencias

CareerAngularReactLearning