ノートの端の書き残し

UnityやらC#やら。設計が得意かもしれない。

計算機プログラムの構造と解釈、を読んでみた

計算機プログラムの構造と解釈

ja.wikipedia.org

Wikipediaに記事があるくらい有名な古典的名著です。古典ってちょっと読むの躊躇うところがあって、タイトルは聞いたことあるけど……な状態だったんですが、この本はネットで公開されているので無料で読めるんですよね。参考書は基本的にお買い得だとは思ってますが、無料パワーを借りて読んでみました。

ちなみに、公式の日本語訳は難しいと言われており、もっと自然に読めるようにと日本語訳をしてくださっている方がいらっしゃいまして、僕はそちらを利用させていただきました。本当に感謝しかないです。(知らない内容を英語で理解するのは本当に苦労しますし、誤読しては元も子も無いですからね……)

https://www.vocrf.net/docs_ja/jsicp.pdf

おすすめ?

正直なところ、現在の僕のこの本への理解度は30%も無いと思います。いや難しい。めちゃくちゃ難しいです。幸いにして自分はある程度の設計技術と、アルゴリズムとデータ構造の知識、アセンブリ言語の知識があるので、この本の各章で最終的にどこに向かおうとしているのかを想像しながら読むことができましたが、それが無ければ素直に読むだけでもかなりの時間を要するのではないかと思いました。

そんな状態ですが、評価としては、「めっちゃおススメ」です。どこかのタイミングで一度は読んでおくべきだと確信しています。少し古い本ではありますが、原理原則に近い物事というのは数十年程度では変わらないので、その点ではまだまだ現役と言って良いと感じました。

どんな本

「設計」「アルゴリズムとデータ構造」「コンパイラ」「アセンブリ言語」と言った、プログラミングに関わる大部分を網羅している本です。Lispという超シンプルな言語を使い、簡単な演算しか無い状態から、「今の知識ではこういうとき困る。それはこういう理由だからだ。そのため、次のような概念を導入する」といった具合に、何のために、どのような概念が必要なのか、を丁寧に解説していきます。具体的知識だけではなく、その本質を漏らさず解説しているところが本当に素晴らしいです。

雑記

正直、自分はタイトルから勝手に「アセンブリ言語」の本だと思い込んでいたんですが、特に序盤1,2章は設計本としてもとても価値が高いと感じました。 まだまだ完璧に理解したとは言い難いので、ふとした拍子に、「あの章ではもしかしてこういうことを主張していたのでは?」とか思って何度も読み返すことになりそうです。