【体験談】完全未経験者がAIでプログラミングは可能!AIで開発を行ったエンジニアが解説

ライティング

「AIでプログラミングができると聞いたことがあるけど、やり方がわからない」
「プログラミングの知識無くてもAI使えばできるの?」
「AIが出したコードで本当に動作するの?」

これは実際に私が考え込んでいた不安です。

結論から言うと、現在の生成AIで完全未経験者がシステム開発を行うことは可能です。

生成AIを活用することで、システム開発にかかる負担は大幅に軽減できます。また、プログラミング初心者であっても、アプリやシステムの開発が可能です。

しかし、未経験の状態では、開発したいシステムやアプリの規模によるという部分が大きいと思います。さらに、実際にAIを活用してプログラミングをすることがイメージできない人も多いでしょう。

この記事では、AIを使ってプログラミングの案件をこなしたことがある私が下記の内容について解説します。

この記事でわかること
  • AIを使ってこなしたプログラミングの案件
  • 未経験者がAIを使ってプログラミングを行うメリット
  • 未経験者がAIを使ってプログラミングを行うデメリット
  • AIを使ってプログラミングを行うコツ

AIを使ったプログラミングに興味がある人は、ぜひ最後までお読みください。

AIの発達でプログラマーの仕事がなくなるのはまだまだ先

まずAIを活用して率直に思ったことですが、プログラマーの仕事がなくなるのはまだまだ先だと思います。

私はIT業界に従事しています。AIが発達してから「プログラマーの仕事はなくなる」との言葉を聞く機会は多いです。

実際に開発の現場を経験した私の感想として、AIにプログラマーの仕事が代替えされるのはまだ遠い未来だと思います。

この考えに至っている理由は下記の通りです。

AIで代替えできないと思う理由
  • 冗長なコードを出力することが多い
  • 小規模でもAIだけで開発することが難しい
  • バグが発生するコードを出力することがある

AIが出力したコードをそのまま活用できるケースは、体感レベル4割ほどです。ほとんどのケースで、AIが出力したコードを手直しする必要があります。

また、AIが出したコードをそのまま実行させると、バグが発生してシステムが動かないということも多くありました。そのため、たたき台としては活用できても、現状の性能のAIのみで開発業務を行うことは難しいと考えます。

このことから、AIにプログラマーの仕事が代替えされるのはまだ遠い未来だと思いました。

実際にAIを使ってこなしたプログラミングの案件

ここでは私が実際にAIを活用して行ったプログラミングの案件を紹介します。

なお、内容の関係上そのまま紹介することは不可能です。そのため、概ね類似しているものでデータを代替えしながら解説します。

行った案件は勤怠管理で取得したい項目を増やしたいとの案件でした。概要はざっくり以下のとおりです。

とてもざっくりとしたものになりますが、勤怠管理で取得したい項目を増やすといった案件でした。

こちらの処理を各部署・部門ごとのシートでループを行いながら記載していくとの内容です。1シートあたり約20人で、全部で約180シートありました。

私はJava言語は触ったことがありますが、本案件で使用したVBAは初めて使う言語でした。そのため、VBAを用いたプログラミングは完全未経験者と同じレベルです。

一見簡単そうに見えますが、実際の処理としてはとても複雑です。実装には約1週間ほどの時間がかかりました。

完全未経験者がAIを使ってプログラミングを行うメリット

ここでは、完全未経験者がAIを使ってプログラミングを行うメリットを紹介します。

完全未経験者がAIでプログラミングを行うメリット
  • 言語の勉強をしていなくてもシステム開発が行える
  • システム開発の楽しさを実感できる
  • プログラミングに対する敷居が大きく下がる

私の実体験を踏まえながら、丁寧に解説していきます。

言語の勉強をしていなくてもシステム開発が行える

一番大きなメリットは、プログラミング言語を勉強していなくてもシステム開発が行えることです。

プログラミング初心者の状態から実務をこなせるようになるには、約1,000時間の勉強時間が必要といわれています。

1日3時間勉強したとしても334日なので、約1年という期間が必要です。気合を入れてプログラミングを始めても、習得する前に挫折してしまうことも多いでしょう。

しかし、AIを活用することで、言語の勉強をしていない状態でもプログラミングが行えます。事前の膨大な学習時間を行わなくてもシステム開発ができることは、大きなメリットです。

システム開発の楽しさを実感できる

プログラミングの勉強をしていなくても、システム開発の楽しさを実感できます。

プログラミング学習では、基本的な文法や概念を理解するまでに多くの時間が必要です。実際に動くものを作れるようになるまで、数ヶ月かかることも珍しくありません。

しかし、AIを活用することで、事前の勉強時間を省略してシステム開発の楽しさを実感できます。

例として、今回は簡単な掛け算のプログラムをChatGPTに作ってもらいます。

