10 libros míticos sobre programación que todo desarrollador debería leer

10 libros que toda persona que se dedique al desarrollo de software, en cualquiera de sus formas, debería tener en su estantería. También sería conveniente leerlos un par de veces, porque a pesar de que son tremendos como pisapapeles y para nivelar muebles, no es su única utilidad…

1. Code Complete

Si sólo tienes oportunidad de leer un libro sobre desarrollo de software en toda tu vida, procura que sea este. Code Complete es prácticamente la biblia del desarrollo de software, además de una de las mejores guías prácticas sobre la programación de todos los tiempos. Es un libro muy fácil de leer, entretenido, y tremendamente práctico, con montones de recomendaciones útiles para cada fase del ciclo de vida del software. El simple hecho de leerlo te hará mejor programador. Seguro.

2. The Pragmatic Programmer: From Journeyman to Master

“El programador pragmático: de oficial a maestro” es un libro que hace verdadero honor a su nombre. Su objetivo es ayudarte en el difícil camino de aprendiz a artesano del bello arte que es la programación. No sólo trata los aspectos técnicos del oficio, sino también los filosóficos, y otros más abstractos. Yo, personalmente, se lo recomendaría como libro de cabecera a más de uno.

3. Design patterns: elements of reusable object-oriented software

Si has recibido algún tipo de educación formal, como ingeniero, licenciado, graduado, … es más que probable que ya hayas tenido algún contacto previo con este libro, porque es, sin lugar a dudas, EL LIBRO sobre patrones de diseño. ¿Has oído hablar alguna vez de los patrones Singleton, Decorator, Observer, Composite, …? Aquí empezó todo, gracias al Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides).

Para una introducción más ligera, con fotografías simpáticas y mucho humor, también te puede interesar Head First Design Patterns. Muy buen libro.

4. Don’t Make Me Think!

Muchas veces los programadores olvidan que las aplicaciones no son un fin en sí mismo, sino que son meras herramientas para los usuarios. Si alguna vez tienes que diseñar una interfaz de usuario, y especialmente interfaces web, empieza por leer este libro; no te defraudará. Uno de los clásicos en cuanto a usabilidad se refiere.

5. The Mythical Man Month and Other Essays on Software Engineering

Como muestra, un botón: “Nueve personas no pueden producir un bebé en un mes. -– Frederick Brooks”

The Mythical Man Month es, como su nombre indica, una colección de ensayos sobre la ingeniería del software y la gestión de proyectos. Un verdadero clásico, y obligada lectura para los interesados en el tema.

6. Refactoring: Improving the Design of Existing Code

Si “Design patterns” es la referencia básica sobre patrones de diseño, este libro, escrito por Martin Fowler, el famoso experto en desarrollo ágil y análisis y diseño de software, lo es para las refactorizaciones. ¿Que no refactorizas tu código? ¡¿a qué estás esperando?!

7. The Dilbert Principle

Seguramente esta sea la entrada más discutida de la lista, pero no me resisto a incluirla, porque más allá de las tiras cómicas o de los chistes, cualquier libro de Dilbert puede enseñarte más sobre el mundo real que 10 seminarios de empresa. En serio. Haz buen uso de sus consejos y recomendaciones.

De “The Dilbert Principle” ya publiqué en su día una entrada con algunas citas seleccionadas con el que os podéis hacer una idea del contenido del libro. Especialmente recomendado para ingenieros en general.

8. Software Project Survival Guide: How to be Sure Your First Important Project isn’t Your Last

Esta vez Steve McConnell, el autor de Code Complete, se centra en la gestión de proyectos. Otro añadido imprescindible en tu biblioteca particular, y una lectura obligatoria para cualquiera que tome parte en proyectos de desarrollo de software, desde el jefe de proyecto, hasta el apuntador.

9. Clean Code: A Handbook of Agile Software Craftsmanship

Principios y patrones para lograr un código más limpio, más legible y más fácil de mantener. Y es que, recuerda, como dijo Martin Golding, siempre deberías programar como si el tipo que acabe manteniendo tu código fuera un psicópata violento que sabe dónde vives.

