這篇文章主要是對我收集的一些文章的摘要。因為已經有很多比我有才華的人寫出了大量關于如何成為優秀Python程序員的好文章。
我的總結主要集中在四個基本題目上:
* 函數式編程,
* 性能,
* 測試,
* 編碼規范。
如果一個程序員能將這四個方面的內容知識都吸收消化,那他/她不管怎樣都會有巨大的收獲。
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/n001.md#函數式編程)函數式編程
命令式的編程風格已經成為事實上的標準。命令式編程的程序是由一些描述狀態轉變的語句組成。雖然有時候這種編程方式十分的有效,但有時也不盡如此(比如復雜性) ―― 而且,相對于聲明式編程方式,它可能會顯得不是很直觀。
如果你不明白我究竟是在說什么,這很正常。這里有一些文章能讓你腦袋開竅。但你要注意,這些文章有點像《駭客帝國》里的紅色藥丸 ―― 一旦你嘗試過了函數式編程,你就永遠不會回頭了。
* [http://www.amk.ca/python/writing/functional](http://www.amk.ca/python/writing/functional)
* [http://www.secnetix.de/olli/Python/lambda_functions.hawk](http://www.secnetix.de/olli/Python/lambda_functions.hawk)
* [http://docs.python.org/howto/functional.html](http://docs.python.org/howto/functional.html)
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/n001.md#性能)性能
你會看到有如此多的討論都在批評這些“腳本語言”(Python,Ruby)是如何的性能低下,可是你卻經常的容易忽略這樣的事實:是程序員使用的算法導致了程序這樣拙劣的表現。
這里有一些非常好的文章,能讓你知道Python的運行時性能表現的細節詳情,你會發現,通過這些精煉而且有趣的語言,你也能寫出高性能的應用程序。而且,當你的老板質疑Python的性能時,你別忘了告訴他,這世界上第二大的搜索引擎就是用Python寫成的 ―― 它叫做Youtube(參考Python摘錄)
* [http://jaynes.colorado.edu/PythonIdioms.html](http://jaynes.colorado.edu/PythonIdioms.html)
* [http://wiki.python.org/moin/PythonSpeed/PerformanceTips](http://wiki.python.org/moin/PythonSpeed/PerformanceTips)
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/n001.md#測試)測試
如今在計算機科學界,測試可能是一個最讓人不知所措的主題了。有些程序員能真正的理解它,十分重視TDD(測試驅動開發)和它的后繼者BDD(行為驅動開發)。而另外一些根本不接受,認為這是浪費時間。那么,我現在將告訴你:如果你不曾開始使用TDD/BDD,那你錯過了很多最好的東西!
這并不只是說引入了一種技術,可以替換你的公司里那種通過愚蠢的手工點擊測試應用程序的原始發布管理制度,更重要的是,它是一種能夠讓你深入理解你自己的業務領域的工具 ―― 真正的你需要的、你想要的攻克問題、處理問題的方式。如果你還沒有這樣做,請試一下。下面的這些文章將會給你一些提示:
* [http://www.oreillynet.com/lpt/a/5463](http://www.oreillynet.com/lpt/a/5463)
* [http://www.oreillynet.com/lpt/a/5584](http://www.oreillynet.com/lpt/a/5584)
* [http://wiki.cacr.caltech.edu/danse/index.php/Unit_testing_and_Integration_testing](http://wiki.cacr.caltech.edu/danse/index.php/Unit_testing_and_Integration_testing)
* [http://docs.python.org/library/unittest.html](http://docs.python.org/library/unittest.html)
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/n001.md#編碼規范)編碼規范
并非所有的代碼生來平等。有些代碼可以被另外的任何一個好的程序員讀懂和修改。但有些卻只能被讀,而且只能被代碼的原始作者修改 ―― 而且這也只是在他或她寫出了這代碼的幾小時內可以。為什么會這樣?因為沒有經過代碼測試(上面說的)和缺乏正確的編程規范。
下面的文章給你描述了一個最小的應該遵守的規范合集。如果按照這些指導原則,你將能編寫出更簡潔和漂亮的代碼。作為附加效應,你的程序會變得可讀性更好,更容易的被你和任何其他人修改。
* [http://www.python.org/dev/peps/pep-0008/](http://www.python.org/dev/peps/pep-0008/)
* [http://www.fantascienza.net/leonardo/ar/python_best_practices.html](http://www.fantascienza.net/leonardo/ar/python_best_practices.html)
那就去傳閱這這些資料吧。從坐在你身邊的人開始。也許在下一次程序員沙龍或編程大會的時候,也已經成為一名Python編程高手了!
祝你學習旅途順利。
> 本文來源:[http://blogread.cn/it/article/3892?f=wb](http://blogread.cn/it/article/3892?f=wb)
- 第零章 預備
- 關于Python的故事
- 從小工到專家
- Python安裝
- 集成開發環境
- 第壹章 基本數據類型
- 數和四則運算
- 除法
- 常用數學函數和運算優先級
- 寫一個簡單的程序
- 字符串(1)
- 字符串(2)
- 字符串(3)
- 字符串(4)
- 字符編碼
- 列表(1)
- 列表(2)
- 列表(3)
- 回顧list和str
- 元組
- 字典(1)
- 字典(2)
- 集合(1)
- 集合(2)
- 第貳章 語句和文件
- 運算符
- 語句(1)
- 語句(2)
- 語句(3)
- 語句(4)
- 語句(5)
- 文件(1)
- 文件(2)
- 迭代
- 練習
- 自省
- 第叁章 函數
- 函數(1)
- 函數(2)
- 函數(3)
- 函數(4)
- 函數練習
- 第肆章 類
- 類(1)
- 類(2)
- 類(3)
- 類(4)
- 類(5)
- 多態和封裝
- 特殊方法(1)
- 特殊方法(2)
- 迭代器
- 生成器
- 上下文管理器
- 第伍章 錯誤和異常
- 錯誤和異常(1)
- 錯誤和異常(2)
- 錯誤和異常(3)
- 第陸章 模塊
- 編寫模塊
- 標準庫(1)
- 標準庫(2)
- 標準庫(3)
- 標準庫(4)
- 標準庫(5)
- 標準庫(6)
- 標準庫(7)
- 標準庫(8)
- 第三方庫
- 第柒章 保存數據
- 將數據存入文件
- mysql數據庫(1)
- MySQL數據庫(2)
- mongodb數據庫(1)
- SQLite數據庫
- 電子表格
- 第捌章 用Tornado做網站
- 為做網站而準備
- 分析Hello
- 用tornado做網站(1)
- 用tornado做網站(2)
- 用tornado做網站(3)
- 用tornado做網站(4)
- 用tornado做網站(5)
- 用tornado做網站(6)
- 用tornado做網站(7)
- 第玖章 科學計算
- 為計算做準備
- Pandas使用(1)
- Pandas使用(2)
- 處理股票數據
- 附:網絡文摘
- 如何成為Python高手
- ASCII、Unicode、GBK和UTF-8字符編碼的區別聯系