5 libros avanzados de programación

5 libros avanzados de programación

Vivimos en una época donde aprender a programar —o casi cualquier otro tema— es posible sólo con conexión a Internet. Hay tantos recursos disponibles como tantas personas deseosas por avanzar en su vida tanto personal como profesional. Contamos con videotutoriales, bootcamps, cursos en línea, libros, entre otras opciones.

Ahora bien: los libros poseen algo especial. Estos son, aún hoy, una fuente inigualable para aprender sobre un área técnica, sobre todo, cuando se quiere comprender en profundidad un tema, y que lo diferencia de otros recursos por su sistematicidad y orden en presentarlos.

Así, el trabajo de un autor de libros técnicos consiste en saber reducir la complejidad del material para no abrumar al lector, evitando caer en superficialidades que, otros tipos de contenido, ya sea por tiempo o por el propio medio que usan, no pueden eludir. Por tanto, es el medio idóneo para tratar cuestiones avanzadas.

En este artículo presentaré cinco libros avanzados de programación que ellos cumplen con estas características y que, de estudiarlos, le puedo asegurar que su nivel de programación, como también su comprensión de la computación, incrementará sustancialmente.

1) Elements of Programming

Elements of Programming de Alexander Stepanov y Paul McJones, es uno de esos libros que no temen añadir rigor a la programación, empleando matemáticas y elegantes códigos escritos en C++. Cabe señalar que Stepanov fue el diseñador de la STL (standard Template Library) de C++, la cual es considerada una proeza técnica, pues se caracteriza por su coherencia interna sin perder eficiencia.

Este libro, además requiere conocimiento en álgebra abstracta y de C++, también tiene una aspiración filosófica, aunque sus autores nunca lo manifiesten explícitamente. Pero esto se puede apreciar en el primer capítulo donde asoman los conceptos que el libro hará uso en los siguientes. Entre ellos están, los que los autores llaman, las «Categorías de ideas»: entidades, especies y género, además de otros, como los valores y objetos, los procedimientos y los tipos regulares, entre muchos más.

Se encuentra disponible gratuitamente en su sitio web.

Y no te preocupes si no entiendes las primeras páginas, es normal; en cambio, preocúpate si lo abandonas, ya que perderás una valiosa oportunidad de ampliar tu conocimiento. Es, quizá, el libro más desafiante de esta lista.

2) Structure and Interpretation of Computer Programs (segunda edición)

A diferencia del libro anterior, Structure and Interpretation of Computer Programs (segunda edición), de Harold Abelson, Gerald Jay Sussman y Julie Sussman no es un libro desconocido, sino que cuenta ya con una fama dentro del mundo de la programación que, bien ganada, produce el asombro de cada lector, pues explica cómo construir programas desde un punto de vista funcional. Conceptos como recursividad, inmutabilidad, descomposición están presentes en cada capítulo, usando Scheme como lenguaje para sus ejemplos (aunque recientemente, salió una versión con JavaScript).

Debido a que la programación funcional cada día ocupa más terreno en la industria, ya no se encuentra «escondida» detrás de lenguajes desaprovechados. Por el contrario, ahora se encuentra presente en lenguajes mainstream, como Python o C++. Su relevancia es indudable, así que, ¿por qué no sumergirse en el principal libro sobre este apasionante tema?

El libro se encuentra disponible aquí: https://sarabander.github.io/sicp/html/

3) Crafting interpreters

El diseño e implementación de lenguajes de programación cuenta con una larga data en la historia de la computación. Esto se debe a que, para construir toda la infraestructura de software, era necesario contar con buenos lenguajes de programación que hicieran la tarea no solo simple, sino también mantenible en el tiempo. Un lenguaje con una sintaxis críptica y propenso a errores no es una buena opción. Los investigadores destinaron varios esfuerzos, desde la década de 1950, para inventar novedosas estrategias y construir mejores compiladores e intérpretes.

Unos de los artífices de este campo fueron Alfred Aho y Jeffrey Ullman, ganadores del premio Turing 2020 por sus relevantes aportes al campo de diseño de compiladores, que se concretó con su obra magna: Compilers (conocida popularmente como «El libro del dragón» [por su curiosa portada]). Un libro de referencia en todos los cursos de compiladores de las principales universidades de mundo.

A pesar de que, en la actualidad, el diseño de lenguajes no es un área tan popular como antes, muchos entusiastas continúan dedicados a esa labor, debido a lo que creo firmemente: aprender a crear lenguajes es sinónimo a comprender los fundamentes de la computación, pues todo parte desde ahí.

A esta labor se unió Robert Nystrom al publicar su libro Crafting Interpreters en 2021. Un libro moderno, con un aire renovado, y mucho más práctico que el libro Compilers que, de manera amena, te introduce en este fascinante mundo.

Más información del libro: https://craftinginterpreters.com

4) Advanced data structures

Todos los que hemos estudiado Informática, o incluso un curso de Programación, nos enseñan estructuras de datos, que son almacenes que nos permiten organizar y acceder a la información. Dependiendo de cuál escojamos, las operaciones podrían ser más rápidas que otras, así que la elección de estructuras de datos puede afectar la forma en que diseñamos algoritmos. Una estructura de datos adecuada nos permitiría reducir significativamente el tiempo de cómputo, lo que se traduce en un ahorro de costos debido a un menor consumo de software.

Si quieres aprender no solo las estructuras de datos básicas sino ir más allá, te recomiendo adquirir Advanced Data Structures de Peter Brass. Una excelente obra para ahondar en cómo diseñar algoritmos con eficiencia mayor, tanto en menor consumo de memoria como en menos tiempo de ejecución.

Más información del libro: https://www.cambridge.org/core/books/advanced-data-structures/D56E2269D7CEE969A3B8105AD5B9254C

5) Introduction to Algorithm (cuarta edición)

Siguiendo la estela del libro anterior, Introduction to Algorithms es un clásico dentro de los libros de computación. Es como el Don Quijote de Cervantes: todos los conocen, pero no todos lo han leído. La cuarta edición, recientemente publicada, incorpora varios algoritmos de aprendizaje automático y otras categorías de algoritmos que son necesarios en la actualidad como los online, los cuales van procesando y calculando datos en tiempo real. Además, añade más de 100 ejercicios y múltiples actualizaciones con respecto a la tercera edición.

Un imperdible.

Más información del libro: http://mitpress.mit.edu/9780262046305/introduction-to-algorithms/


Conclusión

Aun cuando esta lista es breve, cualquiera que se atreva a enfrentar algunos de estos libros podrá empaparse de conocimiento avanzando. Además, considerando la gran cantidad de tutoriales introductorios disponibles, este enfoque se vuelve esencial tanto para alcanzar un nivel de maestría como para destacar por encima de los demás.

¡Un saludo!

💡
Nota: Solamente he sugerido libros en inglés porque muchos de estos temas no han sido, lamentablemente, tratados en español.

Más recomendaciones

Para ahondar más en otros libros (de todos los niveles) podría considerar mirar estos enlaces:

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.