2011年2月3日木曜日

プログラマーのレベル測定

プログラマーのレベルが低いだと高いだと議論することはよくありますが、
一体レベルの高低はどうやって測るのでしょうか?

もしプログラミング能力を客観的に測定する方法があるのなら、
レベルの低いプログラマーがはびこるのを防ぐことができます。



…と言っておいてなんですが、
おそらくこれは(まさに)絵に描いた餅と言えます。

プログラマーはクリエイター業なので、
客観的な測定は極めて難しいからです。

例えるならば、
絵描きのレベルを測定しようと言っているようなものです。

「でもあからさまに下手な絵は分かりますよね?」
という質問があるかもしれませんが、
これはプログラミング能力の上では成り立たないのではないでしょうか。

少なくともスケッチであれば、
実際の風景と見比べて似ているかどうか見ればよいだけです。
※味のある表現とかは今は抜きにさせてください。それ以前のレベルの話です。

しかしプログラミング能力は別です。
前提となる知識や概念が無数に存在します。
・変数
・配列
・関数
・ポインタ
・再帰
・クロージャ
・アルゴリズム
・データ構造
・構造化プログラミング
・ガベージコレクション
・オブジェクト指向
・λ計算 …etc
少なくとも、知らないものについてはその良し悪しは判断できません。

つまり、
上級プログラマーは下級プログラマーたちのレベル差が分かりますが、
下級プログラマーは上級プログラマーたちのレベル差が分からないのです。

そしてこれはこう言い換えられます。
「素人はプログラマーのレベルを一切区別できない」
…と。

ここに鶏と卵の問題が発生しています。
レベルの高いプログラマーを雇うためには、
レベルの高いプログラマーが必要となるわけです。

さあ、どうやって解決しましょうか?

追記:Paul Grahamも同じこと言っているし、あながち間違いではないはず。

0 件のコメント:

コメントを投稿