最初からやり直さなければならない場合、ChatGPT でプログラミングを学ぶにはどうすればよいですか?

15年間のコーディングの旅でChatGPTを探求する - 単なるコピー&ペーストを超えて

プログラミングは10歳の頃から私の人生の一部でした。インターネットの初期の頃に Friendster プロフィールのコードと CSS を微調整することから、SQL インジェクションをスリル満点で試したり、趣味で三本足のロボットを作ったり、最近では Python プログラミングに没頭したりと、私のプログラミングの旅は多彩で楽しいものでした。

さまざまなプログラミング手法から私が学んだことは次のとおりです。

写真はArnold FranciscaによるUnsplashより

私がプログラミングを学ぶ方法は常に同じです。よく言われるように、ほとんどはコピー&ペーストだけです。 😅

プログラミングの世界で何かを構築する場合、私のアプローチは次のようになります。

  1. 適切なフレームワークまたはライブラリを選択します。
  2. 過去のプロジェクトから学ぶ
  3. ステップに分解する
    プロジェクトを実行可能なステップに分割して、開発のストレスを軽減します。
  4. 各パーツをGoogleで検索してください。
    各ステップで、洞察、ガイダンス、および潜在的な解決策については、Google、Bing、DuckDuckGo などのお好みの検索エンジンを参照してください。
  5. プログラミングを始める
    各ステップを体系的に実行するようにしてください。

ただし、よく考えられたコードでもエラーが発生する可能性があります。私のトラブルシューティング戦略は次のとおりです。

1. フレームワークのドキュメントを確認します。 必ずドキュメントを読んでください。

2. GoogleとStack Overflowで検索: Google と Stack Overflow で検索します。キーワードの例は次のようになります。

site:stackoverflow.com [プログラミング言語] [ライブラリ] エラー [エラーメッセージ]

site:stackoverflow.com Pythonエラー ImportError: pandas モジュールが見つかりません

– スタックオーバーフローソリューション問題がすでに Stack Overflow 上に存在する場合は、最も賛成されているコメントと解決策を探すと、多くの場合、迅速かつ信頼できる回答が見つかります。このプラットフォームは、開発者が解決するための重要な参考資料です。 Pythonエラー 噂とパンダの図書館。
– 私の直感を信じてくださいStack Overflow に答えが見つからないときは、自分の直感を信じて Google で信頼できるソースを検索します。 GeeksForGeeks、Kaggle、W3School、Towards データサイエンス DS用です😉

3. コードソリューションをコピーして貼り付けます。

4. 検証とテスト最後のステップでは、変更されたコードを慎重に検査およびテストし、意図したとおりに動作することを確認します。これにより、コード検証がなくなり、コードが適切にテストされることが保証されます。

 

技術的な問題は無事解決しました!

それは美しいでしょう?

 

しかし実際のところ、私たちはまだこれをやっているのでしょうか?

最近、新しいプログラマーがプログラミングに取り組む方法に変化があることに気づきました。私は約 3 年間にわたり、コーディング ブートキャンプ、大学でのゲスト講義、企業研修などをこなしながら、専門的にコーディングの方法を教えてきました。プログラマーがプログラミングを学ぶ方法は少し変わり、 プログラミングにおける人工知能ツール.

私は通常、新しい人には、答えを探すためにブラウジングしたり Google 検索したりする昔ながらの方法を続けるようにアドバイスしていますが、それでも人々は ChatGPT を使用することになります。彼らの言い訳は

 

「ChatGPT(プログラミング目的)は、クラスメイトが増えたようなもので、普通の人のように話しかけてくれます。」

これは、特に研究結果や文書から物事を理解しようとしているときに非常に役立ちます。いわゆる「プログラマーの直感"

