近年湧き起こっている「プログラミング不要論」。AIの進歩によってプログラマーの必要性がなくなるのではと囁かれる一方で、需要がゼロになることはないという意見も多く見受けられる。本当のところはどうなのだろうか。
今回は国内最大級の競技プログラミングサイト『AtCoder』を主宰するちょくだいさんこと高橋直大さんに、巷にはびこる「プログラミング不要論」に対する考えを聞いた。
AtCoder株式会社 代表取締役
高橋直大さん(@chokudai)
1988年生まれ。筑波大学附属駒場中学校・高等学校、慶應義塾大学環境情報学部を経て、慶應義塾大学政策・メディア研究科修士課程修了。大学院在籍中にMicrosoft主催のプログラミングコンテスト『Imagine Cup 2008』に出場し、アルゴリズム部門で世界3位に入賞した経験を持つ。Google主催のGoogle Hash Code 2022でも世界1位に。2012年、競技プログラミングコンテストを主催するAtCoder社を創業。著書に「最強最速アルゴリズム競技プログラミング」(SBクリエイティブ)など
「プログラミング不要」の実現は、まだ先の話
– AIの進化によって、やがてプログラミング技術が不要となり、ひいてはプログラマーの存在自体がいらなくなる時代が来るという見方があります。高橋さんはこうした論調についてどう思われますか?
10年先は分かりませんが、少なくとも今後5年くらいの間はプログラミングスキルが不要になるような事態にはならないんじゃないかなって思います。
– そう思うのはなぜでしょう?
現状では、AIが生成するコードの精度にはバラツキがあり、一見それっぽく見えても実用的でなかったり、まったく機能しないコードが生成されたりすることすらまれではないからです。
今のAIは、ある問題を与えられた時に最適な答えとなるコードを出力することは得意ですが、そのコードの解説を高い精度で実行する能力は低い。なぜなら、ソースコードの解説に関する学習が圧倒的に不足しているから。
プログラミングの問題一つに対して、約1万パターンのソースコードをAIに学習させることは可能でしょう。ですが、それらのソースコード一つ一つに対して詳細な解説があるわけではない。ソースコードの解説なんて、よくて数十人くらいしかやってませんからね。
なので、AIが生成したソースコードの正しさを確認したり実用性を検討したりといった作業は、当面は人間が行う必要があるでしょう。その観点から言うと、プログラマーは今まで以上にコードの本質を理解するスキルが必要となるかもしれません。
また、GPUやCPU、OSなどの低レイヤー領域や、AIそのものを構築するような高度なプログラミング領域に関しても、しばらくはエンジニア自身が担っていくことになると思います。これらもWeb技術やシステム開発などの比較的ポピュラーな技術分野に比べると学習データが少ないため、AIに代替させづらい領域として最後まで残り続けるはずです。
また、適切なコードを生み出すために必要になるプロセスにも同様のことが言えそうです。例えば顧客の曖昧な要望から仕様をまとめるといった対人折衝が伴うプロセスや、生成されたコードをチェックしたりテストしたりするプロセスなどは、今後も人間が担う仕事として残っていくのではないでしょうか。
– AIの進歩によって人間が担う領域が限定されていくとすると、プログラマーに求められるスキルも変わっていきそうですね。
そうですね。ただ、求められるスキルが変化しているのは、プログラマーをはじめとするエンジニアに限定したことではないと思います。
これからはあらゆる仕事がAIに変化を強いられていくはずです。個人的にはいずれ仕事はAIがこなし、人間は監視役に回るような時代になってほしいし、そうなるのではと予想しています。
そうした時代がいつどのような形で訪れるのかは、まだ分かりません。最初に「10年先は分かりません」と前置きしたのは、AIの進歩の速度は全くの未知だから。ChatGPTが登場したばかりのころ、これほど短い期間で画像や動画の生成精度が上がると思っていた人は少ないはずです。なので、10年先のことは分からないな、というのが正直なところですね。
二極化するプログラマーのキャリア
– AIが進歩していくと、プログラマーのキャリアの描き方はどう変わっていくと思いますか?
当面、プログラマーのキャリアは二極化していくのではないかと予想しています。
AWSなどのパブリッククラウドの登場で物理サーバーに触れた経験がなくてもインフラ構築ができるようになったように、AIの力を借りながらプログラマーとして経験を積んでいくのが一つ。経験を積んできたベテランがAIを活用することで、より専門的な領域でエンジニアとしての市場価値を高めていくのがもう一つです。
Xを眺めていると時折「AI全盛時代にプログラマーを仕事に選ぶなんて」というポストが流れてきますが、既にプログラマーとしての経験と実績がある方なら、当面は価値あるスキルとして評価されるはず。先行者利益を享受しつつ今後も引き続きプログラミングスキルを高めていくとよいのではないでしょうか。
ただしAIがプログラマーの働き方や位置付けを変えていくのは間違いありませんから、変化に備えて、常にAI分野の動向やトレンドを追いかけておくべきだと思います。
– その見立てだと、ジュニア層もシニア層もAIは使った方が良いと?
今後、大きな変化に晒されたときの準備にもなるはずなので、積極的に試してみて損はないと思います。まだGitHub Copilotのようなコード生成AIをインストールしていないのであれば、まずは使ってみるべきでしょう。使ってみれば得意不得意が一目瞭然になるので、手元の作業を効率化するための使いどころも見えてくるはずですよ。
また、ChatGPTのような汎用的に使える生成AIも同様です。例えば、仕様書に書かれたテキストからグラフを生成したり、聞き馴染みのないテクニカルタームを解説させたりするなど、迅速な理解を促すのにも使えますから、積極的に利用してみることをお勧めしたいですね。
– 技術の進化にしっかり適応することは、いつの時代にも求められる要素ですよね。
エンジニアという仕事は、常に変化となり合わせですからね。AIの進化が話題になる以前からプログラミング環境が様変わりしているのを思い出してください。以前なら、傍らに置いた技術書を参照しつつ、開いたエディタにひたすらコードを打ち込み続けるのが当たり前でしたが、今ではドットを打てばコード補完機能が働いて次に打つべき関数名を示してくれます。極端なことを言えば、プログラムを一字一句正確に打ち込めなくても、一定水準のプログラムができてしまうわけです。
サジェストしてくれるコード量が徐々に増え、行単位、ブロック単位、さらにモジュール全体に至れば、行き着く先は完全なるコードの自動生成です。今はまだ信頼性が高くないコードや明らかに間違ったコードを生成する可能性が高いため、人間の目を通さないわけにはいきませんが、プログラミングの効率性や利便性は着実に高まっています。
プログラミングスキルを磨くために「好きだから」に勝る理由なし
– 「プログラミング不要論」が現実になる未来はまだ遠そうですが、ソースコードを書く作業が少しずつ代替されつつある今、エンジニアはどの程度プログラミングスキルの上達に励めばよいと思いますか?
AI自身が指示者に対して「なぜこのコードを生成したのか」を明快に説明できるようになったり、企画書や要望リストを読ませるだけで優れたコードを生成できるようになるまでには高いハードルを乗り越える必要があるので、AIと共に働くという意味でも基礎的なプログラミングスキルは必要です。
それ以上に関しては、作りたいサービスのためにコードを書く人と、コードを書くのが好きでサービスを作る人で変わるのではないでしょうか。前者のタイプならAIの進化でプログラミングせずともできることが増えていくのをよしとするでしょう。しかし後者のタイプなら、プロクラミングスキルを磨き続けることによって、尖った知見や能力が求められる領域で活路を見出していくはずです。
AtCoderのような競技プログラミングの参加者は、明らかに後者。AIがプロ棋士に勝ったからといって将棋人口が激減しなかったように、競技プログラミングもマインドスポーツの一つとしてこれからも存続し続けると思いますよ。
参加者の大半がコード生成AIを使ってチートするようになってしまったら問題ですが、さほど大きな影響があるとは考えていません。過度にAIを利用する参加者が増えたとしても、課題を解く面白さが失われるわけではないからです。コード生成AIが今まで以上に進化したとしても、競技プログラミングのあり方を根本から見直す必要性はなさそうだというのが、現時点での考えです。
– 何のためにプログラミングを学ぶのか、改めて見つめ直す必要がありそうですね。
プログラマーはPCの前でカタカタする仕事が多いけど、それが全然面白くないと感じる人がいるのも分かる。でも僕は、何でプログラマーになったのかと聞かれたら、「そりゃプログラミングが楽しいからだよ」って答えます。なのでプログラマーの皆さんにも、自分は何が好きなんだっけということを思い返してほしい。やっぱり、好きじゃないことをやっても続かないですしね。
ただ、一つお伝えしたいのは「AIは敵じゃない」ということです。AIの登場をキャリアの脅威に感じる方はいるでしょうし、AIによって今まで通りにはいかなくなることもあるでしょう。しかし、それを補って余りある価値を生み出す可能性や、新たなキャリアの活路が見出せるかもしれません。あまり悲観的にならずAIの明るい側面にも目を向けてみてほしいというのが私からのメッセージです。
人の話を聞くより、実感に優る手応えはありません。まずは恐れずAIを使ってみることから始めてください。それがプログラマーとしての将来にいい影響を与えるきっかけになるはずです。
取材・文/武田敏則(グレタケ) 編集/今中康達(編集部) 画像提供/AtCoder株式会社