「計算機プログラムの構造と解釈(SICP)」を読み終えて
約半年をかけて計算機プログラムの構造と解釈(SICP)を読み終わりました。
(途中で、練習問題をスキップしたりしましたが・・・)
半年もかけたのでちょっとだけ振り返って見ます。
SICPを読む過程で得たもの
まずはSICPを読む過程で得たものからざっと列挙してみよう。
- 構文解析を理解し自前で実装できるようになった
- 字句解析を理解し自前で実装できるようになった
- ストリームを理解した
- 遅延評価を理解した
- 手続きが first class objectである言語での考え方を学んだ
- 型変換の導入の動機とその意味を理解した
- 手続きの抽象化の導入の動機と過程を学んだ
- 高階関数を使ったり書けるようになったりした
- クロージャを理解した
- Schemeを書けるようになった
- 再帰処理を自然に書けるようになった
- フルスクラッチでインタプリタを書けるようになった
- コンパイラを自前で書くことが出来そうだとの感触を得た
- SICP読み仲間
これだけではないのですが目立つものはこんな感じかな。
SICPを読みはじめたときの動機を振り返る
SICPを読み始めた理由に書いた動機を振り返ります。
- ときどき「関数型言語はすごいらしい」と聞こえてくる。でも何がすごいのか理解できない自分がいた。
- →関数型言語のすごさの一端を垣間見た。苦手意識はなくなり好きになった。
- 自分が尊敬するプログラマの多くがSICPを読んでいたり関数型言語を理解している。そして勉強することをすすめられる。
- →彼らと僕の力量の差は、SICPを読んでいるかどうかも一因だ。間違いない。
- 自分は大学などで情報系の学部ではなかったので、基礎が出来てないのではないかと常に不安だった。基礎がおろそかになっているせいで、いつか壁にぶつかるのではないか不安だった。
- →やっぱりSICPは基礎だったよ。20代のうちに読んでよかった。これで壁はなくなった(かも)
- 初心者から見た関数型言語のイメージである再帰処理をスラスラと書けないことに気づいていた。
- →再帰は普通に書けるようになった。
- 勉強してマスターしたときに今までの自分とまったく違う考え方になるかもしれないと期待している。
- →半年前の俺とは別人だぜ(?)
まとめ
結果として本当に読んで良かった、かけた時間に見合うだけのものは得られました。
もし大学生時代の自分が目の前にいたら、「だまされたと思って読め!」っていうでしょうね。
最後になりましたが、読む過程でたくさんの方々にアドバイスや手助けをいただきました、みなさま本当にありがとうございました。
計算機プログラムの構造と解釈
posted with amazlet on 06.05.31