誤解しないでください。私は基本を支持しています。コミュニティを閲覧したり、ドキュメントを読んだり、質問したりすることは、私の意見では強力なステップです。 ChatGPT だけに頼るのは少しやり過ぎかもしれません。もちろん、彼は答えの簡単な要約を用意することはできるが、 従来のブラウジング方法では、プログラミングの世界では極めて重要な、選択と実験の自由が得られます。

しかし、当然のことながら、ChatGPT は、検索結果やドキュメントの何が正しいのか、何が間違っているのかをまだ把握しようとしているときに特に、回答を提供するのが非常に速いという点を評価しなければなりません。 ChatGPT は、学習を加速し、複雑なプログラミング問題の解決策を見つけるための強力なツールです。

ChatGPT を学習パートナーとして利用するというこの変化は、プログラミングの分野だけに起こっているのではないことに気づきました。 ChatGPT は人々の学習方法に革命をもたらしました。この投稿の文法を修正するのに ChatGPT も使用しています。Grammarly ではなく、ChatGPT を使っています。

 

ChatGPT の使用を拒否することは、2000 年代初頭に検索エンジンの使用を拒否するようなものです。。 ChatGPT には、信頼できない情報や詐欺を含む検索エンジンと同様に、偏見やエラーが含まれている可能性があります。 ChatGPT を適切に使用すると、学習プロセスを加速できます。

ここで、ChatGPT がプログラミング仲間としてデバッグを手伝ってくれるという実際のシナリオを想像してみましょう。

 

シナリオ: Python スクリプトのデバッグ

プロジェクトの Python スクリプトで作業しているときに、解決できない予期しないエラーが発生したとします。これはソフトウェア開発でよくある問題であり、高度なデバッグ スキルが必要です。

ChatGPT 以前の時代に私がデバッグを学んだ方法を説明します。これらの古典的な方法は、デバッグの基本を理解する上で今でも大きな価値があります。

閲覧方法:

  1. ドキュメント:

まず、エラーの原因となっているモジュールまたは関数の Python ドキュメントを確認します。 Python ドキュメントは、さまざまなモジュールの動作と正しい使用方法を理解するための重要なリファレンスであり、エラーの原因を特定して効率的に修正するのに役立ちます。

 

例えば:
- 訪問 https://scikit-learn.org/stable/modules/ Scikit Learn のドキュメント。

2. GoogleとStack Overflowで検索する:

ドキュメントに解決策が記載されていない場合は、Google や Stack Overflow を参照してください。さまざまなフォーラムのスレッドやディスカッションをスキャンして、同様の問題を見つけて解決します。これらのリソースは、機械学習の分野でのトラブルシューティングに役立ちます。

3. 直感を信じましょう

問題が独特であったり、十分に文書化されていない場合は、自分の直感を信じてください。過去に信頼できると判断した記事や情報源を Google で調べて、同様の解決策を問題に適用してみることもできます。このアプローチにより、技術的な問題解決能力が向上します。

上記の検索結果を見ると、結果は W3school (信頼できるコーディング学習サイト、カンニングに最適) からであり、他の XNUMX つの結果は公式の Pandas ドキュメントであることがわかります。検索エンジンがユーザーに公式ドキュメントを参照するよう提案していることがわかります。 😉

ChatGPT を使用して問題のトラブルシューティングを行う方法を説明します。

 

ChatGPTによる新しいアプローチ:

  1. 会話で ChatGPT とやり取りする:

ドキュメントやフォーラムを閲覧するだけでなく、ライブ会話で ChatGPT と対話できます。エラーの簡単な説明を記入し、質問してください。たとえば、ChatGPT を使用すると、一般的なプログラミング エラーの理解とデバッグに関する即時のヘルプを得ることができます。

 

「[プログラミング言語]のスクリプトで[エラーの説明]という問題が発生しています。このエラーの考えられる原因と解決策を教えていただけますか?」

2. ChatGPTを使用して概念を明確にする:

エラーが理解しにくい概念に関連している場合は、ChatGPT にその概念の説明を依頼できます。例えば、

 

