¿Cuáles son los 10 mejores libros que todo informático debería leer?

Voy a omitir a Knuth y a los otros sospechosos habituales, ya que están bien cubiertos por otros, e iré con algunos libros que son muy útiles para leer, pero tal vez en la “periferia” …

  • Los elementos del estilo de programación.
  • El Mes del Hombre Mítico: si alguna vez va a dirigir un equipo de ingenieros de software, y si es un “científico informático” de cualquier tipo, lo hará en algún momento, debería leer e internalizar este libro.
  • Zen y el arte del mantenimiento de motocicletas, solo porque sí.
  • Cualquiera de los libros de Vernor Vinge, particularmente A Fire Upon the Deep y Rainbows End.
  • Algunas de las mejores novelas de Cyberpunk, como ¿Sueñan los androides con ovejas eléctricas? (el libro detrás de la película Blade Runner) y Neuromancer. Y vale la pena leer todo el inventario de Philip K. Dick …
  • Donde los magos se quedan despiertos hasta tarde: los orígenes de Internet. Porque es bueno de dónde provienen todas estas cosas. Otro buen libro de este tipo: Historia de Internet: una cronología, 1843 hasta el presente.
  • La edad del diamante. Sí, mi lista está llena de ciencia ficción basada en computadora, pero los escritores de ciencia ficción han sido mucho más profundos acerca de dónde las computadoras y las redes de computadoras están tomando el mundo que casi cualquier otra persona. Y si te gusta la informática porque quieres cambiar el mundo, quizás quieras ver lo que otros que han pensado profundamente en el tema imaginan sobre los “cambios”.
  • Ok, qué diablos, agreguemos El arte de la programación de computadoras de nuestro viejo amigo Knuth después de todo. Pero asegúrese de leerlo, no lo coloque en el estante sobre su escritorio como una colección de trofeos.
  • Uno que es de mi campo (aunque es una colección de artículos clásicos, no un “libro”): Lecturas en sistemas de bases de datos, 5ª edición. Y uno de Mr. Databases: http://codeblab.com/wp-content/u….

