1. Clean Code: A Handbook of Agile Software Craftsmanship

El Clean Code es uno de los libros fundamentales si de verdad quieres ser buen programador. Al leer este libro aprenderás que la mayor parte del trabajo de un programador no es escribir código para las máquinas, sino que el código lo escribimos para que lo entiendan los humanos siendo más facil (y barato) de mantener.

2. Clean Architecture

Si el Clean code da consejos acerca de cómo mejorar cada “pieza” de código, Clean Architecture trata de como relacionar cada una de estas piezas para lograr que el código sea más flexible y tolerante a cambios.

3. The Algorithm Design Manual

La mayoría de la gente no va a tener que implementar algoritmos complicados en su día a día y creo que generalmente preferible un código limpio testeado y mantenible. Dicho eso creo nunca está de más conocer el increible poder de los algoritmos para al menos saber como actuar en situaciones algoritmicamente complejas.

4. Head first Design Patterns

Aunque no hay que obsesionarse con los patrones de diseño, creo que está bien conocerlos y saber cuando es buena idea aplicarlos. Recuerdo leer este libro durante la carrera y me gustó la simplicidad con la que explica las cosas.

5. High performance browser networking

Este libro da al lector una serie de conocimientos básicos sobre protocolos de bajo nivel, HTTP y APIs de los navegadores que me parecen muy recomendables para cualquier programador web hoy en día.

6. Pro Git

Todo el mundo se van a tener que enfrentar a git alguna vez, sin embargo la gran mayoría no tiene ni idea de cómo funciona. Este libro da al lector una base sólida en git que le permitirá trabajar de forma mucho más fluida.

7. Refactoring

Una serie de técnicas que ayudan a mantener el código limpio a medida que pasa el tiempo. Si te gustó el Clean Code, este libro debería estar en tu arsenal.

8. TDD By Example

No conozco a nadie que se arrepienta de haber aprendidoa hacer TDD o al menos a guiar el desarrollo mediante tests. Dale una oportunidad a esta forma de programar. Si escribes el test primero el código resultante será más facil de probar, las APIs más claras y tendrás mayor confianza en tu código.

9. Don’t Make me Think

Saber algo de diseño nunca viene mal. Este libro contiene nua serie consejos para hacer sistemas más fáciles de utilizar por humanos.

10. You Don’t Know JS

Esta es mi recomendación personal para los que van a trabajar con javascript. El autor se esfuerza en dar al lector una comprensión profunda sobre el lenguaje en una serie de libros que también se pueden leer online en github.

Creo que los 3 primeros son muy necesarios: