エンジニアでいかに稼ぐか?学校や会社では知ることができなった体験、経験を綴ります

【91】AIが最初に職を奪うのはプログラマー

»

こんにちは手塚規雄です。

Google DeepMind社が開発したAlphaGOがトップクラスのプロ棋士であるイ・セドル9段に4勝1敗と勝ち越したニュースは多くの人に衝撃を与えました。まだまだ人間にも勝つ可能性は残されている状況ですが、逆に言えば本当にトップクラスのプロ棋士にしか望みがなく、大半の人間にはまったく歯がたたない状況までAIは進化したともいえます。

AIが人間に勝つというニュースが流れると、同時にAIが人間の仕事を奪うという話がセットで必ずされます。ところで職が奪われるのはどんな職業だと思いますか?

 

実はプログラマーほどAIに奪われやすい立場は他にない

AIを開発するプログラマーがなぜ自分の仕事を奪われてしまうのか?その理由はこの3つです。

1:(構造化)プログラミングは「順次処理」「分岐」「繰り返し」しかないので単純。人間にソースコードを読ませない前提の動作優先なら更に簡単になります。

2:IT業界でもっとも高いのは人件費。AIが行う事で人件費が削減できれば、ビジネスとしての旨味も大きい。AIなら不眠不休で働き、病気にもなりません。

3:プログラミングの自動化、ソースの自動生成も今では当たり前の話なので、AIがプログラミング開発することは他業界にくらべて心理的な抵抗は少ないと思える。

 

他の業界の人間がAIに仕事を奪われるよりも、プログラマーのほうが奪いやすい土壌が出来上がっているとも言えます。他の業界に抵抗されながら奪うよりも、AIプログラミングの確立のほうが比較的たやすく、AIの進歩も早まる可能性が高いと私は思います。

 

法律の問題も少ないように思える

AIや機械が仕事を奪うという話題で大きいのは自動車業界です。自動運転技術はほぼ完成されているというところまで来ています。しかし事故時の責任の所在など法律的な問題がまだまだ未解決であり、自動運転の恩恵を受けるのはもうちょっと先のように感じています。

しかしプログラミングの場合はどうなるのか?システムを作るのが別にAIであろうが人間であろうが作成責任者はそのシステム開発を受託した人・会社になるのであまり問題ではありません。もちろんAIが営業して企画して開発して運用までやるようになったら、責任の所在の話になります。そこまでならずともAIの使用権の保持者がAIを作ってシステム開発をしたら責任者は保持者になるでしょう、多分。(もちろんこれについては、弁護士などに聞いているわけではないので正確には違うのかもしれません)

 

AI技術の進歩が早過ぎる

去年参加した電王トーナメントにて将棋ソフト開発者と話していたのですが、今後は囲碁ソフト開発が注目されていくだろうという話題が当然ありました。そしてプロを抜くのは早くても数年後だろうというのが共通認識でした。でも実際にはその会話の半年後に今回の大事件になった訳です。それまでは今週末の19日20日にある第9回UEC杯コンピュータ囲碁大会でFacebookのAIチームがどれほどのソフトを作ってくるのかが一番の話題だったんですけどね…。

囲碁ソフト開発者も驚くほどのスピード開発で驚異的な強さにしてしまったGoogleの凄さもさることながら、技術の進歩により数年から10年先を今に変えてしまった。私自身、今回の対局でAlphaGOがひょっとしたら1勝ぐらいするかもと思っていた人間ですが、実際に勝たれると物凄くショックを受けました。囲碁のプロ棋士には非常にショッキングな事件でしたが、影でもっとショックを受けていたのは囲碁ソフト開発者ではなかったのではないでしょうか。彼らもトップクラスのプロ棋士を倒すのは数年後だと思って開発していたと思いますから。

囲碁ソフトを例にしても機械学習、ディープラーニングの進歩の速さは想像つかない域に達している感じがしています。

 

人間がプログラミングをしないシステム開発はいつ現実になる?

これが何年後になるかわかりませんが、意外と早く来そうで嫌です。10年後にはプログラマーというのは伝統工芸の職人と同じような職人技をもつ職業。プログラミングはAIがやるのが普通。そんな世の中になっている。私はこれを否定出来ません。そんなことにはならないと笑う人もいるかもしれませんし、実際には10年後になるまでわかりません。

実際には何年後かわかりませんが、仮にAIがプログラミングする世の中になったらシステム開発はどうなるのか?

そうなったら今のIT業界は激変していることでしょう。AIを持たなければシステム開発できない。企業規模を問わず多くのソフトウエア開発会社は駆逐されるでしょう。せいぜい人間が行うのは、システム開発の企画、プロジェクト管理、要件設計ぐらい。プログラミングやテストはAIが行うor完全な自動化。そんな未来になったら、私の仕事は残っていませんのでプログラマー廃業は間違いありません。AIに仕事が奪われた人間になります。

 

そんな危機感を覚えて、何かしらスキルを身につけるように今から努力すれば間に合うと思います。さて、これを下らない妄想と思い現状維持のまま生きるか、それとも妄想から危機感を覚え、何かしらスキルを身につけるか、それともAI開発者の道を選ぶ。色々な道がありますが、それを選ぶのは自分自身です。

私個人の意見として、AIはプログラマーの仕事を奪わない、または自分が生きている間はないという考えだけはやめておいたほうがいいとは思います。

 

------------------------------------------------------------------------------

コメント欄にて書いて欲しいコラムの題材をいつでも受け付けております。ただしその内容に応えられるかどうかはわかりません。基本的にコメント欄には私自身がコメントしないのですが、題材リクエストに関してはレスをすることもありますので、よろしくお願いします。

Comment(22)

コメント

taro

予想が当たるならAI開発者の職もなくなるでしょう。
AIがAIを作ればいいだけです。
対応策はほとんどなくて農業でもやるか、ソフト変更や保守をやるしかないです。
ただAIが致命的バグを作り込んで直せない時、プログラマが絶滅していたら地獄になりそうですね。
信頼性が低くていいソフトじゃないと任せる気は起きないです。

ハリコフ

大きな目線で言うと、少しずつ自動化の流れに沿っていくというのは同意です。

ただ、この問題を突き詰めると、なぜ新規のシステム開発があるのかってことに繋がると思います。例えば、基幹システムであれば優秀なパッケージがいくつもある、それなのに新規に開発したり、カスタマイズを必要とするのかというと、自分たちの業務を変えたくないという意図あるのが一因かと。

自動化ってことは、何らかのパラメータを入力するフェイズがあると思いますが、「自分たちの業務」っていうのを書ききれるのか・・・
(書く必要があるのかってのは、別の話)

プログラマーの主要な仕事が、そういう嫌らしい部分をフォローする仕事になっていきそうな気がします(いや、今もそうか)。

非現実性AR

ぶっちゃけコーダーなら20年前から将来絶滅するぞ、と言われ続けてて実際そうなりつつあるわけですが、今のプログラマーはSEニアリーイコールなので当てはまらないのと違いますか。

今のディープラーニングは範囲を限定しないと使えないらしいので、そもそも要件だの範囲だのを決めなければならないSEには当分適用できない気がします。

まあどこかの天才様がある日突然ブレイクスルーかます可能性もありますが、今回の囲碁ソフトにしても下積みといいますか予兆はあったわけで、今のところSE分野に適用できそうな芽は聞かないような。

まあ、枕高くしてるとちゃぶ台返し食らうぞくらいの気構えはあっても損はないでしょうが。必要以上に恐れることもないんじゃないでしょうか。

Buzzsaw

仕事がAIにとってかわられたとして、それでどうなるのかがはっきりしない間は
なんとも言えない問題ですね。雇用がなくなって世の中のリソースが一部の人間
だけに集中し再分配の仕組みも無いのであれば嫌な世の中ですが、それはそれで
実現も維持も難しそうに思います。
仮に働かなくても生きていけるお花畑な世界になったとして、それが良いのか
悪いのかは人によって異なってくるので、やっぱり何とも言えません。

とはいえ、ちょっぴり不安なのは事実ですけどね。

山無駄

AIにとって代わられるプログラマとは、どういったプログラマを想定しているか
によって実現性は変わってくるのではないでしょうか。
日本ではプログラマの地位は低くて、SEの手下の様な扱いを受けている感はあり
ますが欧米では高度専門職として、高学歴の技術者が高い賃金で働いていると聞
きます。

アジャイルなどの出現に見られるように、昔のような設計書に基づいてコードを
書いて行くというよりは、プログラマ自身が設計しコードを書き、試してみてフ
ィードバックするというやり方が普及しつつあります。それは作ろうとしている
ソフトウェアが高度化し、プログラマに求められる技術が変わりつつあるのだと
思います。