Ok, tal vez no diez puntos, pero mucho más de diez libros allí there

  1. Computers Are Your Future Complete (12th Edition) 12th Edition por Catherine Laberta: Una buena introducción a las computadoras.
  2. Programación orientada a objetos en C ++ (4ª edición) por Robert Lafore: para aprender a programar en C ++.
  3. Estructuras de datos y algoritmos en C ++ 4th Edition por Adam Drozdek: para aprender cómo crear estructuras de datos y cómo usarlas.
  4. Estructuras de datos y análisis de algoritmos en C ++ 4a edición por Mark A. Weiss: para aprender sobre las estructuras de datos y los algoritmos utilizados en su construcción, en realidad este libro, y el de Adam Drozdek que discute muchos temas comunes, pero creo que el de Adam es más fuerte .
  5. Introducción a los algoritmos, 3ra edición (MIT Press) 3ra edición por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest: para aprender más y más sobre algoritmos, cómo construirlos, cómo estudiarlos, diferentes técnicas y algoritmos .
  6. El Algorithm Design Manual 2nd Edition de Steven S Skiena: es una muy buena referencia de algoritmos, creo que es más fuerte que CLRS.
  7. Organización y diseño de computadoras MIPS Edition, quinta edición: la interfaz de hardware / software (serie Morgan Kaufmann en arquitectura y diseño de computadoras) 5ta edición de David A. Patterson, John L. Hennessy: para aprender a construir un procesador, aprenda algunos ensamblajes y cómo procesa el procesador los comandos.
  8. Álgebra lineal y sus aplicaciones, Edición de libros a la carta más NUEVO MyMathLab con Pearson eText – Paquete de tarjeta de acceso (4ª edición) 4ª edición de David C. Lay: Para aprender los conceptos básicos de álgebra lineal necesarios en muchos campos de la informática.
  9. Procesamiento de imagen digital (3ra edición) 3ra edición por Rafael C.González, Richard E. Woods: para aprender los conceptos básicos del procesamiento de imágenes.
  10. Fundamentos del procesamiento digital de imágenes 1ª edición por Anil K. Jain: para aprender las matemáticas más allá del procesamiento de imágenes.
  11. Explicación de los patrones de diseño: una nueva perspectiva sobre el diseño orientado a objetos, 2da edición (Patrones de software) 2da edición por Alan Shalloway, James R. Trott: Para aprender nuevas metodologías para escribir código mantenible y mejor.
  12. Cálculo (2da edición) – Libro independiente 2da edición de William L. Briggs, Lyle Cochran, Bernard Gillett: Para aprender el cálculo necesario en diferentes áreas de las ciencias de la computación como el aprendizaje automático.
  13. Teoría de números elemental con programación 1ª edición por Marty Lewinter, Jeanine Meyer: Para aprender la teoría de números necesaria para la ciencia de la computación, diferentes campos de seguridad.
  14. Matemática discreta y sus aplicaciones 4ta edición por Kenneth H. Rosen: Aprender a pensar en matemáticas y le brinda algunos conocimientos matemáticos que son necesarios para construir su mente de programación y pensamiento lógico.
  15. Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition por Robert C. Martin: Para aprender a programar de una mejor manera, desde la perspectiva del análisis y el diseño.
  16. Introducción a la Teoría de la Computación 3ra Edición por Michael Sipser: Para aprender más sobre lo que se puede hacer por computadora, qué no se puede hacer y qué se puede hacer fácilmente y qué no, qué es NP, P, NP completo y otros cosas emocionantes
  17. Gráficos por computadora con Open GL (4ta edición) 4ta edición por Donald D. Hearn, M. Pauline Baker, Warren Carithers: Para aprender los gráficos por computadora utilizados en la creación de juegos y otras cosas divertidas.
  18. Probabilidad y estadísticas para ingenieros y científicos 4ta edición por Anthony J. Hayter: Para aprender la probabilidad y las estadísticas necesarias para cada informático, en diferentes especialidades como el aprendizaje automático.
  19. Java: Cómo programar, novena edición (Deitel) Novena edición de Paul Deitel, Harvey Deitel: para aprender a programar en Java.
  20. Ingeniería de un compilador, segunda edición, segunda edición de Keith Cooper, Linda Torczon: para aprender a crear un compilador y un lenguaje de programación.
  21. Lenguaje ensamblador para procesadores x86 (7ª edición) 7ª edición de Kip R. Irvine: para aprender a escribir código ensamblador y comprender mejor el ensamblaje.
  22. Fundamentos de las redes neuronales: arquitecturas, algoritmos y aplicaciones 1ª edición por Laurene V. Fausett: Aprender a crear redes neuronales en el proceso de aprendizaje automático.
  23. Cómo pensar como un matemático: un compañero de matemática de pregrado 1ª edición por el Dr. Kevin Houston: siempre y cuando las computadoras se basen en operaciones lógicas, debe saber cómo pensar lógica y matemáticamente, este libro puede ayudarlo a realizar esta tarea.
  24. Entrevista para descifrar la codificación: 189 preguntas y soluciones de programación 6.ª edición de Gayle Laakmann McDowell: para prepararse para la entrevista.
  25. 3D Math Primer for Graphics and Game Development, 2nd Edition 2nd Edition por Fletcher Dunn, Ian Parberry: para aprender las matemáticas necesarias para crear juegos.
  26. Deep Learning (serie Adaptive Computation and Machine Learning) de Ian Goodfellow, Yoshua Bengio, Aaron Courville: para aprender más y más sobre las redes neuronales.
  27. Ecuaciones diferenciales 4ta edición por Paul Blanchard, Robert L. Devaney, Glen R. Hall: Para aprender sobre las ecuaciones diferenciales, que se necesitan en diferentes áreas de las ciencias de la computación.
  28. Sistemas operativos: principios internos y principios de diseño (8ª edición) 8ª edición por William Stallings: para aprender a crear un sistema operativo.
  29. Introducción a Machine Learning (serie Adaptive Computation y Machine Learning) edición tercera edición de Ethem Alpaydin: un buen comienzo en aprendizaje automático y reconocimiento de patrones
  30. Introducción a la teoría de grafos (Dover Books on Mathematics) 2nd Edition por Richard J. Trudeau: Para aprender más sobre gráficos y diferentes algoritmos en ellos.
  31. Algoritmos desbloqueados (MIT Press) por Thomas H. Cormen: Esta puede ser una muy buena introducción a los algoritmos.
  32. Geometría computacional: Algoritmos y aplicaciones 3ra Edición por Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars: Para aprender a usar la computadora para manipular polígonos y formas geométricas.
  33. C ++ moderno efectivo: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14 1st Edition por Scott Meyers: Para aprender a usar C ++ 11 correctamente.
  34. Visión por computadora: algoritmos y aplicaciones (Textos en ciencias de la computación) Edición 2011 por Richard Szeliski: Para aprender mucho sobre la visión por computadora en el aprendizaje automático.

