你可以在 Google Play 或 Pubu 上購買本系列的電子書版本。 去年 12 初,信箱中出現一封標題為〈PyCon Taiwan 2013 Tutorial Invitation〉的信,在心裡想著這是不是一封廣告信下點進去看,原來是 Python 年會 籌備人員 胡崇偉 先生寄來,邀請我協助研討會前一天,提供一整天 6小時的付費 Python 入門課程。
雖然斷續碰過 Python,不過開始認真學習 Python,是在三年多前一次與 大頭老師Eric 聊天之後,才開始對學習這門語言有了強烈的動機,說是認真,其實也不過是看了幾本 Python 的書,然後寫了 Python 學習筆記 略記所得,然後拿 常見程式演算 做些練習罷了。
因此接到要為 PyCon Taiwan 2013 設計入門課程,而且還是付費課程,心中想的是,我對 Python 夠熟悉嗎?對於一個主題,我總是得在有九成以上的熟悉度時,才有站上講臺的自信,另一個問題是,那要設計成什麼樣才符合大會需求?在思考了一陣子之後,我回信內容寫到 …
...對我而言,要瞭解語言後的文化與生態系,約莫是三到六個月的時間,若以我至三月中前對 Python 生態系的瞭解過程與心得,配合 PyConTW 的議程,將之濃縮為六個小時的課程,你覺得如何?
因為我本身熟悉 Java,也熟悉 Java 生態體系,以一個熟悉某技術社群,想要瞭解 Python 社群生態系的角度,來瞭解並濃縮這門課程,應該能符合大會的要求,因為 Python 入門課程不單單只是希望介紹 Python 程式語言,更大程度上,希望能銜接至次日揭開的 PyCon Taiwan 2013 議程內容,讓參加過 Python 入門課程的人,能夠以較齊的水平,更進一步能參與年會議程。這個構想獲得大會的同意,因此從去年 12 月開始,就陸續在有空的時候,瞭解 Python 生態系相關技術,而不僅僅是語言層面的東西,也因此最後課程的主旨設計為:
- 瞭解 Python 生態系(語言、工具、程式庫...)
- 瞭解 Python 社群核心文化(撰碼風格、典範、文件、社群…)
- 建立與 PyCon Taiwan 2013 的連結
- Python 化(Pythonic)
課程相關資料目前都放在 Github 上,包括投影片、範例等:
http://justinsdk.github.io/PyConTW2013Tutorial/
這個課程當然沒有時間鉅細靡遺地交代所有 Python 的細節,但會是個快速瞭解 Python 生態系的起點,讓你從這個起點開始,可以自行找到更多相關的資源。
以下是當時設計時的六小時課程綱要,也就是接下來系列文件要進行的內容基礎,因此系列文件將會以第一堂到第六堂的方式做區分。
第一堂
- 揭開序幕
- 直譯器的選擇與安裝
- Python 的實作
- 準備課程環境
- 程式庫在哪呢?
- Distutils、Distribute 與 Pip 間的關係
- 哈囉!世界!
- 簡介 Unicode 的支援
- 基本輸入輸出
- 整合開發環境
- 參考資源
- 學習 Python 語言
- 內建型態
- 數值型態
- 字串型態
- 清單型態
- 集合型態
- 字典型態
- 元組型態
if
、while
與for
包含式if...else
for
與while
for
包含式
- 函式、模組、類別與套件
- 函式
- 模組
- 類別
- 套件
- 參考資源
- 社群
- 文件
- DocStrings
- 官方文件
- PyDoc
- EpyDoc
- 資料處理函式
- 內建函式
reduce
- 永續化
marshal
、pickle
與cPickle
- DBM
shelve
- DB-API 2.0(PEP 249)
- 參考資源
- 程式庫 vs 框架
- 控制反轉
- 我們需要框架嗎?
- Django 起步走
- 建立專案
- 建立資料庫與 App
- 使用 Python shell 來玩玩 API
- 撰寫第一個畫面
- 控制器還是畫面?
- URLconf
- 參考資源
- 使用樣版系統
- 撰寫樣版
- 移出樣版中寫死的 URL
- URL 名稱空間
- 撰寫簡單的表單
- 聊一下 CSRF
- 跨站偽造請求實例
- 防衛 CSRF
- 測試
assert
doctest
- 參考資源
unittest
(接續上堂的測試)- 測試案例
- 測試料件
- 測試套件
- 測試執行器
- 評測
timeit
cProfile
(profile
)
- PyCon Taiwan
- Python Taiwan 2012
- Python Taiwan 2013
- 參考資源