実行結果は下記のとおりです。

完全未経験者にとっては、最初の一歩が大きな壁に感じられるでしょう。今回は簡易な処理を行うプログラムでしたが、AIを使うことでアプリやウェブサイトも作成できます。

実際に動作するプログラムに触れれることで、システム開発の楽しさを実感できます。

プログラミングに対する敷居が大きく下がる

プログラミングに対しての心理的ハードルを大幅に下げられます。

言語や学習方法によりますが、一般的に基礎レベルのプログラミングを習得するのに200時間程度の勉強が必要と言われています。基礎レベルまでに達するまでの勉強量を聞いただけで、億劫になってしまう人もおられるでしょう。

しかし、AIを使うことで、事前の勉強をしなくても「こんなシステムを作りたい」と指示するだけで、プログラミングが行えます。初心者でも動かせるシステムを作れるため、プログラミングに対するハードルが下がり、最初の一歩を踏み出しやすくなります。

プログラムのことが全く分からない初心者であっても、アイデアを形にできることは、大きなメリットです。

完全未経験者がAIを使ってプログラミングを行うデメリット

メリットを紹介しましたが、デメリットが存在することも事実です。ここでは、完全未経験者がAIを使ってプログラミングを行うデメリットを解説します。

完全未経験者がAIでプログラミングを行うデメリット
  • デバッグができない
  • プログラミングを本質的に理解しにくい
  • 冗長なコードがあっても気づけない

未経験者がAIを使ってプログラミングを行う場合は、ここで紹介するデメリットに注意しましょう。

デバッグができない

エラーが出た際に、どの部分でバグが発生しているのかを特定することが難しいでしょう。

AIが生成したコードであっても、エラーが発生することは珍しくありません。プログラミングの基礎がわかっていないと、どこが間違っていてどう直せばいいのか判断できないでしょう。

なお、エラー内容をAIに伝えることで、修正をしてもらえます。しかし、修正依頼後のプログラムでもエラーが残っている可能性があります。

AIを活用してプログラミングを行う場合でも、最低限の基礎知識を身につけてから取り組むことがおすすめです。

事前学習なしの状態でAIを駆使してプログラミングを行う場合、エラーに根気よく向き合う姿勢が必要です。

プログラミングを本質的に理解しにくい

AIに頼りすぎると「このコードがどんな処理をしているのか」という本質的な部分を理解しにくいです。

AIは完成したコードをすぐ提示してくれますが「なぜそのコードを使うのか」を知れないまま使うことになるでしょう。

また、どのコードでどんな処理が行われているのかを、理解できないことも多いです。

例えば、下記はJava言語の一例です。

String message = "Javaの学習";
System.out.println(message + "を始めます");

1行目では「message」というString(文字列)型の変数に「Javaの学習」というデータを格納しています。2行目ではコンソールウインドウに変数「message」に格納されたデータと「を始めます」を表示するプログラムです。

今回の場合、コンソールウインドウに「Javaの学習を始めます」と表示されます。

未経験者が何も考えずコードを使った場合、プログラムが行っている処理や動作などの本質を理解できないことが多いでしょう。AIは、未経験者でも開発が行える便利なツールです。しかし、プログラミングの本質的な部分を理解しながらAIを活用することがおすすめです。

なお、今後一切プログラミングに携わらず、一時的に活用してみたいという方の場合、そのまま使っても良いかもしれません。

冗長なコードがあっても気づけない

未経験の場合、AIが出力したコードに無駄があっても気づけないでしょう。

文章の執筆でAIを活用した際でも、やや冗長な表現をすることがあります。プログラミングの場合も同様で、動作しても効率的なプログラミングコードが出力されるとは限りません。

ここで、一例としてExcelのB列とC列の掛け算の結果をD列に記載するコードを生成してもらうVBAのコードで比較します。今回はChatGPTとGeminiで比較を行います。

Sub MultiplyBandC()

Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

For i = 2 To lastRow
    If IsNumeric(ws.Cells(i, "B").Value) And IsNumeric(ws.Cells(i, "C").Value) Then
        ws.Cells(i, "D").Value = ws.Cells(i, "B").Value * ws.Cells(i, "C").Value
    End If
Next i

End Sub

Sub CalculateProduct()

Dim i As Long
Dim lastRow As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

For i = 2 To lastRow
    ws.Cells(i, "D").Value = Val(ws.Cells(i, "B").Value) * Val(ws.Cells(i, "C").Value)
Next i

End Sub

上記のコードで動作は同じでした。結果は下記のとおりです。

今回出力したコードでは2行の差でした。私の体験談ですが、本来3行で書けるコードを10行で出力されたことがあります。

また、今回は処理が簡単なので、動作時間に影響を及ぼすこともありませんでした。しかし、処理やコードの内容によっては、冗長になってしまうとシステム全体の動作スピードに影響が出ます。

