文章

Python-(補充)如何善用 ChatGPT 加速學習程式語言

零、前言

比起學程式語言本身,這篇我更想來探討「如何加速學習Python的效率」這件事情。

一門程式語言其實包含的範圍非常廣,特別是 Python,因為可以應用的地方很多,例如:系統開發、網站、爬蟲、應用程式…,所以這門語言本身包含的工具就是屬於多面向、非常龐雜的。

如果我們在剛接觸這門程式語言,就馬上跳入一個一個環節學習,最常見的情況就是會覺得雲裡霧裡、越學越混亂,因此在學習上,從「Top-Down」的方式開始,先明白有哪些學習路徑,再依照自己當前需求去蕪存菁學習,對於自身的學習效率反而會最大,挫折感也會比較小。

ChatGPT 就是一個幫助我們初步了解一個學問時,非常好用的工具,他的缺點顯而易見,就是在問專業問題時,常常答得不精準,甚至很多時候是錯的,可是在回答一件事情的初步架構以及輪廓,卻是非常好用的工具,可以幫助我們更快地走過 0 到 1 的過程。

一、申請 ChatGPT 帳號

  1. 從下面連結進入官網,申請一組免費帳號

    ChatGPT

  2. 右上角點選「註冊」

    Untitled

  3. 如果有自己 gmail,可以用 gmail 註冊,或者直接用自己 email 也行

    Untitled

  4. 目前 OpenAI 官方已經開放免費用戶可以使用【ChatGPT4o 模型】,對我們的學習上已足夠
  5. 登入後,就可以開始試著在對話框中輸入文字,開始對 AI 詢問問題:

    Untitled

二、可以怎麼問問題?

首先,想知道 ChatGPT 可以怎麼幫助自己學習,最好的方式就是直接問 ChatGPT XD

以下為我們輸入的提問 (Prompt):

1
2
3
你是一位 Python 專家,而我是一位完全沒有程式基礎的 Python 新手
我可以如何使用你
幫助我學習 Python 這門程式語言?

以下是 ChatGPT 回答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
學習 Python 程式語言是一個充滿樂趣且富有成就感的過程,而我可以在這個過程中扮演多種角色,幫助你更有效率地學習。以下是幾個具體的方式,你可以利用我來學習 Python:

### 1. **基礎知識與概念解釋**

如果你在學習 Python 的過程中遇到不理解的概念或語法,我可以幫助你解釋這些內容。例如,你可以問我什麼是變數、函式、迴圈、條件判斷等基礎概念,我會用簡單易懂的方式來解釋。

**例子**
- 「什麼是 Python 中的列表(list)?它和元組(tuple)有什麼區別?」
- 「請解釋一下如何使用 `if` 條件判斷式。」

### 2. **範例程式碼與應用**

如果你需要範例程式碼來理解某個概念或解決特定問題,我可以提供簡單或進階的範例程式,並解釋程式的每個部分是如何運作的。

**例子**
- 「我如何使用 Python 讀取一個文字檔案?」
- 「請提供一個 Python 中使用迴圈計算 1 到 10 的總和的範例。」

### 3. **錯誤除錯與問題解決**

在編寫 Python 程式碼時,難免會遇到錯誤或程式無法如預期運作。我可以幫助你解讀錯誤訊息,找出問題的根源,並提供解決方案。

**例子**
- 「我收到 `IndexError: list index out of range`,這是什麼意思?我該如何解決?」
- 「這段程式碼無法正確執行,你能幫我找出問題嗎?」

### 4. **進階主題與專案輔導**

如果你已經掌握了基礎知識,想深入學習進階主題或開始實作專案,我可以幫助你理解進階概念(例如面向對象編程、裝飾器、生成器),或指導你如何構思並實作一個完整的專案。

**例子**
- 「請解釋什麼是 Python 中的裝飾器 (decorator),如何使用?」
- 「我想要開發一個簡單的聊天室程式,你能幫我規劃和實現嗎?」

### 5. **學習資源推薦**

我可以根據你的學習目標和程度,推薦適合的線上資源、書籍或課程,幫助你找到最適合你的學習路徑。

