Hace más o menos 7 años mi biblioteca favorita para programar en JavaScript era AngularJS. Usaba la biblioteca en todos los proyectos que podía y me leía cada post que aparecía para aprender más. Quería hacer aplicaciones web conociendo la herramienta de principio a fin.

Aprendí mucho, y al tiempo noté que trabajaba bastante bien con AngularJS, conocía algunos trucos para hacer las cosas de manera modular, comunicar componentes sin que la cosa se volviera inmanejable y escribir tests, que era algo que ni sabía como hacer al principio.

Pero en 2014, la gente de AngularJS anunció una nueva versión de su framework donde cambiaban prácticamente todo:

Y como yo venía usando AngularJS hace tiempo, estos cambios hicieron que me dieran ganas de tirar todo al demonio. El equipo de desarrollo anunciaba que eliminaban un montón de piezas esenciales del framework, cambiaban la sintaxis, el lenguaje, las herramientas, los patrones, ¡todo!.

Lo que sabía de AngularJS ya no me servía, tenía que empezar de cero si quería seguir usando la herramienta sin quedar atrás.

Cambiando de herramienta

En ese momento recuerdo que el anuncio me generó mucha frustración, y por lo que entiendo a muchos programadores les pasó lo mismo:

Así que en lugar de seguir por ese camino, me puse a investigar otras herramientas y di con Ember.

¡Estaba con bronca en serio!

Pero Ember también cambia …

Ember tiene muchas cosas buenas, no solo como herramienta sino como proyecto y comunidad. Sin embargo también realiza cambios que pueden afectar tu trabajo.

Te aburriría enumerando todas las cosas que aprendí a usar dentro de Ember que ya no existen. Uso Ember hace 6 o 7 años, y en ese tiempo he visto montón de cosas que dejaron de funcionar, conceptos que se fueron agregando, bibliotecas que quedaron en el camino, montones de problemas al llevar el código de los proyectos de una versión a otra.

No sé por qué los frameworks JavaScript tiene que estar en constante cambio, supongo que la gente que hace estas herramientas se aburre rápido, están completamente dementes, o solo quieren que la herramienta siga siendo relevante, que no se quede en el tiempo acumulando polvo.

Supongo que las cosas cambian por una combinación de todo eso junto.

Pero de cualquier forma, hace tiempo empecé a usar otra estrategia, me hice a la idea de aceptar que cada tanto hay que volver a aprender cosas.

Y eso es lo que me tocó vivir esta semana, tuve que volver a aprender a usar Ember casi desde cero.

Los proyectos en los que estoy trabajando actualmente en Ember no los actualizo hace tiempo, así que muchas cosas nuevas del Framework me resultan muy ajenas.

¿Cómo volver a aprender?

Mi primer reacción al ver los cambios en Ember fue incómoda, al principio tenía la sensación de que los cambios no estaban buenos, que la forma vieja de hacer las cosas era mejor.

Pero decidí hacer una pausa, y mentalizarme en aceptar los cambios. Si me pongo en una actitud negativa sé con seguridad que no voy a aprender nada… así que acepté la idea de seguir aprendiendo desde cero, sin juzgar mucho y ver que sucedía.

También hice un pequeño apunte de la sintaxis nueva, algunos ejemplos y nombres de funciones:

Esto me ayudó mucho, porque me evita hacer búsquedas en Google todo el tiempo, algo que me desanima un montón.

Pero teniendo un apunte sobre la mesa, donde puedo consultar rápido, cambia por completo la experiencia de aprendizaje. ¡Aparte puedo escribir con una lapicera si me doy cuenta de que faltó algo!.

Otra cosa que me sirvió es ponerme a hacer un mini proyecto, siento que es mucho más entretenido aprender mientras estoy construyendo algo, por más que sea un prototipo que después voy a borrar, saber que estoy haciendo algo me ayuda a aprender.

En resumen, noté que para volver a aprender me sirvieron estas ideas:

  • Aceptar que estoy aprendiendo desde cero, va a ser incómodo y está bien.
  • Tener un apunte en papel y hacerle anotaciones.
  • Hacer un proyecto pequeño para que sea más entretenido.

Creo que estas ideas son muy básicas, pero aun así son bastante difíciles de seguir. Tal vez porque van en contra del ego y esa sensación de seguridad que tenemos al conocer una herramienta por completo.

Voy a tratar de tener estas ideas en mente cuando se presente otro desafío que me exija volver a aprender desde cero.