Yコンビネーターの支援するCodeCombat、プログラミング学習RPGを提供中

プログラミングの勉強を始めたいと思ったものの、どこから始めて良いのか迷っている人も多いはずだ。プログラム初心者向けのサービスはいろいろと出揃ってきている。そんな中、最近注目を集めているのはYコンビネーターの支援するサービスで、ゲームを通してプログラミングを学ぼうとするものだ。

ゲームはウェブベースのもので、コンピュータサイエンスの基本講座で学習するような、JavaScriptの基本を勉強することができる(訳注:日本語化もされています)。ゲームを進めていくには、提供されるレッスンを理解して、自分でプログラムを書いてきちんと動作させる必要がある。

ゲームの内容はRPG風のもので、ビギナー用のシングルプレイヤーモードと、経験者向けのマルチプレイヤーモードが用意されている。対象としては楽しみながら基本を学びたいと考える高校生程度を想定しているとのこと。共同ファウンダーのGeorge Sainesによると「すごい勢いで参加者が増えています」とのこと。

開発を始めたのは2013年2月のことだ。来週にYコンビネーターを卒業することになっている。昨年10月からベータ版として運用しているのだが、その前からRedditでアルファ版のソースを提供していた。1月にプロダクト全体をオープンソース化し、利用者が自分でコンテンツを作れるようにレベルエディターも公開した。

「この動きをさらに広げていきたいと考えています」とSainesは言っている。「多くの人がゲームをプレイしてくれていますが、コンテンツ制作にはどうしても時間がかかります」。

レベルエディターを公開してから、103人がコンテンツの投稿を行ってくれたのだそうだ。

ゲームは無料で、Saines曰く無料で提供し続けていくつもりだとのこと。そして採用活動と結びつけることによるマネタイズを考えているのだそうだ。CodeCombatでは、ゲーム上に現れる課題をどのように解決したのか、どういう方法で解決したのかを記録に残すこともできる。そうした記録を残しておけば、プレイヤーのプログラミング能力を正確に見極めることもできるわけだ。

こうした情報を、採用希望企業と共有することによって、CodeCombatはいわゆるプラットフォーム料金を得ることができるというわけだ。

CodeCombatは無料で、こちらにてプレイすることができる。

原文へ