Hmm, la informática es un campo amplio, por lo que creo que la cuestión de “Top 10” es relativa, ya que depende del ángulo desde el que lo miramos.

Sin embargo, iré por

~ El arte perenne de la programación informática de Knuth

~ Venor Vinge’s Rainbow’s End

~ Programación C ++ orientada a objetos por Robert Lafore

~ Introducción a los algoritmos por Cormen et al.

~ Truss ‘Matemáticas discretas para informáticos

~ Organización y diseño de computadoras de Patterson y Hennessey

~ Trenzas doradas eternas de Hofstadster

~ Gráficos por computadora de Hughes

~ Introducción a la teoría de la computación por Michael Sipser

…y

~ Inteligencia artificial de Russell y Norvig.

  1. Knuth, el arte de la programación informática
  2. Brooks, el mes del hombre mítico
  3. DeMarco y Lister, Peopleware
  4. Kernighan y Pike, la práctica de la programación
  5. Weinberg, La psicología de la programación informática
  6. Bently, Programando Perlas
  7. Tanenbaum, sistemas operativos modernos
  8. Abelson y Sussman, Estructura e interpretación de programas de computadora
  9. Plauger, Programación a propósito
  10. Boehm, Economía de la Ingeniería del Software

Hay más que podría enumerar, pero querías diez. Algunos olvido que me patearé más tarde. Pero este es un buen comienzo. Algunos de estos pueden parecer viejos, pero el conocimiento es fundamental.

Mi voto va para Gödel, Escher, Bach de Douglas Hofstadter: una trenza dorada eterna

Una gran lectura en varios niveles; Las construcciones metafóricas empleadas junto con la capacidad de Hofstadter para contar una historia hacen que sea una gran lectura para cualquiera. Sin embargo, creo que el verdadero valor del libro es que demuestra un enfoque elegante para comunicar conceptos complejos y técnicos de una manera muy abstracta y universal. Creo que esta es una habilidad valiosa para cualquier persona en informática u otras ciencias para desarrollar.

  1. Las dos culturas de CP Snow
  2. Alicia en el país de las maravillas de Lewis Carroll y a través del espejo
  3. The Patternmaster de Octavia Butler, pero toda la serie Wild Seed
  4. El intuicionista de Colson Whitehead
  5. Historia de un pueblo de Howard Zinn de los Estados Unidos
  6. Las armas de destrucción matemática de Cathy O’Neill
  7. Nickel y Dimed de Barbara Ehrenreich : en (no) cómo sobrevivir en Estados Unidos
  8. La captura de Joseph Heller -22
  9. El cuento de la sirvienta de Margaret Atwood
  10. Halldor Laxness, The Atom Station

