オフィシャルサイトMenuHOMEABOUTBLOGNOTEBOOKSCONTACTSearch2007年9月11日Fizz-Buzz問題どうしてプログラマに・・・プログラムが書けないのか?かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。(連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。これはイギリスの学校の子供たちがよくやっている遊び(というかやらされている遊び)にちなんで名付けた。Fizz-Buzz問題の例はこんな感じだ。1から100までの数をプリントするプログラムを書け。3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。したプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。上の文章をある社員が社内SNSに書き込んだところ、無言でみんながFizzBuzz問題にチャレンジしはじめた。以下、社内SNSのレス■ひろし(事業本部長)所要時間1分ぐらい。プログラマとしてはいけそう。http://hkawa.lolipop.jp/fizzbuzz.php■mizzy(技術責任者)3時間ぐらいかかりました。アセンブラで書いたら。http://blog.mizzy.org/articles/2007/05/13/fizzbuzz-x86-assembler-for-linux■萬○(プログラマ)5分くらいかかってしかもバグがでました!http://tai-hen.heteml.jp/fizzbuzz.php■イエイリ(僕)できました!!!!!!みてください!!http://hbkr.jp/fizzbuzz.php■佐藤(副社長)20秒でした。http://kentarow.heteml.jp/fizzbuzz.php■河○(プログラマ)http://senhana.heteml.jp/fizzbuzz.php剰余算と除算どっちがどっちだったか悩みタイムロス。