---
# System prepended metadata

title: 學習過程

---

# 學習過程

## First Step

觀察全國競賽得獎名單，找出適合團隊的作品目標



## 作品題目
1. 讀書紀錄app
2. 

## Python學習計畫
https://www.w3schools.com/python/python_intro.asp
https://www.geeksforgeeks.org/
1. Variables
2. Data Types
3. Numbers
4. Strings
5. Boolean
6. Operators
7. List
8. Tuple
9. Set
10. For loop
11. If else
12. Function

## 刷題
https://leetcode.com/

## Framework學習計畫
1. Flask
2. Django

## Q&A
Rock, Leon: Data Types的list、tuple、set差別在哪？

Ans: List跟Tuple的區別:
1. 可變性: List是可以隨便新增刪除修改元素的，但Tuple不行
2. 資源消耗: Tuple比較省資源
3. 語法: List使用[]，tuple使用()



## 學習歷程
### 03/10 
#### 會議記錄
同學們提出開發防毒軟體的點子，但由於開發防毒軟體所需要的資源以及技術門檻相當的高，雖鼓勵同學有不同的創意發想，但須考量到現實層面的問題，所以需重新討論作品主題，且由於大家對於基礎程式設計尚未純熟，先安排程式設計的大方向與學習計畫給同學們，讓大家可以自主學習一週，於下週進行Python教學。
#### 本週學習紀錄
- Rock: 
    - Variables
    - Numbers
- Leon:
   
- Hank: 
    - Variables 
    - Data types 
    - Numbers 

### 03/19
#### 會議記錄
進行了Python基礎教學，並且告訴大家可以透過ChatGPT與教學網站把上面的範例實際做一次看他的結果，並於下次上課會進行Github指令與概念的教學
- Github
https://backlog.com/git-tutorial/tw/
- Python基礎教學
https://ithelp.ithome.com.tw/articles/10200558
https://github.com/haru3613/self_learning_class
#### 本週學習紀錄
- Rock: 
    - Boolean
    - Operators
    - List
    - git入門篇
- Leon:
    - Variables
    - Numbers
- Hank: 
    - casting

### 04/02
#### 會議記錄
作業：
- Git練習： Push自己的script到Github上面(自己的branch)
- Selenium 4.0: 隨便與一個網站進行互動


