Paras vastaus
Käytä ehdottomasti SICP, jos vastaat haasteeseen. Voit tilata SICP: llä, kun et tiedä mitään ohjelmoinnista ollenkaan, koska se alkaa ensimmäisistä periaatteista, mutta se vaatii kuitenkin matematiikkaa, ei paljon, mutta joitain. Kirjoittajilla on kauniisti selkeä kieli käsitteiden ja ideoiden kuvaamiseen.
Otin SICP: n jo yliopiston ulkopuolella ja huomasin sen olevan edelleen suuri valaistuminen. Voisin jopa sanoa, että tämä on kirja, joka on opettanut minulle eniten kaikista luetuista kirjoista, vaikka en ole vielä edes viimeistellyt sitä. Suosittelen, että asetat SICP-harjoituksesi esimerkiksi Racketin SICP-kielellä.
Vastaa
Kyllä, ehdottomasti, ehdottomasti kyllä.
SICP ei ole kirja tietokoneohjelmoinnista, eikä myöskään kirja ohjelmistotekniikasta, OOP: sta tai mistään muusta gizmosista ja doodadista. SICP on tietojenkäsittelytieteestä: Tietokoneen ymmärtäminen abstraktina koneena, jota käytetään tietojen manipulointiin.
Ensimmäisessä luvussa tutustut Schemeen, jonkun kirjoittajan luomaan kieleen. Näytät kuinka ohjausvirtaa muokataan ja hallitaan suuressa ohjelmassa laskennan avulla leksikaalisesti suljetussa ympäristössä AKA-alirutiini. Kirja opastaa molemmat pääohjelmat alirutiinien toteuttamisessa ja selittää molempien puutteet ja hyödyllisyyden.
Luvussa 2 opit tietojen jäsentämisestä ja uusien merkitysten rakentamisesta raakatiedoille ennakkoon olemassa olevat tietotyypit. Olet osoittanut symbolisen manipuloinnin voimaa eri paikoissa, kuten tietokonealgebrajärjestelmissä ja Huffmanin koodaavissa puissa.
Luku 3 on kaikista luvuista perustavanlaatuisin. Luvussa 3 opit tehtävistä ja niiden voimasta. muuttuvia muuttujia. Aikaisempia kirjan laskentamalleja on nyt laajennettu radikaalisti vastaamaan kielen kykyä ylläpitää ja vaikuttaa tilaan.
Luvussa 4 esitellään yksi loistavimmista ideoita tietojenkäsittelytieteen historiassa: LISP-makro ja Scheme-ohjelmien homoikoonisuus. Toisin kuin C: n korvausmakrot, LISP-makrojen avulla voit manipuloida ohjelman abstraktin syntaksipuun perusrakennetta ajon aikana ja sallia uusien ohjelmointiparadigmien toteuttamisen LISP: ssä.
Viimeinen luku vie täysin erilainen lähestymistapa ja kohtelee tietokonetta rekisterikoneena. Näytät, kuinka LISP-kääntäjä ei eroa mistä tahansa näkemästäsi Scheme-ohjelmasta, ja sitten käsite universaalisuudesta, johon viitataan. Lopuksi olet käynyt läpi tekemällä todellisen LISP-kääntäjän.
Tämä kirja oli hämmästyttävä; se muutti ajatteluni tietojenkäsittelytieteen tarkoittaen sitä, että kerroin tietokoneelle, kuinka numeroita tulostetaan ruudulle, tietojenkäsittelytietoon, joka tarkoittaa kaupan ymmärtämistä. erilaisten abstraktien poikkeamat ja niiden käyttäminen oikein.
tl; dr Lue ehdottomasti tämä kirja. Jos et pidä siitä, olet todennäköisesti voittanut ” nauti CS: stä.