隨著寫程式日漸受到重視,許多同學紛紛踏上自學之旅。然而,進階資源稀少且零散,同學難以確定學習方向與學習深度,要自己提升程式能力並不容易。因此,課程綜觀程式領域,精選重點知識,大幅減少同學摸索的時間成本,協助同學有效地提升寫程式的觀念與能力。
- 釐清觀念
- 學習程式的進階原理,有助於釐清同學不確定的觀念,有效率地提升寫程式的整體能力。
- 程式設計
- 透過實作專案,帶領同學分析寫程式當下的設計考量,引導同學真正掌握自我開發的能力。
- 大型專案
- 市面上少有大型專案的實作教學,學會製作進階程式專案,對求職、實用上有很大的幫助。
- 全面啟動
- 課程時數約37小時,分成五大類別:觀念、語法、進階專案、爬蟲、延伸教學(瀏覽器自動化、軟硬體結合、認識AI)
課程分成五大部分:觀念、語法、專案、爬蟲、延伸
延伸教材(章節 7 起)將持續製作推出,預計於 2020/12/31 前完成推出,單元內容、名稱、排序等保留微調空間以便製作上最佳狀況呈現。
章節 1 - 開場
如同基礎課程,課程有專屬的線上討論區,教大家如何加入後,再以一個前導單元「程式語言的差別」開場,讓大家了解為什麼世界上這麼多程式語言,以及 Python 跟其他程式語言的差別是什麼。
單元 1 - 前言 單元 2 - 如何加入線上討論區 單元 3 - 程式語言的差別
章節 2 - 前置作業
在進入教學前,為了確保大家都有安裝好需要使用的程式 (Python, Sublime Text, Git)。這邊附上基礎課程裡的安裝教學影片。
單元 1 - 將 Sublime Text 的 tab 換成空格 單元 2 - [來自基礎課程] 安裝 Python 單元 3 - [來自基礎課程] Mac - 安裝 Python 單元 4 - [來自基礎課程] 檢查 Python 是否安裝正確 單元 5 - [來自基礎課程] 安裝 Sublime Text 單元 6 - [來自基礎課程] 安裝 Git 單元 7 - [來自基礎課程] Git 初始設定
章節 3 - 進階觀念
如同課程介紹,多數同學因為只會程式基礎,缺乏對寫程式更深層的了解,自己嘗試寫程式時,容易面臨各式各樣的疑惑,而這個章節就是你的解惑大池。除了提升更細緻對 Python 的了解,值得一提的是,大部分這些觀念並非 Python 獨有,而是共通於各種程式語言的核心。
單元 1 - 參數(引數)傳遞模式 Argument-Passing Mode 單元 2 - 命名空間 Namespace 單元 3 - 範圍 Scope 單元 4 - 底線在命名中的各種情況與涵義 單元 5 - 雙底線方法 Dunder Methods 單元 6 - 繼承 Inheritance 單元 7 - 繼承 - 相關進階觀念 單元 8 - 抽象類別 Abstract Class 單元 9 - 裝飾器 Decorator 單元 10 - 裝飾器 Decorator Part 2 作業 1 - 練習寫 Decorator 單元 11 - 閉包 Closure 單元 12 - Property 裝飾器 單元 13 - Staticmethod & Classmethod
章節 4 - 進階語法
同學已經會了程式基礎,一定很有感觸語法在寫程式裡只是「工具」而已,怎麼使用這些工具才是最重要的。 這邊將介紹幾個先前還沒教到的語法,除了讓大家認識更多的工具,更讓大家知道怎麼使用這它們。
單元 1 - Comment & Docstring 單元 2 - 字串格式化 String Formatting 單元 3 - 例外捕捉 Exception Handling 單元 4 - 可迭代物與迭代器 Iterable & Iterator 單元 5 - 產生器 Generator 單元 6 - 其他進階語法: Enumerate Map Lambda Filter Zip
學到這邊,相信同學已經對寫程式的了解與能力增加了許多。但除了觀念、語法上的進步,製作專案的能力也需要提升,因此來到第五章節:
章節 5 - 製作進階專案
來到了製作進階專案的部分,是本課程相當重要的部分。
只會基礎程式的同學一定有感,如果想做有複雜性的程式,因為缺乏以上單元教到的進階觀念,製作時容易有各式各樣的困惑,而其中有很大部分在於,根本不知道如何架構程式碼、檔案、資料夾。市面上很少、幾乎沒有「專案方面」的教材,因此對於多數學習寫程式的人來講,大部分都是經過很多年的摸索,搜尋,越看越多別人的專案,才慢慢建立這方面的知識、經驗。
除了資源少以外,另一個關鍵原因是大多教材都是「寫好的程式碼」。而寫程式的過程中,有太多東西是「邊寫邊考量」,只看寫好的程式碼等於跳過了中間的思考過程,所以變成看得懂寫好的程式碼,但無法自己寫出來。
跟學開車很像,如果我只跟你說:"這個踏板是油門,這是煞車,來,你自己想辦法開到美國",恐怕沒人到的了。但如果開過一次給你看,再把鑰匙給你,未來不管你要開到哪,路途中你都會時常想到示範中,面臨同樣問題時的抉擇,可以省去最費時的迷惘抉擇時間。
因此這個章節將示範製作一個進階專案,並同時解釋所有設計上的順序、考量、修改、抉擇,相信會大幅提升同學製作專案的能力。
專案的功能是產出一個 Youtube 片段集合,把某頻道中講到某個詞的部分合併起來。
章節的重點在於製作專案中的流程以及專案架構的相關知識,專案中使用的素材,著作權歸於原創作者所有。提醒同學在操作過程中,需注意Youtube 平台的服務條款,在使用上需多留意相關規範。
- 輸入 (input):Youtube 頻道、要搜尋的字/詞彙
- 輸出 (output):Youtube頻道裡提到該 (字/詞彙) 的部分所合併成的影片
- 範例 (example):以Supercar Blondie的頻道,去抓取英文字 "incredible" 的執行結果:

