プログラマの実力は経験だけであがらないことがレベル格差につながる

プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。

Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。
Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。

プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。

プログラマとしての実力をあげるための勉強が自発的・組織的に行われないひとつの要因として、そういった勉強は、まったく業務に関係なくみえることがあるんじゃないかと思う。自然、プログラムの勉強としても、ツールやライブラリの使い方ばかりの勉強になりがちになる。
ぼくのエントリで「アルゴリズムの勉強をしましょう」というのは数年前からたびたび書いてるのだけど、SIの衰退が目に見えるようになる前は「そういうのは業務アプリでは必要ない」というコメントが毎回ついていた。というか、何か書くたびに「業務アプリでは〜」「大規模開発では〜」というコメントがついてた気がする。だいたい「プロジェクト管理のほうが大事」という感じだった。

続きを読む