ネタつつき78-インドリ流サンドウィッチ学習法1
前回では学ぶための基本的姿勢を解説しました。この学習姿勢を保つと、変化に惑わされる事が無くなります。では、具体的にどの様に学習していくのかといいますと、先ずはアンテナを立てる事です。常にアンテナを立てておかないと、変化に対応できませんのでこれは重要です。それで、何を受信するのかといいますと、前回に書いているように、低レイヤの技術についての情報と、自分が必要としている高レイヤの技術についての情報です。
こうしてアンテナを常に立てておくと、自ずと自分が今学ぶべき事が分かってきます。学ぶべきことが分かったら、どうやってその情報を手に入れるのかを考えます。これには色々考えられますが、私のお勧めはネットで概要を知り複数の書籍で詳細な情報を得る方法です。学習するためには、対象にしっかり狙いを定める必要があります。そうしないと、役に立つ情報は入手できないか、出来ても役立てる事が出来ません。そこで私は、ネットで概要を知り、どういう書籍が売りだされているのかを把握してから購入します。購入する際には、目次・まえがき・書評が参考になります。それらの情報でその本が対象としている情報が分かりますので、目的としている情報が手に入るのかがこれで分かります。
本を購入したら、複数の本を平行して読みましょう。そうする事により、多角的にその対象を知る事が出来ます。平行に読むと言っても慣れないと難しいので方法が必要です。私の場合は、買った本の目次を把握する事から始めます。理由は全体像をつかむためです。全体像を積んでおかないと、本を読む順番と今読んでいる情報が何を意味するのかが把握し辛くなります。技術の書の場合、1冊700ページの分厚い本を3・4冊同人に読む事なんてざらにあります。その大量の情報を理解しつつ読み進めるには、今読んでいる情報が全体像のどこにあるのかを把握しておかないと、迷子になる可能性が十二分にあるのです。それを防ぐために、先ずは自分なりの読書マップを描くと言うわけです。
例えば、プログラミング言語の解説書・ネットワークプログラミングの解説書・データベースプログラミングの解説書の三冊を同時に読むとします。この場合、言語の解説書は言語の機能を全体に把握するのに向いていますが、個々のプログラミングテクニックの情報は少ないという弱点があります。そこで、言語解説書を読んで、データベースプログラミングの章になったら、データベースプログラミング専用の書を読めば、言語とプログラミングテクニックの情報が同時に手に入ります。
こんな具合に、各書籍がどの様な情報をどの粒度で書いているのかを把握すれば、効率的に情報が手に入るようになります。では何故それらの本を並行的にするのかと言いますと、関連付けを行った方が記憶しやすいからです。人間の脳は、バラバラに覚えるよりも物事を関連付けた方が記憶に残りやすいという性質を持っています。ですから並行的に書籍を読む事により、効率的に覚えられるのです。
並行的に読めば記憶力は高まりますが、これだけではまだ不十分です。脳をフル活用して五感と喜怒哀楽をその情報に結び付けて覚えましょう。ここが非常に大事です。人間の脳は五感を刺激するほど忘れにくい性質を持っております。ですから、ただ無味乾燥に本を読むのではなく、感情豊かに面白おかしく本の内容を脳内でイメージしつつ覚えましょう。誰しも面白みのない事を永遠と暗記するのは嫌気がさし長続きしませんし、嫌々勉強しても記憶に残りません。ですから、映画が小説を読んでいるように専門書を読めばいいのです。そうすれば、記憶しやすくなります。
ここまでの話しはインプットの方法です。でも人間は使わない事は忘れてしまいます。インプットしたらアウトプットしなくてはなりません。アウトプットする方法は情報処理技術に於いて一つしかありません。それは実装する事です。実装すればそれ以上の情報が得られますので非常に効率が良い学習法となります。
私はこの学習法を思考錯誤しつつ10年間続けました。その結果、何処に何が書いてあるのか分かりますし、幅広く使える知識が増えました。こうなると仕事上においても非常に便利です。お客様と会話するのと同時にシステムの設計と実装ができ、運営する姿も思い浮かびます。さらに、そのシステムを実現するためにどの書籍の何処の部分が必要なのかも正確にわかります。また、情報が足りない場合も、足りない情報が明確に分かります。
この体験を通じて私が思うに、学習とは自分と言うハードウェアを操作するメタプログラミングに他ならないのです。どれだけ速く・正確に自分の脳に役に立つ情報を保存できるのか、どうやって脳から情報を素早く取り出すのかをプログラミングしているわけです。私は勉強は大嫌いなのですが、プログラミングは好きです。それで、自分と言うハードウェアを如何にして効率よく使うのかを夢中でプログラミングしているのです。自分をメタプログラミングするのは非常に刺激的で止められません。
このブログを読む人達はきっとプログラミングが好きな人だと思います。ですから、自分と言うハードウェアを効率よく使うためのプログラミングをする事をお勧めします。ここで紹介した学習法はあくまでも私に最適化したものです。これを参考に自分ならではの学習法をプログラミングして欲しいと私は思います。