Aunque puedes aprender a escribir código de varias formas. Muchas de las habilidades se aprenden leyendo buenos libros. Aquí te traigo una lista de los libros que todo programador debe leer.
La lista incluye libros que van desde la explicación de cómo crear algoritmos hasta las mejores prácticas en el diseño. Además de los clásicos que figuran en todas las listas, hay algunos menos populares pero igual de interesantes y útiles.
Muchos de los libros que se sugieren fueron escritos por los mejores programadores del mundo. Si quieres saber quiénes son, puedes leer este artículo.
1 – Programming Pearls
“Perlas de programación” es uno de los libros que todo programador debe leer porque es considerado un clásico para novatos y porque es diferente al resto de los libros de la lista.
Programming Pearls te ayuda a comenzar a pensar como programador. Plantea diversos conceptos y problemas prácticos, además te muestra diferentes respuestas y soluciones.
La dificultad de los problemas planteados va en aumento y las soluciones no están mostradas inmediatamente, porque la idea de su autor, Jon Bentley, es que aprendas a pensar por tu cuenta, de esa forma te conviertes en un solucionador de problemas. El libro arranca desde las bases de la programación, con temas como estructura de datos y creación de algoritmos.
2 – Design Patterns: Elements of Reusable Object-Oriented Software
Este libro fue escrito por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, y aunque tiene algunos años desde que fue publicado, sigue siendo el libro de cabecera para muchos ingenieros en software.
Como su nombre lo indica, el libro es una guía completa de 23 patrones de diseño que existen para solucionar los problemas más comunes en el diseño de software. El objetivo de los autores es ayudar a los programadores a crear códigos más flexibles, más fáciles de mantener y de mayor calidad.
Por los temas que trata, tal vez no sea un libro fácil de leer para novatos, pero será una gran ayuda a mejorar el conocimiento sobre diseño de programación y programación orientada a objetos.
3 – Head First Design Patterns
En español lo traducen como “De cabeza a los patrones de diseño”. Este libro merece estar entre los libros que todo programador debe leer porque la forma en que se explica el tema hace que sea fácil de entender y entretenido de leer.
Head First es una serie de libros que sigue esa premisa: explicar temas complicados de forma divertida y simple. Básicamente habla de lo mismo que Design Patterns, es decir de los patrones que se pueden seguir para diseñar un software. Pero en este caso se basan más en explicaciones visuales. Todo está explicado con ilustraciones, imágenes y diagramas que ayudan a memorizar los patrones en menos tiempo.
Otro punto a favor de Head First Design Patterns es que no solo explica cómo funciona cada diseño, sino que muestra el detrás de escena y el razonamiento detrás de cada uno.
4 – Code Complete
“Código completo” es un libro clásico, considerado como un manual práctico para construir software. Trae muchísimos ejemplos y explica distintas técnicas y estrategias probadas que ayudan a desarrolladores y programadores.
Algunos de los temas que trata Code Complete son el desarrollo colaborativo, el proceso de depuración y refactorizar el código. Así va pasando por temas relacionados con estructura, la integración, testing, gestión de equipos, etc. El conjunto de temas busca estimular la creatividad del desarrollador.
Un imprescindible en la lista de libros que todo programador debe leer.
5 – Introduction to Algorithms
También conocido como CLRS, una referencia al apellido de los autores del libro, el libro profundiza en una variedad de algoritmos divididos en varios capítulos independientes.
Todos los algoritmos presentados están muy bien explicados. Se presentan usando pseudocódigo, legible por programadores de todos los niveles, incluso para aquellos que son relativamente nuevos en programación.
Algo muy destacable de Introduction to Algorithms es que además de explicarte de forma exhaustiva todo, trae muchos ejercicios prácticos para que puedas comprobar si entendiste cada tema. Y en Github está el repositorio con las soluciones.
6 – Coders At Work
Para descansar de leer sobre código, podrías leer sobre programadores, las personas detrás de los códigos y lenguajes. “Coders at Work” incluye entrevistas a 15 grandes programadores, como Ken Thompson, el diseñador de Unix y Brendan Eich, el creador de JavaScript. Es un libro muy interesante para programadores, porque es como escuchar una conversación informal de gente que sabe mucho y que cuenta cómo enfrentan un nuevo desafío, resuelven problemas y escriben sus códigos.
Lo bueno es que te permite ver los diferentes enfoques que tiene cada uno. Por ejemplo, Donald Knuth (uno de los mejores programadores del mundo) escribió todo un programa a lápiz antes de empezar a implementarlo en la computadora, mientras que Dan Ingalls (pionero en la programación orientada a objetos) empieza a codificar apenas encuentra un nuevo desafío.
7 – Don’t Make Me Think
Muchos programadores prefieren trabajar en la lógica del código y esquivan el diseño visual de la interfaz con la que tendrá que interactuar el usuario. Esto suele pasar porque el diseño está fuera de lo que normalmente tiene que hacer un programador y porque los errores quedan a la vista.
“Don’t Make Me Think” (No me hagas pensar) busca dar a los programadores herramientas de diseño fáciles de entender. Está lleno de ejemplos de sitios web bien diseñados, pero los consejos del libro se pueden extrapolar a todo tipo de software, no solo al diseño web.
Don’t Make Me Think trata de desbloquear los conocimientos que los programadores ya tienen sobre diseño para que puedan ponerlos en práctica. El tono en que está escrito el libro es muy sencillo y sin grandes tecnicismos, incluso con toques de humor.
El libro busca transmitir la idea de que el usuario quiere conseguir su objetivo con el mínimo esfuerzo posible (de allí el nombre del libro). Por eso “No me hagas pensar” también es una gran recomendación para profesionales que trabajan en UX.
8 – Clean Code
Este es uno de los libros clásicos más recomendables para principiantes. Te enseña todos los trucos y patrones para escribir código eficiente y limpio.
La mayoría de los programadores principiantes cometen errores y desarrollan códigos que no son limpios, porque solo se enfocan en resolver el problema. Un código limpio debe ser legible correctamente, y debe estar bien estructurado para que pueda reutilizarse y depurarse fácilmente.
El libro escrito por Robert C. Martin trata temas básicos como la forma correcta de nombrar variables, cómo estructurar el código y cómo escribir mejor código.
La primera parte incluye la descripción de los principios, patrones y prácticas para escribir código limpio. En la segunda hay varios casos de estudio y en la tercera el autor muestra la diferencia entre un buen código y un código mal escrito y explicaciones de cómo corregir los errores de un código que no es limpio.
9 – Cracking the coding interview
Las traducciones del título varían un poco, pero sería algo así como “Descifrando las entrevistas de codificación”, que en español suena bastante raro, pero se entiende. El libro incluye 189 preguntas que te servirán para prepararte para una entrevista de trabajo.
Son preguntas que suelen hacerte los entrevistadores cuando estás buscando empleo como programador y, por supuesto, el libro explica cómo puedes resolver los problemas que te plantea.
Pero no solo eso, el libro también incluye mucha información y consejos sobre cómo prepararte antes de la entrevista y cómo armar tu currículum. Además, enseña como enfrentar los aspectos no técnicos de las entrevistas.
10 – The Pragmatic Programmer
Este es uno de los libros que todo programador debe leer si quiere convertirse en un experto.
El libro muestra anécdotas clásicas y modernas, analogías fascinantes y ejemplos que invitan a la reflexión. Esta mezcla de conocimientos hace que aprender cada tema sea interesante y divertido. Además de abarcar muchos temas relacionados con la programación, “El Programador Pragmático” habla de otros temas más vinculados con el lado comercial y profesional, como el desarrollo profesional y la responsabilidad personal de un desarrollador de software.
En cuanto a los temas técnicos, habla de cómo automatizar procesos, pruebas y solución de errores, cómo evitar duplicaciones y mucho más.
11 – The Art of Computer Programming
Este libro de Knuth no es nada fácil de leer, pero a esta altura ya es un libro de culto entre los programadores. Se trata de una serie de 4 libros, que tratan los siguientes temas:
- Libro 1: Los fundamentos de los algoritmos.
- Libro 2: Algoritmos semi numéricos.
- Libro 3: Ordenamiento y búsqueda.
- Libro 4: Algoritmos combinatorios.
Por esta serie de libros el autor ganó el premio Alan Turing en 1974. Y los libros se consideran como la Biblia de la programación. Allí encontrarás temas como métodos numéricos, las relaciones estructurales entre los elementos de datos, diseños de sistemas y la representación de la información.
Sin duda no es un libro para principiantes, pero si ya tienes experiencia programando y quieres profundizar tus conocimientos de la mano de un maestro, tal vez sea hora de animarse y tratar de leer The Art of Computer Programming.
Te recomiendo leer los 11 hábitos que todo programador debería tener.