SSブログ

ソフトウェア開発と人事戦略(2) [ソフトウェア開発と人事戦略]

Java研修を長年続けてきて、近年、非常に進捗が悪くなっています。その理由を考えてみると、基礎的な事柄を知らないままソフトウェア開発に従事している人が増えているためだと思うようになってきました。

ここでの基礎的なこととは、一般的な「データ構造とアルゴリズム」、オペレーティングシステムに関する基礎知識、ハードウェアに関する知識です。それに加えて、デザインパターンに関する知識も欠如しているため、その都度、Javaとは関係ないことを説明しなければならいことが非常に多くなっています。

データ構造とアルゴリズムに関しては、基礎的なことを理解していない人が多く、ハッシュテーブルを説明したりO表記を説明できたりする人は皆無だったりします。オペレーティングシステムに関しても、仮想メモリをサポートするためのページングの仕組みを知らなかったり、Unixでのシステムコールを用いたプログラミング経験が全くなかったりします。デザインパターンにいたっては、全く勉強さえしたことがなかったりする訳です。

このようなレベルの人達が、『プログラミング言語Java第4版』や『Effective Java 第2版』を読んで理解するのは無理な場合が多いです。たとえば、『Effective Java 第2版』の項目6「廃れたオブジェクト参照を取り除く」のp.24の最後に次の一文があります。
極端な場合には、そのようなメモリリークは、ディスクのページングを起こしたり、(以下省略)
ここで、「ディスクのページングとは何か」と質問しても答えられなかったりします。そうなると、説明することになるのですが、このレベルを都度説明していては、全く進まないことになります。

なぜ、基礎的なことを知らないかというと、そもそも、大学での専攻が情報工学ではないということです。全く違う専攻で、就職してからプログラミングをするようになる人が多くなっているからだと思っています。

IT技術者が不足していると言われる今日であれば、大学で情報工学を専攻した方が、就職には全く困らないにも関わらず、情報工学の競争率が高いとは聞きません。大学の専攻とは異なるけど、専攻では職がないためなのか(または別の理由からなのか)、多くの学生がソフトウェア開発に応募してしまうし、企業もそのような学生を採用しないと情報系として採用したい人数を確保できない状況になっているのではないかと思います。

さらにおかしいことは、大学で情報工学を専攻した学生と大学で文系だった学生がソフトウェア開発として採用されたとしても、日本の多くの企業では給与が同じだということです。そして、同じ内容の基礎教育を受講し、情報工学を専攻した人は内容が易しすぎるし、文系だった人には内容が難しすぎるという教育を多くの費用をかけて行っていたりします。

日本の多くの企業(メーカー)でのソフトウェア開発要員の採用およびソフトウェアエンジニアの育成は、大丈夫なのでしょうか?
コメント(0)