そういった意味では、著者が前提として書かれているようAIにとって変わられる
プログラマは消えてゆくかもしれませんが、とって変わるのはAIというより、今
市場から求めらている高度な技術を持ったプログラマだと思います。

ある人が言っていました。ユーザは開発されたシステムを使うことによって効率
化されるが、システムを開発する現場はシステム化できないのでいつまでたって
もごちゃごちゃするんだろうね。一理あると思います。

もしプログラマにとって代わるAIが、プログラミングされない全く新しい概念の
物であるならプログラマにとって代われるかもしれません。しかし、AI自身がプ
ログラムされたものであるならば、その可能性は低いと思います。
なぜなら、プログラムとは過去の経験則を元に今を自動化しているものであり、
プログラミングというのは今の経験を元に未来を想定しているものなのですか
ら。

まりも

理由の三つは昔からある話。

三つめなどはとくに有名で、
60年前から言われているし、
30年前の有名な論文「銀の弾丸などない」にも書かれ、
そして反論されている。

ここ数十年変わらない話で、
これでプログラマーの職が危うくなるなら、
別にAIの登場を待たずとも、
すでに危うくなっているだろう。

また一つ目なんかは話が単純化されすぎていて、
AI批判にも使えてしまう。
要素を分類したらたったの三つになるから単純、ということになるなら、
その三つからつくられたAIに人間が負けるはずがない、ということも言える。
単純な要素の組み合わせで複雑なものができるからこそ、AIはここまで発展した。

ということで、あげられた理由は説得力がなさすぎだと思う。


とはいえ、だからと言ってプログラマーがAIに対抗しやすい理由もないので、
他の職業と同程度には危ないとは思うが。

元研究者

コンピュータとAIとディープラーニングとシンギュラリティの話をごっちゃ混ぜにしていますね。
そもそも研究者からみれば単なるディープラーニングをAI[人工知能]と言い切ってしまうことにかなり抵抗があります。

ディープラーニングや現在の機械学習が進化しプログラマの仕事を奪ったとしても「AI」が職を奪ったと認識する人がその瞬間にどれほどいるか…。(少なくとも今の研究者ですらそれを人工知能が奪ったとは言わないでしょう)

実際問題としてその瞬間になればそれは単にコンピュータが仕事を奪ったと思う人が大半かと。
そしてコンピュータがこれまでに奪った仕事は無数にあります。
プログラマ関連ではコンパイラが多かれ少なかれ職を奪ったことでしょう。しかもコンパイラは言語を理解します、人工知能といっても差し支えないでしょう。
しかし今どきこれを人工知能とは呼ばないかと思います。(今でもコンパイラが賢いと評価し、知的なモノであるという認識の名残は感じられます)

内容の趣旨は理解しますが、タイトルに「んっ?」と思ったのでコメントしました。(あと現在の機械学習とディープラーニングがそんなに崇められているのが甚だ不本意だったためです)

名前

正直な話をすると、そうなれば良いなぁって思う
疲れによる品質の低下は無くなるだろうし、俺ならやれる、だなんてエゴイズムは、エンドユーザーさんには関係の無い話だしw

つづき

それでも、それが為せるAIが出来た場合、全ての仕事をこなせるんじゃないかなw

ueshiman

一、プログラマーです。
正直、自動化の模索はしているけど定型業務じゃないし。
接続するハードや、システムも、日進月歩。
経験や、直感で何とかできるところではないから、機械学習では成立しないかもしれません。
業界を挙げてナレッジの共有ができれば何とかなるのですが。
まあ、試行錯誤は機械のほうが早くて正確なのですが、
有償のサービスが相手だと金銭的に大変なことになるかも?
脈絡ないけど。
業務系、特に基幹系ならある程度いけるような気もしますが。
SAPや、セールスフォースなどの基本的な設定を、エンドユーザーとの音声会話でで解決してくれるようなものがまず、できるか、できないか。
むしろ、機械に奪ってもらいたいです。
Unityみたいなゲーム系のミドルウェアの機能追加とか、Lunuxのメンテナンスが自動化できるようになるなら、たぶん、プログラマーの仕事は激減するのでしょう。

現役

