Bedste svar
Brug bestemt SICP, hvis du er klar til udfordringen. Du kan stat med SICP, når du slet ikke ved noget om programmering, fordi det starter fra de første principper, men det kræver dog matematik, ikke meget, men noget. Forfatterne har et smukt klart sprog til at beskrive begreber og ideer.
Jeg hentede SICP, da jeg allerede var ude af universitetet og fandt, at det stadig var en stor oplysning. Jeg kan endda sige, at dette er den bog, der har lært mig mest ud af alle bøger, jeg læser, selvom jeg ikke engang er færdig med den endnu. Jeg anbefaler, at du konfigurerer dine SICP-øvelser ved hjælp af for eksempel Rackets SICP-sprog.
Svar
Ja, absolut, bestemt ja.
SICP er ikke en bog om computerprogrammering, og det er heller ikke en bog om software engineering, OOP eller nogen af de andre gizmos og doodads. SICP handler om datalogi: forståelse af computeren som en abstrakt maskine, der bruges til at manipulere information.
I kapitel 1 blev du introduceret til Scheme, et sprog oprettet af en af forfatterne. Du har vist hvordan strømmen af kontrol ændres og styres i et stort program gennem beregning i et leksikalt indeholdt miljø AKA subrutine. Bogen guider dig gennem begge de vigtigste måder, hvorpå subrutiner kan implementeres, og forklarer manglerne og nytten af begge.
I kapitel to lærer du om strukturering af data og opbygning af nye betydninger for rådata fra før eksisterende datatyper. Du har vist styrken ved symbolsk manipulation forskellige steder som computeralgebra-systemer og Huffman-kodende træer.
Kapitel tre er det mest fundamentale af alle kapitler. I kapitel tre lærer du om opgave og kraften i mutationsvariabler. De tidligere beregningsmodeller, der er diskuteret i bogen, udvides nu radikalt for at imødekomme sprogets evne til at opretholde og påvirke tilstanden. ideer i datalogiets historie: LISP-makroen og homoiconiciteten af Scheme-programmer. I modsætning til Cs substitutionsmakroer giver LISP-makroer dig mulighed for at manipulere den grundlæggende struktur for programmets abstrakte syntaks-træ på kørselstid, og giver dig mulighed for at implementere nye programmeringsparadigmer i LISP.
Det sidste kapitel tager en helt anden tilgang og behandler computeren som en registermaskine. Du har vist, hvordan en LISP-kompilator ikke adskiller sig fra nogen af de Scheme-programmer, du har set, og derefter henviste begrebet universalitet til. Endelig gik du igennem og lavede en rigtig LISP-kompilator.
Denne bog var forbløffende; den ændrede min tankegang fra datalogi betyder at fortælle en computer hvordan man udskriver tal på skærmen til datalogi betyder forståelse af handel offs for forskellige abstraktioner, og hvordan man bruger dem korrekt.
tl; dr Læs denne bog absolut. Hvis du ikke kan lide den, vandt du sandsynligvis ” nyd ikke CS.