10. UML Distilled

Como Design Patterns, si has estudiado algún módulo, ingeniería, máster, … relacionado con la informática, es probable que ya conozcas este libro.

UML es el lenguaje de facto para el modelado de software hoy en día, y UML Distilled, también de Fowler, es la guía básica para todo aquel que quiera aprenderlo.

79 pensamientos en “10 libros míticos sobre programación que todo desarrollador debería leer”

  1. Quizás un título más correcto hubiera sido “10 libros míticos sobre desarrollo que toda persona implicada en el desarrollo debería leer”… Pero habría sido demasiado largo. Y repetitivo.

    Por cierto, los enlaces son de afiliado, así que si os animáis a comprar algún libro yo me llevo unos euros 🙂

    1. La vi en su día, Coding Horror es una de mis bitácoras favoritas 🙂 Lástima que últimamente escriba tan poco.

      De hecho creo que me compré Code Complete por su recomendación…

  2. Creo que el primer libro que un programador debería leer es “The Art of Computer Programming” de Donald Knuth. Desde hace unos años no se entiende la esencia de programar como una forma de arte. Y así nos va.

    1. No he leído ese libro que dices, pero comparto tu opinión respecto a que programar es también una forma de arte. Llega un punto que es como hacer magia ^^

      1. Leer libros en inglés siempre resulta algo más tedioso que en español (excepto para los ingleses y otros súbditos de naciones de la Camonguelf) pero si lees un libro en su traducción española y te resulta ininteligible, prueba con su versión inglesa.
        La mayor parte de las veces llegas a la conclusión de que el traductor no sabia informática…ni inglés.

  3. Pingback: 10 libros míticos sobre programación que todo desarrollador debería leer

  4. Que bueno es lo de “programar como si el tipo que acabe manteniendo tu código fuera un psicópata violento que sabe dónde vives” XDD La verdad es que algunas veces, para entender el código de otro ni la piedra roseta 🙂

  5. “Design patterns: elements of reusable object-oriented software” y “UML Distilled”

    Los recomiendo encarecidamente; no concibo el desarrollo de un proyecto sin lo que ahí se explica 🙂

      1. Bueno, la verdad es que la versión de matrix actual está bastante bien, aunque si todos los desarrolladores conocieran estos libros, seguro que estaría aún mejor.

        Conozco varios de ellos, aunque todavía no me he puesto con ninguno.

        A ver si saco un hueco y me leo alguno.

  6. Y e ahí por que a los ebook les cuesta tanto calar entre la gente de a pie… ¿Tú sabes la cantidad de ebooks necesarios para nivelar una mesa? Sí es que sale carísimo, hombre… XD lol

    Bromas a parte, interesante post.

    Un saludo.

  7. Muy buena recopilación, personalmente recomiendo uno que si bien es para niveles un poco superiores al inicial es muy bueno, se llama “Programming Collective Intelligence” y el ebook esta dando vueltas por la red.

    Saludos

  8. Que bien gracias por recomendarlos! a mi me pasa una cosa muy mala, y esque quiero libros a pesar de que no me da tiempo a leerme los que tengo ya. Los libros de programacion tienden a tener una densidad de paginas bastante… generosa.

  9. Tendré que leerlos en especial me llaman la atención el 1,2 y 5to libro. Y mas ahorita que me estoy adentrando al mundo de la programación van a ser lecturas obligadas.

  10. Excelente! Puedo comenzar a empaparme del conocimiento de todos estos libros desde ahora.

    Me parece genial que menciones a los Ingenieros, por cierto ¿Tu eres ingeniero Zootropo?

    Estaria bien acompañar con links de consulta en Google Libros.

  11. ¿Y el primer libro recomendado es de Microsoft?

    Bueno, no voy a juzgar el libro por las tapas ni por la empresa que lo ha patrocinado, pero las API de Microsoft no son precisamente las mejores del mercado, sobre todo las de Win32, aunque es cierto que han mejorado con .NET.

    De todas formas voy a ver si consigo echarle un vistazo.

  12. Pingback: 10 libros míticos sobre programación que todo desarrollador debería leer. « SomosGeeks

  13. No conozco ninguno, nunca he sido de comprar libros de informatica, pero si estan aqui es que realmente son muy buenos y valdra la pena buscarlos.
    gracias por las recomendaciones

  14. Ahhh yo tengo el de “No me hagas pensar” es bueniiiiisimo, 100% recomendado para diseñadores y programadores de páginas web

  15. loco esta muy bueno tu aporte pero se te olvidaron dos libros muuuuuuuuuuuuy importantes que aparte del que pusiste primero son los 3 libros mas importantes del desarrollo de software los libros son….”El proceso unificado de desarrollo” y “El lenguaje unificado de desarrollo”…pero igual manso aporte el que haces… te felicito y te doy las gracias

  16. Pingback: Katas de código

  17. Pingback: Manifiesto por la Artesanía del Software

  18. Pingback: Clean Code

  19. Pingback: Variables globales

  20. Pingback: Software Craftsmanship [Artesania de software] « Milagros Infante Montero

  21. Pingback: Anónimo

  22. Pingback: Los 10 libros que todo programador debería leer, sin excusas

  23. Pingback: No hay balas de plata

  24. Pingback: 97 Things Every Programmer Should Know

  25. Hola, acabo de ver tu otro post (http://mundogeek.net/archivos/2012/01/30/97-things-every-programmer-should-know/) y he acabado leyendome este, acabo de empezar en programación en C y Python, crees que los dos primeros libros de la lista podrían servirme de algo, lo digo para empezar a hojearlos o esperar a tener algo más de experiencia.
    también quisiera saber si me resultarán útiles para programar en los lenguajes que he mencionado y añadiría Java y Java script, los dos para hacer código fuente para phoneGap creo, acabo ya el tocho, a ver si encuentras un hueco para contestarme.

    Gracias.

    1. Cualquier momento es bueno para leerlos. Si los lees ahora aprenderás cosas que te ayudarán a dar tus primeros pasos correctamente. También habrá cosas que no valorarás en su justa medida, y que aprovecharás mejor cuando puedas compararlos con tu experiencia. Conclusión: son el tipo de libro que hay que revisitar un par de veces.

      Sobre si te ayudarán a aprender C, Python, Java y JavaScript, pues no. Lo que sí harán es ayudarte a programar mejor en esos lenguajes.

  26. Muy bien, era eso lo que preguntaba, si se centra en algún lenguaje en particular o entra directo en la lógica de programación, parece por tus palabras que es lo segundo.

    Sí fueras tan amable de decirme lo mejor según tu opinión sobre libros enfocados a lenguaje C, Python, (he descargado ya el tutorial de Python que tenéis por aquí aunque no sea un libro)Java y Java script (parece que PhoneGap solo compila Java script), dejo mi mail (buen detalle el comentario de “no se mostrará”) por si crees que estoy espameando.

    Gracias por la respuesta.

    1. De C un mítico es “The C Programming Language” de Dennis Ritchie (creador del lenguaje) y Brian Kernighan.

      De Java mi preferido, aunque tiene unos años y no trata las novedades de las últimas versiones es sin duda “Thinking in Java” de Bruce Eckel.

      De Python y JavaScript, no sabría quedarme con uno.

  27. Pingback: Ahorra tiempo y dinero con la Ingeniería del Software

  28. Pingback: Ahorra tiempo y dinero con la Ingeniería del Software | Javakafe

  29. Creo que un libro de por demás interesante que abarca problemas de la ingeniería de software moderna desde como lo sufre (o las perspectiva) un programador hasta el analista es el “Análisis y diseño Orientación a Objectos, con Aplicaciones” de Booch.
    Debería estar en el top 10 sin duda.

  30. Muy buena lista. Gracias.
    Solo puedo aportare que podrías actualizar la lista con los enlaces de otros distribuidores de libros con rebajas u ofertas, por ejemplo los mismos libros de amazon están en http://www.bookdepository.com, donde he comprado, y con muy buenas rebajas.
    También seria bueno poner el precio promedio de cada libro en versión impresa o eBook.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.