完全未経験の方がAIを活用してプログラミングを行った場合、出力されたコードをそのまま使うことになるでしょう。プログラミングの基礎知識や書き方を理解していないため、コードの良し悪しを判断することはほぼ不可能です。

AIを使ってプログラミングを行う時のコツ

ここでは、AIを使ってプログラミングを行う時のコツを解説します。

AIを使ったプログラミングのコツ
  • 細かすぎるくらい詳細に動作イメージを書く
  • AIと対話するように修正指示を出す
  • 詰まったときは新しいチャットに切り替える
  • 補足を入れる

実際に私がAIを活用して開発を行った時に見つけたポイントです。AIを活用した開発に興味がある方は、ぜひ参考にしてください。

細かすぎるくらい詳細に動作イメージを書く

プログラムの動作イメージは、細かすぎると感じるほど詳細に文に伝えましょう。

AIは人間と違い「言わなくてもわかるだろう」という暗黙の了解や常識を持っていないです。指示が曖昧なほど、意図していない動作をするコードを生成してしまう確率が上がります。

例えば、下記のExcelのB列とC列に記載の数字の積を計算してD列に出力してもらうプログラムを作るとします。

人に指示する場合「B列とC列の掛け算の結果をD列に出して」と言えば通じるかもしれません。しかし、プログラムにする際は細かい部分まで正確に伝える必要があります。

今回の場合「ExcelのB3セルとC3セルの数字の掛け算の結果をD3セルに表示して」と指示することになります。

AIに伝える際にも、動作のイメージを細かすぎるくらいに丁寧に伝えることが重要です。

AIと対話するように修正指示を出す

人間と対話するように、理想のコードに近づけていく姿勢が重要です。

どれだけプロンプトがしっかりしていても、一回の出力で意図する動作をするプログラムがでる可能性は低いです。意図していないコードが出力された場合には、人と認識合わせを行うようなつもりでAIに修正指示を出しましょう。

例えば、ループ処理を行うプログラムで、意図してない箇所でループを抜けてしまうプログラムが出力されたとします。

この場合は「ループの処理はこの部分まで行って」と修正指示を出すことで、新たにコードを出力してくれます。

最初に提案されたコードが期待通りでなくても、少しずつ理想のコードに近づけられるよう丁寧に説明する力が必要です。

AIを活用したプログラミングは、自動化ではなく「一緒に作っていく開発」のような感覚です。後輩に仕事を教えるように、AIと対話しながらよりよいものを作り上げる意識を持ちましょう。

詰まったときは新しいチャットに切り替える

新しいチャットに切り替えることで、出力結果が大きく変わります。

AIは同じチャット内だと、同じチャット内の思考や文脈に引っ張られやすいです。そのため、何度修正指示を出しても、似たような回答が出力されることが多いです。

行き詰ったときは、新しいチャットに切り替えることで、別の担当者に変わったかのように出力結果が変わります。イメージですが、相談相手を変えるような感覚に近いです。

例として、ChatGPTでカフェのHPのHTMLとCSSを別々のチャットで作ってもらいます。

コードを実行したものは下記のとおりです。

コードを実行したものは下記のとおりです。

プロンプトは同じですが、出力結果には違いがあります。何度も繰り返していくうちに、イメージ通りの結果が得られるかもしれません。

1つのチャットで意図していないような出力がされた場合は、チャットを切り替えてみることが、AIを活用してプログラミングを行うコツです。

補足を入れる

細かな一言であっても、補足を入れるようにしましょう。

プログラミングに限らず、AIを活用する際は細かな補足までプロンプトに盛り込むことが重要です。指示が曖昧だと、意図しないコードやエラーの多いコードを生成してしまう可能性が高いです。

例えば「出力する前に一度内部で確認して、バグが出ないコードを出力してください」と一言加えるだけで、エラーの発生率が大幅に減少します。

AIを活用する際は、細かな部分であっても、プロンプトに補足を入れるようにしましょう。

AIを活用すれば未経験でもプログラミングは行える

AIを活用してプログラミングを行った実体験を踏まえて解説しました。

「プログラミングは難しそう」「勉強に時間がかかりそう」と考えている人もおられるでしょう。しかし、AIを活用することで、プログラミング未経験者でもシステム開発を行えます。

言語の勉強をしていなくてもアイデアを形にできるため、プログラミングの楽しさを知る入り口として最適といえます。

なお、バグの修正やコードの本質的な理解など、AI任せでは課題が残ることも事実です。また、一回の指示だけでは意図した動作のコードが出てきにくいので、何度もやり取りしながらよりよいものを作る姿勢が必要です。

「プログラミングは興味があるけど、最初の一歩が踏み出せない」とお悩みの方は、ぜひAIを使ってチャレンジしてみてください。

タイトルとURLをコピーしました