若いプログラマの書くコード
先日、若いプログラマが書いたコードを読む機会があった。(そのうち詳細を書くかもしれないし、書かないかもしれない)
例えばif文を延々と重ねて処理をするなんてコードとか、いたるところに数字(定数)が書かれていたりとか、そーゆー力ずくのコードを目の当たりにみて、コードを書くにしてもやはり経験というものがいかに大切かと言うことを実感した。
まつもとさんとかだったら絶対書かないフレーズだよなあ、などと考えつつ、いいことを思いついたのだ。今年はセキュリティキャンプとかいうことで若い人を集めてセキュリティの合宿講習会をやったらしい。(実にすばらしい企画だ)それにならって、プログラミングキャンプとかいうので、プログラミングコンテストに応募した優秀なプログラムに対して、まつもとゆきひろさんとかg新部さんとかが添削指導するのだ。
ここは冗長なコードだ。ばっさり。ここは無駄なコードだ。ばっさり。ここの部分はこー書き換えた方がすっきりする。ばっさり。このアルゴリズムは効率が悪すぎるから、書き換えよう。なんて感じで超一流のプログラマが書くとどうなるかというのを自分の書いたコードを題材に添削指導されちゃったりする。ネーミングコンベンションとか段つけとか趣味に走りそうなところではなくて、もちっと本質的な部分の添削指導かなんかあるといいなあ、とか思ったりして。
やっぱり、規定課題と自由課題があったりして、プログラムの構築力の基礎的な訓練をすると。拡張可能性とか継続的にコードを書き換えるとか、そーゆープロセスを前提とした良いコードの書き方講座。当然、デバッグの仕方とか、コードの読み方も重要なテクニックなので、何らかの形で伝授しないといけない。
本来なら大学とかそーゆーところでやるべき仕事だと思うのだけど、日本の大学にはあんまり期待できないのであえて言う。
追記:プログラミングキャンプ
まつもとさんの日記にもプログラミングキャンプのお話がでていた。http://www.rubyist.net/~matz/20040827.html クリックだぁ〜