---
# System prepended metadata

title: python 初學就上手

---

### Day 0

關於這裡 hackmd

- 可以共同編輯的共筆
- 登入後可以，編輯
- 目前是公開的，之後看需要也許會 un-publish 鎖起來

請使用 github.com 的帳戶登入 hackmd

1. 去 github.com 註冊
1. 完成註冊後
    1. 例如 叔的 github https://github.com/chechiachang
    1. 例如 chan 的 github https://github.com/5yichan
    1. 把你的 github 留在這邊
1. 提供 github 的 id 給叔加帳號權限
1. 使用 github.com 登入後就可以公同編輯共筆

---

### Day 1: 4 小時 python 基礎

不錯的教學 4小時初學者Python教學: https://www.youtube.com/watch?v=zdMUJJKFdsU

1. 下載 python pkg 安裝
1. 下載 vscode
1. 依照影片教學操作
1. 不一定要一天完成，但盡量每天都有進度
1. 課程先不用買

遇到問題很正常

1. 嘗試問 https://chatgpt.com/
    1. 例如 "how to install python in vscode"
    1. 英文有困難也是可以問中文
    1. chatgpt 會使用程式設計者的專有名詞，提供較嚴謹的回答。回答不一定是正確的，但可以學習使用專有名詞溝通
    1. 或是用 https://claude.ai/ 免費額度有限制
1. 把問題留在本日的問題區，跟同學討論，跟老師發問

> 練習用專有名詞（業內行話）問題，或是用精準的專有名詞 google，更有效率地找到答案

### 本日問題

---

### Day 2: 20 小時 python 課程

https://www.youtube.com/watch?v=GGp-7VHgsKk&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=12

- web crawler 網路爬蟲
- flask 架設網站
- 使用 pandas 做資料分析
- python 存取 email 自動化
- python selenium 網頁前端操作自動化

> 到這邊已經完成過幾個工具了，覺得最有興趣的有哪些呢？

### 本日問題

---

### Day 3: 大型題目

請選一個有興趣的題目，想投資大量時間去完成

1. 寫一個 line bot 機器人 https://steam.oxxostudio.tw/category/python/example/line-bot.html
    -  https://github.com/line/line-bot-sdk-python
1. 寫一個 discord bot 機器人
https://www.youtube.com/watch?v=odIQEJW0m1M&list=PLSCgthA1Anif1w6mKM3O6xlBGGypXtrtN&index=1
1. python 機器學習 https://andy6804tw.github.io/crazyai-ml/
1. python telegram bot https://github.com/python-telegram-bot/python-telegram-bot
1. 上網搜尋 "What can you do with Python programming language?"，然後進一步搜尋有興趣的領域

---

 ### Day 4: 找老師跟業界前輩聊聊
 
 如果你完成到這裡，你已經
 1. 掌握 python 基礎，有能力完成 python 的專案，並且能藉由自己寫的 python 解決現實的問題
 1. 手上有幾個能估做的作品集

下一步是開始找工作。是的，到這裡你已經具備找工作的能力。如果覺得 python 適合自己，下一個階段的目的是以滿足職位需求為目標

1. 找老師聊一聊
1. 找業界前輩聊
1. 找尋有興趣的職缺資料

---

### Day5: 台大的超熱門 AI 通識課

https://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php

- 2024/02 開的課程，內容很新
- 不需數學跟寫程式
- 11 週課程，每週上課 2 小時，課後閱讀，作業也需要 2-4 小時
- 可以存取完整上課資源，影片投影片
- 無法存取部分的作業資源，放在 NTU 課程網
- https://www.nvidia.com/zh-tw/training/online/
- https://taide.tw/index/resourcesList2

---

### Day6: 台大的熱門 Machine Learning 必修課

https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php
- 11 週課程，每週上課 2 小時，課後閱讀，作業也需要 2-4 小時

---

### Day 7: 使用別人的 github code

