
AI時代を迎えつつあり、プログラマーの将来性とAI時代も生き残れるプログラマーとは、不安の声もあると思いますが、今回はそんな声に答えていきたいと思います。
プログラマーに対する需要が再び高まってきていますが、AI時代を迎えるにあたりプログラマーとしてどのように生き残っていきますか。
需要が高まっている今だからこそ、先を見定めて求められている分野を、先に身に付けましょう。
最近のトレンドの一つは、AI開発に関することです。
中には

と、言っている人もいるかもしれませんが(プログラマー不要論)、AIを作るためにはプログラミングが必要です。
今度は

と、思われるかもしれませんが、AIが普及すればプログラマーは徐々に駆逐されるかもしれません。
海外へ外部委託も行えば国内開発の必要はなくなるかもしれませんが、企業にとっては専属で行ってもらい、サポートをしてくれる人を探しています。
つまり、スキルを幅広くもち、トレンドを先取りしておくことで、採用の機会も増え”AI時代にも”生き残ることができるのです。
今回は、どの様なプログラマーとスキルを身に着ければ生き残れ、何がトレンドなのかを少し見ていきましょう
プログラマーの将来について

この先の需要やトレンドについて何が必要になっていくのでしょうか。
詳しくみてみましょう。
プログラマーの需要について
プログラマーの需要について見てみましょう。
様々な職種で高齢化と言われいてるように、プログラマーの世界も高齢化が迫りつつあります。
平成28年に発表された経済産業省の調査結果がありますが、その内容を簡単にまとめると以下になります。
- IT人材は、現在の人材数は約90万人、不足数は約17万人と計算されており、今後2019年をピークに人材供給が減少傾向となり、より1層不足数が拡大する。
- IT関連産業従事者の平均年齢が2030年まで上昇の一途をたどり、産業全体としての高齢化も進むことも把握された。
- 情報セキュリティ人材では、現在の人材数が約28万人に対し、不足数が約13万人。 2020年には不足数が約20万人に拡大。
- 先端IT人材では、現在の人材数が約9.7万人に対し、不足数が約1.5万人。2020年には不足数が約4.8万人に拡大。
- 2030年には、人材の不足数が多い場合で約79万人不足すると考えられ、少ない場合でも約41万人の不足数が予想される。



参照:経済産業省
“IT人材の最新動向と将来推計に関する調査結果を取りまとめました 調査結果の概要 別添”
“IT人材の最新動向と将来推計に関する調査結果~ 報告書概要版 ~” より
上記の内容と統計を踏まえると、今後は高齢化と人口減少による人手不足により需要の面では拡大していき、プログラマーの将来性は確かにあります。
良いシステムを作っても、良いプログラマーがいなければ製品としては成り立たないからです。
しかし、既存のことだけを行っていては安く買い叩かれ、同じことを行っている人であふれるかもしれないので、生き残ることが難しくなります。
売り手市場の今だからこそ、先を行く技術と情報をつかみましょう。
IT業界のトレンドは?
今後、需要があるものを簡単に上げてみましょう。
- IOT
- AI
- 機械学習
- クラウドサービス
- アプリケーション開発・導入
少し見てみましょう。
IOTについて

IOT(アイ・オー・ティー)とは、Internet of Things の略称です。
日本語に置き換えるとモノとインターネット
と呼ばれ、スマホやタブレット、PCなどのに加え、家電や自動車、ビルなどの様々なモノがインターネットにつながっていくことを意味します。
例えば、農業の場合は、ビニールハウスで栽培するのにセンサーを設置して温度や湿度のデータを読み取り、クラウド上で共有して適切な環境を整えられるようになれば、常に一定の収穫を行うこともできるかもしれません。
もう一つ例に出すと、流行りのスマートウォッチもIOTの一つです。
腕に取り付け、センサーから心拍数や、GPSからはその人が1日にどれだけ移動したかを計測し、蓄積されたその人のデータをもとに健康管理に関することをアドバイスしてくれます。
今はまだ、発展途上にある分野であるため、どのようにデータを取得し、取得したデータをどのように導入していくかが課題となっています。
センサーを取り付けるだけでも高価になってしまうため遠ざけられてしまいますが、コストを抑えるか、価格に見合う効果がでれば企業以外にも、規模の小さな農家も採用してくれると予想され、まだまだ発展していく分野です。
AIについて

