Beste svaret
Definitivt bruk SICP, hvis du er i stand til utfordringen. Du kan stat med SICP når du ikke vet noe om programmering i det hele tatt, fordi det starter fra de første prinsippene, men det krever litt matematikk, ikke mye, men noe. Forfatterne har et vakkert klart språk for å beskrive konsepter og ideer.
Jeg plukket opp SICP da jeg allerede var ute av universitetet og syntes det fortsatt var en stor opplysning. Jeg kan til og med si at dette er boken som har lært meg mest ut av alle bøker jeg har lest, selv om jeg ikke en gang har fullført den enda. Jeg anbefaler at du setter opp SICP-øvelsene dine ved å bruke for eksempel Rackets SICP-språk.
Svar
Ja, absolutt, bestemt ja.
SICP er ikke en bok om dataprogrammering, og det er heller ikke en bok om software engineering, OOP, eller noen av de andre gizmos og doodads. SICP handler om datavitenskap: å forstå datamaskinen som en abstrakt maskin som brukes til å manipulere informasjon.
I kapittel ett introduserte du Scheme, et språk opprettet av en av forfatterne. Du har vist hvordan strømmen av kontroll blir modifisert og administrert i et stort program gjennom beregning i et leksikalt inneholdt miljø AKA subrutine. Boken guider deg gjennom begge de viktigste måtene subrutiner kan implementeres på, og forklarer manglene og nytteverdien til begge.
I kapittel to lærer du om å strukturere data og bygge nye betydninger for rådata fra før. eksisterende datatyper. Du har vist kraften til symbolsk manipulasjon på forskjellige steder som datamaskinalgebra-systemer og Huffman-kodende trær.
Kapittel tre er det mest grunnleggende av alle kapitler. I kapittel tre lærer du om oppdrag og kraften til mutasjonsvariabler. De tidligere beregningsmodellene som er diskutert i boka, utvides nå radikalt for å imøtekomme språkets evne til å opprettholde og påvirke tilstand.
I kapittel fire ble du introdusert for en av de mest strålende ideer i datavitenskapens historie: LISP-makroen og homoiconiciteten til Scheme-programmer. I motsetning til Cs erstatningsmakroer, lar LISP-makroer deg manipulere den grunnleggende strukturen til programmets abstrakte syntaks-tre på kjøretid, og lar deg implementere nye programmeringsparadigmer i LISP.
Det siste kapitlet tar en helt annen tilnærming, og behandler datamaskinen som en registermaskin. Du har vist hvordan en LISP-kompilator ikke er forskjellig fra noen av Scheme-programmene du har sett, og så antydet forestillingen om universalitet. Til slutt gikk du gjennom å lage en ekte LISP-kompilator.
Denne boken var fantastisk. Den endret tankegangen min fra informatikk betyr å fortelle en datamaskin hvordan jeg skal skrive ut tall på skjermen til informatikk betyr å forstå handelen offs av forskjellige abstraksjoner og hvordan du bruker dem riktig.
tl; dr Les absolutt denne boka. Hvis du ikke liker den, vant du sannsynligvis » ikke nyt CS.