FizzBuzz問題が解けないエンジニアがいる

こんにちは。ひげです。

はてぶ見てて、「最近はFizzBuzz問題も解けないエンジニアがいるんですよー」『なーにーー?やっちまったなぁ』という流れのコメントがあって笑いました(^o^)

FizzBuzz問題って?

プログラミングの参考書にでも掲載されていなければあんまり見る機会もないのではないかなと思うFizzBuzz問題。

Wikipediaに書いてありました。

https://ja.wikipedia.org/wiki/Fizz_Buzz

FizzBuzz

Fizz Buzz(フィズ・バズ、Bizz BuzzBuzzとも呼ばれる)は英語圏で長距離ドライブ中や飲み会の時に行われる言葉遊びである。

遊び方

プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。

ゲーム例

ゲームは、以下のとおりに発言が進行する。

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, Fizz Buzz, 31, 32, Fizz, 34, Buzz, Fizz, …

というものです。

プログラミングの問題となる

Wikipediaには丁寧にプログラミングのことも書いてありました。

FizzBuzz問題

このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法をJeff AtwoodがFizzBuzz問題 (FizzBuzz Question) として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている。

また、実際に「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等の縛りでゲーム条件を満たすコード記述の腕試しをする者が続出した。

ということでやってみよう!

ということでやってみましょうよ、FizzBuzz問題。

制限時間は15分、言語は自分が得意なモノとします。よーいどん!

システムエンジニアなんだから…とかいう議論

CやPythonをやっている人は、「計算させる」って言うことに対してプログラミングしたりする考えがあると思うんです。だけど文系プログラマは、マークアップを美しく表示させるためにプログラミングする人は多いと思うんです。

PHPの入門書には、FizzBuzz問題が掲載されている本は少ないのではないかな−と私は思う(たぶん会社に3冊と、講師をやったときにLAMPの本1冊読んでます)。どうでしょうか。

Pythonやる人には、けっこう楽勝なのでは?

タイトル通り、言語の特性があると思うので、得意な言語によって、FizzBuzz問題が短時間で解けるとか解けないとかっていう前提が違ってくる気がするんです。

PHPなら、「Apacheは準備されており、Documentrootが /home/test に設定されているため、http://localhost/fizzbuzz.phpを作成するものとします」とか、問題の出し方にも工夫がいるのではないかなと。

実際問題、自分のところに優秀な人が来て欲しいと願った場合、どういう試験を受けさせるのがいいのかねーーー?

スポンサーリンク
hige1
hige1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
hige1