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

NVIDIA GeForce RTX 50xx with CUDA capability sm_120 is not compatible with the current PyTorch installation. が発生したとき

NVIDIA GeForce RTX 50xx with CUDA capability sm_120 is not compatible with the current PyTorch installation. が発生したとき

こんにちは、PyTorch 2.6.0 環境で以下のような問題が発生したときの対処方法について解説いたします。 NVIDIA GeForce RTX 5090 with CUDA capability sm_120 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_70 sm_75 sm_80 sm_86 sm_90. 他のBlackwell GeForce の場合は以下のようなメッセージとなります。 NVIDIA GeForce RTX

By Qualiteg プロダクト開発部
OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

こんにちは! 画像処理や動画解析の現場で広く利用されている OpenCV。 しかし実務で動画処理を行っていると、時折以下のようなエラーに遭遇することがあります。 cv2.error: OpenCV(4.11.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:929: error: (-215:Assertion failed) !_img.empty() in function 'imwrite' このエラーは、cv2.imwrite() に渡された画像が空(None またはサイズ0) の場合に発生します。 一見単純に見える問題ですが、背後には「入力動画の不安定さ」や「並列処理の競合」といった要因が潜んでいることが少なくありません。 本記事では、このエラーの発生原因を掘り下げ、実務で効果のある解決策として 「動画の安定化(正規化)」 を紹介します。 TL;

By Qualiteg プロダクト開発部
発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

こんにちは!リップシンク技術シリーズもいよいよ終盤となりました。 前回(第4回)では、LSTMの学習プロセスと限界について詳しく解説しました。限られたデータでも効果的に学習できるLSTMの強みを理解する一方で、長距離依存の処理に限界があることも明らかになりました。そして、この問題を解決する革新的なアプローチとして、すべての位置の情報を同時に参照できるTransformerのSelf-Attention機構を紹介しました。 第5回の今回は、 Transformerの具体的なネットワーク設計から始め、その実装上の課題を明らかにします。(前編※) そして、LSTMとTransformerの長所を組み合わせたハイブリッドアプローチを紹介し、実際の製品開発における技術選択の指針を示します。最後に、感情表現への拡張という次なる挑戦についても触れていきます。(後編※) ※Transformerの仕組みは複雑であるため、第5回は前編と後編に分けて解説させていただく予定です。 1. Transformerベースのネットワーク設計 1.1 全体アーキテクチャ図 では、さっそく、Tran

By Qualiteg 研究部, Qualiteg コンサルティング
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

こんにちは、今回はシリーズ第2回ドメイン環境の構築 - 検証環境の構築手順について解説いたします! 連載の構成 第1章:基本概念の理解 - Active DirectoryとKerberos/NTLM認証の基礎 【★今回です★】第2章:ドメイン環境の構築 - 検証環境の構築手順 第3章:クライアントとサーバーのドメイン参加 - ドメイン参加の詳細手順 第4章:プロキシサーバーと統合Windows認証 第5章:ブラウザ設定と認証 - 各ブラウザでの設定方法 第6章:トラブルシューティング - よくある問題と解決方法 第7章:セキュリティとベストプラクティス - 本番環境での考慮事項 第8章:実践的な構成例 - AIセキュリティツールとの統合事例 第2章:ドメイン環境の構築 2.1 ドメイン名の設計 2.1.1 ドメイン名の命名規則 Active Directoryを構築する際、

By Qualiteg コンサルティング