AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略
Photo by Cookie the Pom / Unsplash

はじめに

私がはじめてコードを書いたのは1989年です。

当時NECのPC88というパソコンを中古でかってもらい N-88 Basic というBASIC言語のコードをみようみまねで書いて動かしたあの日から何年経つのでしょうか。

当時、電波新聞社のマイコンBASICマガジンという雑誌があり、ベーマガにはいろんなパソコン向けのプログラムコードが掲載されていました。

そんなわけでもう35年以上趣味や仕事でプログラミングに従事していますが、開発環境、情報流通の仕組みには革命といっていいほどの変化、進化がおこりました。

しかしながら、そんな中でも、あくまでコードを書くのは「私」という生身の人間でした。

そうしたある種の古き良き時代は、いよいよ本格的に終わりを告げようとしています。

2023年ごろからのLLM技術の飛躍的進歩により、プログラミング業界は大きな転換期を迎えています。

特に、OpenAI o3,o1やClaude 3.5、Gemini2.0などの大規模言語モデル(LLM)の進化や、その先にある将来的な汎用人工知能(AGI)の出現は、プログラマーやAIエンジニアの役割に根本的な変革をもたらすと予測されています。

AGI出現前後で世界は大きく変化する

本日は、プログラマーの未来について、AGI出現前と出現後の二つの時代に分けて考察します。

これは単なる時期の区分けではなく、テクノロジーと人間の関係性が根本的に変化する転換点として捉える必要があります。

ここでいうAGI(Artificial General Intelligence=汎用人工知能)とは、人間のような柔軟な思考と学習能力を持ち、特定の領域に限定されない広範な問題解決能力を備えた人工知能を指します。

現在のAI(人工知能)が特定のタスクに特化した「特化型AI」であるのに対し、AGIは人間のように文脈を理解し、経験を活かして新しい状況に対応し、創造的な問題解決を行うことができます。

現在の大流行中の「LLM」はAIが特化型から汎用型へと進化する重要なマイルストーンといえるでしょう。

AGI 前の世界

さて、AGI出現前の世界では、AIは特定のタスクにおいてAIが個人の能力の増幅装置(アンプリファイア)として機能している、という点を再認識しておきましょう。

まぁこれはAIに限らず、エンジニアリングというものは、入力に対して、より大きな、あるいはより価値のある出力を生み出すという点で「増幅装置」ととらえることができるでしょう。

  • 電気工学では文字通り小さな信号を増幅して、スピーカーを動かしたり通信を可能にしたりします。
  • ソフトウェアエンジニアリングでは、プログラムを通じて人間の能力を増幅し、手作業では不可能な規模の計算や処理を可能にします。
  • 機械工学では、てこの原理やギアなどの機械要素を使って、小さな力を大きな力に変換します。

AIツール、とくに 高性能なLLM を使って仕事をするときのアウトプットについて考えてみましょうか。

使ってみるとわかるとおもいますが、 LLMにいい仕事をさせるには使用者の知識、スキル、経験というものが結局は重要で、使用者のインプットの質がAIによるアウトプットの質に大きく影響をあたえます。

高度な専門知識と対象への深い理解を持つプログラマーが高性能なLLMを使用した場合、その出力は極めて質の高いものとなり得ます。

一方で、対象への基礎的な理解や知識が不足している状態でLLMを利用しても、表面的で実用性の低い結果しか得られない可能性が高くなります。

たまに投げやりなプロンプトを入力すると、LLMもとぼけた回答をしてきて、まるで、こちらの実力を試してるのではないかと勘繰りたくなるようなある種人間らしい挙動を示すこともあります。

このことは、プログラマーの基礎的なスキルと専門知識の重要性が、AI時代においてもむしろ増していることを示唆しています。

ここまではAGI前の世界について考察してみました。

さて、では、AGI後の世界はどうなっていくのでしょうか。

AGI後の世界

一方、AGI出現後の世界では、AIは人間と同等以上の知的作業を自律的に行うことが可能になります。

これにより従来のソフトウェア開発におけるV字モデルの各フェーズが大きく変容します。ビジネス要件の分析から詳細設計、実装、テスト、運用に至るまで、AGIが主体となって開発プロセスを遂行するようになります。

具体的には、AGIは要件定義段階での最適な提案、システムアーキテクチャの自動設計、高品質なコードの生成、包括的なテストケースの作成と実行、さらには運用時の監視や最適化まで、技術的な作業の大部分を担います。

しかも、どの工程もその道のプロとそん色ないレベルのアウトプットを出すばかりか、最新の知見もタイムリーに取り入れ、自律的に学習するようになるので、人間は狭い範囲の分野でもAIに追いつくのは厳しくなっていくでしょう。

このようにプログラミングおよび周辺業務(上流~下流)の多くの側面が自動化され、ソフトウェア開発の概念自体が変革を迫られる可能性があります。

しかし、これは人間の役割が消滅することを意味するのではなく、より高次な判断や創造的な問題解決へと進化することを示唆しています。

1. AGI前:AIツールとの協働が切り開く新たな開発現場

1.1 コーディング作業の自動化の現状と展望

現代のソフトウェア開発現場では、コーディングに強いLLMや、GitHub CopilotやAmazon CodeWhispererなどのAIペアプログラマーの登場により、開発プロセスが大きく変わりつつあります。

これらのツールは、単なるコード補完(N88Basicからスタートした私は、Turbo C やVisual Studioのインテリセンスでも相当衝撃的でしたが)から進化し、文脈を理解した適切な提案や、自然言語によるコード生成まで可能になってきています。

むしろ当社では、自然言語での指示が主流です。指示を集めたプロンプトテンプレートがどんどん増えています。

さらに、セキュリティパターンの自動提案やパフォーマンス最適化の推奨など、より高度な支援機能も備えるようになってきました。

さらに、昨今のLLMはコンテクストサイズが非常に大きくなっているため、長いコードをイッキに読み込ませて全体の構造改善をしたり、不具合を発見してもらったり従来熟練のエンジニアがやっていた作業を相当量肩代わりしてくれるようになっています。

しかし、これらのツールが真価を発揮するためには、プログラマーが適切なアーキテクチャ設計の知識や、セキュリティの考え方、パフォーマンスチューニングの経験を持っていることが不可欠です。

LLMは既存の知識やベストプラクティスを組み合わせて提案を行いますが、その提案が適切かどうかを判断し、必要に応じて修正を加えられる能力は、依然として人間側に求められています。

テスト自動化の分野でも、LLMによる支援は着実に進化しています。エッジケースの自動検出や統合テストの自動作成、さらにはパフォーマンステストのシナリオ自動生成まで、テストプロセス全体を効率化する機能が実現されつつあります。これらの機能は、テスト設計の基本原則を理解し、品質保証の観点を持つプログラマーの手によって、より効果的に活用されることになります。

1.2 上流工程へのシフトの具体像

LLMが定型的なコーディング作業を支援することで、プログラマーの業務の重心は、より創造的で戦略的な領域へとシフトしています。特に注目すべきは、システム設計やアーキテクチャの策定といった上流工程への関与が深まっている点です。プログラマーは今、ビジネスの本質的な課題を理解し、それを技術的な解決策として具現化する役割を担っています。

もはや「プログラマー」では無いんじゃないか、という意見もあります。

少し脱線しますが、LLM登場以前から「面倒なところは、まかせて、付加価値の高いところに集中できる」というのは何万回と聞かされてきたことでもあります。

「●●フレームワークにより、面倒なところはフレームワークがやってくれるので、プログラマーは重要なビジネスロジックに集中できます!」

とか

「●●ライブラリによって、プログラマーは付加価値の高いコード作成に取り組めるようになります!」

こういううたい文句の汎用化版がAIやAIを活用したコード生成ツールととらえれば、特段あたらしい概念ではないかもしれません。

ただし、破壊力が「●●フレームワーク」や「●●ライブラリ」の何百倍もあり、ほとんどプログラミングする部分が無くなりそう、という世界が実現しつつあります。

もちろんこういう世界はまだ実現はしていませんし、LLMが出してきたプログラムのかけらを人力(またはCURSOR,WindSurfなどの便利ツールの助けを得て)で切り貼りして”バイブコーディング”しているという段階ではないでしょうか。

話をもとにもどしますと、AIの登場によりプログラマー(という役割と担っていた人)は、たとえば、システム全体の設計においては、単なる技術的な実装だけでなく、ビジネスの成長戦略やユーザーニーズの将来予測までを考慮に入れた判断が求められるようになっています。この過程では、ステークホルダーとの深い対話を通じて要件を正確に把握し、それを実現可能な技術ソリューションへと昇華させる能力が不可欠です。

2. AGI後:人間とAIの新たな共生モデル

2.1 開発プロセスの完全自動化がもたらす変革

AGIの出現は、ソフトウェア開発の在り方を根本から変える可能性を秘めています。

冒頭でもふれたとおり要件定義から設計、実装、テスト、デプロイに至るまで、開発プロセス全体がAIによって自律的に遂行される時代が来るかもしれません。しかし、これは必ずしもプログラマーの存在意義が失われることを意味しません。

むしろ、AGIの時代においては、プログラマーの役割はより高次な判断や創造的な問題解決へと昇華していくことが予想されます。AIが提案する解決策の妥当性評価、倫理的な判断、そして人間社会への影響評価など、より複雑で繊細な判断が求められるようになるでしょう。

2.2 プログラマーの新たな存在意義

AGI時代のプログラマーに求められる最も重要な能力は、技術とビジネス、そして人間社会の接点を理解し、それらを調和させていく力ではないでしょうか。

AGIが提案する解決策の社会的・倫理的影響の評価、企業の技術戦略との整合性の検証、セキュリティやプライバシーの観点からの妥当性判断、そして何よりもビジネス価値の最大化に向けた戦略的な意思決定へとシフトしていきます。

また、システムの目的設定や開発の方向性の決定といった根本的な判断も、依然として人間が担うべき重要な責務となるでしょう。これらの判断には、技術的な知見だけでなく、ビジネスや社会に対する深い洞察力が必要とされます。

3. 未来を見据えたキャリア戦略

これからのプログラマーには、まず技術力とビジネス感覚を兼ね備えた「テクノロジーストラテジスト」としての成長が期待されます。

そのためには、プログラミングや設計の基礎力を磨きつつ、顧客視点やクリエイティブな視座をもちつつビジネスの本質を理解する力も培う必要があります。

また、倫理的判断力やコミュニケーション能力といった人間的資質の向上も欠かせません。これらのソフトスキルは、AIとの効果的な協働や、チーム内でのリーダーシップの発揮に重要な役割を果たします。

3.1 プログラマーはAGI前になにをしておくべき

経験を積む
プログラミングはなんといっても、経験です。とにかく、たくさんのコードを読んで、自分で書く。ひと昔は GitHub にある有名なOSSのコードリーディングをすすめていましたが、今はLLMとの壁打ちも有用です。ある程度経験してくると、自分の「書き方」に固執してしまいますが、LLMと壁打ちすることで、最新の知見や、あらたな表現を獲得できることが以前より簡単になりました。

論理的思考力を身に着ける
またプログラミングの経験をつむことで知識がつくだけでなく、論理的思考力や数学的思考を鍛えることができます。私は論理的思考力をみにつけるのに、ロジカルシンキングを勉強するより、プログラミングを勉強したほうが手っ取り早いとおもっています。ある程度の規模のプログラムを書くようになると、嫌でも構造設計をしないといけなくなり、分析と設計の繰り返しを行うことになります。プログラミングをするまでの分析・設計の時間のほうが長いくらいです。ただこれにより、ものごとを因数分解してとらえることができるようになり、論理的思考力を向上させることができます。論理的思考力はAGI後にもあなたの強力な武器になるとおもいます

