¿El arte de la programación de computadoras cuenta como un libro o varios?
David Thornley
2
@David Creo que técnicamente es un libro en varios volúmenes.
Paddyslacker
Respuestas:
69
Código completo por Steve McConnell. Ni siquiera creo que necesite explicación. Es el libro definitivo sobre construcción de software. Increíblemente bien escrito y cubre todos los aspectos del lado práctico (programación) de la creación de software.
+1 por elegir la segunda edición también: tantas mejoras con respecto a la primera que es un libro diferente.
Paddyslacker
+1 - Tengo la traducción al italiano. Después de eso, nunca compré otro libro de programación o técnico traducido a mi idioma, ya que la traducción fue terrible. ¡Tuve que comprar la edición en inglés para entender algunas oraciones!
No puedo estar de acuerdo Es interesante que la palabra inmutable ni siquiera exista en este libro.
Jonas
2
Aunque conservo mi copia de la primera edición, creo que nunca volví a ella. La razón puede ser que llegó a obtener libros sobre cada uno de los temas que McConnell dice que son importantes.
+1 por ser realista. Este libro es relevante, fácil de leer, y probablemente el libro que muchos desarrolladores realmente pueden beneficiarse de la lectura. Demasiados otros en esta lista son difíciles y dudo que hayan sido leídos de principio a fin.
Spong
Esta respuesta se repite.
clrod
+1 - mi segundo libro de programación favorito detrás de Code Complete (y honestamente, a veces, es el primero)
Alan
36
La estructura e interpretación de los programas de computadora, también conocido como SICP
Cuando vi que SICP aún no figuraba en la lista, hice una mueca de dolor. :)
Por qué: No hay nada más que agregar a Norvig que alaba este libro como la mejor introducción a la informática jamás escrita. Pues bien, desde el por qué? se solicitó: SICP cubre los fundamentos del software de una manera satisfactoriamente profunda, planteando muchas perspectivas y preguntas sobre la naturaleza de la computación, algunas de las cuales siguen siendo cuestiones abiertas, mientras lleva al lector a ver más allá de los aspectos superficiales de decirle a la máquina qué hacer o cómo hacerlo.
Todos saludan al SICP. En mi opinión, debe ser el libro de texto para un curso obligatorio de programación introductoria en todas las escuelas de CS. Ciertamente eliminaría a las personas que realmente no pueden cortarlo en la programación (mucho menos CS) al tiempo que fortalece las habilidades de CS y programación para aquellos con potencial.
luis.espinal
1
@ luis.espinal SICP parece excesivo para la programación introductoria (a menos que estemos hablando de una escuela de posgrado). Hay una razón por la cual MIT abandonó el curso SICP como su curso de introducción ... Aún así, estoy de acuerdo en que es valioso leer este libro (y hacer los ejercicios ...), pero hacerlo en un semestre universitario estándar sería difícil incluso Un estudiante por encima del promedio. También la introducción con Java / Python / Ruby / C es más relevante para la fuerza laboral, cuanto antes se acostumbre a alguien a los lenguajes imperativos, mejor ... SICP es excelente después de eso para expandir sus horizontes. Pero podría ser desalentador como un curso de introducción ...
Cervo
1
@Cervo: es una preocupación válida, y parece una exageración, pero (y reconozco que es una posición completamente subjetiva), creo firmemente que proporciona una base más profunda que la que normalmente se encuentra con otros enfoques convencionales . El jurado todavía está con MIT ahora que se han cambiado a Python (algunas de las razones son que también tiene capacidades de FP y es muy adecuado para la computación científica y la robótica, que no es Scheme). No hay nada malo con Python (en realidad encanta el lenguaje), pero el jurado estaría fuera hasta que salga una versión Python'esque de SICP.
luis.espinal
2
@con't: es decir, sugiero que el SICP no se deba a Scheme, sino a su contenido pedagógico. En realidad, habría sugerido comenzar con el ensamblaje (la gente lo hizo con bastante éxito), pero no hay libros de ensamblaje (y probablemente nunca lo habrá) como el SICP. La más cercana sería la enciclopedia de Knuth (y eso sería una exageración). En cuanto a Java , he trabajado con ella durante 12 años, y no la recomendaría para enseñar ... hace el trabajo, pero es horrible. un PL. C, Python o Ruby son lenguajes mucho mejor diseñados.
luis.espinal
1
@con't - también, advertiría contra el uso de un lenguaje como herramienta pedagógica porque es convencional. La corriente principal cambia cada 2-3 años, y con Java, el lenguaje es simple, pero la tarea es aprender la JVM, las bibliotecas y la arquitectura. Diría que aprenda el desarrollo empresarial de Java y .NET en el cuarto año de la universidad. Y creo (lo sé, subjetivo ) que es importante proporcionar rigor desde el principio. Tenemos muchísimos programadores de apuntar y hacer clic que necesitaban un poco de rigor desde el principio. He ganado mucho dinero limpiando la basura que dejaron, pero aún así;)
Si tan solo pudiera leer un libro sobre programación, y después de que termine de leerlo, desaparece Y nunca veo otro libro por el resto del tiempo, sería este. Si tuviera que mantener el libro en mi estante para verlo más tarde ... Podría ser otro volumen más orientado a referencias. +1 de todos modos!
SingleNegationElimination
Disfruté este libro y lo leí hasta el final. Sin embargo, gran parte del material se aplica solo a proyectos a gran escala con cientos o incluso miles o personas trabajando en él como un sistema operativo; ya que esto es de lo que él saca su experiencia. Pensé que Code Complete era mucho más útil en términos de conocimiento que podía usar todos los días y que se aplicaba a mí.
¡Tuvimos la cuarta edición pero este es un gran libro sobre algoritmos!
Chris
@ Chris: No creo que haya una cuarta edición. La tercera edición es de septiembre de 2009, por lo que es nueva.
Jonas
Errr, segunda edición con la tapa verde.
Chris
Este es el libro de texto requerido para mi clase este término. ¡Me alegra que esté en la lista aquí, y que tenga una calificación tan alta en la pregunta SO original!
Este es el libro para leer sobre diseño y arquitectura de OOP. Los patrones son buenos cuando se usan correctamente, pero creo que el valor real de este libro es que le brinda una caja de herramientas de ideas para usar al diseñar.
Acabo de contar mis libros hoy. 23 de ellos. Depende de lo que estoy trabajando. Supongo que la respuesta intemporal es "lenguaje C", por Kernighan y Ritchie .
Contiene muchos buenos consejos sobre cómo obtener una base de código existente bajo prueba y manejable, la mayoría de los cuales no conocía hasta que leí este libro. Una lectura obligada, incluso si el código heredado con el que está trabajando es su propio código que escribió ayer.
No estoy seguro de que esto califique como "1 libro" (a menos que realmente se
refiera a
Tengo toda su serie, pero me conformaría con el Volumen 1. (Mi primera clase de informática se enseñó de esto en 1967. No ha tenido precio). "Conoce tus estructuras de datos".
Ira Baxter
15
Los libros imprescindibles de Java:
Java efectivo por Josh Bloch
Concurrencia de Java en la práctica Por Brian Goetz, et. Alabama.
¡Decir ah! ¡Esta fue mi elección en la lista de libros no relacionados con la programación! ¿Supongo que esto lo hace inclasificable?
Paddyslacker
Realmente me gustó este libro, fue muy recomendado por mi profesor de Teoría de la Computación en UW Madison, me ayudó mucho al tratar de entender de qué diablos estaba hablando.
Peter Turner el
@Paddyslacker, GEB en realidad pasa bastante tiempo hablando de computabilidad y varios conceptos de informática.
5
El programador pragmático: de oficial a maestro (Andrew Hunt y David Thomas)
Getting Things Done (David Allen) te enseña cómo lidiar con las miles de pequeñas tareas que debes realizar en tu trabajo diario como desarrollador de software. Aunque no está específicamente dirigido a los desarrolladores, definitivamente es una ayuda invaluable, ya que el desarrollo de software generalmente involucra una gran cantidad de pequeñas tareas que deben realizarse de manera prioritaria. Por ejemplo: qué nuevas características implementar, qué errores corregir, qué partes del código refactorizar, qué partes del código deben descansar o volver a probar, etc.
Una lectura obligada para programadores en tiempo real: incluso si la información específica del procesador está anticuada, la mentalidad es invaluable.
¿Cuenta un iPad? Me gustaría decir que mi número 1 en mi estantería sería un navegador web y la capacidad de buscar. La API en línea y las referencias son el mejor lugar y dependería de mi conjunto de proyectos actual.
No, no lo hace. Vea el comentario sobre un Kindle arriba. Dicho esto, me encanta el iPad de todos modos. Puede ser un recurso valioso, pero aún no es un libro real. +1, estoy de humor fanboy. :)
Tenemos demasiados desarrolladores "OO" que todavía no saben qué es un objeto o una clase o para qué sirve; no sé qué aspecto tiene una buena programación OO, procesal, modular y estructurada; y de alguna manera logran improvisar código pseudoprocesador mal hecho junto con las clases.
Este libro (más algunos de los años 70 sobre diseño estructurado) ayudaría en gran medida a estas pobres almas a comprender cómo debería ser la buena orientación de los objetos.
Además, lo más probable es que si me viera obligado a elegir un libro y un libro solo al lado de este, no elegiría un libro específico para la tecnología .
Es uno de los pocos libros de programación que he guardado cuando comencé a programar. Solía prestar esto mucho a las personas que estaban comenzando. Ahora, no tanto, ya que C ya no es el primer lenguaje de programación de muchas personas. Hace un trabajo maravilloso al describir lo que está sucediendo detrás de escena y sus descripciones sobre los indicadores aportan claridad real a lo que de otra manera es un tema muy confuso para muchos.
En realidad no me gustó el libro de Jon. La información era buena, pero había tanto "oh, esto es 10 capítulos importantes a partir de ahora" en el libro que se sintió muy mal distribuido.
Steven Evers
2
Tenga en cuenta que hay una segunda edición, que es una actualización de la primera y también cubre C # 4.
Grant Palin
1
Diseño de Objetos: Roles, Responsabilidad y Colaboraciones
Este es, con mucho, mi libro de programación favorito (incluso si no depende del idioma). En mi humilde opinión, es el libro que mejor presenta el caso sobre cómo diseñar objetos que se relacionan con sus primos / hermanos / vecinos. A debe tener en cualquier estantería de programador serio.
Respuestas:
Código completo por Steve McConnell. Ni siquiera creo que necesite explicación. Es el libro definitivo sobre construcción de software. Increíblemente bien escrito y cubre todos los aspectos del lado práctico (programación) de la creación de software.
fuente
Fácil.
fuente
La estructura e interpretación de los programas de computadora, también conocido como SICP
Cuando vi que SICP aún no figuraba en la lista, hice una mueca de dolor. :)
Por qué: No hay nada más que agregar a Norvig que alaba este libro como la mejor introducción a la informática jamás escrita. Pues bien, desde el por qué? se solicitó: SICP cubre los fundamentos del software de una manera satisfactoriamente profunda, planteando muchas perspectivas y preguntas sobre la naturaleza de la computación, algunas de las cuales siguen siendo cuestiones abiertas, mientras lleva al lector a ver más allá de los aspectos superficiales de decirle a la máquina qué hacer o cómo hacerlo.
texto alternativo http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg
Haga clic en la imagen para acceder al texto gratuito en línea . También puede encontrar fácilmente las conferencias en video de los autores , completadas con colores de estilo de los años 80 y ropa no menos.
fuente
Vale la pena mencionar:
El mes mítico del hombre
fuente
Introducción a los algoritmos
fuente
Patrones de diseño: elementos de software orientado a objetos reutilizables
Este es el libro para leer sobre diseño y arquitectura de OOP. Los patrones son buenos cuando se usan correctamente, pero creo que el valor real de este libro es que le brinda una caja de herramientas de ideas para usar al diseñar.
fuente
Código limpio de Robert C. Martin
Los lenguajes, los marcos y las metodologías van y vienen, pero sospecho que muchas ideas en este libro son para siempre.
fuente
Refactorización: mejora del diseño del código existente
fuente
Acabo de contar mis libros hoy. 23 de ellos. Depende de lo que estoy trabajando. Supongo que la respuesta intemporal es "lenguaje C", por Kernighan y Ritchie .
fuente
Trabajando efectivamente con Legacy Code por Michael Feathers.
Contiene muchos buenos consejos sobre cómo obtener una base de código existente bajo prueba y manejable, la mayoría de los cuales no conocía hasta que leí este libro. Una lectura obligada, incluso si el código heredado con el que está trabajando es su propio código que escribió ayer.
fuente
El arte de la programación de computadoras por Donald Knuth
fuente
Los libros imprescindibles de Java:
Java efectivo por Josh Bloch
Concurrencia de Java en la práctica Por Brian Goetz, et. Alabama.
Java Puzzlers Por Josh Bloch, Neal Gafter
fuente
Codificadores en el trabajo de Peter Seibel
Interesante e inspirador, muy recomendable.
fuente
Gödel, Escher, Bach.
!
fuente
El programador pragmático: de oficial a maestro (Andrew Hunt y David Thomas)
fuente
Getting Things Done (David Allen) te enseña cómo lidiar con las miles de pequeñas tareas que debes realizar en tu trabajo diario como desarrollador de software. Aunque no está específicamente dirigido a los desarrolladores, definitivamente es una ayuda invaluable, ya que el desarrollo de software generalmente involucra una gran cantidad de pequeñas tareas que deben realizarse de manera prioritaria. Por ejemplo: qué nuevas características implementar, qué errores corregir, qué partes del código refactorizar, qué partes del código deben descansar o volver a probar, etc.
fuente
El lenguaje de programación C ++ por Bjarne Stroustrup
fuente
Windows a través de C / C ++, Jeffrey Richter
fuente
El Zen de la optimización del código por Michael Abrash
Una lectura obligada para programadores en tiempo real: incluso si la información específica del procesador está anticuada, la mentalidad es invaluable.
fuente
¿Cuenta un iPad? Me gustaría decir que mi número 1 en mi estantería sería un navegador web y la capacidad de buscar. La API en línea y las referencias son el mejor lugar y dependería de mi conjunto de proyectos actual.
fuente
Patrones de diseño en Ruby:
fuente
"Las trampas del desarrollo orientado a objetos" de Bruce F. Webster
Tenemos demasiados desarrolladores "OO" que todavía no saben qué es un objeto o una clase o para qué sirve; no sé qué aspecto tiene una buena programación OO, procesal, modular y estructurada; y de alguna manera logran improvisar código pseudoprocesador mal hecho junto con las clases.
Este libro (más algunos de los años 70 sobre diseño estructurado) ayudaría en gran medida a estas pobres almas a comprender cómo debería ser la buena orientación de los objetos.
Además, lo más probable es que si me viera obligado a elegir un libro y un libro solo al lado de este, no elegiría un libro específico para la tecnología .
fuente
Es uno de los pocos libros de programación que he guardado cuando comencé a programar. Solía prestar esto mucho a las personas que estaban comenzando. Ahora, no tanto, ya que C ya no es el primer lenguaje de programación de muchas personas. Hace un trabajo maravilloso al describir lo que está sucediendo detrás de escena y sus descripciones sobre los indicadores aportan claridad real a lo que de otra manera es un tema muy confuso para muchos.
fuente
Jon skeet "c # en profundidad"
fuente
Diseño de Objetos: Roles, Responsabilidad y Colaboraciones
Este es, con mucho, mi libro de programación favorito (incluso si no depende del idioma). En mi humilde opinión, es el libro que mejor presenta el caso sobre cómo diseñar objetos que se relacionan con sus primos / hermanos / vecinos. A debe tener en cualquier estantería de programador serio.
fuente
Uno de mis libros más queridos;
Proceso de pensamiento orientado a objetos por Matt Weisfeld
fuente