昨日のエントリで本をたくさん読みましょう、なことを書いたけど、それと共に気をつけないといけないなぁ、と思うことがいくつかあります。
何事も良い面と悪い面があるというか、過ぎたるは及ばざるが如しというか。
知識の偏り
自分にとって都合の良いことだけが書いてる本を無意識に選ぶようになってないか、という点。
俺自身は Java が気に入っているのでそれ関連の本を多く読み、他の言語圏やそれに関連した思想・設計技法の本は相対的に少ないです。より知識を深めるという点では間違ってないと思うけど、知識の幅を広げたほうがいいことも多いので、あまり一つの技術・知識に傾倒するのはよくないと最近しみじみ思います。
web の話になるけど、関連したものにリンクを貼る、という web の構造上、ある意見に反対した意見というのはどうしても目に付かなくなりがち。本は、反論・反証なんかも一緒に載っけることが多いので web ほど目に付かないということはいけど・・・程度問題かな、と。
ちょっと脱線したけど、要は好きなものばかり食ってると栄養が偏っちゃうよ、ということ。好物をもつのは良いことだと思うけど、あまりに度が過ぎると自分でも気付かない内に「信者」になってしまうわけで・・・。
信者が自分にも周囲にもダメージを与える点については割愛。
実践ありき
ソフトウェア工学は本来実践ありきの学問です。どれだけ理論的に素晴らしくても、現場に適応できないのなら無用の長物。また、理論無視したほうが事が上手く運びそうならそっちを選ぶほうが良いことも多いと思います。
例えば、JSP に DB アクセス行うスクリプトレットを入れるのは web アプリの教科書ではやってはいけない、と書いてる(最近はどうか知らないけど)。でもまぁ実際にはそれで事足りちゃうこともある。それに、それが顧客の利益になる、と判断したなら一般的な理論を無視するのは十分アリだと思います。
そんなわけで、本に書いてあることがいつもそのまま使えるとは限らない。使い物になるかどうかは使ってみるまではわからないことも多い。知識偏重になってしまって「あの本に書いてあったからコレは正しい」とかになるのはちょっと怖いな、と思います。
万能のかなづち
上と関連することでもあるんですが、すごい理論や技法を知ると目の前の問題に適用したくてうずうずします。それは別に正常な反応だと思うけど、あまり度を過ぎると「ハンマーを持つ人にはすべてが釘に見える」ってヤツになってしまう。
最近だとデザインパターンや各種フレームワークなんかそうだと思うんですが、知ってしまうと、どうしても使ってみたくなるものです。それも目の前の仕事に。運がよければなんとかなるけど、いきなり導入したその末路は・・・。
本に書いてあることがすべてではなく、ましてやどんなときも使えるすごい理論や技法は存在しない、というのは歴史が語っています。
まとめ:知識だけではたたかえない
本の知識だけでたたかえるほどプログラミングは甘くない、ってところでしょうか。
ちなみに、上にあげて来た「あまりよろしくないと思われる状態」はぜんぶ俺自身の体験をもとにお送りしております。