Aprende despacio

Dicen que en nuestra profesión es necesario estar continuamente aprendiendo. La verdad es que no conozco en profundidad muchas más profesiones, pero supongo que esto tampoco es algo tan extraordinario, y que en cierto modo un médico, un economista, un carpintero o un profesor también tiene que adquirir nuevos conocimientos a lo largo de su carrera profesional para mantenerse actualizados.

En lo que sí nos diferenciamos de otro tipo de profesiones es que somos una profesión muy joven, todavía tenemos muy poca historia por detrás y estamos continuamente replanteándonos la mejor forma de hacer las cosas.

Además el desarrollo de software engloba muchas actividades de la índole más diversa, desde la teoría de la computación hasta la configuración de sistemas interconectados a nivel global, desde la gestión de grandes (o pequeños) volúmenes de datos hasta la creación de interfaces de usuario cada vez más amigables y potentes que nos ayuden a realizar todo tipo de tareas.

Si a esto le unimos que muchas veces lo único que hace falta para crear cosas nuevas es un ordenador y una conexión a internet, es normal que cada día surjan mil nuevas tecnologías, procedimientos y herramientas que, aparentemente, serán The Next Big Thing™.

Esto nos puede llevar a una sensación de ansiedad permanente pensando en todas las cosas que debemos aprender (o al menos eso pensamos) para seguir siendo profesionales cualificados y no quedarnos desactualizados. Es lo que algunos llaman developaralysis: sentir que la industria del software avanza tan rápido que es imposible mantenerse al día.

Quien más y quien menos, todos tenemos una lista de cosas a las que nos gustaría poder dedicarle un tiempo para jugar y experimentar con ellas, y para la mayoría de nosotros esa lista crece mucho más rápido de lo que podemos asumir. Os voy a decir un secreto: no importa.

La mayoría de las tecnologías que hoy nos preocupa no tener tiempo para aprender, no tendrán ninguna relevancia dentro de un par de años.

Llevo el tiempo suficiente en esto para haber vivido muchos The Next Big Thing™ que se han quedado en nada, y a menos que seas futurólogo, acertar qué cosas son las que finalmente triunfarán y perdurarán, es tan complicado que no merece la pena preocuparse por ello.

Con todo esto no quiero decir que no sea importante preocuparse por aprender nuevas cosas, al contrario, siempre he pensado que es fundamental aumentar continuamente nuestros conocimientos, y no sólo en el ámbito profesional, sino en todas las áreas de la vida. Lo que realmente quiero decir es que aprender nuevas cosas no es lo mismo que aprender cosas nuevas.

Conocer las 5000 nuevas APIs que introduce Android 5.0 o las maravillas de ASP.NET vNext está bien, pero en realidad nada de esto es tan importante. Los principios de la programación en Android se basan en ideas de hace más de 30 años (programación orientada a objetos, patrones de diseño) y la propuesta de ASP.NET vNext, por muy novedosa que resulte en el mundo Microsoft, es lo que llevan haciendo otras plataformas desde hace un par de décadas (Ruby, Python). No pretendo quitarle valor a esos dos ejemplos, seguro que aportan nuevos e interesantes matices, pero no tienen la importancia que a veces les queremos dar.

Cuando nos centramos en aprender todas las novedades que surgen a nuestro alrededor, entramos en una dinámica de conocimiento superficial, porque no tenemos tiempo suficiente para profundizar en nada; necesitamos pasar a la siguiente cosa para no quedarnos atrás. Eso hace que pensemos saber sobre sistemas distribuidos por haber deplegado un par de máquinas en Azure o que nos consideremos unos hábiles diseñadores de aplicaciones web por haber seguido un tutorial de AngularJS.

Aprender requiere tiempo. Por una parte, necesitamos tiempo para adquirir los conceptos relacionados con una tecnología/metodología concreta, experimentar con ella y asentar los conocimientos, pero por otra también necesitamos tiempo para ver la evolución de esa tecnología en el mundo real, cómo se comporta en producción y cómo afectan las decisiones que tomamos inicialmente al futuro del proyecto.

Por muy buenos que seamos y por mucho que planifiquemos, siempre habrá circunstancias cambiantes a lo largo de la vida de un proyecto, y enfrentarse a esos problemas será lo que nos haga conocer realmente esa tecnología o metodología genial que hemos utilizado. La experiencia es fundamental y eso no es algo que se pueda adquirir de un día para otro.

Al final, muchas de estas cosas tan novedosas y revolucionarias que surgen cada día no son ni tan novedosas ni tan revolucionarias, y se acaban basando en conceptos similares, por lo que una vez que adquieres un conocimiento profundo de esos conceptos, trasladarlos de una tecnología a otra no es tan complicado. Si una tecnología es realmente importante, no te preocupes, esa tecnología perdurará y tendrás tiempo de sobra para aprenderla.

Como decía ese gran filósofo de nuestro tiempo que fue Jorge Berrocal de Gran Hermano I: «en fin serafín, corre más el galgo que el mastín, pero si el camino es largo, más corre el mastín que el galgo».

8 comentarios en “Aprende despacio

  1. Gracias por el enlace, no recordaba ese post.

    Estoy de acuerdo en que muchas cosas las puedes aprender «sobre la marcha» o al menos en el momento en que te haga falta, pero para eso también es importante haber ido acumulando previamente una buena base. Por eso siempre defiendo que es fundamental conocer los conceptos básicos y trabajar en ello.

    En esa línea de estrés por querer hacer mil cosas, también me gustó este post de Leon Bambrick: http://secretgeek.net/Task_hoard

  2. Al final la velocidad depende de lo largo del articulo, lo digo por el de ricardo galli que voy a citar, que refleja muy bien lo que quiere decir el tuyo. En resumen en cada disciplina hay ciencia, tecnologia y herramientas, quizás el error del picacodigo medio es centrarse demasiado en las herramientas (angular,cms), algo en la tecnologia (POO, lenguages de programación…) y nada en la ciencia, que es lo que menos cambia y lo que mas se estudia en la carrera.
    http://gallir.wordpress.com/2008/04/28/sintonizar-universidades-y-empresas-pero-%C2%BFque-debe-saber-un-ingeniero/

  3. La verdad el ritmo de la tecnologia es rapido, hace unos años un amigo dejo .net porque me comento que el ritmo que llevaba Microsoft no era compatible con su forma de ver las cosas (en su caso se paso a sap donde los cambios en teoria son menos frecuentes, es triste que salga el framework 4.5, 5… 6, 8 y aun no dominamos bien el 3.5 o el 4 aunque tampoco hay que conocer el 100% de las cosas.

    Podemos optar por no aprender o no mirar las nuevas tecnologias Reactjs, Meteor, Lebron.. o cualquier nueva y podemos sobrevivir, pero y el mercado ?

    Es triste para developers que entran al mercado laboral y se encuentran posiciones con requerimientos como lo siguientes «Se busca Web Developer con mas de 5 años de experiencia Reactjs, Bower, Angular2, ASP.NET etc..» donde algunas de esas tecnologias no tienen ni 2 años, empieza la fustracion de estoy «desactualizado» y las ganas de querer dejar esta forma de vida o en el peor de los casos, tratar de forzar el update arriesgando la familia y la salud.

  4. Pingback: Lo que los compiladores pueden enseñarnos sobre aprendizaje | Koalite

Comentarios cerrados.