AIによる自動化がプログラミングに与える影響【現役エンジニアが解説】

PROGRAM

AIがプログラミングに与える影響を知りたい方に。

この記事を読まれている方は、

  • プログラミングとAIの関係を知りたい
  • AIでどこまでできるのか知りたい
  • プログラミングという仕事もAIに奪われるのか知りたい

おそらくこのように考えている方が多いと思います。

この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。

この記事では、現役のエンジニアが、AIがプログラミングに与える影響ついて、解説します。

AIができること

AIができること

まず最初に言っておくと、今現在や近未来で開発されるAI(人工知能)とは、世間一般で期待されているような「自我を持った、人間と同等レベルの人工的な知能」ではありません。

実際のAIは「人間の振る舞いの一部を人工的に再現したもの」にすぎません。

代表的なものは、主に機械学習と呼ばれる、パターン学習による再現です。

機械学習に加えて、自然言語処理などを駆使することにより、擬似的に人間の振る舞いを模倣しているのです。

例えば、企業が導入し始めているチャットボットやペッパー君などは、それ自体もしくはその一部がAIと呼ばれていますが、人間の知能をそっくりそのまま持っているというわけではなく、はたまた、自我を持っているというわけでもありません。
ただ、問い合わせ対応や案内といった目的に特化し、パターン学習や音声画像文字認識をすることで人間らしく振舞っているというだけです。

つまり、AIができることというのは、ある目的のための機械学習機能を備えた処理でしかありません。

AIに取って代わられる仕事とは

AIに取って代わられる仕事とは

世間一般の一番の懸念点は、AIに取って代わられる仕事についてだと思います。

現時点では、あらかじめ定めた目的に特化したAIしか作れませんので、取って代わられる仕事というのは、パターン学習や試行錯誤によって代替が可能な仕事のみとなります。

例えば、コールセンターの業務です。
コールセンターの業務は、パターン学習によって、問い合わせ内容には大体答えることができます。

今現在でも自動音声による対応というものがあり、一部の問い合わせについては自動音声だけでも対応ができます。
もし自動音声で対応できないものがあれば、オペレーターにつなぐという役割分担になっていますが、AIが登場すると、既存の自動音声対応とオペレーターの間にさらにAIが入り込むことになるでしょう。

そうなれば、今までオペレーターが行っていた問い合わせ対応の一部がAIでカバーすることができるようになり、オペレーターの数を削減することができます。

そのほか、画像音声文字の認識や照合、判別の作業もパターン学習によって代替可能なため、決まり切った定型的な仕事は徐々にAIが導入されていき、AIが人間に取って代わることになるでしょう。

プログラミングとAIの関係

プログラミングとAIの関係

現時点ではAIは自我を持ちませんので、あくまで開発者が、ある目的を持ったAIを設計・プログラミングしなければなりません。
すなわち、AIに息を吹き込むのは開発者ということです。

しかし、開発者の仕事のうち、例えば、プログラミングのコーディングの作業は単純ですし、ある程度パターン化によってカバーできてしまうところがあるので、この作業がAIに取って代わられることは十分考えられます。

便利なライブラリやMVCフレームワークの登場は、その前兆とも言えます。
例えば、Ruby on Railsではgemというライブラリが充実しており、比較的簡単なシステムであれば、既存のgemの組み合わせるだけで作れてしまいます。

つまり、AIによって自動化される可能性が高いというわけです。

このように開発者の設計や製造の作業の一部がAIに取って代わられる可能性は高いですが、AIそのものを設計、製造するのはあくまで開発者です。

手広く活動するエンジニアから見れば、煩わしい作業の一部を自動化するためにAIを使う、といったイメージになるかと思います。
一方で、コーディングのみに専念してきたプログラマーにとっては、大きな打撃を受けることになるかもしれません。

技術を利用する立場にある人が生き残り、技術に流されるような人は今後淘汰されることになります。

AIを利用・開発する立場になるためには

AIを利用・開発する立場になるためには

ここまででAIを利用したり、開発する立場にならなければ淘汰されてしまうということがわかりました。

それでは、具体的にAIはどのように開発するのか。

AIを開発する場合は、開発言語はほぼPython一択になるでしょう。
理由は機械学習関連のライブラリやフレームワークが充実しているからです。

そのほか、R言語などという声もありそうですが、こちらは機械学習というよりはデータ分析の統計的なライブラリの方が充実しているので、少しジャンルが異なります。

PythonはWeb系プログラミングでも使えるため、Web系と機械学習という組み合わせの開発も可能になってきます。
これは需要のある組み合わせだと思っています。

PythonもWeb系単体では少数派ではありますが、Web系フレームワークとしてDjangoがあるので、機械学習との組み合わせ次第ではかなり活き活きとしてくる言語なのではないかと私は考えています。

まとめ:AI時代を生き残るためにはPythonを学ぼう

まとめ:AI時代を生き残るためにはPythonを学ぼう

Pythonを学ぼう、というのはあくまで開発者向けのメッセージです。
開発者でなければ、利用する立場の人間になりましょう。

プログラミング初心者にとっての手っ取り早い入り口はWeb系プログラミング言語であるPHPを始めることであると私は思っていますが、
エンジニアやプログラマーになるのであれば、キャリアの早い段階でPythonも学ぶことで、機械学習に関する知見を広げていった方が良いと思います。

開発者にも関わらず、AI時代にAIのことを知らないエンジニアでいることは、かなりリスキーなことだと思うからです。

もし読者の方がプログラミング初心者であれば、
私がオススメする学習の手順は、以下のとおりです。

  • 1. PHPでWeb系プログラミングを習得する
  • 2. Pythonで機械学習について学ぶ
  • 3. PythonのWeb系プログラミングを習得する

3のPythonのWeb系プログラミングは習得しても良いですし、しなくても良いです。
ただ、相乗効果が高い組み合わせだと思いますので、機械学習の後で目標がない状態になるようであれば学ばれると良いのではないかと思っています。

もちろん挫折を恐れないのであれば、PHPをやらずに流行りのPythonから始めてみる、というのもありです。

その場合、独学だけでは難しいと思いますので、プログラミングスクールも視野に入れることをオススメします。
プログラミングスクールに関しては、以下の記事でまとめていますので、目的に合わせて検討してみると良いと思います。