1. 程式人生 > >自學Python一年,看了幾十本書,我發現了這些捷徑!

自學Python一年,看了幾十本書,我發現了這些捷徑!

 

今天給大家分享一位前輩自學Python的過程。當然,他自己本身就有程式設計基礎,與完全沒基礎的小白不可同日而語。大家可以相對借鑑一下他的學習方法,如果是純小白入門,還是需要老師帶領學習。

自學Python一年,看了幾十本書,我發現了這些捷徑!

 

 

最初瞭解python語言是由於2016年一次出差,以前是在C語言的硬體坑裡耍。當時一位同事,用python語言模擬模擬了一個實際的不可描述的工作場景,覺得很有意思。

當時就是基於簡單的Turtle工具進行畫圖,動態的展現出來。回來後,一直想學習這門語言但是一直沒動手,一方面,是由於工作原因;另一方面,還沒想好是不是要學習,態度還不夠堅決。

去年年底,在一個學習群裡,一位群友發了一個使用Python語言編寫的12306網站搶票程式

,發現這個語言還有點意思,就仔細研究了下;

最初感覺這個語言有這樣幾個特點:

1、語法規則簡單,對程式編寫人員的限制不大(但是語法真的不簡單,由於是動態語言,內部的執行機制更復雜);

2、第三方庫多,當時還不知道爬蟲是啥,只知道,呼叫這麼寫API,就把事情給辦了,還不錯。3、場景適應性強,只要有包,有庫,有IDE,甚至只要打包好,在任何系統都可以執行。所以,今年開始認真學習這門語言。

學習過程中,買了很多書,如:《python學習手冊》、《流暢的python》、《笨辦法學python3》、《貝葉斯思維-基於python的統計學習》等等,特別是對《python學習手冊》這本書特別執著,主要就是覺得它厚,內容應該全面。

但是看起來才發現問題多多,

  • 一是沒有那麼多時間,長期看一本書;
  • 二是,該書可敲的程式碼量少,看一遍後很難留下很深的印象,如列表、元組、字典、集合等等方法,看完還是忘記,雖然很多人說,第三方庫,不用集中,多用就好了,但是沒有場景應用,咋辦?
  • 三是、飽受詬病的翻譯。買書後才知道這本書的翻譯在網上飽受攻擊,自己拿著看也是看的雲裡霧裡。

 

基於以上三個原因,在看到字典這部分時,實在扛不住,5月份,果斷的《pytho學習手冊》從入門到放棄,換看了《簡明Python教程》,挺薄的一個小冊子,用一週的時間敲完整本書,記住是敲完。

對其中的迭代器如列表、字典、字串這些資料結構好像有了些許瞭解,特別是對OOP的使用方法,更加清晰,對屬性、方法這些概念的瞭解更深。

隨後又由於工作原因,丟了1個月,後來又在拾起來的時候,感覺忘的差不多了,沒辦法, “只有親自動手的東西,記憶才深刻”是不變的真理,就在網上買了本《pytho程式設計導論》,這本書不是主講python語法的,但是跟著書上每章的課題,逐個研究圖論、概率、機器學習,對書中的每個例子,自己先寫程式碼,再執行,再比對,雖然對python語法的瞭解還是半吊子,但是計算思維逐步形成,特別是基於oop程式設計時,更熟練資料抽象方法。

堅持1個月後,又由於工作原因,學習程序遭到擱置。

直到最近,才又重新拾起python學習的行頭。通過將近1年不成功的學習經歷,感覺還是學習手冊在所有書中是最好的(可能跟個人學習習慣有關係,我喜歡把一種用法的工作實質或者確切的使用規則搞清楚,而不是書上說可以這麼用,可以那麼用;

當時學Python感到迷茫的最主要的原因就是,不理解多型和迭代的概念,總是被網上或很多書上,對列表或者集合這些資料結構的花式用法搞懵),但是中文版難以接受怎麼辦?

找來英文版的慢慢磨唄,這樣看了兩個星期,中英文對照,發現,用英文行文的習慣來看中文版,就能理解其中的意思了,後來又轉用中文版,但總覺得,光看書不是正道。

所以度娘了Python練習,發現了Codewar,通過刷題,最終發現一條適合自己學習的路:codewar刷題,發現自己的不足,看《python學習手冊》,再刷題。

有專案或者想法要實現的時候,是更好的鍛鍊機會,沒有鍛鍊機會,就去codewar刷題,現在感覺很多知識點掌握的更好,特別是codewar很多題目都是貼近現實使用的,對程式設計技能提高有很大促進。

這位大佬自己本身有C語言的基礎,自己看書和專案實踐都用了一年,如果你是完全沒有基礎的小白,那麼要花費的時間和精力更是無法想象的。所以如果想入門,最好有老師帶領,省時省力快速就業。