1. 下載這個 [iTerm2](https://iterm2.com/)，然後執行起來跟 vscode 的 terminal 87% 像
2. 搞清楚自己在電腦的哪個資料夾


```
# cd 是 change directory 就是在資料夾間切換

cd

# pwd 是顯示現在 terminal 所在的資料夾位置
pwd
/Users/che-chia

# 也可以切換去 Desktop

cd Desktop

# 透過 ls 列出資料夾內的檔案，確認現在的資料夾

ls

# 裡面有 python，可能需要 3.9 版本，3.10 已上不確定能不能動

python3 -V
Python 3.9.6

# 使用 cd 切換去想要存放 code 的資料夾

# 使用 git 工具下載 github 上面的 code
# 要下載這一個 https://github.com/chechiachang/genai-playground

git clone https://github.com/chechiachang/genai-playground.git

# git clone 後會多一個資料夾，切換到裡面

cd genai-playground

# 使用 python 的 venv，開一個專門給資料夾使用的 python environment，區別電腦上的其他 python

python3 -m venv .venv
source .venv/bin/activate

# pip install 需要的東西

pip install -r requirements.txt

# 就可以執行 hw3

python genai-intro/hw3/main.py

# 想要修改，就用 vscode 找到這個資料夾，然後把你的 openai key 放進去，再跑一次應該就會動
# 或是用變數傳 api key 給 python，再執行 python

export GOOGLE_API_KEY="你的 gemini api key"
python genai-intro/hw3/main.py

Set Gemini API sucessfully!!
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
IMPORTANT: You are using gradio version 3.50.0, however version 4.44.1 is available, please upgrade.
--------

# command + click http://127.0.0.1:7860 就可以看到網頁

# 使用完關閉，control+c 兩次跳出python程式

```


---

### Day ?: Kaggle

完成 Titanic Tutorial https://www.kaggle.com/code/alexisbcook/titanic-tutorial

- 學會在 kaggle 接受 chanllenge，新建 notebook，然後在 notebook 上執行自己的 python code

開始 Titanic https://www.kaggle.com/c/titanic

一開始要想出自己的做法會很難

kaggle 可以看別人的做法學習
- https://www.kaggle.com/competitions/titanic/code?competitionId=3136&sortBy=voteCount&excludeNonAccessedDatasources=true
-  vote 最多的幾個 notebook 其實是教材，提供很多如何開始 Machine Learning 的想法
-  vote 高的有一些也是初學者或是學生的作品，ex https://www.kaggle.com/code/nadintamer/titanic-survival-predictions-beginner
-  https://www.kaggle.com/code/jeffd23/scikit-learn-ml-from-start-to-finish

---

### Day ?: 在 VSCode 上面跑 Kaggle competition

- 下載 Kaggle data
- 使用 VSCode 開 directory 與 python venv
- 在 python venv 裡面安裝需要的 package
- 正常 import package
- 執行 Kaggle 

---

### Day ?: line bot

1. 在 github 上 create 一個 repository，例如：https://github.com/chechiachang/line-bot
2. git clone 你的 repository url

```
git clone git@github.com:chechiachang/line-bot.git
```

3. VSCode -> File -> Open Folder -> 找到 line-bot 資料夾 -> Open
```
cd line-bot
```

4. virtualenv https://pythonviz.com/basic/visual-studio-code-virtual-environment-setup/

```
Cmd + Shift + P 開啟 Command Palette
輸入「terminal」，並選取「Python: Create Terminal」的選項。

virtualenv .venv
Cmd + Shift + P 開啟 Command Palette
Python: Select Interpreter
選擇有 .venv 的 Interpreter

Cmd + Shift + P 開啟 Command Palette
輸入「terminal」，並選取「Python: Create Terminal」的選項。
terminal 前面會出現 .venv
```

5. 到 https://github.com/line/line-bot-sdk-python 依照指示操作
```
pip install line-bot-sdk
```
6. https://developers.line.biz/en/docs/messaging-api/building-bot/