chatGPTを使ってみての個人的な感想です
1. 個人開発とChatGPT
1.1 chatGPTで広がる可能性
1.1.1 プログラミングへのハードルが下がる
今やchatGPTがあれば「Hello World」程度は手取り足取り教えてもらえます
自分が最初にプログラミングを始めたときはコード1行目のエラーに対処できなくて挫折してしまいましたが*1「プログラミング」へのハードルは格段に下がっているといえるのではないでしょうか。
*1 C言語ですがおそらく環境構築でパスが通ってなかったとかそのレベルです
1.1.2 新しい言語やフレームワークへのハードルが下がる
先のトピックと重なる部分もありますが、特にある程度プログラミングに触れている人がほかの言語やフレームワークに手を出すときに例えば「〇〇をPythonとC#で実装して」などと頼めば、chatGPTが2つの言語の実装の違いまで教えてくれるはずです。
言語そのものの理解(言語の大切にしている考え方)に直結するかどうかは微妙ですが、その言語の基本的な文法であったりifやforの構文を勉強する手間はある程度省くことがないでしょうか
他にも複数のライブラりでコードを比較してもらってその中から1つを選ぶ、何てこともより手軽にできます
1.1.3 気軽に質問できる
これまでは、コーディングで分からないことや詰まったことがあればTeratailやDiscordのコミュニティで質問して有識者の方に教えてもらうや自分の身の回りの人に教えてもらうことが主だったと思いますが、特にインターネット上の質問は質問者として提示する情報が不足していて指摘していただいたり自分の質問に回答がつかなかったりするため「これは自分で解決できないのか」「質問するほどのことなのか」と自分の中で考えてしまい質問に踏み切れない、なんて経験をお持ちの方も多いのではないでしょうか。
※自分が回答者になるときの考えとしてはどんなに基本的な質問でも質問したほうがいいと思っています。回答者としてもしばらくその言語やフレームワーク、環境に触れていないかったときに思い出したり基本的な内容の確認ができるため自分としても勉強になるからです
ただ、質問者になるときはすごく投稿前に気にして解決せずに放置...なんてこともよくあります
1.1.4 豊富なアイディアを出してくれる
正確な情報を必要な場合にchatGPTが適さないと対照的にアイディア出しや手段を考える場合には頼れる助手になってくれます
例えば、「この実装をいくつかの方法で説明してください」とか「〇〇から連想される単語を考えてください」などなど
1.2 それでも
先の通り、自分の開発ではchatGPTの恩恵を授かっています
しかし自分は、chatGPTに頼りっぱなしの開発の是非については否定的です
1.2.1 chatGPTを信じるなかれ
chatGPTは多くのパラメーターで学習しています、GPT4の精度がかなり高いという話も聞きます
しかし、あくまでchatGPTが持っているのは学習時にインターネット上にある情報であったり質問時にインターネット上にある多くの情報です
特にバージョンアップがあったり、脆弱性が見つかったりと日々変化している環境でchatGPTがくれる情報は必ずしも正確とは限りません
個人的に特に顕著だと感じるのはVue.js関係のコードを書いてもらうときにvue3を指定しているにも関わらず、vue3で非推奨のコードが出てきたり、そもそもvue3で使えない構文が混ざっていたりします
1.2.2 エラーは自分で解決したほうがいい
エラーを解決することは自己解決能力を向上させる優れた手段です。
エラー文や出力を読み、どうやって検索すれば知りたいことが出てくるのか、前に似たようなエラーに出会ったときにどのように解決したかという経験はエンジニアとして重要ではないでしょうか
chatGPTでのエラー解決に頼りすぎるとかえってエラー解消までにかかる時間がかかる場合もあります
※chatGPTでエラーを解決することを否定したいわけではありません
調べても出てこないようなエラーだったり、エラー文をかみ砕いてもらうためには有用だと思います
個人的な経験としてエラーやバグを経験することで将来的に迅速に対応できるようになるとは思います
1.2.3 公式ドキュメントを読んで引き出しを増やそう
どんなにchatGPTが便利だろうと、copilotが便利だろうと公式ドキュメントには目を通すべきだと思います
結局どんなにツールが進化しても最新で正確で詳細な情報が得られるのは公式ドキュメントだけです
他にも、公式ドキュメントを眺めていると自分の知らなかった構文や機能に出会えます
そのプロジェクトでは使わなかったとしても将来的に別のプロジェクトで「そういえばあのライブラリでこんなことできたな」といったような引き出しがあれば実装の幅が格段に広がります
2. chatGPTに入力する情報には気を付けよう
まさかチャットGPTにそのままコード貼り付けていませんか?
まれに「クレデンシャル直書き」「トークンコピペしたまま」なんてことがありますがchatGPTにコピペする前にコードは必ず秘匿すべき情報が含まれていないか確認しましょう
コピペする前に「このコードをGithubのパブリックリポジトリに張り付けても大丈夫かどうか」を考えることをお勧めします
3. chatGPTを使うときに気を付けること
3.1 コードの検証
ここまででも書いているようにchatGPTの生成するコードには誤りや非推奨の構文が使用されていることがあります
生成されたコードは必ず自分で確認しましょう
また、チームで決められているコーディングの方針に沿っているかどうかも確認しておきましょう
4. 結論
chatGPTに任せるべきこと、自分でやるべきことを模索しながらchatGPTを自分専属の助手として有効活用することで作業効率を爆上げしましょう!