AIを日本語に置き換えると人工知能となりますが、正しい意味を知っていますか。
実は厳密な定義はいまだに決まってはおらず、現状の情報で簡単にまとめると、
人間が行っている知的な作業を機械が行うということです。
機械学習やインターネット上から得られた情報と、そのほかの経験(プログラム)をもとに独自の結果(推論)を立て、作業を自動で実行していく機械のことです。
海外の金融業界では既に人事入れ替えが行われており、ゴールドマン・サックスの様な企業では500名ほどいたトレーダーが数名ほどになり、その代わりにコードなどを書くエンジニアとプログラマーに置き換えられたそうです。
日本においても既に行われており、NECが企業向けの融資やローンなどの審査、需要・株価予想などのマーケティングにおいて実証が行われています。
最近、積極的な活用を行おうとしているビッグデータに対する需要と活用の機会が増えていくと思われるので、AIエンジニアや運用に関わるプログラマーの不足が予想されます。
機械学習について
機械学習とは、機械(コンピューター)に対し人間がデータやモノに対してラベルをつけや分類を行い、ラベル付けられたものから機械が自ら判断するなどを言います。
機械学習の一つに、自動車の自動運転化があります。
カメラやセンサーなどから情報を取得し、画像を覚えさせることで画像に対する特徴を見つけ、新しい画像を覚えてもその画像に写っているものが車であると、機械が自ら判断することを可能とさせます。
車を覚えることにより、車を自動で走らせた時でも車に対し安全距離を取り、前方を走行中の車が止まった場合、適切なタイミングで止まることができるようになります。
機械学習はAI開発における一つの段階で、機械学習によってラベルや分類された情報をAIが独自に判断し、変化された画像に対してもラベルや分類付けをAI自身が自動で行えるようにする初期設定ともいえる部分を機械学習と呼びます。
AIの需要が増えればそれだけ機械学習を行うプログラマーの需要も増えていくことになりますし、自動車の運転のアシストだけを行うプログラムなど、AIを導入するほどではない部分でも今後の展開が期待されます。
クラウドサービス

クラウドサービスとは、インターネット上で情報の共有やデータ入力を行えるサービスのことです。
クラウドサービスの一つの例としては、人事労務管理システムの導入です。
インターネット上にてデータを共有し、紙面による記入ではなく、労働者本人がスマートフォンなどで専用のページにアクセスし必要な情報を入力することで、紙で提出されたものを再入力する手間を省き、その分の時間を節約することもでます。
本人が入力を行うので、間違いがあった場合でも気が付き、時期と何をやるのかがある程度決まっている分野に導入し、コストと手間の削減に一役買うことができます。
様々なシステムが売りに出されていますが、そのシステムを導入・保守やサポートを行う部分にプログラマーが必要とされています。
公共サービスのさらなるクラウド化も予想されるため、今後の活用の動きをチェックしましょう。
アプリケーション開発

スマートフォン(スマホ)やタブレットが普及し、誰でも毎日アプリを使用しているかと思いますが、アプリ開発の需要もまだまだ続いていくと思われます。
スマホなど誰でも扱える機械で、誰でも使えるアプリに対する需要が高く、多くの人の目に留まり、ダウンロード数が増えればそれだけ収益につながります。
スマホで最初・一部無料のゲームなどをやったことがある人も多いと思いますが、アプリの売り上げとして大半を占めるのは、無料でやっていくうちに有料(課金)をしてしまうことです。
それ以外にも、スマホでレシートを読み取り家計簿を付けたり、オンラインチケットなどまだまだスマホ化できる部分は十分にあり、流行りの先を行くか、流行りに合わせてより良い物を作ることが求められます。
アプリから取得したデータをどのように活用していくかについては、IOTやクラウドサービスの部分が関わってきます。
AI時代にも需要のあるプログラマーや必要なスキル・能力は
IT業界全体が人手不足と言われていますが、AI時代を生き残るためにもその時のニーズに合わせたことを行う必要があります。
プログラマーにとって必要なスキルと言えば、プログラミング言語です。
分野ごとに様々なプログラマーがいますが、需要のあるプログラマーの種類とそれぞれ必要な言語について見ていきましょう。
Webプログラマー

Amazonの様なネットショッピングサイトを立ち上げるのにはWebプログラマーの存在が必要です。
ネットショッピング以外にも社会インフラなどをWebサービスで行う時もWebプログラマーの存在が必要です。
社会インフラのWebサービス化の機会も増えていくと思われ、その時は必ず関わってくる職種であり、今後の活躍の場はさらに増えてくると思われます。
Webプログラマーに必要な言語
- JavaScript
- HTML
- CSS
- PHP
- JavaScript
- HTML
- CSS
- PHP
アプリケーションプログラマー

