もっと一般教養を

mixiでコメントを書きながら思ったこと。
若い人が何を学ぶべきか、というような話題。


いまのコンピュータというのは所詮デジタルコンピュータで、いくら並列だのネットワークだのなんだのいっても、できることには1台のチューリングマシンとなんの違いもないわけです。
とすると、ORマッピングだのアノテーションだのアスペクトだの言っても、それは「論理の制約」の範囲の話にすぎません。
明確な線で結ばれた明確な点の集合をいかに扱いやすくするかという話です。


ということで、まずは論理です。
それも、ソフトウェアで必要なことは「論理的であること」なのですが、ソフトウェア開発で必要なのは「論理的であることの理論的な限界」を知っておくことだと思います。
仕様をキッチリ書くと必ずうまくいかないことの理論的な理由。そしてこの理論的な理由がばくぜんとしか語れないことのばくぜんとした理由。
そのためには少なくとも論理。


EJBとか.NETとかRubyとかアスペクトとかツンデレ*1とか、はかない実装の話だけではなくて、普遍の一般教養を勉強することが若い人だけでなく若くない人にも大切なのではないかと思います。
だってこいつら、10年後には別物ですよ。


自戒もこめて。いやむしろ自戒。

*1:これだけは普遍かも