No description, website, or topics provided.
Python
Switch branches/tags
Nothing to show
Latest commit 9aef0ee May 22, 2012 1 @hychen add homework of week 3
Permalink
Failed to load latest commit information.
courses/novice add homework of week 3 May 22, 2012
.gitignore ignore temp files. May 12, 2012
README.md 補充何為pythonic的文件 May 12, 2012

README.md

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 程式碼。