La cultura del continuo aprendizaje

En esta ocasión no me dispondré a hablar de cuestiones técnicas o tecnológicas, este artículo tratará sobre algo más filosófico, como puede ser el sumergirnos en la «cultura del continuo aprendizaje». Un concepto que si bien puede sonar algo altivo, personalmente lo considero la clave para mejorar como desarrollador de software. Es cierto que muchas empresas están acuñando éste termino para fomentar el aprendizaje en el entorno laboral, pero yo hablo más del aprendizaje a nivel personal y cómo compaginarlo en nuestra vida.

Hoy en día en el mundo de la informática, y más enfocado a programadores, es importante estar al tanto de todas las novedades que surgen, que nuevos frameworks, lenguajes, herramientas ..etc, que acaban o están por salir. Al final son artilugios de los que un desarrollador debe nutrirse, si bien porque queremos evitar que nos salgan telarañas y acabemos obsoletos en el trastero, o porque realmente es una nueva tecnología que funciona mejor que otras que existen actualmente en el mercado. El problema surge cuando toda esta cantidad de herramientas de las que antes comentaba nacen o evolucionan tan rápido que prácticamente te ves abrumado y no sabes hacía que camino mirar o cómo es la mejor forma de abordarlo. Es aquí donde vengo a divulgar mi punto de vista y cómo yo por lo menos manejo esta situación sin volverme loco.

El software en un mundo idílico

Desde que nacemos nos estamos preparando y aprendiendo para lo que nos deparará el futuro, en este punto es donde comienza la iniciación de nuestra maquinaría que sería el cerebro, y cómo vamos nutriendo a éste con cada uno de los acontecimientos o conocimientos nuevos que se adquieren en el colegio, con sus posteriores escalas de niveles ESO, Bachillerato, Grado… etc, nuestros padres o amigos, e incluso con acciones o actos como practicar un deporte, leer un libro y de más actividades.

El problema de todo éste proceso, o por lo menos cómo lo percibí yo, es que a lo largo de todo éste desarrollo se nos induce la idea de que aprendemos para que en algún momento del futuro consigas un trabajo con un buen sueldo y no tengas que volver a aprender nada más, puesto que tus conocimientos adquiridos en etapas previas te permitirían el lujo de un oficio estable, sin nada más nuevo que la propia experiencia laboral que obtendrás con el tiempo.

Si te dedicas al desarrollo tecnológico como yo, estarás de acuerdo en que todas las ideas que antes mencionaba se convierten en humo cuando hablamos de software. Nada más lejos de la realidad, el mundo a nivel de tecnología está en continuo cambio tanto es así que un año aprendes un nuevo lenguaje o framework porque está de moda y te solucionará todos los problemas de tu vida, y al año siguiente ya no sirve para nada porque hay una versión más eficiente, más fácil de usar y sobre todo más nueva.

Enfocarse en una dirección

Como he comentado antes existen demasiados frameworks ya sean de Backend o Frontend, y o bien eres una de esas pocas personas que existen en el mundo que son considerados unos genios y que pueden aprender de cualquier cosa en un tiempo despreciable y casi sin esfuerzo. O por el contrario eres una persona normal y corriente con muchas ganas de aprender y en esa tesitura en la que tienes que ver como administrarte el tiempo a lo largo del día para poder aprender algo que te apasiona.

Siempre me he imaginado a ese programador novato que comienza su aprendizaje como le ocurre al personaje del General Zod en la película de ‘El hombre de acero’ la versión de Henry Cavill como protagonista. Hablo de la escena en la que está peleando contra un joven Superman en el planeta tierra, cuando en un golpe mal ocasionado en el casco de su traje, hace que sus poderes de ‘Kryptoniano’, poco acostumbrados a su uso en otro planeta, le provoquen una saturación de sus sentidos al poder escuchar todos los sonidos del planeta, y tenga que salir huyendo ante un Superman acostumbrado a enfocarse en lo que quiere escuchar, y no verse abrumado por tal batiburrillo de sonidos.

En esa analogía nosotros seriamos el General Zod, un programador nuevo que llega a la tierra y que su único objetivo es aprender para crecer profesionalmente o porque simplemente le gusta, y de repente llega a la tierra (Google) disponiéndose a buscar algo nuevo que aprender, a lo que empiezan a aparecerse cientos de conceptos nuevos como Angular, React, .Net Core, Laravel, Spring, Hibernate, Xamarin, Docker, Kubernetes, Vue.js, Node.js, Jenkins, MySQL, MongoDB, MariaDB (creo que el ejemplo ya ha quedado claro).

Entiendo perfectamente la reacción del General Zod de salir corriendo ante tal cantidad de palabros y abreviaturas, ¡Y encima en Inglés todas!. Pero no hay que asustarse, lo único que debemos de hacer en ésta situación es categorizar en qué esta enfocado cada tecnología o para qué se utiliza, es decir, algunos de los ejemplos anteriores están más orientados en un desarrollador FrontEnd (Aplicaciones en la parte cliente); como pueden ser Angular, React y Xamarin entre otros, hacia el desarrollo Backend (Aplicaciones en la parte servidor) nos encontramos con .Net Core, Hibernate y Node.js por ejemplo, y por último aunque no por ello menos importante se encuentra la figura del DevOps (Desarrollo de herramientas en la publicación de aplicaciones) con herramientas como Docker, Kubernetes y Jenkins entre muchas otras.

