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