ツレヅレグサ

雑記と愚痴と、時々小説

早くプログラムできればいいのか?

2007-05-10 15:27:57 | 批評
 まずはこのサイトを見てほしい。
どうしてプログラマに・・・プログラムが書けないのか?
これによると、某プログラマ曰く、プログラミングの仕事を希望する者の99%以上がどのようなコードも書けないらしい。業界の人々は、希望者は簡単なプログラムさえも作れない、と嘆いているわけだ。それはわかるが、その後いろいろと説明が続く中でこういう一節がある。

「(前略)それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。これはイギリスの学校の子供たちがよくやっている遊び(というかやらされている遊び)にちなんで名付けた。Fizz-Buzz問題の例はこんな感じだ。
『1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。』
ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。」

 ここで問題なのは、プログラミングの技量を問題を解くまでの時間だけで見ている事だ。これでは、自分達のレベルと新人のレベルを比較して、お前らあまりにも役立たずだ、と言っているようでもある。確かに、簡単な問題を解くのに長時間費やすのは問題だと思うが、たったの2分でできる人間は問題を暗記しているか、あるいは経験を積んだ人間くらいだと思う。そんな連中と、大半が座学の学生を比べてどうするのだろうか。ちなみに、自分の場合は解くまでにおそらく30分近くかかると思う。
 基本事項を含め、プログラムが全くできない人間を雇うのは論外にしても、解けるけど時間がかかるという人間をプロ基準で裁くのはちょっと抵抗がある。プログラミングで生計を立てている人間と違い、自分は素人なので何とも言えないのだが、「俺達は2分足らずで解けるんだ。専門的に勉強してきたお前らも当然できるだろ?」というのは強引な気がする。それがその道での常識ならば仕方ないのかもしれないが。

 ちなみに、プログラムを作る早さを計測してやっている学校なんてあるのだろうか。もしあるのなら、どういう感じなのか詳細を訊いてみたい気もする。それともうひとつ。時間に追われるお雇いプログラマよりは、じっくり考えるフリーのプログラマの方が、クオリティの高いプログラムを作ると思う。だから市販ソフトよりもフリーソフトの方が利便性が高・・・ゲホゲホ。スピードだけならそういうのに長けたインド人を雇えばいいじゃないか、という気がするのは自分だけだろうか。その分、プログラムを作る早さが遅い人間は新たなもの、独自性のあるものを追求するとか、そういった路線にも向けられるのではないだろうか。