Veo a muchos informáticos de mente estrecha y estudiantes que se convierten en tecnolibertarios porque han tenido un cierto conjunto de experiencias y no reconocen la experiencia y el conocimiento de los demás (generalmente porque no saben sobre tales cosas). Estos libros pueden curar al naciente fanático de Ayn Rand.

Sí, esta lista es occidental / estadounidense. Soy consciente.

La informática cubre una amplia variedad de temas; Los conceptos básicos que necesitará están cubiertos en los siguientes diez libros, ordenados alfabéticamente.

  1. Inteligencia artificial: un enfoque moderno por Stuart J. Russell, Peter Norvig
  2. Compiladores: Principios, técnicas y herramientas por Alfred V. Aho, Ravi Sethi y Jeffrey D. Ullman
  3. Concepto de sistema de base de datos por Abraham Silberschatz, S. Sudarshan, Henry F. Korth
  4. Matemáticas discretas para informáticos por JK Truss
  5. Gödel, Escher, Bach: una eterna trenza dorada de Douglas Hofstadter
  6. Introducción a los algoritmos de Cormen, Leiserson, Rivest y Stein
  7. Introducción a la teoría de la computación por Michael Sipser
  8. Sistemas operativos modernos por Andrew S. Tanenbaum
  9. El mítico hombre-mes: ensayos sobre ingeniería de software por Frederick Brooks
  10. El programador pragmático: de oficial a maestro por Andy Hunt, Dave Thomas

Tenga en cuenta que leer los diez de estos de principio a fin, así como comprenderlos correctamente, no es tarea fácil. Recomiendo leerlos para obtener los conceptos básicos y luego usarlos como puntos de referencia en el futuro. Si está tomando un curso de ciencias de la computación, debe leer el libro correspondiente junto con su clase correspondiente. Sin embargo, los números 5 y 9 pueden leerse por separado.

¡Feliz lectura!

Rich Hickey publicó su lista, que creo que es bastante buena: Amazon.com: ¡Listmania!

No es un libro que debas leer por completo, pero un libro que definitivamente debes tener es “Introducción a los algoritmos” de Cormen, Leiserson, Rivest, Stein. Cualquiera que sea el problema algorítmico que tenga, encontrará una solución y su clase de complejidad.

Para tener una idea general del mundo en el que estás, puedes intentar:
Ganadores y perdedores: creadores y víctimas de la era de Internet por Kieran Levis.
El alma de una nueva máquina de Tracy Kidder (fuera de fecha para la tecnología pero interesante sobre la gente).

Encuentro particularmente esclarecedores los de la serie de libros de O’Reilly “Head First”, he leído los de C #, Ajax, Análisis y diseño orientado a objetos, Head Rush Ajax, Patrones de diseño, y planeo seguir leyendo los demás.

Creo que las respuestas a la pregunta “¿Cuál es el libro más influyente que todo programador debería leer?” ( http://stackoverflow.com/questio …) en stackoverflow ofrecerá mucha información útil.

La informática es un campo amplio con múltiples aspectos. Es una plataforma inevitable para el futuro del país. Como informático, surge el entusiasmo de explorar en profundidad este tema y le recomendamos los siguientes libros.

El pequeño intrigante de Friedman,
diseño de algoritmo por tardos,
el turing anotado por petzold,
Java efectivo por bloch,
estructuras de datos puramente funcionales de okasaki,
refactorizando por orden, donde los magos se quedan despiertos hasta tarde por Hafner,
los innovadores de issacson,
gráficos por computadora de hughes,
el diseño del algoritmo por skiena y
Matemáticas discretas en rosa.
En lugar de comprar a un costo mayor, puede buscar estos libros en MyPustak y obtenerlos con un cargo muy nominal.

Gracias.

1. EL ARTE DE LA PROGRAMACIÓN INFORMÁTICA por DONALD E. KNUTH.
2. EL LENGUAJE DE PROGRAMACIÓN C por BRIAN KERNIGHAN & DENNIS RITCHIE.