おんがえしの blog

作ったプログラムと調べた技術情報

インターネット時代に本を読む

テクノロジーの進化、特にここ10年におけるモバイルコンピューター(最初のiPhoneが2007年)の登場によって情報取得ツールとしての本(ここではあえて電子書籍、紙の本をまとめて本と呼ぶ)の使い方は大きく変わった。あるトピックに最初に出会うのは本でもテレビでもなくネットの情報である確率はどんどん上がっているしこれからも高まる一方だろう。

とはいっても本の重要性が下がった訳ではなく、ネットの情報だけである程度のことは理解出来るようになったからこそ、ネットと本の両方から情報収集することに優位性がある。私がよくやる本の読み方についてまとめてみた。

インターネット時代の本の読み方

  1. 気になるトピックを見つける
  2. ネットを使って調べる
  3. ある程度分かってきたら本を読む(さらに理解を深める)
  4. 本の内容をある程度理解したらネットに戻る
  5. 情報発信したり本に書かれていないことを調べる(1.に戻る)

ポイントは自分にとって面白かったり大切だと感じたトピックは「ネットだけで済まさないようにする」ということ。インターネットの情報は無限に増え続けるのでその気になればいくらでも調べ続けることが出来る(そして気がつくと同じ場所をずっとぐるぐると回り続けてしまったりする)。どこかで一旦、別の情報源(本を書く人なのでその分野の専門家であることが多い)から収集することで自分の中に新しい視点を獲得する。

ある程度理解が深まればネットに戻ってきても価値の高い情報を見つけられるようになる。新しい情報(例えば昨日GitHubに公開された最新のライブラリなど)は本には載っていないのでネットから収集する必要があるがそれを見つけるにはある程度のスキルアップが必要なのでそのスキル獲得のために本を読んでいる。

もちろんネット上にもスキルアップ出来るコンテンツは無数にあるが、本には以下のようなメリットがあって効率がよいと感じている。

本のメリット(1) 正確さの担保

著者、編集者、出版社、といった情報の正確性に責任を持つ人や組織が存在しているため正確性が担保されやすい。インターネット上のものは、オープンソースソースコード、ブログ記事、Twitterのつぶやき、どれも正確性が担保されない。(それがいい所でもある)

iOSのリファレンスカウントの仕組みは途中で変わっているみたいな情報はなかなか本を読まないと見つけることが出来ない。ググって見つけたブログ記事のサンプルコードを貼付けたら最新版だと仕組みが変わってて全然動かない、みたいなことはプログラマなら体験したことがあるのではないだろうか。

本のメリット(2) 繰り返し読める

以前、ガベージコレクションアルゴリズムと実装

ガベージコレクションのアルゴリズムと実装

ガベージコレクションのアルゴリズムと実装

という本(絶版だが達人出版会からDRMフリーな電子版が買えるので是非)を買ったのだが、最初は分からない単語の意味を理解するのが精一杯で一旦本棚にしまった。何年かたって実際のアルゴリズムを理解する必要が出てきて再度アルゴリズム編を読み直し、また何年か経った後に実際の処理系ではどうやって解決しているかが知りたくなってV8の実装編を読みなおした。その度に「以前読んだときは完全には理解出来ていなかったのだな」と感じた。(次に読み返すときもまた同じことを思うだろう。)

良い本は自分の成長にあわせて繰り返し読むことが出来る。そしてその度に新しい視点を与えてくれる。ネット上にあるものだとすでにそのサイトが消滅していたり、内容が変化していたり、そもそもブックマークを消失したりしてなかなか難しかったりする。

この辺りの「あのとき調べた○○って××の△△に載っていたはず」みたいな検索は物質感のある紙の本の方が電子書籍よりもやりやすいと感じる。

本の読み方

レバレッジ・リーディングという本がおすすめ。今でも自分が使っているテクニックがいっぱいある。

  • 最初に表紙、帯、裏面の著者紹介、目次をざっと読んで自分の目的にあった本か確認する
  • 本にはドッグイヤーしたり線を引いたり落書きしまくる(自分の理解を深めるためにどんどんカスタマイズしていく)
  • 心に残ったことは後でメモに書き出す

レバレッジ・リーディング

レバレッジ・リーディング