developer's diary

最近はc#のエントリが多いです

fwd:世間ではプログラマが足りていないらしい

id:yaneurao)さんの『世間ではプログラマが足りていないらしい』を読みました。

自分なりにもう少し深く掘り下げて考えてみようと思います。

1万時間の法則。

人がその道のプロフェッショナルになるために最低限必要な時間。

この時間を会社が負担すると必要経費がとんでもない金額になる

  • 時給1000円×1万時間=1000万円
  • 時給1500円×1万時間=1500万円
  • 時給2000円×1万時間=2000万円
  • 時給3000円×1万時間=3000万円
  • 時給4000円×1万時間=4000万円
  • 時給5000円×1万時間=5000万円

・・・・

20代で一番休暇の多い業種は実はIT業界。

20代で一番休暇の多い業種って実はIT業界らしい。 (Doda調べ http://doda.jp/careercompass/hitome/kyujitsu.html )

IT業界の20代の人は1年間に230日働く。1日8時間働いたとして、1年で1840時間。

5年働いても1万時間に足りてない。

IT業界には「知の高速道路」がある。

梅田望夫さんの言う「知の高速道路」はIT業界で言うとではずば抜けて太いパイプ。 正直なところ、グーグルがなかったら今の自分もないです。 高卒のアルバイト定員のままもしかしたら人生を終えていたかもしれません。

IT業界にはそんな高速道路があります。 (IT以外にもあるけれどもITは特に太く長い高速道路)

独立行政法人情報処理推進機構(通称 IPA)のやっていること

IPAは情報処理技術者試験というのをやっています。

情報処理技術者試験は、「情報処理の促進に関する法律」に基づき経済産業省が、情報処理技術者とし> ての「知識・技能」が一定以上の水準であることを認定している国家試験です。

wikipedia曰く、『日本でも最大級の国家試験』と書かれてあります。 『国家資格の試験実施主体、受験手数料、受験者数、登録の要否等一覧』を見る限り日本最大級かもしれない。。。

基本・応用情報処理の受験者

ちなみにこの情報処理技術者試験には統計情報があります。

情報処理技術者試験>統計情報

基本・応用情報処理の 年齢別 一覧表(EXCEL)をグラフ化してみました。

f:id:mitsugi-bb:20130812122647p:plain

f:id:mitsugi-bb:20130812122651p:plain

合格者は基本的に2割で、パレードの法則が成り立っている。

基本・応用情報処理とプログラミング

応用情報処理にプログラミングの問題はほとんど出てこない。 経営ボストン・コンサルティングのPPMとか、決算書の読み方とかも出てくる。幅広い。

基本情報処理に出てくるプログラミングの問題はC,Java,COBOL。

情報処理に必要なプログラミングは全体の20%ぐらい? もしかしたらその20%はパレードの法則かもしれない。

しかしアーキテクトの20%の方がもっと重要な気がする。

Eben UptonさんがなぜRaspberry Piを作ったか

以前、グランフロント大阪で『英国発テクノロジーが世界を変える Raspberry Piが開くGlobal Innovation』というのがあり、その時 Raspberry Piの創設者である、Eben Uptonさんが「なぜRaspberry Piを作ったか」という紹介をお話していた。*1

95年からケンブリッジ大学でコンピュータサイエンスが始まった、 大学に入る人はほとんどプログラミングができる人たちだった。


年々、プログラミングができない人が入ってくるようになった。 2005年にはwebデザインを少しやったことがある人たちが沢山入ってくるように。


大学期間の内、3年間(60週)。ただの高校生をプログラミングができるようになるまで育てなければならない。 すべての教材を終えることが難しい状態になった。


1980年台のコンピュータはプログラミングができることが重要であった。 大学に入る前の18歳の子供たちが毎日プログラミングをするという状況であった。 昔はコンピュータをオンにすればプログラミングを学ぶことができた。


しかし今は、プログラミングを学ぶ前にできることが沢山増えている。


私たち6人が話し合って何かできないかと考えた。

読み書きそろばん ↓ 読み書き電卓 ↓ 読み書きプログラミング

初等教育にプログラミングを入れるのはあながち間違いじゃないと思う。 パターン認識が優れているのは赤ちゃん〜低学年だったはず。

どうやったら1万時間を500時間に減らすことができるのか

どうやったら1万時間を500時間に減らすことができるか。 ってそもそも1万時間を500時間に減らすことができるのか?

1万時間の法則は何をやっても、どれだけ生産性を上げても1万時間必要な気がする。

子供が成長するように、環境も成長する。 3歩進んで、2歩下がるかもしれないが、着実に1歩はすすんでいる。

何が言いたいのかというと、そもそも企業が1万時間で求められていることが、プログラミングではないんだと思う。

そもそも、1万時間で学ぶことは何か。

単純にWEB開発者って多分プログラミング以外で覚える事が多すぎる。

HTML,CSS,Javascript,サーバーサイドプログラミング等々・・・

少し多いので『WEBアプリケーションエンジニアの技術要素』として別ページにまとめてみました。

まとめ

IPAがやっている試験を真面目に参考にしてはいけないんだろうか。

もちろん過去問の流用があるので暗記でどうにでもなるという意見や、COBOLだとWEB系で利用できない等の意見もあるかもしれないが、合格者2割 はフィルタリングとしては有効な気がする。

また技術者が覚えておいたほうがいい技術要素も年が経つにつれて増えていく。

言語の仕様が増えるし、言語自体も増える。 ライブラリの中身が増えるし、ライブラリ自体も増える。

分野が沢山あるなら、特定の分野でプロになって、横展開して広げていくのが望ましいのか。

id:masuidrive さんがMobiRubyのイベントでキャリアについてお話してた時に、「斜め上方向」というようなことを語っているのを思いだした。

*1: その時のスライドがraspberrypiのユーザグループで掲載されている