ChatGPT君はプログラミングでどこまで使えるのかを検証してみました。
chatgpt4を契約しています。宣伝はありませんが、これほどコスパのいい買い物はなかなかありません。
Contents
ChatGPTのプログラミングでおすすめ本
ChatGPTは別に難しくないので、普通に使うなら本はいらない気もするのですけど、もう少し深堀した本を探してみました。
ChatGPTの本はくさるほどでていましたが内容がペラペラの本が多いです…。目次をみてピンをくるものはかなり少ないです。エンジニアならやっぱりボーンデジタルさんでしょう。目次をみたら興味をひく構成でした。APIの説明もしっかりとあります。
次の本は購入を見送りしました。
目次をみるとすぐわかるのですが、いろいろな人の寄せ集め集みたい感じです。しかも誰でも思いつくようなものが多くピンをくるものがありませんでした。また、エンジニア率やIT系の専門家率が低すぎます。
ホリエモンの本なら別の本がいいと思います。
chatgpt4でプログラミングの質問の仕方・使い方・活用
サンプルコードを書いてもらうのはいいかもしれません。ちょっとマニアックなことをやろうとすると、ぐぐってもドンピシャなサンプルコードがでてこない場合があります。その場合、ChatGPT君の出番です。もちろん、そのまま動くことはないため改変が必要です。
前まではぐぐってもないと英語で調べることはもちろん、Githubなどで探していましたからね。
ChatGPT君はvarを使う!constやletを使おうよ!
ただ、最初気になったのは、JavaScriptでconstを使わないですよね。なんでChatGPT君はvarを使うの?って思わず聞いちゃいましたよ。
ChatGPT に JavaScript 書いてもらうと、特に指定しなければだいたい var a = を使ってくれるので、そういうところからも「このコードは “アレ” でしょ?」って判っちゃうのかもなあ。
— WFHあめい (@amay077) May 21, 2023
でも、一度、constとletを使おうと、指示すれば書き換えてくれます。
ChatGPT君がおかしなことをしたらお願いしなおさなければいけません。そのスキルが必要です。
もうひとつあげると、ChatGPT君はC言語でおなじみのダブルクォート派です。だけど、個人的にJavaScriptはシングルクォート派です。検索する際にダブルクォーテーションをよく使いますが、そもそも文字列にダブルクォートが入っているとそもそも検索しにくいなどの理由があります。これも指示すればなおしてくれます。
ChatGPT君にプログラミングさせる上で得意なこと
- タイピングがミスもなく早い。大抵の場合は迷いもない。ただし意標を突いた変化球のある返信をすると、時々、迷う。
- サンプルコードやアルゴリズムはすぐでてくる
- 関数名も無難な案をくれる
- ChatGPT君が書いた文法の質問はかなり適格に応えてくれる。うろ覚えの文法を確認する際に重宝
- コードの意味は即答えてくれる
- 実装方法も何パターンか考えてくれるので違いなどを聞いて吟味できる
- 未検証ですが、おそらく言語の変換は得意なはず(Nuxt.jsからNext.jsの変換を試したい)
ChatGPT君がプログラミングで苦手なこと、ハマった場合の対処方法
ChatGPT君は次のようなプログラミングが苦手な気がします。
- プログラミングが複雑になると、こっちがうまくいったらこっちがダメになるという壺にはまる
- Aという実装とBという実装をうまく統合してもらおうと思ってもあまりうまくいかない。
- 複数ファイル共有しないと部分的に物事を考えてしまうため、全体を共有しない場合、注意が必要。
- if文のチェックが甘い。ログなどを提供しても、なぜかif文のチェックが甘いと感じる。また型の変換などを忘れている場合もある。
- ログからエラーをおうのが苦手なのか、あまり得意には見えない。自分で探した方が早い場合が多々ある。
- 難しいことはわかるくせに、コードを書いてもらうと結構、バグが多いプログラマ…。デバッグ必須。
- 凡ミスなどの天然ボケをかます。知的天然キャラ。とくにGPT3.5。
この場合、以下の対応方法があります。
- 質問を変える!こっちの質問の仕方が悪いかもという謙虚な思考が大事
- 仕様を明確化する。仕様がしっかりとしていないとChatGPT君は適当なコードを見繕う
- 手順を箇条書きにする。思ったとおりのプログラミングを書いてもらうには、1、2、3と手順を明快にする。プログラミングスキルが問われる。
- console.logの結果をみせておかしいと伝える! ロジカルに違うと伝えると、論理思考のChatGPT君は謝罪して意見変更をする
- アプローチ自体を抜本的に変える
- ChatGPT君は最新の情報を持っていないことがあります。最新のリファレンスをコピペでChatGPT君と共有する
- こちらがサンプルコードを提供して教える。結構、教えてあげることにより解決することがある。いいサンプルコードをかいてあげるとChatGPT君はしれっと方針転換してくる。GPT4君もこの実装は難しいと拒否気味だったものもサンプルコードを提供すると、それに基づいて一発で実装できたこともあった。やっぱり使う側のプログラミングスキルが問われる
それでも複雑なものはうまくいかない場合があります。
ChatGPT4でもです。その場合、ChatGPT4を理詰めで説得するか、自分でコードを書くかになりそうです。おそらくベテランプログラマーなら自分で書いた方が早いはず。
- ChatGPT君がコーディングに行き詰った場合は、そのコードを引き取り、自分で書いた方が早いと思います。どのみち、最終的にはすべての行のコードは自分でチェックしないといけないので。
- ChatGPT君が落ち込まないように、自分で書いて完成したら、ChatGPT君にコードレビューをしてもらいます。ChatGPT君の出番を作ってあげます。
- 最後に自分で動作確認をします。最後はやっぱ人間の出番!
また仕様を正確に伝えようとすればするほど、chatGPT君はわりと忠実に組もうとします。そのコードが逆に回りくどいコードになっていることがありますが、スマートに簡略化してくれません。chatGPT君に再度コードを短くできる旨を具体的に伝えるか、自分で書き直すかした方がよいです。
個人開発をする場合、時短のプログラマーとして助け舟に使えそうです。漫画家のスタッフという感覚がありますね。
ただ、自分のスキル以上のことはできないな、というのがAIの特徴ですね。ChatGPT君が知らない提案をしてくれることがありますけど、その場合は理解を深めて、そこまで自分のスキルをあげないといけません。
ChatGPT君は家庭教師や秘書にたとえられることも多いです。
ただ教えたり教わったり両方ともあるため、上でも下でもない、同志というか仲間という位置づけに落ち着きました。「ChapGPT君は仲間だ!」
ChatGPTのプログラミングに活用するとバレる!?
バレるバレないは根本的な問題ではありませんね。
しっかりと動作するか否か。コーディングはAIっぽいのはバレる気もします。
ただ、エンジニアなら、最低限コードの意味は1行1行理解しますし、どのみち1行1行コードを吟味するはずなので、その際に修正を加えれば問題ない気がします。適切ではない場合、関数名や変数名もGPT君に修正してもらうか自分で修正します。排他処理やエラーハンドリングも考えなければなりません。
ド素人がChatGPTのみでプログラミングのサービスやゲームはどこまでできる?
この点は単純明快で無理だと思います。
最終的なコードは全部チェックしないといけませんし。そもそも手をいれないと動かないので。完成系をイメージできているのは自分だけです。また、適格な指示だしができません。素人がエンジニアに外注すると、指示だしが適格ではないためうまくいかない場合があるのと同じです。
Udemyやプログラミングスクールで学びましょう!天才肌じゃなくてもいいですけど、ある程度の技術力は必要でしょう。
プログラミングスクールはこちらの記事です。
Udemyのおすすめコンテンツはこちらの記事をみてください。
ただ、開発の時短になるのはたしかなので、バリバリと使いましょう。
ChatGPTがあればプログラミングスクールはいらない!?
より独学でプログラミングができる人が増えるでしょう。
教育のような間にはいる業界はちょっと生徒数が減るなど悩みもでてくるかもしれません。
間にはいるコミュニティも同様でしょう。
実際、Stack Overflowの利用者は減少に転じています。体験的にそう感じ記事を探したらあったため、それはわかります。
プログラマーなら使ったことがある人も少なくないであろうStack Overflow。ウェブ解析ファームのSimilarWebのレポートによれば、今年に入っての月別トラフィックは前年と比べ平均6%ダウン。2月と4月は13.9%減少、3月は17.7%も減少していました。SimilarWebは減少理由に関して、GitHubのAI機能CoPilotによるものもあるが、大部分はChatGPT利用が増えたためと分析。
https://www.gizmodo.jp/2023/05/chatgpt-stackoverflow.html
ブログの記事も人に見せるというより、本当に自分めものコードをシェアするように少し方針転換していこうかと検討しています。
ただ、ChatGPTだけでは動かないため、基本的なプログラミングスキルは必要でしょう。
Udemyや本のあわせ技で身につけるか、プログラミングスクールでみにつけるかはあなた次第という気がします。
プログラミングスクールはこちらの記事です。
Udemyのおすすめコンテンツはこちらの記事をみてください。
プログラミングのハードルがさがったという点は事実だと思います。プログラミングを勉強したい人にはチャンス到来です。
ChatGPT君より秀丸君の方が作業が早い!?
ChatGPTにソースコードを省いて文字列を抽出させる
ChatGPT君にhtmlのソースコードを省いて文字列を抽出させる作業をやってもらいました。
正しくできました。
しかし、文字数が多いとエラーがでます。2048文字です。結構、実用ではきついなと感じました。
2つ目に速度が遅いです。
テキストエディタ秀丸君にやってもらったら、もっと早くできました。秀丸君は高速なのがうりです。
置換方法は次のとおりです。
<("[^"]*"|'[^']*'|[^'">])*>
結論としてはやっぱ秀丸はすごい!
たぶん知識がある人ほど自分でやった方が早いとなる気がします。
まあ、正規表現は教えてもらってもいいかもしれませんが、このような作業をChatGPT上でやるのはいけませんね…!
使えない!?ChatGPT君とBing AI君はどっちがプログラミングができる?
BingAIがプログラミングで使えない3つの理由
(追記)BingAIは何回か使って以下の弱点があるため使えないという結論になりました…。
- 2000文字制限がある(コードは複雑で長くなると2000文字以上になることがあり調整するのが時間の無駄…コピペでさっさと貼り付けたい)
- 変なチューニングが入っている…。
- コードを書かないで逃げる…。
今はCursor君を使っています。
文字数制限
Chromeは4000文字、Edgeは2000文字…(2023年12月情報)。なぜ、マイクロソフトのEdgeの方が文字数が少ないかは疑問だけど、もしかしたらよいモデルを使っているのかもしれません。
コーディングが複雑になった場合、4000文字でも、もうちょっと許容してほしい気もします。
変なチューニングが入っている
BingAI君はかなり検索の情報重視という気がします。ただ、結構ぐぐれる人には自分でぐぐればよくない?となってしまいます。
本家のChatGpt君はネットで調べてくれる?ネットでリサーチして?など言わないと調べにいきません。
それ以外にもチューニングされている気がします。同じ質問をしても回答がぜんぜん違うことがあります。別物と考えた方がよいでしょう。
コードを書かないBingAI君…
最初、Bing AIはChat GPT v4をベースにしているため、プログラミングができるのかなと思っていましたが、経験的にChatGPT君の方がちゃんと書いてくれますね。
なぜなら、Bing AI君は少し難しい話をふると、参考サイトだけ教えてコードを書かず逃げるからです^^;;
コードを書こうよ、Bing AI君!
エンジニアになるためにはコードをかかなきゃダメなんだ、Bing AI君!
ChatGPT君は逃げずにコードをかきます。スレッドの流れを覚えているため、話がしやすいです。
こっちがなおすとこっちがダメみたいなことはあるんだけど、
両方とも条件に含めるとそれなりになんとかしてくれます。
ただ、こちらでデバッグしながら、間違っているところを指摘していかないとダメですね。ChatGPT君は小難しいコードもかけるわりに、わりとif文などの凡ミスが多いです。
ただ、こちらの質問が悪いと勘違いされちゃうことがるので、自分の振り方が悪かった?みたいなのも疑わないとダメです。
仕様はかなりきっちりと決めるといい感じになりやすいです。
あとはエンジニアお得意のロジカルな会話でつめていきます。
問題点は因数分解したり、一度に全部ふらずステップアップしていくような形にします。
ChatGPT君もプログラミングにハマるときはハマります。
ハマったら最新のリファレンスを提供したり、
ぐぐってこうかいてあったよ、ChatGPT君なんか違うんじゃないの?と促すと意見変更はちゃんとしてくれます。申し訳ありません、この方法でやっぱできませんでしたとか、別のアプローチを提案しますとかいって。
詰まったら自分でコードをかいて、このコード参考にしたらとか?
僕が解決しておいたよ!どう?とかいうとよいです。
お互いの協力が必要です。どのみち自分で理解することは最低限の要件です。
chatgptとGoogle Bardのプログラミング比較!どっちがプログラミングができる?
Google BardやBing AIなども軽く使ったけど、
— 個人開発作家 まったりんneru (@neruplan) June 23, 2023
プログラミングはChatGPTが1番よいという結論。
Google Bardに聞いてみると自ら認めているし、少し難しいコードを書かせるとすぐに違いがわかる!#プログラミング学習 pic.twitter.com/uy8zQ0spMd
Bard君に聞いたら自分よりChatGPT君の方がプログラミングは得意と素直に答えてくれました。
実際に少し難しいコードをかかせると、その差はかなりありましたね。
こっちが突っ込んでもうまくコードをまとめてくれませんでした。。
謙虚で素直な姿勢は評価したいと思います。
結論をいえばプログラミングで時短したいならchatGPT4を使おう!ですかね。
Google Bardの使い方
始め方自体は簡単です。
「bard」と検索 > Meet Bard(https://bard.google.com/) > Bardを試す >
個人情報をいれないでと注意されます。
同意する >
Googleのアカウントにログインしていると、これだけです。ログインしていないとログイン画面がはさまると思います。
chatgptでプログラミング言語の変換を試したい!
たとえば、vueをreactに書き換えるなどプログラミングの変換を試したいですね。
たぶん、chatGPT君は得意分野という気がしますので。
コメント