「[特定の概念]が[プログラミング言語]でどのように動作するのか説明していただけますか? 発生しているエラーと関係があるのではないかと思います。エラーは[エラー]です。」

3. トラブルシューティングの推奨事項を尋ねる:

Python プログラムのトラブルシューティングに関する一般的なアドバイスについては、ChatGPT に問い合わせることができます。例えば、

 

「[問題]に対処するための一般的な戦略は何ですか?ツールやテクニックの推奨事項はありますか?」

潜在的なメリット:

  • カスタムガイドライン: ChatGPT は、エラーに関する具体的な詳細と問題に対する理解に基づいて、カスタマイズされたガイダンスを提供できます。この機能は、ChatGPT の大規模言語モデル (LLM) の機能に基づいて構築され、カスタマイズされた支援を提供します。
  • 概念の明確化: 大規模言語モデル (LLM) の機能を活用して、ChatGPT に直接概念の説明や明確化をリクエストできます。
  • 効率的にトラブルシューティングする: ChatGPT は簡潔で適切なトラブルシューティングのヒントを提供する場合があり、これによりデバッグ プロセスが簡素化されます。

潜在的な制限:

それでは、ChatGPT に 100% 依存することの欠点について説明しましょう。私は、生徒たちが ChatGPT を使用する過程で、こうした問題を何度も目にしました。 ChatGPT 以降の時代では、エラーが 100 行に及び、いくつかのモジュールと依存関係に関連していたにもかかわらず、私の学生たちはコマンドライン インターフェースから XNUMX 行のエラー メッセージをコピーして貼り付けていました。 ChatGPT に XNUMX 行のエラー コードを提供して回避策を説明するよう依頼するとうまくいく場合もありますが、さらに悪いことに、手動によるデバッグ作業に XNUMX ~ XNUMX 時間追加されることもあります。

ChatGPT には、コードのコンテキストを表示できないという制限があります。もちろん、コードにいつでもコンテキストを与えることができます。より複雑なコードでは、すべてのコード行を ChatGPT に渡すことができない場合があります。 ChatGPTはコードのほんの一部しか認識しないため、ChatGPTは 想定される 残りのコードは彼の知識ベースに基づいているか 幻覚.

ChatGPT の使用における潜在的な制限は次のとおりです。

  • リアルタイムのダイナミックなインタラクションの欠如: ChatGPT は貴重な洞察を提供しますが、フォーラムやディスカッション スレッドが提供するようなリアルタイムのやり取りや動的な情報交換は欠けています。 StackOverflow では、10 人の人が 3 つの異なる解決策を提案している場合があります。これらの解決策を、DIY (自分でやってみる) で比較したり、賛成票の数を確認したりすることができます。
  • 事前の知識に頼る: ChatGPT の応答の品質はトレーニングに使用された情報によって異なり、最新のフレームワークの更新やプロジェクトの具体的な詳細を認識していない可能性があります。
  • デバッグに余分な時間がかかる場合があります: ChatGPT には完全なコードのコンテキストがないため、デバッグに時間がかかる可能性があります。
  • 概念の理解が限られている: 従来のブラウジング方法では、自由に選択し、少し実験することができます。これはプログラミングの世界では非常に重要です。適切な情報源の選び方を知っていれば、一般的なChatGPTモデルに頼るよりも、自分でブラウジングすることでより多くのことを学べるかもしれません。
    プログラミングの概念とテクノロジーに特化したトレーニング済みの言語モデル、プログラミング主題に関する研究論文、Andrew Ng によるディープラーニングに関する人気の講義、または X (旧 Twitter) の Yann Le Cunn のツイートを尋ねない限り、ChatGPT は主に一般的な回答を返します。

このシナリオでは、ChatGPT がプログラミング ツールキット内で、特にパーソナライズされたガイダンスや概念の明確化に役立つ貴重なツールとなる方法を示します。 ChatGPT のサポートとナビゲーション方法のバランスを取り、その長所と限界を考慮しながらコミュニティに質問することを忘れないでください。

