はじめに
技術情報をググると結構な頻度でひっかかるStack Overflow。
みなさんも一度は見かけたことがあるのではないでしょうか?
僕も時々その内容を参考にしてきました。
最初は単なる海外のプログラマ向けQ&Aサイトぐらいにしか考えていなかったのですが、よく調べてみると色々と興味深い仕掛けや工夫がなされていることが分かりました。
Stack Overflowの概要は以下のサイトが参考になると思います。
『Stack Overflow』から学ぶ最近のコミュニティ構築術 | IDEA*IDEA
上のサイトの情報に加えて、実際に使ってみて気づいた点などを簡単にメモしていきます。
日本人プログラマのためのStack Overflowガイド
先に断っておきますが、こちらは前振りです。
このエントリの本題はずっと後ろの方に隠れています。。。
評価(Reputation)
Stack Overflowでおそらく最も重要と思われる機能です。
上で紹介したサイトではカルマと呼ばれていましたが、おそらく名前が変わったと思います。
ユーザーの様々な行動によって、評価が上がったり下がったりします。
さらに評価の獲得ポイントによって実行可能な権限が変わってきます。
以下の画像では僕の獲得ポイントが81ポイントであることを示しています。
細かいルールは僕も十分に把握していませんが、こういうときにポイントが上下します。*1
- 初期値
- 1ポイント
- Goodで投票された場合
- +10ポイント
- Badで投票された場合
- -2ポイント
- 投稿した質問でベストアンサーを選出した場合
- +2ポイント
- 自分の回答がベストアンサーになった場合
- +15ポイント
また、獲得ポイントによって以下のような機能に権限がつきます。*2
- Goodを投票できる権限
- 15ポイント
- Badを投票できる権限
- 125ポイント
- 質問や回答に自由にコメントが付けられる権限
- 50ポイント
投票(Vote)機能とお気に入り(Favorite)
「▲0▼」は投票機能です。
「▲」をクリックするとGood(Vote Up)、「▼」をクリックするとBad(Vote Down)の投票ができます。
ただし前述の通り、一定数以上の評価(Reputation)を確定していないと投票する権限が与えられません。
権限があれば質問、回答の両方に投票ができます。
また、「☆」をクリックするとその質問を自分のお気に入りに追加できます。
懸賞金(Bounty)
回答に満足できない場合は質問に懸賞金をかけることができます。
まあ、懸賞金といっても実際は自分の評価(Reputation)をベストアンサーをくれた回答者に分け与えるだけなんですが。
下の例では100ポイントの懸賞金がかかっていることを示しています。
コメント(Comment)
質問と回答のそれぞれに個別のコメントを付けられます。
単純な掲示板形式だと、質問に対する質問や回答に対する質問などが発生して、議論が複雑に枝分かれしてしまうことがあります。
しかし、この形式であれば閲覧者は回答と質問に集中することができます。
また、コメントに応じて質問や回答を修正することも可能です。
バッジ(Badge)
ユーザーはReputationだけでなく、バッジでも評価されます。
Reputationはユーザー同士の評価ですが、バッジはシステムが自動的に付与します。
たとえば、自分の回答が一件でもGoodと投票されると「Teacher」のバッジが付与されます。
自分で質問を投稿し、ベストアンサーを選出すると「Scholar」のバッジが付与されます。
黒いバッジと灰色のバッジがありますが、灰色のバッジはそのタグにおいて、一定数以上のGood投票を得られた場合に付与されるものです。
まとめ
Stack Overflowの特徴を僕なりにまとめるとこんな感じです。
- 回答者や質問者のモチベーションを向上させる工夫がされている。
- 評価ポイントやバッチが与えられる点
- 懸賞金が設定できる点
- 質問や回答の質を向上させる工夫がされている
- 評価が上がるほどユーザーの信頼性が認められ、権限が開放されていく点
- ユーザーが質問や回答を自由に編集できる点(ただし権限が必要)
その他にも、初めに紹介したサイトにあったビデオではスポルスキーさんが「GoogleはUIだ」と言っていました。
URLにタイトルを含めるなどして、Googleで引っかかりやすい工夫がされています。
Googleのような検索サイトを一種の検索画面と考えている点はすごい発想力だなと思います。
本題: Stack Overflowで世界を相手に腕試し
さて、ここまでは前振りで、実はここからが本題です!
僕もいざ参戦!
とりあえず、評価(Reputation)によって権限が変わってくるので、評価稼ぎのためにStack Overflowで質問者と回答者の両方に回ってみようと思いました。
質問は今すぐ答えてほしい質問があったわけではないのですが、何か良い情報が手に入れば良いな、と思われる程度の質問を投げて終わりました。
まずは2ポイント獲得。
どうも質問するだけではポイントが上がりにくいようなので、今度は回答者側に回ってみることにしました。
自分が回答できそうな分野でFavorite Tagsを登録しておき、newestの質問の中で背景が黄色になっているものに目をつけて、回答を書き込んでいきます。
黄色になっている物の中から簡単そうな質問に目をつけて回答をPost!
・・・ところが、他の人も同じことを考えているようで、すぐに他の人の回答がPostされてしまいます。
Goodの投票はぼちぼち入るのですが、ベストアンサーを獲得するのは結構難しいです。
今のところはまだベストアンサーをゲットできておりません。。。
参戦してみて気づいたこと
以下は実際に参戦してみて気づいたことです。
簡単な質問は簡単に回答できるが、競争率が高くてなかなかベストアンサーにはたどり着けない。
難しい質問は回答に時間がかかるが、競争率は低い(はず)。
というわけで、Stack Overflowの評価ポイントは回答者の技術力を表しているのではないか?と思うようになりました。
簡単な質問で競争率が高い場合でも、他の回答者より抜きん出ていればベストアンサーがもらえるはずです。
しかも、Stack Overflowで使われている言語はほぼ英語です。
つまり、Stack Overflowで高い評価ポイントが得られれば、自分を世界でも通用するプログラマとしてアピールすることもできるのではないかと思うのです。
世界を相手にアピールするなら、著名なOSSのコミッタになったり、国際的なプログラミングコンテストで入賞したりすることが考えられますが、どちらもあまり気軽には参加できません。
ましてやシリコンバレーに乗り込んで就職先を探すなんて、かなり勇気のいるチャレンジです。
しかしStack Overflowであれば、ベースはあくまでQ&Aサイトなので気軽に参戦することができます。
言語や技術についてもかなり多岐に渡っているので、自分の保有スキルを全然活かせないということはないはずです。
なので、自分の英語力と技術力を世界レベルで評価したいなら、Stack Overflowで評価ポイントを獲得するというのは意外と有効な手段なのかもしれませんよ?
もっとも英語力についてはそれほどいらないかもしれません。
英語よりもコードを書いた方が早く伝わります。(たぶん)
僕も大した文章は書いてなくて、「Please try this」とか「How about this?」みたいなごくごく簡単な英語しか書いてないです。
ただし、難しい技術的なトピックになるとそれなりの文章力が要求されるかも。
となると、最後はやはり自分自身の英語力が試されるのかもしれませんね。
ちなみに内容にもよりますが、回答スピードも結構早いです。
昼休み前に質問を投稿したら、昼休み明けには回答が返ってきている、ということも期待できます。
よく分からない問題があればちょっと投稿してみるのもアリです。
本題のまとめ
僕が見た限り、日本人のプログラマは全然見かけなかったので、日本人プログラマにとってStack Overflowは意外なフロンティアと言えそうです。
さあ、あなたもStack Overflowで世界を相手に腕試ししてみませんか?
あわせて読みたい
僕のStack Overflowのプロフィールページはこちらです。
獲得した評価ポイントの情報なんかが載っています。
User Junichi Ito - Stack Overflow
Stack Overflowの評価ポイントをヒントに、モチベーション向上の鍵を思索してみました。
ソーシャルな評価とモチベーション - give IT a try
Stack Overflowのトップページはこちらです。
Stack Overflow - Where Developers Learn, Share, & Build Careers
*1:細かいルールはこちらで確認できます。 http://stackoverflow.com/faq#reputation
*2:詳細はこちらで確認できます。 http://stackoverflow.com/privileges/