この場合のアプリケーションとは、スマートフォンやタブレットなどで扱えるアプリのことです。
iPhoneの登場をきっかけに普及し、今では多くの人が利用するInstagramやインストールせずWeb上のみで作業を行うgoogle Chromeの簡単なタスク管理アプリなどさまざまなものがあります。
IT技術が発達し、手軽に使える物などがさらに普及していけば、それだけニーズが広がるので、新しいアプリを開発する機会が増えていきます。
アプリケーションプログラマーに必要な主な言語
- Swift(iPhone用アプリであれば)
- Java
- C#
- C
- PHP
- Swift(iPhone用アプリであれば)
- Java
- C#
- C
- PHP
組み込み系プログラマー
組み込み系プログラマーとは、家電や電子機器など身の回りにある小さな機械に組み込まれ、温度や時間などを計り、必要な処理を行うプログラムの開発を行うのが、組み込み系プログラマーです。
家電がなくなることはないので常に一定の需要があり、最近は”IOT化を行おう”と言う勢いが増していて、IOT化を行う時には必ず必要な職種であるため今後の活躍の機会は増えていくと思われます。
また、実際に機器や家電などを動作させながら構築していくので、モノ作りの実感を味わえる職種と言えます。
組み込み系プログラマーに必要な主な言語
- C
- C++
- アセンブリ
- Java
- C
- C++
- アセンブリ
- Java
通信系プログラマー

通信系プログラマーの主な仕事は、テレビ会議やチャットツールなど通信に関するシステムやソフトを開発することです。
人事労務管理システムなどクラウドサービスの発展により、今後は様々な部分でクラウド化が行われると思われ、クラウドサービスの導入や活用の時には重要な部分を任されるでしょう。
通信系プログラマーに必要な主な言語
- C
- C++
- Java
- C
- C++
- Java
では、今後プログラマーとして活躍していくために必要な能力は
目指している分野においてプログラミングを行えることは必要ですが、それだけでは足りないと言えます。
プログラマーだけではなく、社会人として必要な部分も関わってきていますが、少し見てみましょう。
-
コミュケーション・ライティング能力

プログラマーと言う職業に関わらずいえることですが、チームとして動いている時でも、フリーランスとして動いている時でも必要な能力と言えます
クライアントからの要望を正確に聞き出し、修正が必要になった場合は、納期の延長や費用の追加などを行うために必要な能力です。
特にフリーランスとして活躍する場合はクライアントと直接交渉する必要が生じ、正しい情報を聞き出し、手戻り作業のないように行わないとその期間に使った日数が無駄となってしまいます。
クラウドソーシングサービスを介して仕事を受注する場合は、さらに厳しい条件となってしまう可能性があるので、クライアントに対しこちらの能力を示し、少ない回数で必要な情報を聞き出して仕事が受注するライティング能力の方が重要となります。
-
マネージメント能力

コミュニケーション能力と同様、チームで動く場合に必要となる能力がマネージメント能力です。
個別に動いているプログラマー同士をつなげ、プロジェクトがどの程度の進捗状態であるか把握し、業務全体をスムーズに動かしていく、実務経験がありプログラムの内容がしっかりと理解できる人物が求められます。
また、プログラマーの世界は離職率も高いと言われいて、若手が入社した場合、しっかりと教えまとめられ、未経験者を育てられる人は重宝されると思われます。
-
変化に合わせ学び続けること

プログラマーの世界は常に流行に振り回される世界と言えます。
iPhoneが流行り始めた時は、iPhoneでしっかりと動作するアプリを開発するためにSwiftを学び、クラウドサービスが流行り始めた場合は、C++などを学んだりと常に流行のモノに合わせた言語を学ぶ必要があります。
企業に所属している場合は、その企業が主に使用している言語を覚えれば済むかもしれませんが、新しいサービスに企業が参入する場合はそのサービスに合わせたものを覚える必要があり、フリーランスとして活動をする場合は、さらに幅広いことを行えるようにし付加価値を付けるかが必要となってきます。
プログラマーの世界以外にも言えることですが、常に学び続ける姿勢を取らないと置き去りにされ仕事をもらえなくなってしまうので、この姿勢は大変重要な能力の一つです。
まとめ

今後、AI技術の発展と機械学習の普及により、プログラミングがさらに簡単に行えるようになり、初心者でも行いやすいシステムが増えていき未経験者が新たに参加していくことが予想されます。
プログラミングが簡単になるとその分だけ人件費を抑えようと若手の採用が増え、経験年数の多いベテランは人件費が高いため企業にとっては少し邪魔な存在と思われるかもしれません。
そのため、プログラミングだけではなく、若手を育成し、チームを束ねることのできる人物は求められる傾向にあります。
定年まで企業に所属するよりも、フリーランスとして仕事を行い
その人に任せれば完璧にこなしてくれると思われるプログラマーが生きていくができるかもしれません。
いずれにしれも、流行に左右される職業なので,
常に変化に合わせ学び続けていくことが最も必要な能力と言えるでしょう。