(翻訳:Maeda, H


履歴書ではわからないプログラマ能力を評価するHackermeter。採用現場での普及を目指す

有能なプログラマを雇おうと考えたとき、応募された履歴書を見ていくという行為はたいてい無駄なものとなる。募集要項なども見ずに応募してくる人をはじくこと程度にしか役に立たないのだ。優秀な技術者を募集したとしよう。するとプログラマを自認する人のすべてが「Cに堪能である」として応募してくることもあり得る。だまそうとするのではなく、各自の基準にて自分で信じ込んでいる場合もあるのだ。

そうした事実に対処するため、コーディング能力を数値化しようとするのがHackermeterだ。Y Combinatorに参加していたスタートアップのひとつだ。

Hakcermeterは、基本的にコーディング課題に対応する能力によってスコア付けを行う。より良いプログラミングを行えばスコアは高くなる。スコアが高ければ、それだけ有能な人材であると認知されるようになるわけだ。

Hackermeterに登録する際、まずはプログラマであるのか採用側であるのかを選択する。

プログラマであるとして登録すると、選択すべき課題範囲が表示される。もちろん基本的なものから応用レベルのものまでがある。基本的なものの方では、たとえばフィボナッチ数列ジェネレーターを作るとか、回文であるかどうかを判定するプログラムを作るといったようなものだ。難しい方ではJSONを使って特定のデータ構造をパースするツールを作るだとか、あるいは簡易暗号化モデルの限界をテストするといったようなものもある。

課題はいずれもRuby、Python、Java、C++ないしCという5つの言語に対応している。コーディングおよびテストはブラウザ内で行うようになっている(大事なところなのだが、後に改めて説明する)。納得がいくものに仕上がったら、書いたプログラムを登録する。登録したプログラムが課題に適合するものであれば、ポートフォリオに登録され、スコアにも反映するようになる。

採用側であるならば、Hakcermeterのデータベースを使って検索をかけることで、自動的にふさわしいプログラマを見つけることができるようになっている。たとえばPythonのエキスパートを探しているとする。難しい課題をPythonを使って回答した人という条件を指定すれば、該当するプログラマが簡単に見つかる。レベルの高さはさほど必要ないが、ともかくRubyを使える人を探したいときはどうするか。課題レベルを検索条件から外して、Rubyで回答した人という条件のみで検索をすれば良い。こうして条件を満たすプログラマに対して、メッセージを送るなりの対応をすれば良いわけだ。あるいはこの段階でも条件があうかどうか不安であるならば、さらに「スクリーニング」を行うこともできる。

「スクリーニング」というのは、採用者側で用意する連続(rapid-fire)課題のことだ。Hackermeterにも予めいくつか用意されているので、それを使っても良いし、作成から採用者側で行っても良い。制限時間を設定し、スキップ可能な課題数(スキップ不可でも良い)を定め、そして採用候補者に提示する。

こうしたサービスで最も問題になるのは、「Google」だ。課題内容を入手して、その課題についての回答をどこかにアップロードするという人はいるだろう。すると自分で解かなければならないはずの人も、Googleで検索をして、コピーペーストでエキスパートに成りすますことができてしまう。

ここで関係してくるのが、先に「改めて説明する」と書いていた部分だ。Hakcermeterは、システム側で用意しているエディタ内でコードの作成を行うように指示している。実は、採用者側は後に回答者のキーストロークをひとつひとつ再現できるようになっているのだ。ペースト動作一発で回答を作成しているとしたならば、それはおそらくカンニングの事実を示すものといえるだろう(あるいは使い慣れた自分のエディタで作業をしたということを示すのかもしれないが、それはしてはならないことになっている)。キーストロークひとつひとつを再現されるのは気持ちが悪いという意見もあるだろう。しかし対面式のコーディングテストなどを行う企業も増えつつあり、結局のところそれと変わらないと考えることもできる。

もちろん不満の声もあり、現在のところは次の2つが主なものだろう。

  • サイトで扱う情報が、コーディングスコアのみしかない。名前とスコアしか表示されていないのは、確かにある意味では「効率的」だろう。しかしもう少しパーソナルな情報も欲しいという考えもあろう。コーディングを行っているのがどのような人物で、どういう嗜好ないし志向をもっているのかという情報があっても良いかもしれない。あるいは2分間の自己紹介ビデオを掲載した方が良いなどという考えもあるかもしれない。「スコアも興味深いものでしょうが、こちらに私の作った素晴らしいプロダクトもありますよ」などという紹介文は双方にとって役立つ情報となり得る。おそらくこうした機能は何らかの形で組み込まれることになるはずだ。取りあえず、今のところは存在していない。
  • 透明性の問題。課題に回答すると得点が付けられる。しかし、どのような部分で減点されているのかということがよくわからない仕組みになっているのだ。Hackermeterの共同ファウンダーであるLucas Bakerによれば、得点は消費時間、コードの効率性、そして課題の難易度などを考慮してつけられているのだと言う。しかし得点についての疑問の声もある中、評価基準の客観化も進めようとしているのだそうだ。現在のところはブラックボックスとなっている。

Hackermeterは、プログラマの採用手続きから履歴書というものを排除してしまうものとなるだろうか。おそらくそうはなるまい。効率性はともかく、組織は履歴書のようなものの存在を必要としており、またHR部門も履歴書なしでは動きえない面がある(そもそも優秀なプログラマというのは一般公募の形ではなく、高額な報酬で動くヘッドハンターを経由して採用されることも多い)。しかしそうであってもHackermeterのようなサービスは面白い。優秀なプログラマを見つけ出すことはますます難しくなっているようで、さらに給与も高額化しつつあるようだ。こうした中、Hakcermeterのようなサービスを使ってみようと思う企業もあるだろう。また、職探し中のプログラマにとっても、自らのスキルを多くの採用担当者に見てもらうのは、決して悪いことではないはずだ。

Hackermeterはプログラマとしての利用は無料で、採用側は採用者数に応じたコミッションを支払うことになっている。

原文へ

(翻訳:Maeda, H)


バックエンドまわりをすべて引き受けるBacklift, デベロッパはフロントエンドだけ書けばよい

今日ローンチしたY Combinator出身のスタートアップBackliftは、フロントエンドデベロッパのためのバックエンドデベロッパ、を自称している。サーバ環境のセットアップなどをすべて引き受けるので、フロントエンドデベロッパはまさにフロントエンドのロジックだけに集中できる。そのために必要なのは、Dropboxのアカウントとテキストエディタのみ。BackliftはDropboxをファイルシンクサービスとして利用する。あなたの縁の下にBackliftがいると、RailsDjangonode.jsなどのセットアップについて、あなた自身は何も知らなくてもよい。

BackliftのファウンダCole Krumbholzによると、彼のねらいはデベロッパがいきなり自分のフロントエンドのコードを書き始められること。デベロッパの中にはバックエンドについてびびる人が多いが、Backliftはそういう人たちのための教材としても優れている、と彼は言う。またBackliftは、プロトタイピングの場としても利用して欲しいし、将来的にはアプリケーションのホスティングもやりたい、と。

Backliftには、Dropboxのアカウントでサインインする。そしていろんなテンプレートが用意されているから、その中から自分のアプリ用を選ぶ。backbone.jsのサンプルアプリケーションも各種用意されている。Google MapsのAPIを使うサイトの例、Bootstrapを使うシンプルなサイトの例、などもある。そのほかのよく使われる技術、AngularJS、CoffeeScript、Handlebarsなども使える。BackliftはユーザのDropboxアカウントに新しいフォルダを作り(それはユーザのデスクトップにも反映し)、ユーザはお好きなテキストエディタでコードを書き始める。コードをDropboxにセーブすると、それはBackliftにシンクされ、結果をブラウザ上で見られる(シンクはユーザがコードをDropboxにアップロードしてから1秒未満で始まる)。

アプリケーションは何らかのデータを扱うものが多いから、Backliftはベーシックなデータ処理のためのAPIを提供している。管理用のダッシュボードが提供されるので、そこでデータベースへのデータのインポート/エキスポートなどを行う。

ベータの段階でBackliftを本格的に利用したスタートアップの一つがAutomatic.comだ。これもYC出身だが、最近ローンチした独特なハードウェアによって、どんな車でもインターネットに接続できる車にする。Automatic.comのビジュアルと対話デザイナーGabriel Valdiviaは、次のように言う: “うちはAmazonのS3も使ってるけど、開発段階、それに投資家たちにに見せる段階では、Backliftの方がずっと便利だし、仕事がはやいし、それにセキュアだ”。

Krumbholzによると、このサービスは絶えず進化していて、今計画している今後の機能も多い。ただし、その詳細を話すのは尚早だそうだ。

Backliftは今、完全に無料だ。今後は有料の機能も加えるが、それについても詳細は未定だ。

Krumbholzは、Y Combinatorのスタートアップとしては珍しく、単独ファウンダだ。海軍を除隊した彼は次に航空管制用ソフトウェアのインタフェイスを作り、さらにその次にはiOS用のモバイルゲームを作り始めた。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))