
The Secret Life of Programs
Jon Steinhart
- Editorial
- No Starch Press
- Año
- 2019
- Páginas
- ~504
- Nivel
- Básico
De qué trata
Manual divulgativo de arquitectura y fundamentos de sistemas escrito por el experimentado ingeniero Jon Steinhart y publicado por No Starch Press. Está orientado a desarrolladores principiantes e intermedios que ya dominan algún lenguaje de programación de alto nivel (como JavaScript, Python o Java) pero no han cursado una carrera tradicional en ciencias de la computación, con el propósito de revelarles los mecanismos invisibles que determinan la velocidad, la fiabilidad y el comportamiento de sus programas.
La obra desglosa con gran detalle la codificación binaria de números enteros, aritmética en complemento a dos, punto flotante bajo el estándar IEEE 754 y formatos de caracteres como ASCII y Unicode; la lógica combinacional y secuencial a nivel de transistores, compuertas y biestables (flip-flops); la anatomía de una computadora, incluyendo unidades aritmético-lógicas (ALU), registros de memoria y buses; la interacción entre compiladores, intérpretes, ensambladores y máquinas virtuales para transformar código fuente en instrucciones máquina; la arquitectura interna de los navegadores web modernos; problemas habituales en la programación concurrente como condiciones de carrera y bloqueos mutuos (deadlocks); así como nociones básicas de criptografía, seguridad y fiabilidad del software.
El planteamiento del libro es predominantemente conceptual y analítico, prescindiendo de problemas de examen o proyectos de programación continuados, y valiéndose de diagramas esquemáticos claros y pequeños fragmentos de código ilustrativos (en su mayoría en C y pseudocódigo). Su mayor aportación consiste en unir disciplinas que suelen estudiarse aisladas, otorgando al programador el criterio técnico necesario para anticipar cuellos de botella y comprender qué sucede en la máquina tras cada línea de código; no obstante, quien busque un manual práctico guiado con tareas de codificación paso a paso deberá complementar su lectura con proyectos personales.
- Arquitectura de computadoras
- Representación binaria
- Lógica digital
- Compiladores y ensambladores
- Gestión de memoria
- Concurrencia y deadlocks
- Seguridad informática
- Optimización de software
- Navegadores web
- Sistemas operativos
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

