プログラマー不足は常に叫ばれていますが、果たしてこれは本当なんでしょうか。
実のところ「日本はプログラマーが不足している」ではなく、「日本は優秀なプログラマーが不足している」です。
コピペできるプログラマはたくさんいますが、
- 原理を知っている人
- 言語が変わっても大丈夫な人
- 最先端の言語を使いこなせる人
というのは少ないです。
プログラミングというものが労働集約ではなく知識依存のものなので、優秀なごく一部の人間がいればいいというのも当然のことでしょう。
とはいっても優秀なプログラマーは忙しく、その結果として「プログラマが足りない」と言われているのが実際です。
「プログラマーが足りない」のではなく「優秀なプログラマーが足りない」
プログラミング教育が必要、プログラマーが足りないと言われる昨今ですが、簡単なことができるレベルであればプログラマーは足りています。
そのわかりやすいポイントが、プログラマーは低賃金という話が広く普及していること。
IT業界は肩書(システムエンジニア(SE)、ITコンサルタント、など)で収入が決まる仕組みがあり、ただ単にプログラミングができるというだけでは安いままです。
すでにプログラミングする環境が整っている、やることも簡単という場合においては、供給が需要に対して多くなります。
その結果、プログラマーが買い叩かれるということになるのです。
プログラマーが足りないというのは
- 最先端の技術について行けるプログラマーが足りない
- 技術やアイデアをコードに落とし込めるプログラマーが少ない
- 俯瞰的な思考をもったプログラマーが少ない
ということを言っています。
3つ目の俯瞰的な思考というのは「無理に技術で解決しない」ということで、Googleなんかはその代表。
Googleのサービスには多数決の原理を使っていると思われるものがいたるところに存在します。
IMEとか検索エンジンなど、「大勢の人が使うことで、実用に足るデータが出来上がる」というのが特徴的で、不正をしようとしても多数派の行動からバレてしまいます。
1つ目、2つ目に関しては、常に需要が供給を上回っているのがわかることでしょう。
日本語の情報が少ない言語は環境が整っていませんし、アイデアをコードに落とし込むというのも手間とスキルが必要。
単にプログラミングというだけだったら誰でもできるので、上にあげたような付加価値を付けられるプログラマーが少ないということなのです。
付加価値を付けられるプログラマーが少ない
付加価値だとか俯瞰的な考え方だとか、技術者にとってはナニソレオイシイノ的なものだらけ。
儲ける=NG(嫌儲)的な思考を持っているプログラマーが存在するのも事実ですし。
ただ、技術者に求められることを考えた場合には、上記した内容に収束していくのも事実です。
そもそもの話、です。
プログラマーとして仕事をするということは、誰かから仕事をもらうということ。
ということは、そこには仕事を発注する人がいるわけですよね?
そうであればこそ、どういうプログラミングをすれば喜ばれるのかを考えることの大切さがわかるはずです。
そしてそれと同時に、需要と供給の関係がプログラマーにも当てはまることが自然とわかると思います。
最先端のプログラミング言語を使うにはベースの知識が必要
もしあなたがプログラマーとして活動するなら、最先端の言語や、アイデアをコードに落とし込む能力は必要です。
で、そのためには何が必要かというとベースの知識。
ここにきてようやく数学を勉強する意味が出てきます。
アルゴリズムや行列などを勉強する意味というのはここにあって、原理を理解した上でのプログラミングというのが重要です。
もちろん、手を動かすことは重要です。
ですが、原理や本質を理解することというのもそれと同じぐらい必要です。
プログラマーとして気をつけるべきことは?
ここまでプログラマーのことについて書いてきましたが、努力の方向性という意味では注意すべきポイントがあります。
それは本当に世の中に必要とされているのかという点です。
プログラミングをするうえでは
- 技術的にはすごいけど、それほど需要がないもの
- 簡単だけど、世の中の需要が大きいもの
といったものが出てきます。
プログラミング、プログラミングと考えていると前者に目が行きやすいのですが、世の中の需要に応えるなら後者でしょう。
プログラマー・技術屋として働くなら後者のようなものを探す能力は必要で、実はこっちの方が大事だったりします。笑
そもそも論ですが、プログラミングは手段です。
プログラミングで何をするかの方がよっぽど重要で、それを考えれば必要なプログラミング能力、もっというとよく使うプログラミング内容というのはお決まりパターンです。
ニーズを探し、それに応えるための知識や考え方。
見つかったニーズに応えるために、アルゴリズムや行列といった知識が必要になるのです。
ベースの知識を付けるのはいいですが、世の中のニーズを知ったうえで勉強するようにするとムダが少なくなります。
日本のプログラマー不足に関するまとめ
ただ単にソースコードを書くだけだったら、供給の方が多い。そのうえでどうするか。
ソースコードを書く以外のことをできるプログラマーに関していえば、「プログラマーは足りない」ということになります。
ここまで来るともうプログラマーの領域ではなくなりますが。笑
技術を活かしたい、技術で食べていきたいと考えているのであれば、ソースコード以外だけを見てはいけません。希少価値・付加価値を意識してなんぼです。