El valor de una buena lectura

“Java 2” (no he sido capaz de encontrar un enlace a Amazon) fue el primer libro de informática que debí leer. Yo tenía 16 años. Ya había leído artículos sobre HTML en Internet y, de hecho, sabía hacer páginas sencillas desde los 12. Pero este fue el primer texto sobre programación que leí en formato libro -en papel, claro. Con él aprendí, más que Java, programación orientada a objetos. De hecho, aprendí los fundamentos de la programación, aunque no fuera en profundidad. Pasé de casi cero a un nivel básico durante la lectura de ese libro. Fue un primer salto enorme, teniendo en cuenta mi edad, y teniendo en cuenta que no contaba con ningún profesor. Y fue gracias a un buen libro.

Poco tiempo después, me compraron el DIV 2 Games Studio, que venía acompañado de un manual de programación y un CD con lo necesario. No hice gran cosa, pero fui capaz de mover algunos personajes por la pantalla. Luego vendrían las competiciones de programación rápida de videojuegos en la Campus Party, pero ese es otro tema. La cuestión es que leyendo ese libro di otro gran salto de calidad, tanto en conocimientos básicos de programación como en conocimientos básicos de gráficos por ordenador, ni que fuera solo en 2D. Seguía teniendo 16 años, pero era capaz de hacer videojuegos básicos. Todo gracias a ese manual de programación que acompañaba al DIV 2 y que no valía mucho dinero.

Unos meses después compré los dos libros blancos de Java 2. Es curioso que después haya usado Java tan poco en mi carrera profesional, cuando en realidad he leído mucho más sobre Java que sobre PHP. La cuestión es que esos dos libros me permitieron profundizar bastante más en Java, usando Swing e incluso aprendiendo el concepto de hilos -imprescindible si querías que la interfaz funcionara mientras hacías otra cosa.

Después de eso vino un periodo de poco aprendizaje en el que me centré más en dominar el Age Of Empires 2 que en aprender nada de programación. Fue muy divertido, pero no leí nada útil ni aprendí nada nuevo. Fue lo que yo llamo mi “Edad Oscura”.

A los 19 empecé la Ingeniería Técnica en Informática de Gestión; voy a afirmar sin ninguna duda que no aprendí prácticamente nada de programación que no supiera ya antes de empezar: ¡y mis conocimientos se basaban, básicamente, en 4 libros!

Luego de eso leí un libro titulado “PHP Objects, Patterns and Practice”. Este libro explica técnicas de orientación a objetos específicas de PHP y, sobre todo, patrones de diseño. Los explica en general, y luego añade detalles para implementarlos en PHP -los que sepáis PHP sabréis que tiene algunas particularidades que impiden aplicar ciertos patrones como se aplicarían en Java o C#, por poner dos ejemplos. La lectura de ese libro representó un incremento brutal en mis conocimientos sobre arquitectura de software. Brutal.

Un buen día encontré -ya que usaba Laravel- la página web laracasts.com. Entre la multitud de buenos video tutoriales que se pueden encontrar allí, me fijé especialmente en los cinco sobre SOLID. No he visto jamás una explicación mejor y más sencilla sobre cada una de las letras de SOLID. Y, como cualquier programador realmente bueno debe conocer SOLID, puedo decir que esos cinco videos de 10-20 minutos cada uno me hicieron dar otro salto más de calidad.

Más recientemente he leído el libro “Implementing Domain Driven Design”, de Vaughn Vernon -el llamado libro rojo de DDD. Con él he aprendido los principios de DDD, arquitectura hexagonal, y una parte de CQRS EventSourcing -complementada, esta última, con algunos, pocos, buenos artículos en Internet. Nuevamente he dado un gran paso en mi carrera.

Y aquí estoy ahora, pensando en cómo he llegado a poseer los conocimientos que poseo. Y, tras meditarlo un poco, he llegado a la conclusión de que, al menos, el 70% de los conocimientos que poseo y por los que obtengo un sueldo más que razonable se deben, fundamentalmente, a lo siguiente:

No quiero decir que no haya leído otros libros, cientos de artículos por Internet e incluso algún otro vídeo interesante, claro que no. O que mi carrera -y posterior Master en Tecnologías .NET- no hayan servido para nada. Pero si puedo decir que esos recursos han formado el Core de mis conocimientos, por los que soy valorado como programador y arquitecto de Software. Y es evidente que todo el tiempo que he pasado practicando lo aprendido ha sido fundamental. Lo que quiero poner de manifiesto es que, si esos recursos han supuesto saltos tan grandes en mi carrera y, realmente, me han quitado tan poco tiempo, ¿qué hubiera pasado si los hubiera utilizado, en vez de a lo largo de 14 años, durante el año que cumplí 16? ¿Qué hubiera pasado si, durante 14 años, hubiera leído cinco o seis recursos de la misma calidad cada año? ¿Dónde estaría ahora?

