Skip to content

Latest commit

 

History

History
97 lines (68 loc) · 3.54 KB

README.md

File metadata and controls

97 lines (68 loc) · 3.54 KB

Learn Python In Hacker Way (用駭客的方式學 Python)

前言

我是 Hychen。

因為有人想學 Python ,所以我就來教了,這裡是教學上用到的教材。 在這門課除了教你 Python , 你還會學到一些軟體開發中會用到的工具, 以及開放源碼/自由軟體社群的工作模式。

本教材適合一人自學或是一人教多人使用。

聲明

  1. 若有任何錯誤,歡迎自由 Patch/Fork。
  2. 網路上的連結總會失效,學生們需具備自行修復的能力。

目標

學 Python ,學到什麼程度就看個人努力了。

文化與哲學

這邊說得 Hacker 指得是"泛指任何一類事務或領域中的專家或狂熱份子。" 開始前建議閱讀下面這兩篇

下面這個是推薦的Coding Style,有時間再讀

如何使用本教材

你可以照著本教材上頭列的連結自學,也可以找個熟Python的人利用這份教材來指導你。 後面我將用學徒來稱呼想學 Python 的人,老師 來稱呼指導學生的人。

學徒將會需要使用Git來取得最新的內容, 還有繳交指定作業給老師做Code Review。 如果學徒老師不曾用過Git,請先閱讀 ihowerGit 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)

開始

  1. 老師在 github 上 fork 此專案。
  2. 學徒在 github 上 fork 老師的專案。
  3. 學徒依據課程大綱讀完講義上指定的閱讀項目,並且寫完指定的習題
  4. 學徒把指定的作業commit後,push 進自己的專案
  5. 老師Review學徒的code,引導學徒`思考寫出更好的code, 老師可以用 github 的 gist 來貼source code.

作業繳交方式

每個課程下面都有一個exercises的目錄,下面會有各週的作業。 作業的檔名會是.py結尾, 學徒寫完作業後,commit 進自己的專案,並且在老師的專案開一個Issue Ticket,通知老師Review 程式碼。