La mejor respuesta
Definitivamente use SICP, si está preparado para el desafío. Puede comenzar con SICP cuando no sabe nada de programación, porque comienza desde los primeros principios, sin embargo, requiere algunas matemáticas, no muchas, pero algunas. Los autores tienen un lenguaje maravillosamente claro para describir conceptos e ideas.
Tomé SICP cuando ya estaba fuera de la universidad y encontré que todavía era una gran iluminación. Incluso podría decir que este es el libro que más me ha enseñado de todos los libros que leo, aunque aún no lo he terminado. Recomiendo configurar sus ejercicios SICP usando, por ejemplo, el lenguaje SICP de Racket.
Respuesta
Sí, absolutamente, definitivamente sí.
SICP no es un libro sobre programación de computadoras, ni es un libro sobre ingeniería de software, OOP o cualquiera de esos otros artilugios y adornos. SICP trata sobre la informática: entender la computadora como una máquina abstracta utilizada para manipular información.
En el capítulo uno, se le presenta a Scheme, un lenguaje creado por uno de los autores. Se le muestra cómo el flujo de control se modifica y gestiona en un gran programa mediante el cálculo en una subrutina AKA de entorno léxico contenido. El libro lo guía a través de las dos formas principales en que se pueden implementar las subrutinas y explica las deficiencias y la utilidad de ambas.
En el capítulo dos, aprenderá sobre la estructuración de datos y la construcción de nuevos significados para datos brutos de pre tipos de datos existentes. Se le muestra el poder de la manipulación simbólica en varios lugares como los sistemas de álgebra computarizada y los árboles de codificación de Huffman.
El capítulo tres es el más fundamental de todos los capítulos. En el capítulo tres, aprenderá sobre la asignación y el poder de variables mutantes. Los modelos anteriores de computación discutidos en el libro ahora se amplían radicalmente para acomodar la capacidad del lenguaje para mantener y afectar el estado.
En el capítulo cuatro, se le presenta uno de los más brillantes ideas en la historia de la informática: la macro LISP y la homoiconicidad de los programas de Scheme. A diferencia de las macros de sustitución de C, las macros LISP le permiten manipular la estructura básica del árbol de sintaxis abstracta del programa en tiempo de ejecución y le permiten implementar nuevos paradigmas de programación en LISP.
El capítulo final lleva un enfoque completamente diferente y trata a la computadora como una máquina de registro. Se le muestra cómo un compilador LISP no es diferente de cualquiera de los programas de Scheme que ha visto, y luego la noción de universalidad a la que se alude. Por último, le explicaron cómo crear un compilador LISP real.
Este libro fue increíble; cambió mi forma de pensar de la informática que significa decirle a una computadora cómo imprimir números en la pantalla a la informática que significa comprender el oficio de varias abstracciones y cómo usarlas correctamente.
tl; dr Absolutamente lee este libro. Si no te gusta, probablemente hayas ganado » disfruto CS.