如果我必須從頭開始,我該如何使用 ChatGPT 學習程式設計?

在我15年的程式設計學習之旅中,我探索了ChatGPT——它超越了簡單的複製貼上。

從10歲起,程式設計就成了我生活的一部分。從網路還很原始的時候為我的Friendster個人資料修改代碼和CSS,到為了尋求刺激而探索SQL注入漏洞,再到為了好玩而搭建三足機器人,以及最近深入學習Python編程,我的編程之旅豐富多彩,充滿樂趣!

以下是我從不同的程式設計課程中學到的東西。

照片由 Arnold Francisca 拍攝,來自 Unsplash

我學習程式設計的方式一直都一樣;就像大家說的,基本上就是複製貼上。 😅

在程式設計領域,建構專案時,我的方法大致如下:

  1. 選擇合適的框架或函式庫。
  2. 從以往的專案中學習
  3. 將其分解成幾個步驟
    將專案分解成可操作、實際的步驟,以減輕開發壓力。
  4. 在谷歌上搜尋每個部分
    每一步都可以參考 Google / Bing / DuckDuckGo / 或你喜歡的任何搜尋引擎,以獲取見解、指導和潛在解決方案。
  5. 開始程式設計
    盡量按部就班地執行每個步驟。

然而,即使是設計良好的程式碼也可能出現錯誤。以下是我的故障排除策略:

1. 查看框架文件: 務必閱讀文件!

2. 在 Google 和 Stack Overflow 搜尋在 Google 和 Stack Overflow 上搜尋。關鍵字範例:

site:stackoverflow.com [程式語言] [函式庫] 錯誤 [錯誤訊息]

site:stackoverflow.com Python 錯誤 ImportError: pandas 未找到該模組。

-  Stack Overflow 解決方案如果問題已經在 Stack Overflow 上存在,我會尋找點讚最多的評論和解決方案,通常可以找到快速可靠的答案。這個平台是開發者解決問題的重要資源。 Python 錯誤 傳聞和 Bandaz 庫。
-  相信我的直覺當 Stack Overflow 沒有答案時,我會相信自己的直覺,在 Google 上搜尋可靠的資源;GeeksForGeeks、Kaggle、W3School 和 Towards。 數據科學 DS相關內容😉

3. 複製並貼上程式碼解決方案

4. 驗證和測試最後一步是對修改後的程式碼進行全面檢查和測試,以確保其功能符合預期。這保證了程式碼經過了充分的驗證和測試。

 

我已經成功解決了這個技術問題!

這不美嗎?

 

但實際上,我們真的還在這樣做嗎? !

我最近注意到,新程式設計師學習程式設計的方式發生了一些變化。我從事程式設計教學已有三年左右,教學形式包括程式設計訓練營、大學客座講座和企業培訓。程式設計師學習程式設計的方式略有改變,重點轉向… 程式設計中的人工智慧工具.

我通常建議新手堅持使用傳統的方式,例如瀏覽網頁和在Google上搜尋答案,但人們最終還是會選擇使用 ChatGPT。他們的理由是…

 

“擁有 ChatGPT(用於程式設計目的)就像多了一個同學——它會像正常人一樣和你交談。”

它非常有用,尤其是當你仍在試圖理解研究結果和文件時——發展所謂的“程式設計師的直覺“。

別誤會,我非常重視基礎知識。瀏覽網頁、閱讀文件、在社群提問——在我看來,這些都是非常有效的步驟。僅僅依賴 ChatGPT 可能有點過於簡化了。誠然,它可以快速產生答案摘要,但是… 傳統的瀏覽方式賦予你選擇和實驗的自由,這在程式設計領域至關重要。

不過,我必須承認,ChatGPT 的確非常出色——它能以驚人的速度提供答案,尤其是當你還在努力從搜尋結果和文件中分辨對錯的時候。 ChatGPT 是一個強大的工具,可以加速學習過程,並幫助你找到複雜程式設計問題的解決方案。

