「ガルこれ」といえば、その筋の人にはどんなものか、すぐに想像が付くだろう。DMMの人気オンラインゲーム「艦これ(艦隊これくしょん)」をもじった「コードガールこれくしょん」は、プログラミング学習ゲームだ。
プログラミング転職サイトをうたう「paiza(パイザ)」運営のギノが今日発表したコードガールこれくしょんは、従来のレッスン方式のプログラミング学習サービスや、競技プログラミングと違って、ストーリーが進行する中でプログラミングスキルを高める、ということをコンセプトとしている。プレイヤーはプログラミング力が鍛えられるクエスト形式でストーリーを進行させていく。進行度に合わせて徐々に難易度が上がっていく。
最近のオンラインゲーム同様に、クエスト報酬やログインボーナス・ミッションクリアなどがある。その特典として手に入る「コイン」や「ダイヤ」を使ってガチャを回すと、いろんな「コードガール」を収集できる。ゲーム内でプレイヤーをサポートするナビキャラの「リリア」との関係は、ストーリーを進めるうちにん親密になっていく、という恋愛シミュレーションゲーム的な要素も取り入れているそうだ。
以前TechCrunch Japanでも紹介したことがあるけど、paizaはプログラミング初学者に向けて「paiza 動画ラーニング」というサービスや、複数のプログラミング言語をWebブラウザ上で実行できるサービス「paiza.io」を提供している。動画コンテンツのノウハウを活かし、ガルこれでも1本3分で学べるプログラミング学習動画コンテンツをゲーム内で配信する。
これは筋トレだ、基礎的な問題を大量に速く解け
ゲームが入り口になってプログラミング学習が継続するかどうかということだけど、実はすでに「プログラミング学習のゲーミフィケーション」では、海外でもいくつかスタートアップが出てきていて、数億円の資金調達をしているところもある。クエスト形式でPythonが学べるCheckIOとか、対戦形式のCodeFight、ゲーミフィケーションではなく、プログラミング自体がゲームとなっているフランスのCodingGameなどだ。
競技プログラミングなんかでも、早く、正確に、エレガントに解くというゲーム的な要素は多分にあるが、多くの人にとってプログラミングの練習というのは続かないということがあるのだとしたら、ゲーミフィケーションは良いアプローチなのかもしれない。
ギノ代表取締役社長の片山良平氏がTechCrunch Japanの取材に対して興味深い洞察をシェアしてくれた。
「プログラミングスキルを高めるためには、難しいテクニックを覚えるよりも、基礎的な内容を素早く理解出来ること・書けることの方が重要である」という。これは累計登録会員が4万5000人となったpaiza運営の中から出てきた気づきだそうで、スキルランクの高いエンジニアは、解答速度も速いというデータがあるという。ランクの高いエンジニアは転職後の年収も高いそうだ。
ぼくも、プログラミングにはスポーツのような側面があると思う。筋トレのように日々練習するとぐんぐん速く、正確に書けるようになる。逆に理論ばかり勉強していても、コーディングスキルは意外に上がらない。これが研究室にいる人たちの中に「コーディング力自体は低いんです」と謙遜したりする人がいる理由だったりする。
片山氏によれば「ガルこれ」では、1問10秒から20秒程度で解答できる問題を次々に解くようなスタイルになっているという。これは筋トレだ。
ちなみに、ぼくにはプログラミングの師匠が3人いて、みんなスーパーが付くハッカーなのだけど、彼らが共通して指摘するのは「書きまくる」ことの重要性だ。えっと、GolangでJSONのパースってどうやるんだっけ、Pythonだと、この場合どのコンテナを使うと最適なデータ構造なんだっけ、C++でヘッダファイルは何をインクルードするんだっけ、なんていちいちググっているようではダメで、指がスラスラと動いてコードが流れるように出てくるぐらい覚えてしまわないと生産性なんて上がらないんだと言っている。読書百遍、コード百遍なのかもね(ぼくはできてないのでググッてるけど)。