Al final para realmente conocer el ciclo de vida de las aplicaciones y saber desde su inicio del desarrollo hasta su despliegue en producción cómo esta funcionando todo en profundidad, sería conveniente conocer al menos algunos aspectos clave de cada figura. Y para nada está de más que aprendas varias herramientas o frameworks orientados a diferentes objetivos, si es lo que te llamó la atención en ese momento ¡Adelante!. Pero al final cada uno aunque aprendamos algo de todas las partes siempre nos orientamos más hacia alguna de esas tres figuras FrontEnd, BackEnd y DevOps. Y es lo ideal porque te permite escoger un camino y poder filtrar dentro del conglomerado de tecnologías, y además puedes especializarte dentro de esa misma área y lograr ser todo un Superman del desarrollo de software.

La curiosidad tecnológica

Existen muchas formas de aprender a programar (si estas empezando) o algún framework que te interese, pero lo que me gustaría recalcar en éste punto es si has conseguido despertar en ti ese gusanillo de la curiosidad tecnológica. Me refiero a esa sensación en la que estás hablando con alguien interesado en el mismo tema que tú, ya sea en el trabajo o con un amigo, y de repente aparece un bocablo o expresión que nunca habías escuchado antes, como por ejemplo GraphQL.

En una persona sin éste ‘gusanillo’ seguramente seguiría hablando en la conversación y descubriría realmente lo que esa palabra significa por lo que la otra persona le pudiera informar acerca de eso (o también puede asentir interesadamente pensando en los días que llevaba en la nevera la ensalada de patata que se comió anoche… depende de la persona), realmente si es algo que posiblemente nunca utilizarás en tu trabajo profesional o aplicación no tendrías porqué echarle un vistazo. En cambio, una persona con ese mínimo de curiosidad, se quedaría con ese nombre anotado y seguramente puede que no se vuelva un experta o no vuelva a utilizarlo, pero en la próxima conversación con esa persona sabrá de qué están hablando y habrá descubierto una nueva herramienta en la que poder servirse si en un problema futuro tuviera que utilizarlo.

También cabe destacar que no todas las herramientas o frameworks tienen porqué interesarte, cada uno tiene sus gustos. Desde luego si lo que te interesa es simplemente aprender, existen infinidad de formas, estamos en la era tecnológica y gracias a dios que la tecnología se abraza a si misma en éste sentido, es muy fácil buscar en Internet y encontrar miles de cursos, libros, clases …etc (Al final del artículo pondré algunos enlaces interesantes en éste aspecto). La cuestión ahora está en encontrar algunos de estos materiales del conocimiento que sean lo suficientemente buenos para dedicarles el valioso tiempo del que disponemos las personas.

El tiempo, tu peor enemigo

Ya lo tenemos todo, una tecnología nueva que nos interesa y las ganas suficientes para dedicarle el tiempo, pero ahora viene la cuestión de ‘¿Como voy a dedicarle tiempo… si no tengo?’ Es muy bien conocido por todos que entre las tareas relacionadas con la rutina diaria como puede ser el trabajo, familia, comprar, labores domésticas, gimnasio y demás, puede resultar bastante duro tener que quitar tiempo de alguna de estas cosas para dedicarlas sencillamente a aprender.

En mi caso lo tengo bastante fácil puesto que entre mis hobbies se encuentra el puro aprendizaje de lo que es también mi profesión, y si éste es también tu caso te felicito porque si es así seguro que el tiempo no será ningún inconveniente puesto que entre todas las tareas que antes mencionaba siempre logramos tener (O deberíamos de poder tener) tiempo para dedicarlo a nuestras aficiones.

Pero a parte de verlo como un hobby existen dos factores fundamentales para que te sientas bien contigo mismo al dedicarle tiempo a aprender, y para que puedas continuar con ello sin que te vayas desquiciando poco a poco:

  • Es imprescindible que una parte del tiempo de aprendizaje puedas usarlo en tu tiempo laboral, y además que puedas ponerlo en práctica en éste mismo. Y si no es en el trabajo, se trata simplemente del hecho de poner en práctica lo aprendido.
  • Establecer una rutina de aprendizaje, el ser humano se adapta muy bien a los cambios siempre que sean rutinarios, seguir un horario en el que organizar el tiempo que le dedicarás a cada tarea te servirá con creces.

Hay que matizar en los dos puntos anteriores que acabo de mencionar, si estás trabajando en algún tipo de empresa tecnológica no me cabe en la cabeza que en ésta susodicha empresa no te permita dedicarle tiempo a aprender éste tipo de tecnologías, esta claro que nunca se debe de comprometer un Sprint (Concepto del mundo Agile del que hablaremos en otro artículo), pero tu oficio está con la tecnología y se supone que el de la empresa también lo es.

Y por otro lado, personalmente a mi me ayuda muchísimo el establecerme un horario en el que estimo el tiempo que le puedo dedicar a éste tipo de tareas y cómo encajarlo con todas las demás (Soy bastante cuadriculado la verdad…). Pero hay que tener mucho cuidado de no obsesionarse si algún día es imposible cumplir con éste horario, los hobbies están bien, pero a la familia nunca hay que dejarla de lado porque sin ellos nunca llegaríamos a ser las personas que somos hoy en día, así que si tu madre, amigo o pareja te pide ayuda para cualquier tarea o solamente quiere estar contigo, hazle caso, aprender siempre hay tiempo de aprender pero el tiempo dedicado a las personas que te rodean vale más la pena.

¡Con esto me despido! Aquí os dejo algunos enlaces interesantes para ir aprendiendo alguna que otra cosilla.

¡Hasta el próximo artículo!