今天爲你們分享資深開發者的Python學習之路,但願能幫到你們。我是15年4月份正式開始學習Python語言的,入門資料是玩轉Python編程語言視頻教程,經過Python你能夠重拾編程的興趣,得到編程的樂趣。html
利用Python進行Web編程,通俗的講就是本身寫個網站。因此凡事和寫網站不相干的實踐我統統跳過或稍微嘗試作下。我到如今還認爲這樣的學習方式是正確的,由於Python能作的事情很是多,覆蓋各類領域。在瞭解Python基本的語法以後,進行不一樣領域的實踐又要學習不少不一樣的東西(不一樣的包的用法和相關知識),因此,我很是建議你在學習Python以前明確掉你學Python的最終目的是什麼?而後集中精力去學習與目的相符的知識點。好比你學習Python和我同樣是作網站,那麼爬蟲、數據統計、數學處理、客戶端軟件編程、設計遊戲等這些事情一概先跳過不深刻;若是你學習Python是爲了作數據分析,那麼像作網站的實踐、Web框架這些應該先跳過。其實道理很簡單,精力和時間有限,所以集中去攻克和目的相關的內容,不容易分散精力,學習也很快。程序員
以後,入門進階讀物就是《Learning Python》(俗稱「老鼠書」)。這本書很厚,並且還有一部分高級操做是電子版的。這都不重要。你只要讀好這本書「紙質版」包含的內容便可。在看《Learning Python》的同時,我會隨手根據書上學到的東西編寫對應的實踐看看代碼的運行效果。這時我遇到一些問題:怎麼讓電腦能夠寫Python代碼?用什麼寫Python代碼好?web
第一個問題我先想到Python的官網是否有安裝包,結果固然是有。雖然英語渣,但軟件下多了,仍是知道跑到downloads頁面去找的,安裝包安裝很方便,和裝通常軟件沒什麼兩樣。(如今以爲這是比Ruby作得好的地方)。第二個問題,求助了萬能的知乎,看到多數人推薦Pycharm,本身就下載用了,開始沒感受特別(沒用其餘的因此沒對比),以後以爲難用(英語渣致使),最後以爲超-級-爽(熟悉後)。而後問搞技術的同過後,瞭解到其實這家出的其餘語言編輯器也很是棒。解決了上述兩個問題後,眼下就是鞏固知識多學多看的事情了。編程
學習完部分《Learning Python》後(見備註),我對 Python基本的基礎語法已經瞭解,但很容易忘,所以進階學習是看網絡教程,這裏尤爲推薦廖雪峯的教程。網絡教程包含更多的基礎實踐,沒書裏那麼細,於是「溫故而知新」的效果很好。segmentfault
看完廖雪峯的教程後,我基本語法已經沒問題。不少高階應用知識的問題在這個階段產生,我都似懂非懂。我最後的處理辦法是:將這些問題先放在了一邊。作網站。因此基本語法掌握後,我躍躍欲試,又是萬能的知乎,給我了下一步的方向,但也帶給了我更多的困擾。在學習完廖雪峯的教程後,我知道我下一步是瞭解Python的更多周邊信息,瞭解如何利用Python去寫網站的,瞭解編程學習的進一步應該學些什麼。在知乎關注Python和一些編程話題後,知道知乎有「三大軟狗:溫、趙、輪」,還有一個「蕭井陌」,這四我的是程序界在知乎的有名人物,這其中我感受蕭井陌接觸Python多一些,其次是輪子哥。按照蕭井陌在某一問題下的答覆(他說把他答案全看一遍再說),我就老老實實的把蕭井陌的答案全看了一個遍,以後又一樣的作法看了輪子哥的。網絡
若是說具體的收穫,感受認識層次有提高,並且不小,關於這點真的「只可意會不可言傳」,你試試就知道了。在學習第二本書的時候,我就知道Python有版本之爭,但在知乎搜索有關問題看更多後,我發現這個爭論還不小。我倒沒那麼糾結,果斷的上Python3.x,可能我是搞產品的,不喜歡陳而不新的東西。這以後我全部的實踐,包括如今編寫網站,所有基於3.x。固然這絕對不是說2.x就不該該去了解,只是3.x是主要的。框架
悲劇的事情來了。由於在知乎看得太多,我陷入了「Python仍是Ruby」的深深糾結當中。這和我目的是WEB方向有關。若是題主學習Python不是作網站,不會遇到這個問題。爲了解決問題,個人作法是買了Ruby的經典入門書,結果看到30多頁的時候,忽然充滿噁心和厭惡,直接甩書。這以後進一步瞭解到WEB框架,知道Python的幾個主力WEB框架。知道Flask,瞭解這些框架的設計理念以後,我選擇了Flask,就跟我學習Python同樣,我認同他們的設計理念。編程語言
進一步,我進階學習仍是一本書《Flask Web開發》,經過這本書,我開始嘗試編寫網站。然而我發現書上的知識是遠遠不夠的。在學習《Flask Web開發》的過程當中,我幾乎是邊回頭看廖雪峯的教程,邊谷歌搜索過日子。這之中幾乎天天都會被一個問題擋住,而後天天又解決一個問題。這種感受很棒,感受天天都有成就感的活着。編輯器
在《Flask Web開發》看到一大半的時候,我發現光有Python相關的知識已經不夠用,我不知道MySQL怎麼用,不知道ORM爲什麼物,不知道HTTP協議的具體細節。總而言之,深感知識的荒蕪。我暫時放下《Flask Web開發》,開始學習上面談到的這些東西的相關知識。方式以GG爲主,後來知道程序員有專門的問答網站,在國內這個網站是segmentfault,經過這個網站也學習到上述的很多相關知識。在補充了相關知識後,《Flask Web開發》絕大部分都看得懂了。我開始動手編寫我想作的網站,一直到如今。學習
《Flask Web開發》看完後,開始看《Python核心編程(第2版)》,這本書有些問題(後面會談到),不過很受用,由於自己是教科書的形式,知識脈絡比較規矩和全面。
目前《Python核心編程(第2版)》看到P417,而後邊看邊寫網站。偶爾還會參考《Flask Web開發》,多數狀況下看各類官方文檔了,好比Flask的。哦,忘記說了,我很早就知道各類程序總有做者編寫的文檔的,國內會有一些人熱心翻譯。我總能經過GG找到這些資料。這些資料是很是一手的好東西,可是沒前面的基礎工做同樣看不懂。
愈來愈喜歡Python,喜好編程,看見程序員就想和他們交朋友,以爲他們是一羣很棒的人!
《Python核心編程(第2版)》是基於Python2.x的,不少知識滯後,不適合一上來看這本書,由於看了會更困惑。這本書是教科書式的,和《Learning Python》是兩種大相徑庭的成文風格,並且一些知識點篇幅很短,對於有編程基礎的,是適合的,對於新手相反。
必定必定要有一個目的,漫無目的去學習Python會被坑。Python猶如汪洋大海,漫無目的猶如在大海行一頁扁舟,卻沒有目的地,只能做死。一開始要接受Python的設計理念,這對學習激情有幫助。固然,以後接觸更多語言能夠帶着辯證的觀點去看待更多。
學習玩轉Python編程語言視頻教程,越日後的東西,若是不在實際應用中遇到問題,會致使就算明白了也是似懂非懂的感受,並且沒法深入領會一些東西的含義。堅持和興趣很重要,不要輕易放棄,並嘗試喜歡上他。感謝網友提供的思路分享,但願對你們有幫助,早日玩轉Python!