Awesome
Learn Python In Hacker Way (用駭客的方式學 Python)
前言
我是 Hychen。
因為有人想學 Python ,所以我就來教了,這裡是教學上用到的教材。 在這門課除了教你 Python , 你還會學到一些軟體開發中會用到的工具, 以及開放源碼/自由軟體社群的工作模式。
本教材適合一人自學或是一人教多人使用。
聲明
- 若有任何錯誤,歡迎自由 Patch/Fork。
- 網路上的連結總會失效,學生們需具備自行修復的能力。
目標
學 Python ,學到什麼程度就看個人努力了。
文化與哲學
這邊說得 Hacker 指得是"泛指任何一類事務或領域中的專家或狂熱份子。" 開始前建議閱讀下面這兩篇
下面這個是推薦的Coding Style,有時間再讀
如何使用本教材
你可以照著本教材上頭列的連結自學,也可以找個熟Python的人利用這份教材來指導你。
後面我將用學徒
來稱呼想學 Python 的人,老師
來稱呼指導學生的人。
學徒
將會需要使用Git來取得最新的內容, 還有繳交指定作業給老師做Code Review。
如果學徒
或老師
不曾用過Git,請先閱讀 ihower 的Git and Github 演講投影片。
在閱讀上面提及的投影片後,你需要了解怎麼使用下面的git commands:
- git clone
- git add
- git commit
- git pull
- git push
課程講義依難度分為
- 新手(Novice):
熟悉基本資料結構以及迴圈,以及撰寫 Function,內容在
courses/novice/README.md
- 學徒(Apprentice):
能使用Function, Class 來維護較大型的程式, 一些常用的函式庫,以及撰寫測試程式,內容在
courses/apprentice/README.md
(尚未完成) - 老手(Adept):
使用Decorator, Generator, Meta Class 來加速開發速度,熟悉特定領域的函式庫使用,例如做GUI的人會熟悉PyGTK, PyQT。
內容在
courses/adept/README.md
(尚未完成) - 專家(Expert): 無法提供,因為我不是
- 大師(Master): 無法提供,因為我不是
在學習的過程中,你可以使用pydoc
來查Python文件,例如我想知道str.replace怎麼用,我就打
$ pydoc str.replace
另一種查文件的方式是在Interpreter中打help
,像這樣
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help(str.replace)
開始
老師
在 github 上 fork 此專案。學徒
在 github 上 fork老師
的專案。學徒
依據課程大綱讀完講義上指定的閱讀項目,並且寫完指定的習題學徒
把指定的作業commit後,push 進自己的專案老師
Review學徒的code,引導
學徒`思考寫出更好的code, 老師可以用 github 的 gist 來貼source code.
作業繳交方式
每個課程下面都有一個exercises
的目錄,下面會有各週的作業。 作業的檔名會是.py
結尾,
學徒寫完作業後,commit 進自己的專案,並且在老師
的專案開一個Issue Ticket,通知老師Review 程式碼。