プログラマですが、AIがやってくれるんなら、ありがたく仕事を差し上げます。10年前からずっと、名ばかりのIT企業や技術も知らない口先だけのSEが、実際のプログラマを苦しめてますんで、そんな方々よりも、ペッパーくん希望です。

フリーのエンジニア

むしろプログラマが優位な時代になると思うな。

AIが人格を持って人間の様に振る舞うとかそういう話なら別だけども、あくまでも人間のやってる仕事を文句を言わずにこなしてくれる便利な存在だとすれば、それを統べることができるプログラマの方が一般の人より優位でしょ。

世の中の仕事の大半は単純作業なんだから、わざわざプログラマの代替を考える前にその他の仕事の代替を考える。そうなったら逆にプログラマの需要は増えると想うし、プログラマが仕事を奪われるのは最後の最後だと思う。

最近はAIが云々とかで食傷気味なんだけども、表面的にAIが云々〜言う世間の風潮はほっといて、プログラマからしてみればあくまでも一つの技術なんだから、その技術を扱う立場として常に冷静な目で世の中を見るというスタンスは崩さないようにしないといけないと思う。いちいち踊らされすぎ。

プログラマさん

AIがプログラマの職を奪うとき、その他の多くの職をも奪っていることでしょう

おもしろ

フリーのプログラマが既存のAIを自分で改良して高給を取る世界を想像しています。
より大規模はシステムを正確に構築することができれば給料半端ないです。

あんこう

チケット管理ツールや議事録から設計書を生成したり、問題点をピックアップしてくれるAIが欲しい。

プラグラマ

AIを細かく制御するためにAIプログラマーは必要だと思います。

匿名

だからAIを制御するAIができるでしょ。

でん

「最初に職を奪う」というと、様々な職業を分析しなきゃなので困難ですが。
単純に通訳、翻訳は非常にやばいのではないかと。


プログラマは両面あって、
・ごりごりロジックを書くことは減る > 減る
・AIの活用によりITが活用される > 増える
・AIの万能性は想像以上にしても、使いこなす人材は限られる
 教育してもいつの時代でも、誰でも使いこなせるものではない
 結局、既存の開発方式は残る > 減らない


トータルで、むしろ増えると思います。
現在実現しているAIは、個別用途ごとに最適化が必要であって
その作業は高度な専門スキルが必要です。
一般的職業プログラマを駆逐するだけの、
AI活用型高度プログラマは存在しません。
またAIをつくるAIも発明されていません。

匿名

何にせよ、より複雑化して専門分野についていけるITの専門家は激減するわけだ。

過去と何も変わってないよ

AIという言葉が、漠然としてる。
ドラえもんや、鉄腕アトムのような
万能な意識をもった頭脳が
現状でてきたわけでもなく、
今後でる見込みもまだないと思うです。

最近、話題になってるのは、
DEEPラーニングだの機械学習だの
、範囲を限定して、
データを読み込ませやら。
パラメータ調整やら、
半自動でやるような。
部分。限定された範囲で、
うまくやる調整された解のような
ものを半自動で、機械が
発見するようなものの、
応用事例が注目された。
だけで。

・・・・
AIで何々が増えて何々が無くなった。
・・・・
の論法も、

AIと思うから。
分かりにくいだけ。


上記の・・・
の中の文章のAIの単語を、
フレームワークや、
オブジェクト指向だの、
別の言葉に置き換えてみれば。

過去にも、多少なりとも。
そのようなことは、
発生してたはずで。。

伝統的なレガシーシステムの
保守、追加のようなものに、
従事してる人を、除けば、
大なり小なり、新しいことを、
各人が、身につけ対応してきたはずです。

それが、今後も、
AI(万能頭脳でない単なる限定技術)
において、おきるだけではないかと。

それだけだと、思います。

なお、ドラえもんや、鉄腕アトムのような
万能技術は、
人の意識とは、心とは?
それが、形式的に記述できる
または、形式的に、半自動なりで、
自動パラメータ調整できる
方法はなんだ?
という、問いの答えが、
でないと、無理なんだろうけど。
その見込みがたってないと思うです。


はせ

逆にプログラマーが必要なくならない限り、AIの技術水準は糞ってことだよね

manygods000

40年位前、COBOLやFORTRANプログラムが盛んだった頃、そのソースコードを紙カードに打ち込む”キーパンチャ”なる職種の人が沢山居ましたが、今は見当たりませんね。

