Nota: Parece que mucha gente ha respondido a esto, y ha tratado de ir en gran medida incluyendo libros de muchos subcampos. No creo que esto sea justo. Esta pregunta pide los mejores libros de informática. Muchos subcampos aún no tienen libros asombrosos escritos sobre ellos. En esta respuesta, me gustaría dar algunos ejemplos de libros que he leído que sin lugar a dudas eliminaron a la competencia del agua. Estos son libros que me convencieron de amar temas que antes no conocía. Estos son libros que llevo conmigo cada vez que viajo.
A continuación se enumeran estos libros aproximadamente en el orden en que los aprecio más:
- Representación basada en la física (PBRT) por Pharr y Humphreys
Este libro es impresionante. Sus gráficos son todos memorables y cada página hace que quieras escribir un trazador de rayos perfecto. Además de eso, utiliza la programación alfabetizada para anotar el código, lo que hace que el libro no sea un libro de códigos, sino un libro de explicaciones. Este es también uno de los libros más completos sobre el tema. Pasa de no saber ningún álgebra lineal a usar cálculo multivariable y teoría de probabilidades para definir BRDF y examinar la ecuación de representación. Además de eso, se envía con código fuente abierto para jugar.
- Teoría de las funciones recursivas y la computabilidad efectiva por Hartley Rogers, Jr.
Este libro no es una lectura trivial y, a menudo, no es la mejor introducción al tema, ¿por qué lo he incluido? Es un poco como sostener el primer telescopio reflector, y darse cuenta de que todavía puedes ver todo lo que el Hubble puede ver con él. Este libro es como tratar de leer la versión latina de principia .
- ¿Cuáles son algunos buenos recursos gratuitos para dominar las escalas de blues para el saxofón alto?
- ¿Dónde puedo aprender Array, estructura y punteros desde el nivel básico hasta el avanzado (lenguaje C)? yo
- ¿Cómo se puede aprender Hadoop, Pig, Hive, Cassandra y MongoDB? ¿Cuáles son los mejores recursos?
- ¿Hay libros o recursos en línea muy buenos para aprender sobre las pasarelas de pago y cómo fluye el dinero dentro de los bancos?
- ¿Cuáles son algunos buenos recursos en línea para aprender Excel avanzado, VBA, SQL y R para ciencias actuariales?
- Gödel, Escher, Bach por Douglas R. Hofstadter
Nuevamente, dado que este no es exactamente un libro de informática, puede que se pregunte por qué está aquí. Se afirma que este es realmente un libro sobre psicología y ninguno de los autores son científicos informáticos. Sin embargo, con un diálogo divertido y aleatorio, te presenta los conceptos de máquinas computacionales, sistemas de sustitución, terminaciones, gramáticas, recursión, lógica formal, análisis matemático y más, sin que te des cuenta de que realmente estás aprendiendo ciencias de la computación. Después de todo, ¿qué es la mente sino una computadora compleja? Es una lectura muy divertida y profunda.
- Hacking: El arte de la explotación. por John Erickson
Este libro evita que se convierta en un manual de referencia para el ensamblaje de x86 al evitar que los aspirantes a hackers adolescentes se conviertan en niños de guiones. Introduce la programación a nivel de sistemas en casi la misma profundidad que el libro de texto 15213 de CMU, CS: APP2e, Bryant y O’Hallaron, sin aburrir al lector ni perder de vista la búsqueda de objetivos y parchear las hazañas en las computadoras. Después de todo, ¿quién aprende a ensamblar por primera vez para escribir un compilador, kernel o controlador? Lo aprendes porque quieres romper algo o arreglar algo.
- Tipos y lenguajes de programación por Benjamin C. Pierce
Este sigue siendo el único libro sobre teoría de tipos escrito para un principiante en el tema que te enseña lo suficiente como para tener una comprensión básica de los respaldos teóricos del sistema de tipos de Java moderno. No es que me guste Java o que esto es todo lo que enseña. Le proporciona los conceptos básicos del cálculo lambda y los sistemas tipográficos hasta el punto en que puede comprender el lenguaje de programación ML . Está tan lleno de ejemplos e historia de fondo y notas de orientación que puede leerlo como un libro de cuentos, pero aún así está organizado y presentado tan bien que todavía lo uso como referencia en mi investigación diaria.
- Introducción a los algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Este libro es pesado. Literalmente. Escatima en ningún análisis e introduce cada algoritmo y estructura de datos que probablemente necesitará en sus primeros 5 años de programación. Sin embargo, es bastante difícil enseñar el tema de los algoritmos en un libro de texto sin convertirlo en una lista de algoritmos. Realmente no sé de un libro completo que haga esto todavía. Nombraría The Art of Computer Programming de Knuth, pero Assembly es simplemente poner el lenguaje absolutamente incorrecto para enseñar algoritmos.