2009年2月2日月曜日

どうしてプログラマにプログラムが書けないのか

http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

上記の記事から引用(一部抜粋)。

開発者を見分けるための質問を作り始め、私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。Fizz-Buzz問題の例はこんな感じだ。

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。

僕はDelphiでやりましたが、3分くらいかかりました。。死にたい。。

あの命令をDelphiではどう書くんだっけ、とヘルプを見るのに1分くらい使ってしまった。。

アルゴリズムは一瞬で浮かぶけど、それを各言語の仕様に落とすときに混乱するなあ。

beginはどこに書くんだっけ、とか、セミコロンは入るんだっけ、とか、あ、間違って中括弧"{}"付けちゃった、とか。

うわ、間違って74バイト目に記述しちゃった! とか。(20代以下のプログラマーには何の話だか分からない)

あ、変数宣言するの忘れた! とか。(←最近Pythonで遊んでるのでやりがち)

ちなみにうちの会社のへっぽこプログラマーたちのほとんどは2分では終わらなかった。。ああ。。

特にひどいのは10分たっても終わる気配すらなく、さらに言うとロジックが間違っていました。

3と5両方の倍数でFizz、Buzz、FizzBuzzの3つすべてが出力される! という。。。orz

0 件のコメント:

コメントを投稿