完成品を作ってリリースし、世に問う、ユーザーと接点をもつ経験を積む
プログラミングをするなら必ず完成品まで作る必要があります。ある特定の機能だけではいけません。かならず、完成品をつくりましょう。そして、リリースしましょう。私がプログラミングをはじめたころに、作品を発表する場は限られていました。最初は雑誌投稿で作品を世に出しました。小さな作品です。中学生のころ、作品をつくって雑誌に投稿しはじめて原稿料1万円をもらったときの感動をわすれたことはありません。現代はいくらでも作品をリリース、配布する方法があります。必ずリリースしましょう。ユーザーが何を求めているのか。どういう反応があるのか。世の中と接点を持つことが非常に重要です。

3.2 AGI後にも価値あるプログラマー

AGI時代を迎えても、役割に変化はあるもののプログラマーの重要性が失われることはありません。

とくにさきほど申し上げたような経験・スキルを持つプログラマーの価値はますますあがるでしょう。

従来、プログラマーはビジネス要件や人間の意図をコンピュータが理解できる言語(プログラミング言語)に翻訳する「技術翻訳者」としての役割を担ってきました。

システムの要件を理解し、それを正確なコードとして表現することが主な責務でした。しかし、AGI時代では、この技術的な翻訳作業の大部分はAGIが担うことになります。

代わって、プログラマーはユーザーの本質的なニーズと可能性を理解し、それを現実のソリューションへと昇華させる「価値創造の翻訳者」へと進化します。具体的には、ユーザーが明確に言語化できていない潜在的なニーズを把握し、それをAGIと協力して実現可能なソリューションへと具体化する役割を担います。

この過程では、ビジネスの文脈、社会的な影響、技術的な実現可能性、そして人間の感性や使用体験といった多様な要素を統合的に理解し、翻訳していく必要があります。

つまり、AIと人間の強みを理解し、それらを最適に組み合わせることのできる役割が、これまで以上に重要になっていくのは間違いなく、その役割にもっともふさわしいのは実戦経験をつんだプログラマーです。

そにために個々のプログラマーはいまから自身の基礎力を磨き、経験を積み、スキルをみにつけ、それをAIによって増幅させる術を身につけることが不可欠です。技術の進歩に柔軟に対応しながら、自己の価値を高め続けることが、未来のキャリアを築く鍵となるとおもいます。

さて、最後になりますが、本稿は、現時点での技術動向や予測に基づいた一つのシナリオです。技術の進展や市場の変化に合わせて、柔軟にキャリア戦略を見直していくことが重要です。

Qualiteg では一緒に働いてくれる優秀な仲間を募集しています!

当社では、自社サービス開発やAI/MLのR&Dを担っていただける優秀なエンジニア、リサーチャーを積極的に募集しております。まだ新しい会社ですのでみんなで世界一居心地の良いエンジニア文化を作っていきたいとおもいます。

採用ページ

https://qualiteg.com/career

Read more

AIがよく間違える「クロージャ問題」の本質と対策

AIがよく間違える「クロージャ問題」の本質と対策

こんにちは! 本日は「クロージャ問題」に関する話題となります。 Pythonでループ内に関数を定義したことはありますか? もしあるなら、あれれ?な挙動に遭遇したことがあるかもしれません。 本稿では、Pythonプログラマーなら一度は経験する「クロージャ問題」について、初心者にもわかりやすく解説してみたいとおもいます クロージャとは何か? そもそも ”クロージャ” とは何でしょうか。 クロージャ(closure)とは、関数が自分の定義されたスコープの変数を覚えて持ち運ぶ仕組み のことです。 もう少し分解すると、次の2つがポイントとなります 1. 内側の関数が、外側の関数の変数を使える 2. 外側の関数が終了しても、その変数は生き続ける 普通の関数とクロージャ―を使った関数を比較してみましょう 普通の関数との比較 まずは普通の関数から、 def add(x, y): return x + y print(add(3, 5)) # 8 print(add(3, 7)

