Siempre he sido un fiel defensor de que más allá de los libros, cursos, clases y conferencias, lo que te da la habilidad y calidad para escribir código de calidad, es la práctica. Practicar, practicar y practicar.

Sin embargo, eso no le resta importancia a algunos libros que han hecho mucho por mi y mi carrera profesional, en esta lista te cuento cuáles han sido. Hablo en general, y es que hay libros que son muy específicos y que no incluí en esta lista, tal vez te pueda ayudar con algún tema en específico, mandame un tweet o un correo.

Otra de las cosas que me gustaría mencionar es cómo "leo" yo este tipo de libros: Usualmente los leo completos una vez, para conocerlo en general, solo para familiarizarme con el contenido y después leo otra vez (o varias veces) las secciones que necesito conocer a fondo. Pero bueno, la lista:

Los enlaces a los libros son enlaces de afiliados de Amazon, si compras los libros ahí, me ayudas a mantener vivo este blog ;)

Java 2. Curso de programación de Francisco Javier Ceballos

Sí, Java. Si no mal recuerdo este fue uno de los primeros libros de programación que tuve, me lo prestó un primo (y no se lo he devuelto), este libro tiene al final una sección de algoritmos y de ahí aprendí un poco más. En mis tiempos de universidad Java era lo único que enseñaban, así que este libro fue de bastante ayuda. Es un libro viejo y que no recomiedo, pero tiene mención honorífica.

C# 5.0 in a nutshell de Joseph & Ben Albahari

El gran manual de C#, lo chequé casi todo, y así me enteré de algunas cosas del lenguaje que no conocía o que no sabía cómo usar de manera correcta. Definitivamente no es un libro para aprender a programar, sino para aprender a hacer bien las cosas y conocer a fondo todo lo que ofrece C#. Ver en Amazon.

Wrting High-Performance .NET Code de Ben Watson

El saber qué rayos hace nuestro código una vez que pasa por el proceso de compilación es de mucha ayuda cuando estamos programando, y cobra aún más relevancia cuando estamos tratando de hacer un sistema que soporte una gran cantidad de usuarios o que su operación deba ser lo más rápida posible. Este libro no es tan sencillo de digerir si apenas vas aprendiendo, pero merece una leída. Ver en Amazon.

The Algorithm Design Manual de Steve Skiena

Desde luego que no podía faltar este gran libro que, como su nombre lo indica, habla sobre algoritmos. Tal vez no sea útil para un programador de aplicaciones destinadas para un usuario final, pero sí para los que quieran hacer sistemas grandes y más complejos. Tal vez parezca un libro destinado a la academia, pero leerlo y entenderlo te puede ayudar bastante como programador. Ver en Amazon.

Clean code de Robert C. Martin

Este es un libro sobre cómo podemos mejorar nuestra escritura de código, y créeme, debes aprender a hacerlo. No importa si quieres ser un desarrollador indepediente o unirte a otros para desarrollar un producto. Escribir código entendible, mantenible y que funcione es una habilidad que debes tener como desarrollador. Clean code es de mis favoritos en este tema. Ver en Amazon.

Soft skills de John Z. Sonmez

Soft skills no habla para nada sobre programación, más bien habla sobre programadores, no todo en la vida es tirar código y si quieres saber otras cosas que podrías tener en cuenta como desarrollador de software, tal vez deberías leer este libro. Parte de ese libro me motivó a seguir escribiendo en este blog. Ver en Amazon.

El lenguaje de programación C de Brian W. Kernighan y Dennis M. Ritchie

Este es otro de esas joyas, nada más y nada menos que un libro sobre C escrito por su creador. A pesar de tener tanto tiempo de publicado sigue siendo una referencia para la escritura de documentación técnica. Tal vez no te dediques a programar en C, pero estoy seguro que conocerlo (o darle un repaso) te ayudará a ser mejor desarrollador.

Designing Web Usability de Jakob Nielsen

Parece la sección de libros viejos. Este es otro que, si bien pareciera no tener nada que ver con programación, considero importante leer si es que te dedicas a la programación de sistemas para el usuario final (web o no web), es de 1999 pero aún así hay mucho que aprenderle, de ahí podríamos seguir con otros libros de Nielsen, quien es un reconocido diseñador de interfaces humano-computadora. Ver en Amazon.

ASP.NET Web API 2 de Jamie Kurtz

Me gusta hablar de este libro porque, además de ser una buena referencia para desarrollar con Web API 2, también habla de otros conceptos, como la inyección de dependencias, el patrón *unit of work* y el testing. No solo aprendes estos conceptos mientras desarrollas, sino que también da referencias a otros libros que ahondan en el tema tratado. Gracias a este libro aprendí muchas cosas sobre DI (y de paso me titulé).Ver en Amazon.

Level Up! de Scott Rogers

Como como programador (y desarrollador de interfaces) este libro me dejó algunas lecciones que pueden ser trasladadas del contexto de diseño de videojuegos al diseño de aplicaciones, ahora, imagínate si tu meta es desarrollar videojuegos. Este libro no sale de mi pequeña biblioteca personal.