學習Python的三種境界

前言

王國維在《人間詞話》中將讀書分爲了三種境界:「古今之成大事業、大學問者,必通過三種之境界:‘昨夜西風凋碧樹,獨上高樓,望盡天涯路’。此第一境也。‘衣帶漸寬終不悔,爲伊消得人憔悴。’此第二境也。‘衆裏尋他千百度,驀然回首,那人卻在燈火闌珊處’。此第三境也。我從入門Python到如今也沒有多少時間,因此寫如此大的一個題目一定會引起各類批判,固然我沒有想造一個大新聞,只是想根據本身的學習歷程作一個簡單的總結,同時將這三個階段對應的一些好的書籍簡單介紹介紹。python

正文

Python的用途十分普遍,不一樣的程序員將其用於不用的領域,不一樣的程序員將本身的代碼打包成庫,供其餘程序員使用,從而少造輪子,各類庫的使用,加之Python自己的靈活性、易讀性,易寫性,使用的人愈來愈多,tiobe統計編程語言的使用率以下:Python在一年之間使用排行榜中上升了3名,並且各大公司在招聘員工的時候若是能掌握Python,確定是一個加分項,由於Python在文本處理,小程序的寫做方面具備太強的優點,前段時間一個朋友讓幫忙改下他們公司logo的顏色,第一個想到的就是用Python,女票讓我幫她預處理大數據,第一個想到的仍然是Python等等,固然並無說其餘語言很差,也不是爲了討論哪一種語言更好,只是Python確實是一門會讓人幸福的語言,下面粗淺的說說我對Python學習過程當中的境界劃分以及推薦書籍。
程序員

第一個階段:初級,掌握Python的語法和一些經常使用庫的使用

  • 這裏首先推薦廖雪鋒在網上的書籍,這是Python2.7版本的,這本書適合於重頭開始一直讀完,做爲一個開發人員,除了基本的語法,這本書裏面提到了一些其餘的經常使用的庫,看了廖老師寫的不少東西,感受他的思路,以及寫博客寫書的高度,歸納性,原理性都十分好,這本書讀完以後,相信就能夠動手寫不少東西了,能夠盡情的玩轉Python解釋器了。
  • 另外還有一本書《Python參考手冊》,這本書也十分的有用,關於Python的方方面面基本都囊括在內,能夠做爲一本Python字典來查詢使用方法,十分好用。
  • 掌握一門語言最好的方法就是用它,因此我以爲邊學語法邊刷Leetcode是掌握Python最快的方式之一。

不少只須要將Python做爲腳本或者就是寫一些小程序處理處理文本的話,到這一個階段就足夠了,這個階段已經能夠幫咱們完成不少不少的事情了。可是若是是一個專業學習Python的,恐怕還須要努力的升級:首先,國內的大多數人都是學習了其餘語言(C,C++,Java等)以後來學習Python的,因此Python和這些語言的不一樣,也就是pythonic的東西須要一些時間去學習瞭解和掌握;另外,對於本身領域的領域的庫構架的掌握也須要很長的時間去掌握;最後,若是想獨立完成一個Python的項目,項目的佈局,發佈,開源等都是須要考慮的問題。web

第二個階段:中級,掌握本身特定領域的庫,掌握pythonic寫法,很是熟悉Python的特性

  • 推薦的第一本書是《編寫高質量代碼--改善python程序的91個建議》,這本書大概的提了下Python工程的文件佈局,更多的總結了如何寫出pythonic的代碼,另外,也介紹了一些經常使用的庫。
  • 要想深刻的瞭解Python,有的時候看看Python的源碼也是很重要的,本身經過讀懂源碼,來完全的瞭解Python的核心機制,這裏推薦《Python源碼剖析——深度探索動態語言核心技術》,這本書並無看完,只是在須要深刻了解Python某個功能或者數據結構的時候看看相關章節,也以爲受益不淺。
  • 本身領域的書籍和資料也確定不少,好比web開發的構架都有不少,只有瞭解熟悉了全部構架,在選擇的時候才能衡量利弊,而後深刻掌握某些構架。

這個階段事後,能夠寫出pythonic代碼,能夠經過PEP8的檢查,能夠爲開源社區作貢獻了,能夠將一個Python文件寫的十分好,可是若是要用Python開發一個大型項目,仍是有不少東西須要掌握的,好比項目的文檔,項目的發佈,下載,項目性能和案例等等。編程

第三個階段:高級,從整個工程項目着眼,考慮document,distribution,性能優化等

  • 目前只看了一本書《the hacker guide to python》,看的是英文版的,這本書對項目的佈局,文檔,性能,發佈等作了不少詳細的介紹,我以爲寫的仍是很不錯,只不過本人還須要再讀幾遍。
  • 對於大多數人來講,很難有機會從頭開始一個有意義的大型工程項目,因此本身能夠用Python實現一些簡單的功能,簡單的項目,這個靈感能夠去知乎或者quora搜索,不少前輩都分享了本身的經驗。

從大局入手,規劃好項目的佈局,設定好相應的文檔說明,提供工程下載安裝的方法,帶幾個demo,每一個類,每一個函數,每行代碼都反覆推敲,寫出pythonic的程序,相信這時候Python於咱們即是信手拈來了!小程序

總結

本文只是我認爲的學習Python的三種境界,以我粗淺之眼光,確定有太多太多的不足,並且本身也就是一個介於初級和高級Python程序員的水平,寫這個文章,也算是給本身設立的一個目標吧。性能優化

相關文章
相關標籤/搜索