**例子**
- 「有什麼好的 Python 線上課程或書籍推薦給初學者嗎?」
- 「我想學習資料分析,用 Python,該從哪裡開始?」

### 6. **挑戰與練習題**

練習是學習程式語言的關鍵。我可以根據你的學習進度,為你提供挑戰題或練習題,幫助你鞏固所學。

**例子**
- 「你能提供幾道適合初學者的 Python 練習題嗎?」
- 「有沒有適合練習 Python 邏輯思維的挑戰題?」

### 7. **定期檢測與反饋**

你可以定期向我報告你的學習進度,並請求反饋。我可以幫助你檢查理解程度,並提供學習上的建議。

**例子**
- 「我最近學了 Python 的基本語法,能不能測試我對這些知識的掌握程度?」
- 「你覺得我接下來應該學習哪個主題?」
  • 首先我們大致可以了解到,我們可以怎麼使用 ChatGPT,以及大概可以「怎麼提問」,這對於我們在學習過程中有疑問時,都可以比較知道如何運用這項工具。

三、了解 Python 程式語言的基本架構

以下為我們輸入的提問 (Prompt):

1
2
3
4
你是一位 Python 專家,而我是一位完全沒有程式基礎的 Python 新手
我想先知道這們語言有包含哪些架構是我一個新手需要了解的
學習路徑建議怎麼走?才可以用最高效率學習
注意,不要給我過多枝微末節的東西,可能會讓我感到困惑

以下是 ChatGPT 回答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
作為一位 Python 新手,以下是你需要了解的幾個關鍵架構和學習路徑建議,這些會幫助你有效率地學習這門語言:

### 一、Python 語言基礎
1. **變數與資料型別**:瞭解如何定義變數,熟悉常見的資料型別如整數、浮點數、字串、布林值等。
2. **控制流程**:學習 `if` 條件語句、`for``while` 迴圈,這些是控制程式執行流程的基礎。
3. **函式**:學習如何定義與調用函式,並理解函式參數和返回值的概念。
4. **資料結構**:熟悉列表、字典、集合、元組這些基本的資料結構,這些都是處理資料的常用工具。

### 二、重要架構與模組
1. **模組與封裝**:瞭解如何使用 Python 的內建模組(如 `math``datetime`)以及如何安裝和使用第三方模組(如 `requests``pandas`)。
2. **物件導向編程 (OOP)**:理解類與物件的概念,學習如何定義類、方法以及屬性。這是進階程式設計的基礎。
3. **異常處理**:學習如何使用 `try-except` 語句來處理程式中的錯誤,這有助於提高程式的穩定性。

### 三、進階與實戰
1. **檔案操作**:學習如何讀取與寫入檔案,這是處理資料的重要部分。
2. **網路請求**:了解如何使用 `requests` 模組來進行 HTTP 請求,這是爬蟲和 API 應用的基礎。
3. **資料分析**:如果對資料科學有興趣,學習 `pandas``numpy` 是非常重要的,這些模組可以幫助你處理和分析大量資料。

### 四、學習路徑建議
1. **第一步:學習 Python 基礎**  
   建議使用線上課程(如 Codecademy、Coursera)或參考書籍來掌握 Python 語法和基本概念。每天練習寫小程式來鞏固所學。

2. **第二步:專注於一個小專案**  
   選擇一個感興趣的主題,比如寫一個簡單的日誌應用程式或網頁爬蟲,通過實踐來學習如何組合不同的知識點。

3. **第三步:學習進階概念與工具**  
   當基礎穩固後,深入學習物件導向編程、模組使用和異常處理等進階主題。同時,開始學習版本控制工具(如 Git)和基本的軟體開發流程。

4. **第四步:參與開源專案或競賽**  
   參與 GitHub 上的開源專案或參加 Kaggle 資料科學競賽,這不僅能提升實戰經驗,還能接觸到更廣的技術社群。

### 總結
學習 Python 需要一步一步來,不要急於求成。掌握基礎後,再逐漸深入到進階主題與實踐,這樣你可以更有效地理解和應用這門語言。保持每天練習和學習的習慣,學習過程中遇到困難也不要輕易放棄。