結論

プログラマーにおすすめ:必須ツールとリソース

 

オートコンプリートモデルを本当に活用したい場合は、ChatGPTを使用するだけでなく、次のようなコードオートコンプリートタスク用のVScode拡張機能を使用してみてください。 CodeGPT — VScode の GPT4 拡張機能、أو GitHubコパイロット、または Google Colab の AI オートコンプリート ツール。これらのツールは開発者の生産性を大幅に向上させます。

上のスクリーンショットでわかるように、Google Colab はユーザーに次のコードを自動的に提案します。

もう一つの選択肢は Github Copilot です。 GitHub Copilot を使用すると、リアルタイムの AI ベースの提案を得ることができます。 GitHub Copilot は、開発者がコードを書くときにコード補完を提案し、プロジェクトのコンテキストとスタイル規則に基づいてプロンプトをコーディングの提案に変換します。これによると GithubからのリリースCopilot Chat は現在、OpenAI の GPT-4 (ChatGPT で使用されている同様のモデル) を採用しています。

チュートリアルに興味があれば Github Copilot が無料で利用できることを知る前は、VSCode 拡張機能として CodeGPT を積極的に使用していました。 CodeGPT Co は、VSCode 拡張機能マーケットプレイスでこれまでに 2 万回ダウンロードされています。 CodeGPT は、ChatGPT API、Google PaLM XNUMX、Meta Llama とのシームレスな統合を可能にします。
コメントを通じてコードの提案を得ることができます。方法は次のとおりです。

  • 特定のコードを求めるコメントを記入してください。
  • ض cmd + shift + i
  • コードを使用してください😎

会話を始めることもできます。 メニューの拡張機能からコーディングの会話に進みます💬

私のプログラミングの旅を振り返ると、私が学んだ貴重な教訓は、すべての人に適した学習方法は存在しないということです。ブラウジングやコミュニティでのやりとりなどの従来の方法と、ChatGPT やコード自動補完ツールなどのツールの革新的な機能を組み合わせて、さまざまな学習方法を取り入れることが重要です。

 

何をするか:

  • パーソナライズされた学習リソースを活用する: ChatGPT の学習教材の推奨事項を最大限に活用し、学習過程の重要なツールとして使用します。
  • 協力して問題を解決する: 友達と一緒にコーディングするのと同じように、ChatGPT を共同作業のパートナーとして使用して、プログラミングの課題に効果的に取り組む能力を高めます。

避けるべきこと:

  • ChatGPTへの過度の依存: ChatGPT に完全に依存することは避け、独立した問題解決スキルを開発するためのバランスの取れたアプローチを取ります。 ChatGPT はコード構造を理解し、アイデアを生成するための強力なツールですが、これにのみ依存すると、有能な開発者になるために不可欠な分析力と批判的思考力の発達を妨げる可能性があります。
  • プログラミングコミュニティとの直接的なやりとりを無視する: ChatGPT は貴重な洞察を提供しますが、プログラミング コミュニティからの直接のやり取りやフィードバックの利点を無視しないでください。これはコミュニティ内で良い評判を築くのにも役立ちます。他のプログラマーと交流することで、彼らの経験から学び、知識を交換し、直面している課題に対する異なる視点を得る機会が得られます。
  • 実践的なプログラミングの実践を無視する: ChatGPT ガイダンスと実践的なプログラミングをバランスよく組み合わせて、理論的な知識を実際の応用で強化します。実践的な応用は、理論的な概念を現実世界のスキルに変える鍵となります。自分でコードを書いて、さまざまなソリューションを試し、デバッグしてみてください。これは、概念の理解を強化し、問題解決能力を高めるのに役立ちます。

ChatGPT をどのようにプログラミングに役立てているか、コメント欄で教えてください。
楽しいコーディングを!

 

コメントは締め切りました。