##パズル2を作った
前回のパズルが運良くバズったので、それに続くWebエンジニア向けのパズル2を作った。プログラム言語を問わず、フロントエンド、バックエンド、iOS、Android、どんな技術を担当しているエンジニアであっても誰でも解けるパズル。
サイトにアクセスするとHack Me If You Can(ハックできるもんならやってみろ)のタイトルとCall my APIsとあるのみ。分かる人なら数分以内に解けると思う。
##パズルの難易度について議論
パズルが解けたらコメントを入れられる仕組みにしている。パズルを解いた最初の人はDarth Vader氏。実はこのDarth Vaderは私の職場の同僚アメリカ人エンジニアのA。
Aとは前回のパズルを解いてもらった時は「あーそうか」程度で終わったのだが、今回のパズルに関しては長い議論になった。Aが異を唱えたのはパズルの難易度に関して。Aの言ったことを要約すると以下になる。
A「パズルの難易度をできるだけカンタンにする点は同意する。だが今回のはカンタンと言うよりも、ほとんど問題とその答えが同時に出ている状態だ。もはやパズルになっていない。エラーメッセージに説明やヒントを記載して返していると、技術が分かっていない人でもググればスグに解決する。技術が分かってない人と分かっている人の差が無い。そんなのパズルじゃねーよ!」
とモニター画面に出したエラーメッセージを叩いて何度も主張していた。
Aの言いたいことは分かる。が、私はAの趣旨を十分に理解した上でAの考えをパズルに取り入れずに公開することにした。なぜなら私が考えるこのパズルの目的は「技術を知らなかった人をふるい落とすこと」ではないからだ。
前回のパズルにしてもすごくカンタンな作りで、キーになる技術はcurlコマンドのみだった。もしcurlコマンドを知らなかったとしても、ブログにしっかりcurlを使えば解けますよ、と記載した。この時点でcurlコマンドを知らなくてもググれば、curlを知っていた人との差は無くなったはず。
実際、パズルを解いてコメントを入れていただいた方の中に「curlを調べたら解けた」「はじめてcurl使った」などが見られて、とても嬉しかった。
ググればなんでも検索にヒットする世界に住むエンジニアにとって「ナニかを知っているかどうか」の価値はその程度だ。
##パズルの目的
ではなんのためのこんなパズルを作ったのか。目的はただひとつ**「優秀なエンジニアに楽しんでいただくため」**。
モノを作ったことのある人なら誰でも持っているであろう「どう?オレの作ったの?オモロいやろ?」と言ってみんなに作ったモノを見せたくなってしまうアノ感覚である。
「勉強になった」とコメントをいただいて誰かの役に立てるのは非常に光栄なことだ。が、私は別に「エンジニアのスキル向上のために!」とかそんな高尚な理念をかかげてパズルを作ってはいない。ただただ「オモロイやろ?」と言いたくてしょうがないから作っただけ。
なので、どうすれば優秀なエンジニアに楽しんでいただけるか、だけを考えた。ある特定の技術をたまたま知らなかった人を除外したところで、楽しめる訳がない。エラーメッセージに内容を記載しているので、ググッて多少の機転を利かせれば解決できるようにした。エンジニアに降りかかる問題の解決策を発見した瞬間の「あっ!これだ!」とモニター画面を見つめながら思わずニンマリしてしまう感覚はエンジニア冥利に尽きると言っていいだろう。その瞬間をできるだけステキに創出するパズルを心がけた。
##エンジニアの特質
優秀なエンジニア向けのパズルと謳っているが優秀な人ほど忙しいし、パズルなんかに付き合っている時間はない。
でもそんなエンジニアには共通して「おもしろそうな問題があったら、それを無視して通り過ぎることができない」という性質があることを私は知っている。
そうなのだ。放っておけばいいのにオモロそうなエンジニア系の問題があると、ついついその頭脳とキーボードを叩く指が反応してしまうのだ。パズルを通してそんなエンジニアの方々に楽しんでいただければ幸いである。
【ほとんどのエンジニアには解けるパズル2】
(herokuの無料プランにデプロイしたのでだいたい眠ってます。最初の1発目だけは遅いのでしばしお待ちください)
http://challenge-your-limits2.herokuapp.com/
【パズルの公開とその後の顛末など詳細】
http://tango-ruby.hatenablog.com/entry/2015/12/28/212010
はてなブログからの転記。こちらのブログにはもう少し詳しいヒントやパズルの解答者へのお礼などを掲載している。
##ヒント
まずはcurl使って
$ curl http://challenge-your-limits2.herokuapp.com/something/something
とかやればいろいろ出ます。