En términos numéricos, mi carrera fue de las “baratas”. Debió costar, en total, alrededor de 5.000€. Aquí no estoy contando, evidentemente, el “coste de oportunidad”, es decir, el dinero que podría haber ganado si hubiera hecho otra cosa en vez de la carrera durante los 4 años que gasté en ella. También es cierto que el hecho de poseer el título da cierta relevancia, así que supongo que lo comido por lo servido. Pero vaya, 5.000€. El master en .NET costó 4.500€. También me inscribí en un Master en Marketing Digital y Comercio Electrónico que, por su deplorable nivel, no he acabado; pero me costó 4.000€ más. Eso hace un total de 13.500€ en formación universitaria reglada. Esos 6 recursos con los que afirmo que adquirí la parte central de mis conocimientos en programación y arquitectura de software no debieron costar más de 300€.

¿Por qué se aprende tan poco en una carrera -y dos Masters- con respecto a cinco libros y cinco video tutoriales? Creo que la respuesta hay que buscarla en el nivel de los profesores con respecto al nivel de los que escribieron esos libros o hicieron esos video tutoriales. Si eliges bien los recursos, te quedas con los que fueron hechos por los mejores entre los mejores. Y eso, en la Universidad, no pasa. Por otro lado, esos recursos son incisivos, van a lo que te interesa a ti como profesional, porque para eso los eliges tú. Sin embargo, en la formación reglada se proporcionan otros muchos conocimientos que no siempre te resultan útiles como profesional. Esto probablemente mejoraría si los planes académicos no fueran siempre con un retraso de 10 años respecto a cuando los empiezas, y si no hubiera que introducir materias que solo sirven para dar trabajo a ciertos profesores.

Por otra parte, ¿por qué esos cinco libros y esos video tutoriales me aportaron tanto y otros muchos libros y video tutoriales que he leído o visto no me han aportado apenas nada? O, mucho más interesante, ¿por qué no he elegido los buenos recursos por encima de los no tan buenos? Y, ¿por qué no he leído un libro cada tres meses en vez de uno cada tres años? Estas son las preguntas verdaderamente interesantes.

Respecto al por qué no elegimos los buenos recursos por encima de los malos es por una cuestión de oferta; básicamente tenemos una oferta muy amplia de recursos, y todos ellos se “disfrazan” de grandes recursos. Cuesta mucho separar el grano de la paja. Pero todos deberíamos plantearnos la elección y el consumo de un recurso didáctico no como el tiempo que tardaremos en consumirlo, si como ese tiempo y, adicionalmente, el tiempo que dedicaremos a elegirlo; debemos dedicar más tiempo a separar los recursos del montón, poco útiles, de las verdaderas joyas que nos permitirán dar saltos de calidad. Quizás estamos dando por hecho que todo lo que podemos encontrar es bueno, pero no es así, y la diferencia entre lo que aportan unos recursos y otros es demasiado grande como para no dedicar cierto tiempo a elegir bien. Optimicemos nuestro embudo de lectura, no vale meter cualquier cosa.

El otro asunto, por qué no consumimos ese tipo de recursos con más frecuencia, es más complejo. Algunos dirán que es una cuestión de falta de tiempo, pero todos tenemos el mismo tiempo cada día y, mientras unos devoran libros y aprenden muchísimo, otros simplemente no lo hacemos. Así que nos encontramos ante un problema de elección: de en qué dedicamos cada hora de nuestro día. Creo que la conclusión que puedo sacar es que debemos dedicar algo de tiempo a consumir recursos didácticos que nos hagan mejorar como profesionales pero, ante el limitado volumen de horas de que disponemos para ello, debemos realizar esa optimización de la que hablaba en el párrafo anterior con mucho esmero.

En definitiva, quiero poner de manifiesto el increíble poder que encierran ciertos recursos didácticos a la hora de permitirnos dar verdaderos saltos cualitativos en lo que a nuestras carreras como profesionales se refiere; por ello, es imprescindible aprender a encontrarnos y elegirlos bien, así como dedicarles el tiempo necesario.