プログラミングの「ぷ」は「プログラム」の「ぷ」
さて、この記事、最初はタイトルをChatGPTにお願いして書いてもらったが、どうにもしっくりこないのでやっぱり自分で決めた。英文の日本語への翻訳などはかなり上手な印象のあるChatGPTではあるが、記事のタイトルとなるとデジャヴ感がどうしても拭えない。
かといって、自分が決めたタイトルのほうがデジャヴ感がひどいんじゃないかという現実は一旦さておき、つまり、使えるようで使えないChatGPTでありながら、やはり使えるときはとても使えるのがChatGPTということになるのではなかろうか?
さて、前置きが長くなってしまったが、実はAI時代のプログラミングについて書いてみたいと思っていた。AIはプログラミング書ける。すごい書ける。
筆者は普段kintoneのカスタマイズの仕事をさせて頂いているのだが、ときどきJavaScriptが必要になることがある。で、ChatGPTがリリースされてからというもの、プログラミングの細かい部分をChatGPTに任せる機会は確実に増えた。
AIは人間みたいなケアレスミスはまずしないし(例えば「=」と「-」を間違えたりはしないし)なんなら細かいテストもこなしてくれる。結論、自分で書くより速くて正確なのだ。
しかも、個人的な話で申し訳ない気がするが、40代に入ってどんどこコーディングのスピードは落ちてきている気がする。インターンやアルバイトの大学生の発想の柔軟さやコーディングのスピードはもはや脅威でしかない今日この頃である。
そして、当たり前のことであるが、これらのAIツールのプログラミングの速度と正確性は若い若者以上である。からして、AI時代のプログラマーの需要云々という話が当然のごとく議論されるようになったのは、まあ当然といえば当然なのかもしれない。
ではAI時代、プログラマーは必要なくなるのか?個人的に答えはNOだと思う。ただし求められるスキルは当然変わってくるはずだ。
単純なプログラミングはもはやAIに任せたほうが良くなってきたとしても、やはりそれが妥当なものであるかは人間が判断していかなければならない。
全体を設計する仕事はやはりエンジニアしていかなければいけない。
AIが仕上げてきたコードをさらにプロジェクトに最適化する仕事もエンジニアがしていく必要がある。
そもそもAIに指示を出すのは人間でなければいけない。
一方で、そうしたエンジニアとしてより多くのことが要求されてくる。必要な知識や経験や技術を身につけるためのハードルが上がるのではないかという気がしている。
という流れで今回ご紹介したいのがこちらの記事。
ChatGPTのような生成AIがどのようにプログラマーの仕事に影響を与えているかをリアルに扱ってくれている記事でとても読み応えがあった。
興味深いと思ったのは、AIにコードを書いてもらうのが仕事になっているエンジニアも増えている一方、複雑なプログラムになってきたときになかなか経験の浅いエンジニアに仕事がまわらない場合があるとのこと。
AIが生成したコードに潜在するバグは、複雑なコードになってくると経験のあるエンジニアでないと見つけられないので、結局経験あるエンジニアは経験の浅いエンジニアに(AIを使った)コーディングを依頼するよりも、自分でAIにかけて自分で修正する工程のほうが楽、というわけだ。となると、場合によってはAIでコードを書く仕事さえ、回ってこない状況もある、とのこと。
まだプログラミングを始めたばかりの頃は、先輩が書いたコードのテストやデバッグをしながらプログラミングを覚えてきた自分の経験を思い返すと、これは駆け出しのプログラマーにとっては結構しんどい状況だなと感じる。
自分がプログラミングの仕事を始めた頃は、経験がある人が書いたコードをテストしたり、細かい部分の実装したりすることでプログラミングを現場で勉強する機会があった。当時、プログラミングの本当に初歩的な知識しかなかった自分でもそれなりにやることがあって、仕事をこなすことができた(と、私は思っている)。
でも、事情は変わってきているということなのかもしれない。
つまり最初からシステムに対する深い理解力が求められてくる。設計する能力が求められてくる。全体像を俯瞰する能力が求められてくる。プロジェクトを動かすための機動力やコミュニケーション能力が求められてくる。問題解決能力は引き続き求められる。そのための論理的思考も求められる。
つまりはプロジェクトをプログラムする能力。
つまり計画を立ててそれを実行するという意味での「プログラミング」がどんどん求められてくるのではないか。この記事を読んでそんなこと考えさせられた。
書いた人:酒井
ITエンジニア。C++, VB, C#などを使ったプログラミングをシステム開発会社で10年間以上経験した後、ロケットスタートに転職。kintoneのカスタマイズはじめロケスタのIT部分に幅広く携わる。