Hay dos libros que recomendaría:
- Organización informática estructurada por Andrew Tanenbaum
- Código: El lenguaje oculto del hardware y software de la computadora por Charles Petzold
Escribí una reseña de Amazon para la primera, así que solo lo citaré aquí.
Un poco de experiencia sobre mí mismo: vengo de una formación en física con una experiencia significativa en programación de alto nivel, pero no una cantidad terrible de cosas de bajo nivel. Parece que este libro fue hecho para personas como yo, que tienen cierta apariencia de cómo funcionan las computadoras en general (tienen bits, los compiladores interpretan el código en algo que las máquinas saben, puertas lógicas, cosas básicas de matemáticas discretas).
- ¿Qué software de comercio electrónico es el mejor?
- ¿Qué software debo usar para hacer videos de YouTube con voz en off?
- ¿Existe una mejor alternativa a Sandboxie en Windows 8.1?
- ¿Cuáles son las mejores aplicaciones móviles para leer libros?
- ¿Cómo funcionan los elementos CSS 'flotante' y 'posición'?
Este libro aborda casi todos los niveles de lo que es una computadora. Después de leer esto, si la humanidad volviera a la era oscura, estarás lo suficientemente iluminado como para diseñar tu propia computadora rudimentaria desde cero. Primero le brinda una pequeña historia de la computación, luego le brinda una pequeña descripción de la estructura general de las computadoras. Luego comienza desde el nivel lógico discreto, va a la microarquitectura, el sistema operativo, el nivel de ensamblaje e incluso habla de computación paralela.
Mi única queja (y realmente, no es muy justo) es que no se detalla en algunas cosas. Por supuesto, digo que es injusto porque realmente lo es: este libro tiene alrededor de 750 páginas y cubre MUCHO material. No sería posible entrar en todo. Me hubiera gustado un enfoque más teórico, pero Tanenbaum parece preferir ejemplos de arquitecturas existentes, y supongo que eso funciona para algunas personas. En algunos casos, lo aprecié porque ayudó a poner los conceptos en términos concretos. El código fuente del programa IJVM fue brillante, y leer esas partes lo ayudó a ‘hacer clic’ conmigo (es más fácil para mí leer el código fuente para comprenderlo, especialmente al estudiar algoritmos y demás). Le gusta hacer muchas de estas cosas.
Dicho todo esto, creo que es una buena introducción a la arquitectura, e incluso a algunos sistemas operativos, compiladores y computación paralela realmente básicos, pero si realmente necesita saber alguna de estas cosas, creo que un libro más avanzado es un buen idea. Ciertamente, este libro ha preparado mi cerebro para manejar las cosas más difíciles. Ahora abordaré a Hennessy y Patterson.
Ese libro es una especie de libro de texto de introducción. El segundo libro es un libro de tipo ciencia popular, por lo que está escrito como una novela informativa. Se basa en la intuición y un poco de explicación gráfica para ayudar al lector a obtener una comprensión. Comienza con los fundamentos reales de la información y cómo podemos comunicarnos y calcular con ciertos pequeños sistemas y materiales. Es bueno si no tienes una gran experiencia técnica, o simplemente estás aprendiendo por diversión.