程式設計完全零基礎,學習python的吐血總結!

網際網路發展發表於2016-04-18
前完全沒接觸過程式設計,現在開始學,我的學習之路大致是這樣的,供大家參考:
  1. 15年4月份正式開始學習Python語言的,入門讀物是一本書《父與子程式設計》。當中關於客戶端(GUI)的操作,淺嘗輒止。
  2. 關於第1點,我需要進一步強調:因為我目標非常明確,利用Python進行Web程式設計,通俗的講,我要自己寫個網站。所以凡事和寫網站不相干的實踐我通通跳過或稍微嘗試做下。我到現在還認為這樣的學習方式是正確的,因為Python能做的事情非常多,覆蓋各種領域。在瞭解Python基本的語法之後,進行不同領域的實踐又要學習很多不同的東西(不同的包的用法和相關知識),所以,我非常建議你在學習Python之前明確掉你學Python的最終目的是什麼?然後集中精力去學習與目的相符的知識點。比如你學習Python和我一樣是做網站,那麼爬蟲、資料統計、數學處理、客戶端軟體程式設計、設計遊戲等這些事情一律先跳過不深入;如果你學習Python是為了做資料分析,那麼像做網站的實踐、Web框架這些應該先跳過。其實道理很簡單,精力和時間有限,因此集中去攻克和目的相關的內容,不容易分散精力,學習也很快。我深以為那些建議新手做這做那,去Github去做那個很多小實踐的專案是錯誤的,至少對你我這樣的人不合適,我試過的。
  3. 之後,入門進階讀物還是一本書,就是《Learning Python》(俗稱“老鼠書”)。這本書很厚,而且還有一部分高階操作是電子版的。這都不重要。你只要讀好這本書「紙質版」包含的內容即可。這本書有中文版的,翻譯質量上乘。
  4. 在看《Learning Python》的同時,我會隨手根據書上學到的東西編寫對應的實踐看看程式碼的執行效果。這時我遇到一些問題:怎麼讓電腦可以寫Python程式碼?用什麼寫Python程式碼好?
  5. 第一個問題我先想到Python的官網是否有安裝包,結果當然是有。雖然英語渣,但軟體下多了,還是知道跑到downloads頁面去找的,安裝包安裝很方便,和裝一般軟體沒什麼兩樣。(現在覺得這是比Ruby做得好的地方)。
  6. 第二個問題,求助了萬能的知乎(搜一下問題就好),看到多數人推薦Pycharm,自己就下載用了,開始沒感覺特別(沒用其他的所以沒對比),之後覺得難用(英語渣導致),最後覺得超-級-爽(熟悉後)。然後問搞技術的同事後,瞭解到其實這家出的其他語言編輯器也非常棒。
  7. 解決了上述兩個問題後,眼下就是鞏固知識多學多看的事情了。
  8. 學習完《Learning Python》後),對 Python基本的基礎語法已經瞭解,但很容易忘,因此進階學習是看網路教程,這裡尤其推薦廖雪峰的教程。網路教程包含更多的基礎實踐,沒書裡那麼細,因而「溫故而知新」的效果很好。
  9. 看完廖雪峰的教程後,我基本語法已經沒問題。但類似@裝飾器這樣的高階應用我無法理解,更不知道具體用場,雖然教程講的因果我理解,而且感覺是這麼用,但例子終究是個例子,沒具體用上還是不明白「究竟的用場?」。很多高階應用知識的問題在這個階段產生,我都似懂非懂。我最後的處理辦法是:將這些問題先放在了一邊。
  10. 之前講過,我目的非常明確:做網站。所以基本語法掌握後,我躍躍欲試,又是萬能的知乎,給我了下一步的方向,但也帶給了我更多的困擾。
  11. 在學習完廖雪峰的教程後,我知道我下一步是瞭解Python的更多周邊資訊,瞭解如何利用Python去寫網站的,瞭解程式設計學習的進一步應該學些什麼。
  12. 在知乎關注Python和一些程式設計話題後,知道知乎有「三大軟狗:溫、趙、輪」,還有一個「蕭井陌」,這四個人是程式界在知乎的有名人物,這其中我感覺蕭井陌接觸Python多一些,其次是輪子哥。按照蕭井陌在某一問題下的答覆(他說把他答案全看一遍再說),我就老老實實的把蕭井陌的答案全看了一個遍,之後又同樣的做法看了輪子哥的。
  13. 完成第12點後,如果說具體的收貨,我講不出很多,但是看完他們的答案後,感覺認識層次有提升,而且不小,關於這點真的「只可意會不可言傳」,你試試就知道了。
  14. 在學習第二本書的時候,我就知道Python有版本之爭,但在知乎搜尋有關問題看更多後,我發現這個爭論還不小。我倒沒那麼糾結,果斷的上Python3.x,可能我是搞產品的,不喜歡陳而不新的東西。這之後我所有的實踐,包括現在編寫網站,全部基於3.x。當然這絕對不是說2.x就不應該去了解,只是3.x是主要的。
  15. 悲劇的事情來了。因為在知乎看得太多,我陷入了「Python還是Ruby」的深深糾結當中。這和我目的是WEB方向有關。如果題主學習Python不是做網站,不會遇到這個問題。
  16. 為了解決第15點的問題,我的做法是買了Ruby的經典入門書,結果看到30多頁的時候,突然充滿噁心和厭惡,直接甩書。
  17. 這之後進一步瞭解到WEB框架,知道的幾個主力WEB框架。知道Flask,瞭解這些框架的設計理念之後,我選擇了Flask,就跟我學習Python一樣,我認同他們的設計理念。
  18. 進一步,我進階學習還是一本書《Flask Web開發》,透過這本書,我開始嘗試編寫網站。然而我發現書上的知識是遠遠不夠的。並且,書開始涉及一些高階語法應用,比如@裝飾器,這時,在第9點放下的東西我開始重拾。
  19. 在學習《Flask Web開發》的過程中,這之中幾乎每天都會被一個問題擋住,然後每天又解決一個問題。這種感覺很棒,感覺每天都有成就感的活著。
  20. 在《Flask Web開發》看到一大半的時候,我發現光有Python相關的知識已經不夠用,我不知道MySQL怎麼用,不知道ORM為何物,不知道HTTP協議的具體細節。總而言之,深感知識的荒蕪。
  21. 我暫時放下《Flask Web開發》,開始學習上面談到的這些東西的相關知識。方式以GG為主,後來知道程式設計師有專門的問答網站,在國內這個網站是segmentfault,透過這個網站也學習到上述的不少相關知識。關於MySQL看了一本書,這本是現在買不到了,這裡我就不提了,應該有更好的,你自己搜一下(MySQL的書是我2年前買的,當時是因為要考試,看了一點點就放在那,之後全忘記了)。
  22. 在補充了相關知識後,《Flask Web開發》絕大部分都看得懂了。我開始動手編寫我想做的網站,一直到現在。
  23. 一直都會遇到問題,但都是零碎的知識點,我哪裡不懂GG哪裡,目前沒遇到GG之後還學不會的。
  24. 《Flask Web開發》看完後,開始看《Python核心程式設計(第2版)》,這本書有些問題(後面會談到),不過很受用,因為本身是教科書的形式,知識脈絡比較規矩和全面。
  25. 目前《Python核心程式設計(第2版)》看到P417,然後邊看邊寫網站。偶爾還會參考《Flask Web開發》,多數情況下看各種官方文件了,比如Flask的。哦,忘記說了,我很早就知道各種程式總有作者編寫的文件的,國內會有一些人熱心翻譯。我總能透過GG找到這些資料。這些資料是非常一手的好東西,但是沒前面的基礎工作一樣看不懂。
  26. 越來越喜歡Python,喜愛程式設計,看見程式設計師就想和他們交朋友,覺得他們是一群很棒的人!
溫馨提示:
  1. 用GG(谷歌)而不是百度搜尋。百度搜一些專業性的東西不精準,結果少。
  2. 學會翻牆,多看看網上的影片課程更容易理解。
  3. 《Python核心程式設計(第2版)》是基於Python2.x的,很多知識滯後,不適合一上來看這本書,因為看了會更困惑。這本書是教科書式的,和《Learning Python》是兩種截然不同的成文風格,而且一些知識點篇幅很短,對於有程式設計基礎的,是適合的,對於新手相反。
  4. Python猶如汪洋大海,漫無目的猶如在大海行一頁扁舟,卻沒有目的地,只能作死。
  5. 一開始要接受Python的設計理念,這對學習激情有幫助。當然,之後接觸更多語言可以帶著辯證的觀點去看待更多。
  6. 《Learning Python》學習時,我在學到「類」的知識後中斷了學習去看廖雪峰的教程,之後根據應用(WEB開發)遇到進行不下去的情況,再繼續的學習。
  7. 堅持和興趣很重要。不要輕易放棄,並嘗試喜歡上他。感謝網友杜志鵬的學習思路分享,學習資料:

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

相關文章