By Qualiteg プロダクト開発部
フリーランスHub様にQualiteg Blogをご紹介いただきました

フリーランスHub様にQualiteg Blogをご紹介いただきました

この度、フリーランス向け案件検索サービス「フリーランスHub」様の特集記事「トレンドをキャッチアップ!AIに関する情報が得られるメディア・ブログまとめ」にて、弊社が運営する「Qualiteg Blog」をご紹介いただきました。 掲載記事について フリーランスHub様の記事では、AI技術の最前線で活躍するエンジニアや開発者の方々に向けて、価値ある情報源となるメディア・ブログが厳選して紹介されています。 その中で、Qualiteg Blogを「AI技術の専門知識を実践的なビジネス活用につなげる貴重な情報源」として取り上げていただきました。 特に以下の点を評価いただいております * 実践的なビジネス活用事例の提供 AI新規事業創出や事業選定方法など、経営者やビジネスリーダーが直面する課題への具体的な解決策 * 技術的な深掘りコンテンツ リップシンク技術など、実際のサービスで使用されている技術の開発現場目線での詳細な解説 * 多様な情報発信 代表執筆記事、AIトピックス、講演会動画など、幅広いフォーマットでの情報提供 今後も価値ある情報発

By Qualiteg ニュース
PyTorchの重いCUDA処理を非同期化したらメモリリークした話と、その解決策

PyTorchの重いCUDA処理を非同期化したらメモリリークした話と、その解決策

こんにちは!Qualitegプロダクト開発部です! 今回は同期メソッドを非同期メソッド(async)化しただけなのに、思わぬメモリリーク※に見舞われたお話です。 深層学習モデルを使った動画処理システムを開発していた時のことです。 「処理の進捗をリアルタイムでWebSocketで通知したい」という要件があり、「単にasync/awaitを使えばいいだけでしょ?」と軽く考えていたら、思わぬ落とし穴にはまりました。 プロ仕様のGPUを使っていたにも関わらず、メモリ不足でクラッシュしてしまいました。 この記事では、その原因と解決策、そして学んだ教訓を詳しく共有したいと思います。同じような問題に直面している方の参考になれば幸いです。 ※ 厳密には「メモリリーク」ではなく「メモリの解放遅延」ですが、 実用上の影響は同じなので、この記事では便宜上「メモリリーク」と表現します。 背景:なぜ進捗通知は非同期である必要があるのか モダンなWebアプリケーションの要求 最近のWebアプリケーション開発では、ユーザー体験を向上させるため、長時間かかる処理の進捗をリアルタイムで表示することが

By Qualiteg プロダクト開発部
ゼロトラスト時代のLLMセキュリティ完全ガイド:ガーディアンエージェントへの進化を見据えて

ゼロトラスト時代のLLMセキュリティ完全ガイド:ガーディアンエージェントへの進化を見据えて

こんにちは! 今日はセキュリティの新たな考え方「ゼロトラスト」とLLMを中心としたAIセキュリティについて解説いたします! はじめに 3つのパラダイムシフトが同時に起きている いま、企業のIT環境では3つの大きな変革が起ころうとしています。 1つ目は「境界防御からゼロトラストへ」というセキュリティモデルの転換。 2つ目は「LLMの爆発的普及」による新たなリスクの出現。 そして3つ目は「AIエージェント時代の到来」とそれに伴う「ガーディアンエージェント」という新概念の登場です。 これらは別々の出来事のように見えて、実は密接に関連しています。本記事では、この3つの変革がどのように結びつき、企業がどのような対策を取るべきかを解説いたします 目次 1. はじめに:3つのパラダイムシフトが同時に起きている 2. 第1の変革:ゼロトラストという新しいセキュリティ思想 3. 第2の変革:LLM時代の到来とその影響 4. 第3の変革:AIエージェントとガーディアンエージェント 5. 3つの変革を統合する:実践的なアプローチ 6. 実装のベストプラクティス 7. 日本

By Qualiteg コンサルティング