プログラミングのスキルを測定してみよう - 神戸ホームページ制作センター

プログラミングのスキルを測定してみよう

プログラミングスキルを客観的に測る

普段仕事でプログラムを書いていても、「自分は一般的にどれほどのスキルをもっているのか」とかは中々判定しづらいらいものです。
プログラミング言語の文法、書式など言語そのものの知識は、建築で例えると金槌やノコギリなどの工具の使い方を「知っている」「知らない」の違いでしかなないのでそれほど問題にはなりません。「覚えるのがめんどくさい」という気持ちをなんとかできれば解決できます。

しかし、「やりたいこと(仕様書)から、実際に動くプログラムにする」スキルというのは、どれだけのスキルがあるのか客観的に判断しづらく、自分自身でもどれほどの能力があるのかよくわかりません。
そこで、それを客観的に調べられる方法を紹介したいと思います。

Fizz Buzz問題

まずは、この問題でプログラマーとして基本的なスキルがあるか判定してみましょう。FizzBuzz問題とは、Jeff Atwoodが提唱した問題です。以下の仕様通りに動くプログラムを作成します。言語は何でもかまいません。
作成にかかった時間も判定材料の一つとなりますので、それも一緒に計測しておきましょう。

[FizzBuzz問題]

1から100までの数字を順番に画面へ表示する。ただし、

・3で割り切れる数字の場合 “Fizz”
・5で割り切れる数字の場合 “Buzz”
・3でも5でも割り切れる場合 “FizzBuzz”

を数字の代わりに表示する。

出力例

以下のように出力されていればOKです。スペースの都合上横に並べていますが、縦でも横でも問題ありません。

プログラムコード

HMのみなさんにもやってもらいました。得意な言語でやってもらった所、C,PHP,Javascript,VBSで回答をもらうことが出来ました。

回答時間のめやす

回答時間別に簡単に判定すると、こんな感じかと思います(HM調べ)。回答にかかった時間は、判定ロジックの作成部分にかかった時間のみでOKです。
環境の準備(phpだと白紙のHTML用意など)は時間に含めません。

時間 判定
10分以内 問題ありません
10分~30分 プログラマを仕事にするとちょっと苦労するかも
30分以上、解けなかった あきらめましょう

スキル判定サービス

もっと自分のスキルを詳しく知りたい!という方に、プログラミングスキルを判定する事ができるサービスをいくつか紹介したいと思います。

Top Coder

TopCoder_logo

Topcoderは、プログラム作成のスキルの確認から競技までを幅広くを行っているサービスです。解いた問題の難易度、数により「rating」を判定され、自分がどれくらいのスキルを持っているかが数字で確認できます。また、他の人の回答を見ることができるので、自分の考え方を広げるチャンスにもなります。
また、プログラミングだけではなくUIやアイコンのデザインコンテストなんかも出題されています(賞金付き!)。

ランク名称 rating
Red 2,200 ~
Yellow 1,500 ~ 2,199
Blue 1,200 ~ 1,499
Green 900 ~ 1,199
Grey 0 ~ 899
White 点数なし(初参加)

このサービスで最高ランクのRed認定された方は「red coder」と呼ばれており、red coderは現在約240名(会員比率0.1%)で、日本人は約10名との事だそうです。目指せRed Coder!

このサービスで使用できる言語は、java,C++,C#,VB,Pythonですが、言語そのもの知識はあまり重要ではなく、他の方の記事によると

  • for文、if文が分かる
  • 配列が扱える
  • 文字列が扱える
  • 関数がどういうものか分かっている
  • 英語の問題が読める

くらいだそうです。

登録、参加費は無料です。問題については、1人で解くタイプの問題から、ほかの人とトーナメント形式で成果を競うタイプまで様々であり、トーナメントでは成績に応じて賞金ももらえるそうです。お小遣い稼ぎにどうでしょう?

CodeIQ

codeiq

CodeIQは、「ITエンジニア向けの実務スキル評価サービス」となっており、プログラミングからHTMLの知識まで、幅の広い範囲が出題されています。

このサイトでは、回答者の点数やランク付けなどは行っていませんが、大きな特徴として、「出題者から回答についてフィードバックがもらえる」事にあります。
ただ問題を解いて正解/不正解を確認するだけではなく、「なぜ、こうしたのか」「こうしたほうがもっとよくなるんじゃないか」という指摘がもらえるのはかなり参考になるかと思います。

リクルートがスポンサーになっているせいか、転職に関する記載がけっこう出てますが興味ない人はスルーしましょう。

まとめ

日本でもサービスがちらほら始まったスキル判定サービスですが、おすすめは他の回答者の回答を見たり、回答について議論ができるサービスとなっているTopCoderです。
英語というハードルはありますが、Web関係は英語をカタカナにしただけの単語が多いのでけっこうなんとかなったりします。ちょっと問題をのぞくだけでもやってみませんか?