Я думаю, что « Структура и интерпретация компьютерных программ» - отличная книга для чтения. Тем не менее, есть несколько проблем с этим.
Самая большая проблема в моем опыте в том , что, в то время как книга не требует абсолютно никаких знаний в области программирования, и направлена на полные новичок, она будет направлена на полные новичок , которые учатся в MIT . И так, в то время как она не предполагает каких - либо знаний в области программирования, он делает предположить , совсем немного области знаний, например , в области электротехники, физики и математики. Примечание: они не имеют никакого отношения к изучаемым концепциям , они просто необходимы для понимания упражнений и примеров .
Более великие люди, чем я, объяснили это намного лучше в умно озаглавленной статье «Структура и интерпретация учебного плана по информатике» . К счастью, они не просто нытики, они вместо этого написали свою собственную книгу: Как разрабатывать программы . Если вы думаете о чтении SICP, вы можете сначала прочитать HtDP: он охватывает практически то же основание, что и SICP, но предполагает только знание предметной области среднего школьного уровня. (На самом деле, это написано, чтобы учить детей средней школы.)
После того, как вы закончили HtDP, вы все еще можете вернуться и прочитать SICP, поскольку теперь некоторые недостающие знания предметной области больше не будут столь вредными, потому что вы уже видели эту концепцию раньше.
Примечание: есть черновик для второго издания HtDP , который вы можете прочитать вместо первого издания. Материал об императивном программировании был удален и будет описан во еще не написанном втором томе « Как проектировать компоненты» , но вы можете взять их либо из первого издания, либо из SICP, либо из обоих.