応用可能な体系的知識とか暗黙知とかqune応用可能な体系的知識とか暗黙知とか2009/05/24こちらの話を読ませていただいて。antipop学習したいと考えている、なにかそれなりに大きな規模の分野について、自分で本を書くつもりで、あるいは、こういう本があったら体系的な知識を得られるだろうなあという本の目次を自分なりに書き出していって、あとはその内容を埋めるつもりで学習を行っていけば、自ずと体系的な学習になってしまうのではないかという方法です。それがうまくいくかどうかはわかりません。やってみる価値はあるんじゃないかという気もしています。体系的な知識・技術が応用可能な知識・技術かというと,微妙に違いがあるんじゃないかとは思うんですけれど,やり方としてはいい感じなのかも。はてブには,情報系の学部や専門学校に行く方が効率が良いとかいった話もあるけれど,能動的に体系を作り上げることと,既存の(基礎的な)体系を受身で取り入れることは,コトの性質からして異質です。前者のキモは,「散乱する知識や実績のつじつまを,統一的な説明でもって合わせていくことで,他分野に対して演繹的に適用する可能性を獲得すること」にあるんだと思う。技術的な話の中でも開発関係の話の場合,「できちゃったからできている」みたいな事実先行のところがあったりします。体系化された説明は,後から付くことが多かったりする。んなもんで,実践的な知識の体系といっても,その中には暗黙知(言葉で表現できない知識)も少なからず含まれてしまいます。こゆところをうまく拾っていく手法が必要だとは思うんですね。暗黙知も含めた応用可能な体系付けという点で見ると,あたしの場合は,とにかく大量にインプットして,大量にアウトプットしていくことで,物事を体系付けている気がします。言葉で表現できる知識については,本でもなんでもできるだけ大量に読む。個人的に,ネット上の知識よりも書籍の方がまとまっているので,本を大量に読んでいる気がします。インプットした知識は,概要だけを覚えておいてインデックスのような形で頭の中に蓄えておく。インプットよりも肝心だと思うのがアウトプットです。開発関係の話は「作れてナンボ」なので,実践と結びつかない知識は,どんなにすごい理論でも重要度が低くなってしまいます。そんなことで,書籍やネットの情報で,重要だと思うところはどんどん書いていく。プログラムだったら,それを改造して動きを変えてみる。こゆ実践(実験)から帰納的に体系を作っていくわけです。結局のところ,インプットとアウトプットというのは,体系上の作業でいうなら演繹と帰納の繰り返しと言ってもいいんだと思います。こゆことを繰り返して得られる体系は,暗黙知も含む実践的で応用可能な知識として定着します。いうか,そう信じている。あたしがすごいプログラマだと思っている人は,大抵同じようにインプットとアウトプットを繰り返している気がします(あたしが真似してるんですが)。気になることや新しい知識を得たら,エディタを開いて簡単なプログラムをコチョコチョ書いて動作確認している。それで,「ふむ......」とか言ってる。あたしも,フーリエ変換の学習をするときは,何度となくバタフライ演算の部分だけをプログラムして,動作を確認しつつ体に覚えこませていました。こゆのは,知識といっても身体知の分野にあるので,学習というよりもむしろ練習の類なのだと思う。ハードウェア界隈でも,新しい知識を得たら,すぐにモックアップを作ることが勧められているみたい。最近はブレッドボードがあるので,簡単に実装できますしね。そのために重要だと思うのが,インプットとアウトプットの速さです。あたしも大したことないので,えらそうなことは言えないんですけれど,大量に読み書きするには特に重要だと思います。パターンを使えばアルゴリズムをとっかえひっかえできるよ」という知識があったら,その知識をすばやく汲み取って,ちゃっちゃと実験するコードを書いてみる。あたしの場合は,検証するのに10分くらいかかるんですけど,すごいと思っているプログラマさんは,ほんの数分で「ふむ......」とか言ってます。こゆのに30分も1時間もかけているようだと,なかなか学習=練習が進まない。こゆのは,ポテンシャルとして持っている必要があるのだと思います。こゆのって,ナレッジマネジメントとか言うんでしょうか。えらそうなことをアレコレ並べたんですけれど,とりあえずはそんなとこ。