「AIがいればプログラマーはいらなくなる?」そんな不安を抱えるSES現場のエンジニアへ。MQL5の自動化やGeminiを使い倒す中で見えてきた、AIを敵ではなく最強の相棒にするための具体的な考え方を共有する。
1. 導入:AIに「感心」し、同時に「悲しみ」を知る

「AIがいればプログラマーいらんやん」
私はプライベートでMQL5を書いているが、geminiに仕様を伝えると、単純な内容なら一発でコンパイルが通るレベルのコードを返してくれる。
もはやプログラマーの仕事はソースを書くことからチェックしてテストする方が大きくなりそうな気がした。むしろ、AIに要求通りのものを出力させるプロンプトを作成するのがメインになる気もする。
個人的にはソースを書く作業が好きなので、複雑な気持ちだが、仕方がないのだろう。
以下は私とAIの出会いとともに歩んできたワクワクと絶望の記録である。
2. 独学の限界:paizaとMQL5で得たものをAIに凌駕された

私はIT未経験の時、ひとまずpaizaのBランクまであげて客観的に力量を示すことを目標にしていた。そして趣味ではFXの自動売買を行うためにEAをMQL5で書いていた。
しかし、これらはあくまで動くプログラムを書くにすぎなかった。大切なのは管理しやすいファイル体系やカプセル化といったオブジェクト指向での開発手法や開発ドキュメントだとSESで現場に出てから気づかされる。
paizaが無駄だったかと言うとそうではない。言語ごとの特性を知ることやコードを書く力、読む力、アルゴリズムは身につけることができた。
MQL5はオブジェクト指向なので、クラスの必要性などを理解するのに役立った(と思う)。
その後、AIが登場したことによって身につけてきたコーディング能力よりも高いレベルでAIがコードを生成してくれるので、感動を超えて恐怖すら感じた。
3.救世主の到来:SESでの開発経験でAIに救われる

プログラムについては初心者に毛が生えたレベルの私がSESとして参画した初めての現場では、プログラムを書くことよりもコメントや設計書などで如何に分かりやすく情報を残すのかが大切だった。
1番大切だったのは、如何にお客様の要望をシステムに落としこむのか、という用件定義、設計能力だった。
そんなことは置いといて、当時の現場はVBAだった。
参画した当初は四苦八苦の連続だった。右も左もわからないので、先輩社員が書いたソースを流用しながら一つのシステムを組み立てていたが、1年ほど経過したときChatGPTの使用がお客様から許可された。これによってソースコードのクオリティが一気にあがった。
AIの登場によって分かりやすいソースコードが作れるようになったので、要件定義や設計といった上流工程時からモックアップをAIと共同で作れるようになったし、上流工程に時間を費やせるようになった。
かといってAIにプログラムを任せると、全体の中で不整合が生じることが多々あった。VBAという言語の性質からソースコードがアプリケーションに内包されてしまい、ソースファイルを丸ごとAIに読み込ませることができなかったので、テキストファイルにソースを集約してからAIに読み込ませたが、部分的には100点を返すが、全体でみると不整合が生じるケースが多数確認できた。
4. 核心:AIは「全体の関係性」を壊す

AIに一箇所の修正を頼んでも、他オブジェクトへの影響を無視した回答が返ってくる。現状の処理モデルの限界なのだと思うが、部分最適に特化して全体の中で不整合がありそうな所にまで検知してくれない。
なので、AIは個別のモジュールは綺麗でも、全体としては破綻するリスクがあると思われる。しかし、ここら辺は開発手法でカバーできる範囲でもあると思うし、プロンプトの内容でも変わってくる可能性がある。
AIが苦手な領域は人間が対応することがマストであると実感した。
5. 結び:AI時代、人の向かうべき方向性

AIにコードを書かせるのは簡単だ。でも、そのコードが「全体の設計」の中で正しく機能しているかを判断できるのは、あくまで人間である。テストすりゃいいじゃんと思われるかもしれないが、テストの時にエラーが出てからでは遅いので、AIが出した生成物は人間がチェックすることが大切である。
つまり、ある程度の知識がないと良し悪しの判断ができないので、人間のプログラミング能力はある程度必要だと思う。
良し悪しも色々な基準があると思うが、まずは基本的なアルゴリズムをプログラムできるレベルでないと話にもならないと思うので、未学習者はPaizaで修業を積むのが良いのだろう。
社内SEに転職した私はITの雑用を頼まれることが多いが、1000万行のCSVをエクセル形式に分割して欲しいといった依頼が来るときはAIを活用してPythonのソースコードを生成させて処理を行わせた。もちろんその時もプログラムの内容は自分でチェックをしたし、どういうアプローチで処理するのかもAIと一緒に考えた。
AIは相談すると自分の知らない所まで含めて回答してくれるので、そう言ったところの正確性をすべて確認して自分の知識にしていくことで、その道のプロフェッショナルになれるのだと思う。
AIに主導権を渡さずに、AIは最高の相棒にしていこう!

コメント