資深開發者的Python學習之路

網際網路發展發表於2016-04-19

都說程式語言不好學,真的是這樣麼?語言應該怎麼學?今天為大家分享資深開發者的Python學習之路,希望能幫到大家。

我是154月份正式開始學習Python語言的,入門資料是玩轉Python程式語言影片教程,透過Python你可以重拾程式設計的興趣,獲得程式設計的樂趣。

利用Python進行Web程式設計,通俗的講就是自己寫個網站。所以凡事和寫網站不相干的實踐我通通跳過或稍微嘗試做下。我到現在還認為這樣的學習方式是正確的,因為Python能做的事情非常多,覆蓋各種領域。在瞭解Python基本的語法之後,進行不同領域的實踐又要學習很多不同的東西(不同的包的用法和相關知識),所以,我非常建議你在學習Python之前明確掉你學Python的最終目的是什麼?然後集中精力去學習與目的相符的知識點。比如你學習Python和我一樣是做網站,那麼爬蟲、資料統計、數學處理、客戶端軟體程式設計、設計遊戲等這些事情一律先跳過不深入;如果你學習Python是為了做資料分析,那麼像做網站的實踐、Web框架這些應該先跳過。其實道理很簡單,精力和時間有限,因此集中去攻克和目的相關的內容,不容易分散精力,學習也很快。

之後,入門進階讀物就是《Learning Python》(俗稱“老鼠書”)。這本書很厚,而且還有一部分高階操作是電子版的。這都不重要。你只要讀好這本書「紙質版」包含的內容即可。在看《Learning Python》的同時,我會隨手根據書上學到的東西編寫對應的實踐看看程式碼的執行效果。這時我遇到一些問題:怎麼讓電腦可以寫Python程式碼?用什麼寫Python程式碼好?

第一個問題我先想到Python的官網是否有安裝包,結果當然是有。雖然英語渣,但軟體下多了,還是知道跑到downloads頁面去找的,安裝包安裝很方便,和裝一般軟體沒什麼兩樣。(現在覺得這是比Ruby做得好的地方)。第二個問題,求助了萬能的知乎,看到多數人推薦Pycharm,自己就下載用了,開始沒感覺特別(沒用其他的所以沒對比),之後覺得難用(英語渣導致),最後覺得超--爽(熟悉後)。然後問搞技術的同事後,瞭解到其實這家出的其他語言編輯器也非常棒。解決了上述兩個問題後,眼下就是鞏固知識多學多看的事情了。

學習完部分《Learning Python》後(見備註),我對 Python基本的基礎語法已經瞭解,但很容易忘,因此進階學習是看網路教程,這裡尤其推薦廖雪峰的教程。網路教程包含更多的基礎實踐,沒書裡那麼細,因而「溫故而知新」的效果很好。

看完廖雪峰的教程後,我基本語法已經沒問題。很多高階應用知識的問題在這個階段產生,我都似懂非懂。我最後的處理辦法是:將這些問題先放在了一邊。做網站。所以基本語法掌握後,我躍躍欲試,又是萬能的知乎,給我了下一步的方向,但也帶給了我更多的困擾。在學習完廖雪峰的教程後,我知道我下一步是瞭解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的設計理念,這對學習激情有幫助。當然,之後接觸更多語言可以帶著辯證的觀點去看待更多。

在學到「類」的知識後中斷了學習去看相關的教程,之後根據應用(WEB開發)遇到進行不下去的情況,再繼續的學習玩轉程式語言影片教程越往後的東西,如果不在實際應用中遇到問題,會導致就算明白了也是似懂非懂的感覺,而且無法深刻領會一些東西的含義。堅持和興趣很重要,不要輕易放棄,並嘗試喜歡上他。感謝網友提供的思路分享,希望對大家有幫助,早日玩轉Python!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30605389/viewspace-2084248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章