我意識到,這種將 ChatGPT 作為學習夥伴的轉變不僅發生在程式設計領域;ChatGPT 已經徹底改變了人們的學習方式。我甚至在用 ChatGPT 來糾正這篇文章的語法錯誤,對不起 Grammarly 了。

 

拒絕使用 ChatGPT 就好比拒絕使用 21 世紀初的搜尋引擎。雖然 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. 相信你的直覺:

如果問題比較特殊或缺乏相關資料,請相信你的直覺!你可以搜尋過去在谷歌上找到的可靠文章和資源,試著將類似的解決方案應用到你的問題中。這種方法可以提升你解決技術問題的能力。

你可以看到,在上面的搜尋結果中,有一部分來自 W3schools(一個可靠的程式設計教育網站,非常適合作弊),另外兩部分是 Pandas 的官方文件。可以看出,搜尋引擎建議使用者查看官方文件。 😉

以下是如何使用 ChatGPT 來幫助您解決問題的方法。

 

ChatGPT 的新方法:

  1. 在對話中與 ChatGPT 互動:

除了瀏覽文件和論壇,您還可以透過 ChatGPT 進行即時聊天。只需簡要描述錯誤並提出您的問題即可。例如,您可以使用 ChatGPT 立即獲得協助,以瞭解和修復常見的編碼錯誤。

 

我的[程式語言]腳本出現問題,顯示[錯誤描述]。您能幫我分析一下可能的原因並提供一個解決方案嗎?

2. 使用 ChatGPT 澄清概念:

如果錯誤與您難以理解的概念有關,您可以請 ChatGPT 來解釋該概念。例如:

 

請解釋一下[某個具體概念]在[程式語言]中的運作方式?我覺得這可能跟我遇到的錯誤有關。錯誤訊息是:[錯誤]”

3. 請求故障排除建議:

你可以向 ChatGPT 諮詢 Python 程式故障排除的一般性建議。例如,

 

有哪些常見的因應策略?在工具或技術方面有什麼建議嗎?

潛在優勢:

  • 客製化指南: ChatGPT 可以根據您提供的錯誤詳情以及您對問題的理解,提供客製化的指導。此功能利用 ChatGPT 的大型語言模型 (LLM) 功能,提供量身定制的協助。
  • 概念澄清: 您可以利用 ChatGPT 的大型語言模型 (LLM) 功能,直接向其要求有關概念的解釋和澄清。
  • 高效率排除故障: ChatGPT 可能會提供簡潔扼要且相關的故障排除提示,從而簡化偵錯流程。

潛在限制:

現在讓我們來談談完全依賴 ChatGPT 的弊端。我在學生使用 ChatGPT 的過程中經常遇到這些問題。在 ChatGPT 時代之後,我的學生會直接從命令列介面複製貼上一行錯誤訊息,即使錯誤訊息長達 100 行,涉及多個模組和依賴項。有時,讓 ChatGPT 提供一行錯誤代碼來解釋解決方法或許有效,但更糟的是,這可能會增加一兩個小時的手動偵錯時間。

ChatGPT 有一個限制:它無法查看程式碼的上下文。當然,您可以隨時提供程式碼上下文。但是,在更複雜的程式碼中,您可能無法將每一行程式碼都提供給 ChatGPT。因為 ChatGPT 只能看到您程式碼的一小部分,所以 ChatGPT 要么… 假設 其餘程式碼都是基於他的知識庫或 他出現了幻覺.

以下是使用 ChatGPT 的一些潛在限制:

  • 缺乏即時動態互動: ChatGPT 雖然提供了一些有價值的見解,但它缺乏論壇或討論貼文所能提供的即時互動和動態交流。在 Stack Overflow 上,你可能會看到 10 個不同的用戶提出 3 種不同的解決方案,你可以自己動手嘗試,或者查看贊成票數進行比較。
  • 依靠已有知識: ChatGPT 的反應品質取決於它所接受訓練的信息,它可能不了解最新的框架更新或您專案的具體細節。
  • 這可能會增加糾正錯誤所需的時間: ChatGPT 沒有您完整程式碼的上下文,因此可能需要更多時間進行偵錯。
  • 對概念理解有限: 傳統的瀏覽方式讓你能夠自由選擇和嘗試,這在程式設計領域至關重要。如果你知道如何選擇合適的資源,你或許可以透過自主瀏覽來學習 Plus,而不是依賴通用的 ChatGPT 模型。
    除非你諮詢一位專門研究程式設計和技術概念的訓練有素的語言建模師、關於程式設計材料的研究論文、吳恩達關於深度學習的著名演講,或者 Yann Le Cunn 在 X(以前稱為 Twitter)上的推文,否則 ChatGPT 只會提供一個相當籠統的答案。

