@uents blog

Code wins arguments.

SICP 読書ノート#1 - 僕がSICPを読み始めた理由

先週から「計算機プログラムの構造と解釈」という本を読んでいます。超有名な本なので説明は不要かと思いますが:)

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

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

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

読み始めた理由を書いておかないと途中で挫折してしまいそうなので、ここに記録しておきます。

関数型言語の習得

  • 最近仕事でJavaScriptを使っているが、使えば使うほどCの皮をかぶったSchemeのように思えてくる
    • lambda式、ファーストクラスとしての関数、レキシカルスコープ、クロージャ
    • SICPを呼んでいる途中で知ったけど、Coders at WorkのBrendan Eichのインタビューでそういったくだりがある
  • JavaScriptから関数型言語の柔軟性、楽しさ、奥深さに気づくうちに、 その真髄を学ぶとすればSchemeから始めた方が良いのではと考えた

情報工学へのコンプレックス

  • 大学では工学部で機械系の学科に所属していたので、プログラミングも我流で学んだところが多いし、 そもそも計算機科学?情報工学?(正しい言い方が分からないです..)について 体系的に学んでいないことにずっとコンプレックスを感じていた

単なる力試しがしたい

  • 学生の頃にもSICPにトライしたことがあってその時は序盤から理解に苦しんだけど、 今の自分ならどの程度理解ができるか、力試しをしてみたくなった

プログラマーとしてもっと飛躍したい

  • ここ最近プログラミングに対して漠然とした大きな壁を感じていて、 C/C++的なアプローチを突き詰めてもその壁を打ち破れない気がしている
  • 前述のBrendan EichのインタビューやPaul GrehamやJoel Spolskyのエッセイ、 高林哲さん・ひげぽんさん・高橋征義のブログなど、何かと出てくるSICP。 すごい人でSICPを読んだという人は多い
  • SICPを読み切れば何か違う景色が見えるのでは?という期待

という訳でまとまりが全くないですが、こつこつと読んでいきたいと思います。

ルール

何かルールを決めておかないといつのまにか挫折しそうなので決めます。

挫折しない

  • とにかく最後まで読む。練習問題を全て解くことには拘らない。 ただし本質は理解する。目標は半年(2014年12月まで)

毎日読む

  • 1ページでもいいから毎日読む
  • いまは序盤で楽しいのでこのあたりは余裕

練習問題の答えは見ても構わない

  • 分からずに止まり続けるよりかはまし

学んだ内容や気づきはまとめる

  • 学習内容がある程度まとまったらブログに記録
  • 自分で解いた練習問題はGitHub
  • 誰かがツッコんでくれたりしたら嬉しいしね :)

以上、楽しんで完走したいと思います。


※「SICP読書ノート」の目次はこちら