希望這些建議對你有所幫助!
  • 從 ChatGPT 的回答我可以看到,最基礎需要學習的東西,就是「變數與資料型別」、「流程控制」、「函式」、「資料結構」,這些是程式語言的核心,其他都可以先放一邊。
  • 等掌握基礎,我們才往下學習其他進階內容。
  • 學習的路徑方面,在掌握基礎之後,我們便可以透過一個小專案的實作,來讓自己的知識點互相結合。

透過上面這樣 Top-Down 的提問方式,我們可以漸漸幫自己建立一個完整的 Python 學習輪廓,這樣好處在於,我們會知道自己該學的東西是什麼、學習邊界在哪邊、哪些是多餘可以先忽略的事情,這可以幫助我們在學習上大大減少挫折感與不確定感。

目前我寫的 Python 系列課程基本上也是按照此流程做撰寫,但中間還有穿插一些我認為新手在該階段比較可能產生的疑問,因此在學習上可以按照課程編排一步一步走即可。

三、遇到不懂概念,請善用 ChatGPT「講人話」的能力!

如果使用一段時間,讀者應該會發現,有些概念,ChatGPT 還是講得太專業,根本摸不著頭緒,這時,我們可以換一下提示詞 (Prompt),讓 ChatGPT 為我們「講人話」。

以下為我們輸入的提問 (Prompt):

1
2
3
4
你是一位 Python 專家,而我是一位完全沒有程式基礎的 Python 新手
我現在想了解「函式 Function」的概念,但我看不懂
請用比較生活化的例子幫我解釋一下這是什麼?
最好多點比喻

以下是 ChatGPT 回答:

當然可以!讓我們用生活中的例子來解釋「函式(Function)」這個概念。

比喻:做菜的食譜

想像一下你正在學習做菜,而你有一本食譜。每一道菜都有具體的步驟和所需的材料。每一個食譜就像是一個「函式」。

食譜中的關鍵要素:

  1. 食譜名稱(函式名稱):這道菜的名字,比如「炒蛋」。
  2. 材料(參數):做這道菜需要的材料,比如雞蛋、鹽、油。
  3. 步驟(函式內部的程式碼):如何把這些材料變成一道菜的詳細步驟。
  4. 成品(返回值):完成這些步驟後,你得到的一道菜。

Python 中的函式

在 Python 中,函式也是由這些部分組成的。以下是 Python 中的函式如何對應到做菜的過程:

1
2
3
4
5
6
7
8
9
def 炒蛋(雞蛋數量, , ):
    # 步驟開始
    打蛋(雞蛋數量)
    加鹽(適量)
    加油(適量)
    煎炒(直到熟)
    # 步驟結束

    return "一盤炒蛋"

對應說明:

  1. 函式名稱(Function Name)炒蛋 就是這個函式的名稱,就像食譜的名字。
  2. 參數(Parameters)雞蛋數量, 鹽, 油 就是這個函式的參數,這些是我們需要提供的材料。
  3. 程式碼(Code Steps)打蛋(雞蛋數量), 加鹽(適量), 加油(適量), 煎炒(直到熟) 就是詳細的步驟,指導如何把原材料變成一道菜。
  4. 返回值(Return Value)"一盤炒蛋" 是這個函式的結果,表示完成後我們得到了什麼。

總結

函式就像是生活中的食譜或工廠的生產線。它們有一個名字,需要一些材料(參數),按照一系列步驟(程式碼)來完成一項工作,最後產出一個結果(返回值)。學會使用函式後,你就能更有效率地完成許多重複性的工作,像廚師依照食譜做菜,或者工廠的生產線自動運行一樣。

四、結語

這篇文我們介紹了 ChatGPT 的使用方法,以及如何用 Top-Down 的學習方式,讓 ChatGPT 一步一步幫我們建立起學習程式語言的輪廓,在遇到不明白的概念時,又怎麼讓 ChatGPT「講人話」,這些都是自學程式這條路上的一大利器。

學習並沒有一定的形式,但有相對有效率的方法,這篇文章希望可以做到一點示範,幫助新手在自學程式的道路上可以更加有效且開心。

本文章以 CC BY 4.0 授權