読者です 読者をやめる 読者になる 読者になる

良書は探せ

生活

 これからプログラム始めようとする人が「オススメの本は何ですか?」って言う場面ってソコソコあるような気がするのですが、そう言っちゃう時点でセンス無いよなぁ... と思ったりします。でまぁそんなこと言うとソッコー叩かれそうなのであまり言わないんですけども、最近 @kis さんが面白い記事を書いていた ので、僕も思うトコロを書いておこうかなと思います。

1. まったくの初心者の話ですよ?
 勉強しようという気持ちは良いとして、もし「なるほど分かった」と思えるまでそれが続かなかったならばそれは「良書を読んで素早く習得する」という作戦失敗です。まったくの初心者がプログラミングに興味を持ったなら、とりあえず Web のサイト見てコード書いてみるのが自然な流れだと思うんですよ。でもそうなっていないのはプログラミングへの興味はさほど高くないってコトですよね。つまり正しい知識を得ることができないリスクよりもソッコーで面倒くさくなって投げ出してしまうリスクの方が高い状態だと思うんですよ。

2. 「誰にとって良い」本が必要なのかを考えようよ
 その本が世間一般でいくら良書だと言われていようとも、その初心者にとって良い本だとは限らないのは言うまでもありません。
 そもそも文章を理解するためには知識が必要です。ある良書があったとして、その本を読んでどれくらい理解できるか、という程度は、読者が持っている前提知識が占めるウェイトが大きいんですよ。例えば C++ の上級者向けの本で「Hello World のサンプルコードを書いてみよう!」みたいなステップは省略されてますよね。知識が無いと読んでも理解できないんですよ。まったくの初心者であるなら前提知識がまったく無いようなものです。だったら、文章のスタイルや章の構成などを自分で選り好むのが良いと思います。書かれている内容の厳格性や網羅率よりも「読み進めやすさ」こそが最優先すべきパラメータでしょう。とりあえず読む 1 冊目が欲しいならなおさら。

3. ちゃんとした内容の本を読まないと間違って理解してしまう懸念がある
 ↑これはあると思います。しかしそれは些細な問題です。だって、間違って理解してしまっても後から修正すりゃ良いわけです。そのために支払うコストは、ハナッから習得する気持ちが失せて何も得られないという損失よりもかなり安く済みます。
 エキスパートは同じ技術を扱った本を何冊も読んでいます。なんでだと思いますか?彼らは目新しい知識に飢えているわけでは無いんですよね。自分の理解をより正しく洗練させるために読んでいるわけです。そうした積み重ねの中で、間違った理解は修正されてゆきます。明らかに間違った情報は削ぎ落とされますし、白黒つけがたいグレーなものは、どういう風にグレーなのかという客観的な視点とセットで記憶されます。こうやって知識に幅ができるんです。

4. 情報を探し当てるのはプログラマの能力
 よく「プログラマは自分で調べ物ができないとダメだ」的な事を言われたりします。その意見の是非は本稿では横に置いておきますが、これってつまり本に載っている体系立てられた知識を持っているだけでは能力不足である、ということです。良書を探すことは、情報収集能力を磨くための練習としてもったいないくらい適切な課題です。それを自ら「オススメの本は何ですか?」と質問することで潰してしまうのは筋が悪い気がします。

5. 「オススメの本は何ですか?」という質問がちゃんと機能する場面
 実際には「オススメの本は何ですか?」という質問を活かしている人がたくさんいます。同じ質問を彼らがするのと初心者がするのとでは、決定的な違いがあることを認識すべきでしょう。その違いは、質問相手の能力を見積もってるという一点に尽きます。そこには『「◯◯さんが」オススメする本』だから私に価値があるだろう、という目論見があります。こういう場面では、良書に早くめぐりあうという作戦が成功します。また自分の能力が世間一般の能力と比較してどれくらいかを自覚しているなら、世間一般に評価が高い本がどれくらい自分の利益になるかもある程度予測できるようになります。自分の能力に合わせて、早く学ぶための戦略を切り替えるのは当たり前ですよね。

6. 良書は探せ
 初心者なら、とにかく自分で探しましょう。明らかに悪い本をフィルタするのは知識が無くてもできるはずです。amazon で評価の高い本を買いあさっては床に積み上げるくらいなら、本屋でぱらぱら読み比べて 1 冊買った方が断然良いと思います。