いとこに聞く!SICPの良い所、悪い所

いとこに聞いたSICPの良い所。

  1. 抽象化について学べる
  2. たった2章でインタープリターとコンパイラを学べる
  3. Schemeのコードが短い
  4. メンテナンスの勉強になる

抽象化について学べる

前のエントリーに書きました。

たった2章でインタープリターとコンパイラを学べる

SICPでは4章がインタープリターで5章がコンパイラになっています。インタープリターやコンパイラはプログラミングの原理であるので、これがどのように動いているかをちゃんと分かっているのは、コーディングする上で重要なこと。たった1章で動作可能なインタープリターやコンパイラを作れるって、凄く低コストなことです。これを実現可能にするのは次の項目。

Schemeのコードが短い

重量級な概念を伝えるにはたくさんコードを書かないといけない。Schemeでは書くことが少ないし、抽象化もやりやすいのでコードが全般的に短いです。そのため、重量級なものも「1ページ内で」見通せる量で書けます。じゃないと確かにかったるいよね。

メンテナンスの勉強になる


SICPの問題の多くに含まれるパターン:

「こういう概念があって、これはこのような記述が出来る、これをこのようなケースにも対応出来るようにするにはどうすれば良いか」
このパターンの問題を解くときには、前に書いてあるコードを書き移して、変更していくことになります。すでにあるコードに処理を挟み込んで行くことでメンテナンスの練習になるらしいです。ちなみに僕は今1章が終わって2章の勉強中なのですが、あんまりそういう印象をもっていなかったのだけど、4章5章は結構そんな感じらしい。

悪い所

とっつきにくい。勉強会とかないとやれないよ。

いとこの参加した勉強会

いとこが参加したSICP勉強会は、毎月ある土曜に毎回8時間もかけてやっていたそうです。ひたすらSICPを音読し、問題にさしかかったらせーので問題を解いていたそう。僕が会社でやっている勉強会は、問題を解いてきて担当者が説明するというもので、毎回30分〜1時間で終わります。大分あっさりしているな。