それなんてTopCoder

だから、私はこんなサイトを作って欲しかった。
1.週に一回、お題を出す(例えば、「TwitterBOTを作る」など)
2.集まったコードを公開して、みんなからコメントや評価をいただく。
3.いずれランキングとか作ればさらなる発展

私が初心者プログラマを脱出できなかった理由: 304 Not Modified

そんなサイトあるよ!でも日本では知られていません。


TopCoderというのはソフトウェア開発のコンテストを毎週のようにやっているコミュニティです。Google Code JamというGoogle主催のコンテストがありますが、そのコンテストで使われているシステムは、このTopCoderが提供しています。

In all fields of endeavor great people love to compete, and this is no different when it comes to delivering software solutions. TopCoder's global community of developers competes here in skill-based challenges representing every stage of the software development process. From discovery and specification, through development, testing and deployment; competition is at the core of everything we do. For our members, TopCoder is the place your talents can be truly rewarded. For our customers, TopCoder can deliver solutions developed through competition, in time frames and quality levels that are simply impossible using a traditional approach.

適当訳

全てのフィールドで、すばらしい人間は競争を愛します・
開発者のグローバルなコミュニティであるTopCoderは、技術ベースのチャレンジを提供します。
これらのチャレンジはソフトウェア開発のプロセスの全ての段階について用意しています。
TopCoderは貴方の才能が本当に伸ばせる場所です。

Design & Build High-Quality Software with Crowdsourcing | Topcoder

その中でSRMというコンテストがあり、パズルのような問題を解くことになります。

http://www.topcoder.com/wiki/display/tc/The+Algorithm+Competition+Arena

言語はJava, C++, C#, VBのいずれか。


例えば直近のSRMである、SRM429の一番簡単な問題はこちら。

You have an infinite number of the following two polyominoes: AAAA and BB.

You are given a String region, filled with characters '.' and 'X'. You need to cover (without overlapping) all the 'X' characters with the given polyominoes.

Return a String that contains the same region with cells marked '.' left untouched, and cells marked 'X' changed to 'A' or 'B', according to the polyomino that covers the cell.

If there is no solution, return the String "impossible" (quotes for clarity only).

If there are multiple solutions, return the lexicographically smallest one.
0)

"XXXXXX"

Returns: "AAAABB"

There is only room for one AAAA polyomino, so there are three possible coverings: "AAAABB", "BBAAAA", and "BBBBBB". The first one is the lexicographically smallest.

超適当訳
有限個の以下の2種類のポリノミオがあります: AAAA, BB。String型のregionが与えられます。regionは'.' と 'X'で埋められています。貴方は'与えられたポリノミオで、X'の文字を全て埋めたい。解がなければ"impossible"を返す。複数の解があれば辞書的に最も早く出てくるものを返す。

0)
  答えは3つ考えられるが、"AAAABB"が辞書的に早く出てくる。

TopCoder Statistics - Problem Statement


まなめさんが仰っていた条件を全て満たします。

1.週に一回、お題を出す(例えば、「TwitterBOTを作る」など)

週一ペースで5問から6問の問題が出題されます。

2.集まったコードを公開して、みんなからコメントや評価をいただく

参加者のソースは全員読める。相手のバグを見つけると得点がもらえるので、人のソースを能動的に読める。

3.いずれランキングとか作ればさらなる発展

 ランキング機能があります。


英語なのと、コンテスト開始時刻が夜であることが多いのが壁なんですが、出題される問題はやってみると意外に骨のある問題が多いです。

僕は去年参加していたのですが、非常に力を付けられたと思っています。

是非