# 學習過程
## 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
#### 會議紀錄


作業:
- 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

- List method

- 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常用語法



- 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