如何成為 Python 高手
這篇文章主要是對我收集的一些文章的摘要。因為已經有很多比我有才華的人寫出了大量關於如何成為優秀Python程序員的好文章。
我的總結主要集中在四個基本題目上:函數式編程,性能,測試,編碼規範。如果一個程序員能將這四個方麵的內容知識都吸收消化,那他/她不管怎樣都會有巨大的收獲。
函數式編程
命令式的編程風格已經成為事實上的標準。命令式編程的程序是由一些描述狀態轉變的語句組成。雖然有時候這種編程方式十分的有效,但有時也不盡如此(比如複雜性) —— 而且,相對於聲明式編程方式,它可能會顯得不是很直觀。
如果你不明白我究竟是在說什麼,這很正常。這裏有一些文章能讓你腦袋開竅。但你要注意,這些文章有點像《駭客帝國》裏的紅色藥丸 —— 一旦你嚐試過了函數式編程,你就永遠不會回頭了。
- https://www.amk.ca/python/writing/functional
- https://www.secnetix.de/olli/Python/lambda_functions.hawk
- https://docs.python.org/howto/functional.html
性能
你會看到有如此多的討論都在批評這些“腳本語言”(Python,Ruby)是如何的性能低下,可是你卻經常的容易忽略這樣的事實:是程序員使用的算法導致了程序這樣拙劣的表現。
這裏有一些非常好的文章,能讓你知道Python的運行時性能表現的細節詳情,你會發現,通過這些精煉而且有趣的語言,你也能寫出高性能的應用程 序。而且,當你的老板質疑Python的性能時,你別忘了告訴他,這世界上第二大的搜索引擎就是用Python寫成的 —— 它叫做Youtube(參考Python摘錄)
- https://jaynes.colorado.edu/PythonIdioms.html
- https://wiki.python.org/moin/PythonSpeed/PerformanceTips
測試
如今在計算機科學界,測試可能是一個最讓人不知所措的主題了。有些程序員能真正的理解它,十分重視TDD(測試驅動開發)和它的後繼者BDD(行為 驅動開發)。而另外一些根本不接受,認為這是浪費時間。那麼,我現在將告訴你:如果你不曾開始使用TDD/BDD,那你錯過了很多最好的東西!
這並不隻是說引入了一種技術,可以替換你的公司裏那種通過愚蠢的手工點擊測試應用程序的原始發布管理製度,更重要的是,它是一種能夠讓你深入理解你 自己的業務領域的工具 —— 真正的你需要的、你想要的攻克問題、處理問題的方式。如果你還沒有這樣做,請試一下。下麵的這些文章將會給你一些提示:
- https://www.oreillynet.com/lpt/a/5463
- https://www.oreillynet.com/lpt/a/5584
- https://wiki.cacr.caltech.edu/danse/index.php/Unit_testing_and_Integration_testing
- https://docs.python.org/library/unittest.html
編碼規範
並非所有的代碼生來平等。有些代碼可以被另外的任何一個好的程序員讀懂和修改。但有些卻隻能被讀,而且隻能被代碼的原始作者修改 —— 而且這也隻是在他或她寫出了這代碼的幾小時內可以。為什麼會這樣?因為沒有經過代碼測試(上麵說的)和缺乏正確的編程規範。
下麵的文章給你描述了一個最小的應該遵守的規範合集。如果按照這些指導原則,你將能編寫出更簡潔和漂亮的代碼。作為附加效應,你的程序會變得可讀性更好,更容易的被你和任何其他人修改。
- https://www.python.org/dev/peps/pep-0008/
- https://www.fantascienza.net/leonardo/ar/python_best_practices.html
那就去傳閱這這些資料吧。從坐在你身邊的人開始。也許在下一次程序員沙龍或編程大會的時候,也已經成為一名Python編程高手了!
祝你學習旅途順利。
如果你喜歡這些文章,請在微博上頂一下,讓其他人也知道。
最後更新:2017-04-03 20:19:53
上一篇:
工作時應該聽什麼音樂?
下一篇:
Windows 8小技巧
Data Migration Pre-Check Failures and Solutions
如何在 Linux 桌麵上使用 Gifine 錄製 GIF 動畫?
做硬件趟坑血淚史,你中過幾個?不看必入坑
NOD 1147 還原連分數
微軟證實Office軟件將登陸iOS和Android平台
ListActivity+sqlite+SimpleCursorAdapter簡單實例
五款高推薦度的協同辦公軟件
【短視頻SDK】如何做到視頻原始比例裁剪?
【沉澱】一張表的設計優化節省了兩百萬,客戶不斷盛譽……,這背後他究竟做對了什麼?——記訪談汪建明
java.util.concurrent包(1)——lock和synchronized對比