でも、今は、独立行政団体たるIPAが国際人材調達も想定して策定した”ITスキル標準”での人材象は多様に分化し、要件定義を主とする”ITストラジスト”なる人材象もあります。
ITストラジストの存在意義は、「ITシステムの利用者やスポンサーは、人間であるプログラマと直接的会話が成り立たないので、ITストラジストに翻訳してもらってから、システム設計者やプログラマに”作りたいものを伝える」ということでしょう。
別な言い方をすれば、、「一般人の話す言葉は、コンピュータ・システムの構築に必要な厳格さに比べると、遥かに”曖昧”なので、ITストラジストが必要」ということでしょう。

かつて、「キーパンチャが居なくなったが、プログラマの人数はムシロ増えた」という人材のシフトは、繰り返され、「低レベルなプログラマは不用になる時、(AIかもしれない)プログラムする者に作りたいものを伝える役割の人は、ムシロ増える」という、人材シフトが再来するだけのことでしょう。

ただ、その時期は、随分先だと思う。
根拠は二つ
(1) 現状の技術レベル;
この記事の主の纏めの1文を、人工知能分野で先進的なGoogle社の翻訳サイトで、「日本語から英語に翻訳し、その英文を更に日本語に逆翻訳した結果を示そう。
翻訳の結果”要旨が逆転している”という、低品質な翻訳結果が含まれていることに気が付かないだろうか?

このような危機感を覚えて、今から何らかのスキルを身につけるための努力をすることが、時間通りにできると思います。 ちなみに、現状を維持しているのか、妄想の危機感を持っているのか、何らかのスキルを学んでいるのか、AI開発者の道を選んでいるのか、この思想から降下しないという妄想だと思いますか? いろいろな方法がありますが、自分で選ぶことができます。

(2) 自動プログラミングの動向;
(a) 発見的プログラム
昔は、8クイーン問題とか、迷路探索パズルとか、「プログラム・コードを作り上げた段階では未知の情報を発見する」という種類のプログラムも、AIと呼ばれていたものです。
掃除ロボットとかも、迷路探索プログラムの応用ですね。

(b) ビックデータ処理;
 日々増える大量データに対して、高度な線形代数も駆使して「Y=AX+B」という式に還元できる連立方程式の解を計算して、”予測値を計算する”ということが、一般新聞にも露出するようになりました。
ディープラーニングとなの技術も、とどのつまり、連立方程式を解くプログラムを同様、固定的なロジックのプログラムが動いているだけで、「固定的なロジックのプログラムを作るプログラマを不要にしている技術」ではありません。 

(c) 合成知能の処理;
 人工知能学会の論文誌を観ても、コンピュータにプログラムを作らせる研究としては、遺伝的プログラミングのアルゴリズムが細々と続いている程度で、しかも、それは未だ 一般新聞に露出するような成果は上げていません。
>1:(構造化)プログラミングは「順次処理」「分岐」「繰り返し」しかないので単純。
さて、これについては、大きく異を示しておこう。
「明日の天気予報を計算させるのに、24時間より長い計算時間がかかれば、情報の鮮度は失われて、無価値になる。
AIといえども、有限の速度での計算しかできないので、チョット 難しいプログラムになれば、待ちきれる時間内に作り上げることは当分”できない。」
その証拠に成りうるプログラムコードも示しておこう。
下記リンク先には、「要素数を6個に固定した、最速ソートプログラム」を掲載しています。
「720種類(=6の階乗)通り在る6要素の並びに対応して、最小ステップの整列処理」であるという方式のプログラムで、正味720ステップあります。
そこで、「このプログラムと同等か、これより早いソートプログラムを作れ!」と、AIに命じたとしましょう。
https://ideone.com/WbpGxF

このプログラムと同等か、これより早いソートプログラムを作れ!」という情報しか与えなければ、目標とすべきプログラム・ソースの候補は(720の階乗)通りあります。
(720の階乗)と言えば、1746桁で、1秒間に1G種類(9桁)のパターンのソースコードの妥当性を検証できて、1年間に8桁秒間 稼働時間があったとしても、(1746-9-8)桁の年数がかかります。
それは 途方も無い時間です。
そうした時、プログラマというかストラジストの出番で、「等価で、モット効率の良いアルゴリズムが在る」と、コンピュータに教えてあげる”人間が必要”なのです。

コメントを投稿する