SSブログ

ソフトウェアエンジニアの成長カーブ(4) [プログラマー現役続行]

最近、キャリア(中途)採用の面接をしています。面接に先立って、書籍の一覧が書かれた調査表に記入してもらいます。目的は、どれだけ本を読んでいるかと継続的に技術書を読む習慣を身に付けているかを知るためです。

社会人となって5年から7年経過して、経歴書上は経験を積んでいるように記述されている人でも、その人が業務で使用し習得していると述べられている技術に関連する書籍をほとんど読んでいない人は、技術的なことをほんの少し深く聞いても答えられない人が多いです。

ただし、新卒としてだったら、採用して育成し直すことができるレベルなのにと思う人も多いです。しかし、すでに、社会人となってから、5年以上経て、技術書を読む習慣を全く身に付けていない人は、急に勉強するようにはならないと思います。

ソフトウェアエンジニアの成長カーブ(2)」に掲載しているイメージ図を拡大してよく見ると、15年以上の右肩下がりとなっている赤い線に次のような注釈が付けてあります。
新たな技術を習得する必要があるが、学習習慣を失っているため、学習しない。
まあ、実際に業務で必要なら全く勉強しない人はいないかと思いますが、「業務を遂行するのに最低限必要なことを業務時間内に勉強する」程度ではないでしょうか。

イメージ図の注釈における「学習しない」の反対である「学習する」は、私としては、「積極的に学習する」ということです。新たな技術や新たなプログラミング言語を使用するのではあれば、関連する技術書として何を読むべきかを自分で調べて、購入し、プライベートな時間に学習および練習(「Practice, Practice, Practice」)することです。決して、「業務を遂行するのに最低限必要なことを業務時間内に勉強する」ではありません。何か分からなければ、よく勉強している若い人に聞けばよいということでもありません。

しかし、成長カーブのイメージ図をよく見ると、そのような「積極的な学習」は、社会人5、6年の頃に終わっています。その後は、次の注釈が書かれています。
学習しなくても開発業務がこなせるので、学習習慣を失う。
積極的な学習をしなくても、開発業務をこなしている対象領域(ドメイン)の経験年数だけは積み上げられていき、ドメイン知識だけは確実に増えていきます。そして、そのドメイン知識の量が、ソフトウェアエンジニアとしてのレベルであると開発組織も本人も勘違いしてしまうかもしれません。

2000年の頃、ある会議で、私と同じ年齢のエンジニアと(複写機の)コピーアプリケーションのためのAPIを議論しようとした時に、基本的な考え方を単純化して説明したら、「コピーはそんなに単純じゃない」と怒られて全く技術的議論にならなかったのを覚えています。彼は、複写機のコピーアプリケーションの振る舞いについてはドメイン知識は豊富なのですが、ソフトウェアエンジニアとしては、相変わらずフローチャートを部下に書かせているような人でした。当然、オブジェクト指向もC++も知らないというレベルです。私自身は、1993年から1996年に、C++でマルチスレッドプログラミングをしたデジタル複合機の開発に従事している(「C++とメモリ関連エラー」)ので、コピーアプリケーションが単純でないことは十分知っていたのですが、技術的議論は全く噛み合いませんでした。

私の経験から言えるのは、ドメイン知識は開発を通して習得することはできます。しかし、「積極的な学習」態度は、一度失うとなかなか取り戻すのが難しくなります。なぜなら、それは、生活習慣だからです。

(「ソフトウェアエンジニアの成長カーブ(再掲載)」)
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0