私はフロントエンドエンジニアとして仕事をしている。
プログラミング言語「Javascript」を主に使っているのだが、今ではそのほとんどをGPTに書かせている。
という感じでほぼ毎日、長時間GPTを使ってきているのでその肌感を書く。
その前に1つ伝えたいことがある。
まずこれを読んで欲しい。
そして何十年か前、カーナビが出始めた時、きっと「こんなものに頼っている奴に運転を任せられない」と言っていたおっさんが居たはずだ。
今でもたまにいる。
「カーナビに頼っていたら一切道を覚えられないから駄目。地図を読めるようになれ」と言う人。
実際はどうか。
「カーナビのおかげで車に乗れている」
「地図の読解が出来なくても大丈夫」
科学が人を平等にした良い例だ。
これと同じことがAI革命で起きている。
私の実務でのAI使用例
AIとプログラミングはマジで相性が良い。
特にJavascriptとPythonは強い。
何故なら人気言語だから。
人気の言語であれば情報が多く、だから精度も高い。
私はWeb制作系エンジニアで、
JavascriptやPHPと言った言語を良く扱う。
そしてこれらの言語は、もう自力で書くことはあまり無い。
ほとんどAIに書かせている。
例えば、
「このhtmlタグがあって、 #modal をクリックしたら #modalContents がモーダルで開くようにして」
「Wordpressのカスタム投稿 news の新着3件を出力するコードを書いて。htmlはこの形式で」
のような感じだ。
実際、これくらいのコードだったら自分で書いてた方が楽しいし、何なら今までの経験で蓄積した「コピペ用個人ナレッジ」がある。
今まではそのナレッジからコードを引っ張り出してコピペしていた。
しかし今では、「自分で書く」のは論外として、「ナレッジから引っ張り出す」よりGPTに頼んだ方が早いのだ。
特に「正規表現」なんて、マスターしたとして、「毎回頭を捻って作り出す構文」であるため、自作すると割とカロリーを使う。
こういう「やりたい事は分かっているけど手数が多い作業」はAIに全投げした方が圧倒的に早い。
AIの「精度」はどうなのか
実務のコードをAIに書かせている。
で、精度はどうなのか?
結論、めちゃくちゃ高い。
ただ、「完全任せっきりはNG」。
もう一度カーナビで例えるが、例えば、目的地を設定した時、自分ではそこまでの行き方は分からなくとも、カーナビの指示が明らかに間違っている時、それに気付く人が大半だろう。
「ドラッグストアに行きたいだけなのに高速に乗せるのは絶対に違う!」
「は?このルートで大通り出るはずないだろ!」
これは、「細かいことは分からないが、外形的な部分は理解できている」から誤りに気付けている。
AIも全く同じ。
「このケースではサブクエリー使ったほうが絶対早い!」
「この処理はcss側でやった方が絶対分かりやすい!」
このようなことが往々にしてあるが、これはまぁ指示が悪いケースがほとんど。
ちゃんと意図、最優先事項を伝えたらその通りに書き直してくれる。
AIに任せっきりではなく、「サポート」として使う
実際、今の自分では書けない難易度のコードでも、しっかりプロンプトを書けばAIはこなしてくれる。
ただ、この状況では間違いに気付けない。
さっきのカーナビの例で言う「乗らなくて良い高速に乗っている」状態。
これは避けたい。
なので私は、背伸びしたコードを作ってもらった場合、かなり念入りに理解するようにしている。
そしてその「理解」についてもAIは役立つ。
早い話が「学習サポート」だ。
これについては、直近で行った「基本情報技術者試験」の勉強と交えて話したい。
【最高かよ】AIを使った学習
基本情報の勉強は本当に苦戦した。
「何を言ってるか分からない」ワードが大量に出てきたし、参考書にて、コンピュータの内部で起こっていることを事細かに解説されても、全くイメージが沸かなかった。
でもGPTが助けてくれた。
説明が全く分からない時、単純に
「全く分からないから小学生でも分かるように説明して」という定番プロンプトでまずイメージを把握する。
ここまでならみんな使っているだろう。
更に強いのはこの後。
例えば勉強の際、なかなか概念が理解できない時、メンター(先生)が傍にいれば、
「これって◯◯みたいなこと?」と、いわゆる例え系の質問が出来る。
「そうそう!そのイメージ!」と言われれば、自分の中でつながりが出来て理解に繋がる。
GPTでもこれがちゃんと出来る。
後はこれも定番だが、
「◯◯と△△の違いを教えて」系の質問。
例えば
「DHCPとNAPTの違いが全然分からない。教えて」と言うと
「この2つは動的にIPアドレスを扱う、という意味で確かに似てますよね」
という共感から始まり、その後に正解を提示してくれる。
「AIに完全に頼ったスタイル」はまだ疑問は残るし自己成長に繋がらないが、
このように「学習サポート」として傍に置いておくと、AIは非常に心強い。
AI時代だからこそ資格勉強は非常に大事だと私は思っている。
何故なら、資格勉強のほとんどが体型学習だから。
体系的に物事を知っていれば、その分野の外形が分かる。
そこさえ分かっていれば、具体的なことをAIに任せて、そして自分の知らないワードが出てきたら突き詰めて調べれば良い。
逆に外形も何も知らない状態だったら、チンプンカンプン過ぎてプロンプトも雑になる。
結果、生成精度も落ちる。
「まずググる」から「まずGPT」に完全シフトした
プログラミングで詰まったら、元々は「とにかくググり力が大事」だった。
もちろん今でもそうだ。
特にマイナーな言語だと特にそうだろう。
でも現在、Javascriptのようなメジャー言語だったら、
「まずGPT」で「期待する答えが得られなかったらググる」の流れに切り替わった。
ただ、変わらないこともある
スポットで、他のコードとの依存度が低い領域であればかなり高精度だが、プログラミング量が増えると、「プログラムの全容」までは解釈してくれない。
しかしこれは、その分「指示が難しくなる」からAIとの連携が難しいという側面が強い。
つまり「何がやりたいのか分からない」状態ではAIは使いこなせないのだ。
ただ、とは言ってもその「何がやりたいのか分からないから、まずロードマップを教えて」と言えば、適切な手順を教えてくれる。
だからAIの精度が低いと感じたら、まずはその具体的な作業より更に抽象的な概念部から理解・指示を進めるとより捗る。
毎日5時間GPT使って分かった「AIとの付き合い方」:まとめ
・この変化は、今までテクノロジーがやってきた事とそう変わらない。
また数カ月後には状況は変わってるかも知れない。
が、AIをめちゃくちゃ使ってる人の一例として、現時点の使用感を書いてみた。