### 04/09
#### 會議紀錄
![](https://hackmd.io/_uploads/B1pIljyG2.png)
![](https://hackmd.io/_uploads/rJKQMj1Gh.png)

作業：
- IDE
    - VS code
    - Sublime Text
    - Eclipse
- 用惠文高中的網頁練習Selenium
- 把code建在自己的分支，推到遠端，開啟Pull request
- Github GUI
    - SourceTree
    - Fork

#### 本週學習記錄
- Rock:
- Leon:
    - strings
    - booleans
- Hank:
    - strings
    - Booleans
    - Operators

### 04/16
#### 會議記錄
- String method
![](https://hackmd.io/_uploads/HkwMemuzn.png)
- List method
![](https://hackmd.io/_uploads/H18JWX_G2.png)
- Flask
https://pypi.org/project/Flask/
https://pypi.org/project/Flask-RESTful/


作業：
- Leetcode
https://leetcode.com/problems/two-sum/
- Flask
Flask寫一個簡單的api
- Postman
#### 本週學習記錄
- Rock:
    - Leetcode練習
    - Sets
    - If else
    - While loops
- Leon:
    - List
    - If else
- Hank:
    - List


### 04/23
#### 會議紀錄
- HTTP method
- python學習物件導向：
https://www.learncodewithmike.com/2020/01/python-class.html

作業：
- Leetcode: https://leetcode.com/problems/two-sum/
- Selenium爬蟲
- Flask
- 3n+1 problems: https://k3331363.pixnet.net/blog/post/40231588

#### 本週學習記錄
- Rock
    - 3n+1 problems（放在git)
- Hank
    - Selenium 搜尋
    
### 05/03
#### 會議記錄
MySQL
- https://dev.mysql.com/downloads/mysql/
- https://ithelp.ithome.com.tw/articles/10215161


**作業**
- MySQL
    - 安裝MySQL
        - 連線到自己mysql
        - 用語法建立資料
    - 學習常用的MySQL常用語法

![](https://hackmd.io/_uploads/rJhKnRJVh.png)
![](https://hackmd.io/_uploads/ryq9nCJEn.png)
![](https://hackmd.io/_uploads/HJl3hRy43.png)

- Leetcode
- Python物件導向 -> 05/03 meet recording
- Flask

#### 本週學習記錄
- Rock
    - MySQL
    - function
- Leon 
    - set
    - function
- Hank
    - list


## 05/21
* PEP 8
https://peps.python.org/pep-0008/
* Function
https://www.learncodewithmike.com/2019/12/python-function.html

### 作業
- Python物件導向
    - 挑自己喜歡的東西把它變物件，之後定義他的屬性、函式
#### 本週學習記錄
- Rock
    - python物件導向
    - count用法
    - try-except
- Hank
    - 物件導向的文章(有試著做但不知道對不對
- Leon 
    - 物件導向(嘗試做跟上網找其他影片但還是有點模糊


## 06/11


Line bot webhook: https://steam.oxxostudio.tw/category/python/example/line-webhook.html

網路爬蟲selenium

新增使用者
- 前端 Html, js, Vue -> 後端 Flask -> MySQL

### 作業
- Rock: 
- Hank: 
- Leon:
 

#### 本週學習記錄
Rock:
https://stackoverflow.com/questions/10299148/mysql-error-1045-28000-access-denied-for-user-billlocalhost-using-passw

Hank:

Leon:複習物件導向

## 07/09

複習網路爬蟲
Selenium
Cypress: https://www.cypress.io/
### 作業

#### 本週學習記錄
Rock: 練習comment、lambda

Hank: function

Leon: 認識Line Bot

## 07/16
Python基礎
Python進階：
- https://hackmd.io/@harvey-chan/ByMY9ev5E
- https://hackmd.io/@harvey-chan/B1wp22hGK

MySQL
Github
物件導向
網頁後端 +2
網頁前端
Line Bot自動回覆 +1
多國語言翻譯網頁


### 多國語言翻譯網頁:
#### 功能
- 一次性多種翻譯
#### 技術
- 後端: Flask
- 前端: Vue.js
- Google翻譯API


## 07/23
網頁後端
https://ithelp.ithome.com.tw/
- Flask
- Django


#### 學習記錄
- Rock:
flask簡單複習、介紹
https://ithelp.ithome.com.tw/m/articles/10296880
https://reurl.cc/N08GEx
- Leon: 
line bot


## 07/31
網頁後端教學
https://medium.com/itsems-frontend/api-%E6%98%AF%E4%BB%80%E9%BA%BC-restful-api-%E5%8F%88%E6%98%AF%E4%BB%80%E9%BA%BC-a001a85ab638

Virtualenv

Docker

## 08/06
### Google翻譯API
API KEY: AIzaSyAQXuBdWPPS4RM5o70cf_2sjM4qu0f7Xjw


```
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/harveychan/Documents/google_translation/wise-reporter-395102-fb9d82325474.json"

-------

from google.cloud import translate_v2 as translate

client = translate.Client()

text = "Hello, world!"

lang_list = client.get_languages()
for language in lang_list:
    target_language = "{language}".format(**language)
    result = client.translate(text, target_language=target_language)
    print(f"Translated text: {result['translatedText']}")
    print("Detected source language: {}".format(result["detectedSourceLanguage"]))

```


## 09/03


```
# Django指令
# 安裝django
$ pip install django
# 建立專案
$ django-admin startproject translation_project
# 建立指定的app
$ python manage.py startapp translator
# 啟動伺服器
$ python manage.py runserver
```

## 09/10

- 研究搶課
```
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains

# 創建一個選項對象來存儲你的自定義選項
chrome_options = Options()
chrome_options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36")

# 初始化webdriver對象
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
# 首先導航到主網頁
driver.get('https://1campus.net')

time.sleep(1)

driver.delete_all_cookies()


# 添加你的cookies
cookies = [
    {"domain": ".1campus.net", "expirationDate": 1728871669.678601, "hostOnly": False, "httpOnly": False, "name": "_ga", "path": "/", "sameSite": "None", "secure": False, "session": False, "storeId": "0", "value": "GA1.1.1763465071.1688870172", "id": 1},
    {"domain": ".1campus.net", "expirationDate": 1728871671.521719, "hostOnly": False, "httpOnly": False, "name": "_ga_0XS98J4028", "path": "/", "sameSite": "None", "secure": False, "session": False, "storeId": "0", "value": "GS1.1.1694311474.2.1.1694311671.0.0.0", "id": 2},
    {"domain": "1campus.net", "expirationDate": 1694916470.593094, "hostOnly": True, "httpOnly": True, "name": "@ecoboost-web3", "path": "/", "sameSite": "None", "secure": True, "session": False, "storeId": "0", "value": "19a43522-900d-43bf-be36-1ceee0d6a78c", "id": 3},
    {"domain": "1campus.net", "expirationDate": 1694916470.593118, "hostOnly": True, "httpOnly": True, "name": "@ecoboost-web3.sig", "path": "/", "sameSite": "None", "secure": True, "session": False, "storeId": "0", "value": "bs4mFWRL-hmbVYKXhTtHoBcRuNo", "id": 4}
]

for cookie in cookies:
    driver.add_cookie(cookie)

time.sleep(1)
# 現在導航到特定的子頁面
driver.get('https://1campus.net/s/h.hwsh.tc.edu.tw/r/student/7006/g/agent/75036378-359E-4D92-8A9B-15437CBEDB6D')



iframe = WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.XPATH, '//iframe[@name="gadget-iframe-agent"]'))
)
driver.switch_to.frame(iframe)

nested_iframe = WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.XPATH, '//iframe[@title="Web2 Gadget"]'))
)
driver.switch_to.frame(nested_iframe)

club = "吉他社"
club_selector = WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.XPATH, f'//td[contains(text(), "{club}")]'))
)
    
if club_selector.is_displayed():
    club_selector.click()
else:
    print(f'元素存在但不可见: {club}')
    



time.sleep(60)
```


# 09/17
- 爬蟲
- Line Bot


# 10/15

https://github.com/kamranahmedse/developer-roadmap

* Frontend Roadmap / Frontend Beginner Roadmap
* Backend Roadmap
* AI and Data Scientist Roadmap
* QA Roadmap
* JavaScript Roadmap
* Vue Roadmap
* Java Roadmap
* Android Roadmap
* SQL Roadmap

### 每週作業
1. 分享畫面．講解一下自己上週看的東西，
    - 看到哪個階段(詳細)
    - 花費多少時間
3. 預先規劃下週要看什麼內容
    - 花費多少時間



# 11/05
子恩：Android Developer
https://roadmap.sh/android
https://play.kotlinlang.org/byExample/01_introduction/02_Functions
軟體: Android Studio
Language: Kotlin
版本控制: Github

# 11/12
Xampp教學

Laravel: https://ithelp.ithome.com.tw/articles/10265303