Durante el transcurso de mi carrera he aprendido muchas cosas nuevas, otras las he olvidado casi totalmente y otras simplemente no las conozco. Nuestra industria cambia a un ritmo vertiginoso y es todo un desafío mantenerse actualizado con las tecnologías que utilizamos en nuestro día a día. Eso sin hablar de la necesidad de explorar algunas de las nuevas tecnologías que aparecen a diario, que pueden convertir en obsoletas rápidamente a las que utilizamos.
Seguir la moda puede llenar rápidamente tus armarios con ropa que usaste solo una vez y que nunca más te pondrías. Lo mismo pasa con las nuevas tecnologías, todos los días aparece un nuevo framework, un nuevo lenguaje de programación, una nueva herramienta que “resuelve todo los problemas”. Si seguimos las tendencias a ciegas, pronto terminamos con un mar de conocimiento acerca de diferentes frameworks o librerias, y eso parece bueno, ¿no? El problema es que gran parte de ellos no serán relevantes en 6 meses o un año, porque como mismo aparecen, desaparecen, casi como por arte de magia.
Sin embargo hay principios e ideas que se repiten una y otra vez, independientemente del lenguaje de programación o framework. Algoritmos, estructuras de datos, patrones de diseño y otros son prácticamente aplicables universalmente. Durante mi carrera he trabajado principalmente como desarrollador web y para ser honesto, no he tenido que programar muy a menudo algoritmos extra difíciles, pero resulta muy bien estar practico en la implementación de ellos, cuando los necesitas.
Durante los últimos tiempos he estado haciendo una recapitulación de mi carrera y viendo que me puede ayudar a mantener mis competencias y/o llevarlas a un nivel más alto. Hay dos noticias una buena y una mala. La mala es que la cantidad de información es realmente abrumadora. La buena es que no necesito saberlo todo. Por ahora me voy a centrar en re-aprender: Algoritmos. Hay muchos recursos que pueden ayudar a mejorar nuestras habilidades implementando algoritmos, yo escogí Exercism.
Esta plataforma tiene ejercicios en casi todos los lenguajes de programación. Los ejercicios están organizados en caminos (track) que te guían por las diferentes peculiaridades del lenguaje que quieras y van aumentando gradualmente la complejidad de los mismos. Todos los ejercicios incluyen un conjunto de tests. Puedes resolver los ejercicios por ti mismo, pedir la ayuda de un mentor o ver las soluciones que otros miembros de la comunidad han creado. Tu puedes convertirte en un tutor también! La mejor forma de alcanzar maestría en algo es enseñando a otros. El sitio es de código abierto y puedes contribuir a mejorarlo y/o aportar sugerencias. Exercism es una plataforma totalmente gratuita!
Exercism fue la opción que yo elegí, pero lo más importante es escoger alguna plataforma que cumpla con tus requisitos básicos y simplemente empezar a practicar. Sencillez y constancia son claves para el éxito.