@IT編集部の西村賢がRuby/Rails関連を中心に書いています。

FizzBuzzをサービスにする「CodeEval」が面白い

»

 一般企業にとっても、自社製品や自社サービスの開発を行っている企業にとっても、プログラマ採用は難しい問題のようです。どこでどうやって良いプログラマを見つけてくるのか、あるいはどうやってプログラマの力量を測ればいいのかという問題です。

 どんなコードが書けるかを見ればいい、というのは、特にブログやオープンソース活動が盛んになった今では良く聞くところですが、それをシステマティックにサービスとしてやろうという動きもあります。

コンテストサイトが雇用市場で重宝される

 例えば、プログラミングのコンテストサイトとして知られる「TopCoder.com」があります。TopCoderは、プログラミング能力、特に多様なアルゴリズムを駆使して実装する能力を競うコミュニティというかプラットフォームです。TopCoderでは、実際にブラウザ越しに書いたコードをサブミットすると、向こう側でそのコードがコンパイルされて走り(使える言語はJavaとC++)、そのコードが正解を出力したかどうか、実行に要した時間は規定内だったかなどで評価されます。

Topcoder

プログラミングのコンテストサイトとして知られる「TopCoder.com

 TopCoderは、あたかも頭の良い少年少女たちの競争心を煽って点数を競わせるだけのサイトにも見えかねませんが(サイトの色使いや雰囲気がワナビーぽい)、実はGoogleやFacebookが優秀な人材を乱獲する“漁場”として機能していて、結構大きな市場となっていると言われています。だからこそ、TopCoderはある時期からサービスを横展開し、Webデザイナ向けにデザインを競うサービスも立ち上げたりしています。UMLを使うアーキテクトや、テストエンジニア向けのコンテストなんていうのもTopCoderではやっているようです(盛り上がっている気配が感じられませんが)。

システマティックに有料サービスとしてマッチング

 TopCoderは、あくまでもコンテストサイトとして立ち上がり、今もそのスタンスを保っているように見えます。一方、そうしたゲーム感覚の競争ではなく、リクルーターとプログラマのためのマッチングサービスとして最近登場したのが「CodeEval」です。ブログを見ると1年ほど前から徐々に開発を進めているようですが、米TechCrunchによれば6月9日から一般公開されたようです。

Codeeval

リクルーターとプログラマのためのマッチングサービス「CodeEval」

 あらかじめ、オープンチャレンジ問題としてEasy、Medium、Hardの3分類で37問用意されています。仕事を探している人や腕試しをしたいプログラマは、こういう餌に食い付くものですよね。回答はJava、C、C++、JavaScript、PHP、Ruby、Perl、Clojureなどの言語でサブミットできます。ざっと問題を見た感じ、FizzBuzzから始まって、1000以下の素数の合計値を求めよという問題、システムのエンディアンを判定せよという問題、2つの文字列の最大一致文字列を求めよという問題などがあります。Google Code JamやICFPのようなハードコアなプログラミングコンテストや、Dropboxが採用向けに出しているような難易度の高い問題に比べると、パンチ感は緩いですが、実用性がありそうです。カンニング対策をどうするのか、気になるところです。

Fizz

1問だけFizzBuzzを一般化した初級問題をサブミットしてみた。実際のコードとその問題の全体での正答率のほか、LinkedInやGitHub、StackOverflowのアカウントへのリンクも集約されている

 CodeEvalは、いわゆるフリーミアムモデルでプログラマとして登録する方は無料。採用希望の企業から利用料を取るモデルです。

 小規模な人材採用(1カ月に5人の候補まで)なら無料。あらかじめ用意されたEasy、Mediumの問題を2つまで使って候補者を無制限にフィルタできる「Plus」なら月額199ドル、Easy、Medium、Hardの全ての問題を無制限に使って候補者を無制限にフィルタしたり、ピアレビューシステムも利用できる「Premium」(月額399ドル)の3つのモデルを用意しています。商売上手だなと思います。

Price

個人じゃなくてチーム単位でリクルーティング「Group Talent」

 プログラマ採用向けサービスで最近「これは」と思ったのが「Group Talent」です。すでにスタートアップやOSSプロジェクト、あるいは企業や学校で一緒に仕事をしたことがあるプログラマのグループと、雇用者を結びつけるサービスです。

Gt

 すでにチームとして一緒に開発したことがあるプログラマ同士が一緒に仕事をしたがっているということなら、相性や生産性の点で、むしろ好ましそうです。プロフィール欄にGitHubのレポジトリや、LinkedInから情報をインポートしておけば、潜在的な雇用者に成果が見せられます。雇う側から見れば、個々人を雇うよりも手っ取り早い。優秀なプログラマは優秀なプログラマとつるみがちで一緒に仕事をしたがるという法則に真実味があるのだとすれば、結構説得力のあるアイデアだと思います。ワークスタイルとしても今風で、「いよいよ21世紀っぽくなってまいりました!」と言いたくなるサービスです。

 ところで、アルゴリズムのコーディング能力なんか必要なのか、そんなものでプログラマの実務能力が測れるのかという根本的な問題がありますよね。これについては次のエントリで。

Comment(1)

コメント

Hey check out also http://www.coderloop.com that offers a much wider range of supported programming languages and interactive tests for system administrators too.

(disclaimer: I'm the founder of Coderloop)

コメントを投稿する