這個例子說明了 ChatGPT 如何成為您程式設計工具包中的寶貴工具,尤其是在提供個人化指導和概念解釋方面。請記住,在使用 ChatGPT 時,請兼顧瀏覽和社群諮詢,並充分考慮其優點和限制。

底線

我向程式設計師推薦它:必備工具和資源

 

如果您真的想充分利用自動完成功能,與其僅使用 ChatGPT,不如嘗試使用 VS Code 擴充功能來實現程式碼自動完成任務,例如: CodeGPT — VS Code 上的 GPT4 擴展,أو GitHub 副駕駛或者,您也可以使用 Google Colab 中的 AI 自動補全工具。這些工具可以顯著提高開發者的工作效率。

如上圖所示,Google Colab 會自動為使用者提供以下程式碼的建議。

另一個選擇是 GitHub Copilot。 GitHub Copilot 提供即時 AI 驅動的程式碼補全建議。它會在開發者編寫程式碼時提供程式碼補全建議,並根據專案上下文和方法約定將提示轉換為程式碼建議。根據此… 來自 Github 的版本Copilot Chat 現在由 OpenAI GPT-4 提供支援(與 ChatGPT 使用的模型類似)。

在得知GitHub Copilot在教程中可以免費使用之前,我一直在積極地將CodeGPT作為VSCode擴展使用。 CodeGPT Copilot目前在VSCode擴展市場的下載量已超過百萬。 CodeGPT可以與ChatGPT API、Google PaLM 2和Meta Llama無縫整合。
您可以透過評論獲得代碼建議。方法如下:

  • 請留言請求特定代碼。
  • 點擊 cmd + shift + i
  • 使用代碼😎

你也可以發起對話。 透過展開選單並導覽至編碼對話💬

回顧我的程式設計歷程,我學到的最寶貴的一課是:學習沒有一成不變的模式。重要的是要擁抱多種學習方法,將瀏覽和社群互動等傳統方式與 ChatGPT 和程式碼自動補全等創新工具的功能相結合。

 

怎麼辦:

  • 利用專門的學習資源: 充分利用 ChatGPT 的學習資料推薦,並將其作為學習過程中的重要工具。
  • 合作解決問題: 將 ChatGPT 用作協作夥伴,就像與朋友一起編程一樣,從而提高您有效應對程式設計挑戰的能力。

應避免的事項:

  • 過度依賴 ChatGPT: 避免過度依賴 ChatGPT;相反,應採取平衡的方法來培養獨立解決問題的能力。雖然 ChatGPT 是理解程式碼結構和激發靈感的強大工具,但過度依賴它會阻礙你自身分析和批判性思考能力的培養,而這些能力對於成為優秀的開發者至關重要。
  • 忽略與程式設計師社群的直接互動: ChatGPT雖然能提供寶貴的見解,但也不要忽略與程式設計社群直接互動和獲得回饋的益處。這也有助於在社區中建立良好的聲譽。與其他程式設計師交流,可以讓你有機會學習他們的經驗、分享知識,並從不同的角度看待你面臨的挑戰。
  • 忽略實際程式設計實踐: 將 ChatGPT 的指導原則與實際程式設計練習結合,以鞏固理論知識並應用於實踐。實踐應用是把理論概念轉化為實際技能的關鍵。試著自己寫程式碼,探索不同的解決方案並進行除錯;這將有助於你加深對概念的理解,並提升解決問題的能力。

請在評論區告訴我你是如何使用 ChatGPT 來幫助你進行程式設計的!
祝您程式愉快!

 

評論被關閉。