掌握這個學習方法讓 Python 不再從入門到放棄

隨著數據科學概念的普及,Python 這門並不算新的語言火得一塌糊塗。因為寫了幾篇用 Python 做數據分析的 文章,經常有讀者和學生在留言區問我,想學習 Python,該如何入手?我經常需要根據他們的不同情況,提出對應的建議。這樣針對性雖強,但效率不高。這個問題,我還是寫出來,讓更多的人一同看到吧。

有幾位出版社的編輯,給我發私信,鼓勵我趕緊寫一本 Python 教材出來。我暫時還沒有寫 Python 基礎教程的計劃。因為在我看來,現有的學習資源已經足夠好了。

但是,有這麼多現成的資源和路徑,為什麼許多人依然在為學 Python 犯愁呢?因為學習有個效率問題。Python 語法清晰明快,簡單易學,這是 Python 如此普及的重要原因。但是,選擇合適的 Python 學習方式,需要跟你自身的特性相結合。

人群劃分的標準是什麼?不是你是否計算機相關專業,也不是你是否已經工作,而是一個重要的指標——你的自律能力

你可能覺得我說的話沒有信息含量。自律能力強,學得更好,地球人誰不知道?可是,自律不夠強的人,難道就註定什麼也不能學了?當然不是。

每個人的性格都有不同的特點,沒有絕對的高下之分。不信你聽聽劉寶瑞先生的相聲《日遭三險》,就明白了。自律能力也是這樣。只要你能清楚認識自己,就能以更高效的方法來學習新知識和技能。

下面我們分類探討一下,不同自律能力的人,該如何學 Python,才能更高效。我為大家準備了三種完全不同的路徑,相信你能找到適合你的那一種。

路徑 I:適合自律能力最差的人

咱們先從自律能力最差的人說起。

這樣的同學,往往是三分鐘熱度。偶然受到了刺激,發奮要學習 Python,以便投入數據科學的事業中。他會立即跑到圖書館或者書店抱回來一本《X 天從入門到精通 Python》的書開始啃。結果 X 天還沒到,就順利跑完了從入門到放棄的全過程。

你沒能堅持下來,自己肯定是有責任的。但是最大的問題,在於過度高估自己的自律能力。這樣的同學,我推薦你到 Coursera 平臺上,按部就班學習一門非常好的 MOOC——Programming for Everybody。

掌握這個學習方法讓 Python 不再從入門到放棄

推薦這門課,是因為課程質量真是太好了。首先是教材好。這本教材的來源是有故事的。先是 Allen B. Downey 寫了一本開放書籍 Think Python: How to Think like a Computer Scientist。

掌握這個學習方法讓 Python 不再從入門到放棄

這本書在Amazon上的評價是這樣的:

掌握這個學習方法讓 Python 不再從入門到放棄

Charles Severance 覺得這本書寫得太好了,想把它作為教材。於是徵得作者同意,大篇幅借鑑了這本書的內容架構,編寫了一本 Python for Informatics。

掌握這個學習方法讓 Python 不再從入門到放棄

Charles 寫作這本書的時候,同時開放推出了 iBooks 格式,裡面就包含了自己的授課視頻,供學生直接觀看學習。

掌握這個學習方法讓 Python 不再從入門到放棄

後來,Charles 用這本書擴展,做成了一門 MOOC。2015年上線不久,硅谷資深工程師就都爭相學習。

Charles 深諳課程迭代的技藝。他不斷添加內容,完善課程體系,將一門課發展成一個專項課程(Signature Track),並且將教材升級為 Python for Everybody: Exploring Data In Python 3。

掌握這個學習方法讓 Python 不再從入門到放棄

在目前全球 MOOC 口碑榜上,Charles 的這門課一直名列前茅。

掌握這個學習方法讓 Python 不再從入門到放棄

這個專項課程深入淺出講解 Python 本來就很簡單的語法,而且還用數據科學的一些基礎工作任務,帶動你去使用 Python 語言寫簡單項目。這種紮實的訓練過程可以增強你的信心,激發興趣。

對於自律程度低的同學來說,下面這個特性更重要:一切工作都有時限

Coursera 上的課程,每週的任務很明確。練習題正確率如果不能達到 80%,就不能過關。到了截止日期,如果你不能完成全部練習和課程項目,就拿不到證書。

掌握這個學習方法讓 Python 不再從入門到放棄

老師在前面引領你,助教在旁邊督促你,平臺用時間表提醒你,論壇上的同學們在用同儕壓力推擠你……想偷懶?想三天打魚兩天曬網?很難。

路徑 II:適合自律能力中等偏上的人

如果你的自律能力中等偏上,那麼你可以選擇的面就寬了。

這裡我給你推薦另一個MOOC平臺,叫做 Datacamp。

掌握這個學習方法讓 Python 不再從入門到放棄

我第一次接觸 Datacamp,是在 2015 年初。那時我在 Coursera 上選修杜克大學的統計學課程「Statistical Inference」,配套的練習就在 Datacamp 上。

當時這個平臺就給我留下了非常深刻的印象,因為代碼的運行都採用了雲環境。學習者不需要在本機安裝任何環境,一個支持 HTML5 標準的瀏覽器就能帶給你完整的學習體驗。

對初學者來說,這種入門方式太好了。要知道,許多人的學習熱情,就是被環境配置和依賴軟件包安裝的坑埋掉的。

兩年之後,Datacamp 已經迭代得更為強大。你可以打開首頁的 Data Scientist with Python 這個學習路徑,查看其中已經提供的 20 門課程。

掌握這個學習方法讓 Python 不再從入門到放棄

這些課程涵蓋了從 Python 基礎,到數據處理,直至人工智能和深度神經網絡的方方面面。

掌握這個學習方法讓 Python 不再從入門到放棄

所有的課程設計,都是短小精悍的。一般不超過 4 個小時,就可以完成某一主題的學習。這樣你學起來毫不費力,可以在相當短的時間內獲得反饋(練習題自動評分)和成就感(證書)。

這個平臺的課程,進度完全由學習者

自己掌控。所以我把它歸納為適合有一定自律能力的學習者。它既可以給你即時的回饋,讓你時刻了解自己所處的位置進度,不會迷失方向,又能充分體驗自主學習的樂趣。

Datacamp 的課程,一般都是第一部分免費開放。後面部分購買後才能解鎖學習。如果你對自己的學習能力和毅力有信心,可以購買一個完整時間段(例如一年)的課程。在此期間,所有平臺上的課程,你都可以學習,並且可以在通過後獲取證書。這樣的購買方案本身已經有優惠,而且每年都會有特定時段的大幅打折促銷,非常划算。建議放到購物車裡面多關注。

掌握這個學習方法讓 Python 不再從入門到放棄

這是我在 Datacamp 拿到的深度學習框架 Keras 課程證書,確實只需要幾個小時的時間就能學完,成就感還是蠻強的。

路徑 III:適合自律能力強的人

前面提到的課程費用不菲。Coursera 上每門課平均價格在 49 美元左右。對來自發展中國家的學生群體,Coursera 可以提供助學金。你可以根據自己的需求如實填寫申請表,來獲得資助。

對於自律能力強的同學來說,你的選擇可以變得非常簡單直接——可以用最受推崇的教材,自己看書學習。

最受推崇的教材,其實是沒有的。正如西諺有云:

One man’s meat, is another man’s poison.

這個世界上,就沒有哪件東西大家都說好。但口碑非常好的教材是存在的,例如這本起了個怪名字的《笨辦法學Python》(Learn Python the Hard Way)。

掌握這個學習方法讓 Python 不再從入門到放棄

千萬不要被名稱迷惑,望文生義覺得這是一本糟糕的 Python 入門教程。恰恰相反,這本書的設計,非常適合人們的認知規律。

我們學東西,由淺入深,由易到難,逐步遞進。如果一味追求新知,那麼之前學的東西會很快遺忘。如果總是原地打轉,會帶來枯燥和無聊的感覺。還記得高三做的那一年卷子吧?

好的教科書,應該在每一個章節給學習者提供新的知識和內容,提出足夠的挑戰。但是挑戰性不能高到讓學習者產生挫敗感而放棄。同時也不能忽視在後續內容中把前面所學知識改換面目不斷螺旋上升式重複出現。只有這樣才能鞏固所學,讓學習者感受到基礎知識的作用,增強學習的愉悅感。

這麼說有些抽象,實際上有一本英語教材非常符合上述認知規律,就是我在課堂上和文章裡反覆推薦過的這一套教材:

掌握這個學習方法讓 Python 不再從入門到放棄

《笨辦法學Python》也是一本這樣的書。你需要做的就是把書打開,同時打開一個好用的代碼編輯器,開始按書中要求敲代碼、運行代碼、改代碼……

下圖是我當初學習時,照著這本書敲的代碼。

掌握這個學習方法讓 Python 不再從入門到放棄

書中對 Python 基礎內容訓練的完備性,至今無出其右者。順便說一句,這本書有中文版哦。所以如果你英語不好,完全不用擔心。

囑咐一句,英語真該好好學。拓寬的不僅是你的眼界,也增加了你可能獲得的機會。考慮到仔細閱讀這部分的讀者都是自律性很強的人,我就不用多說了。

挑戰

三條基本的 Python 入門路徑講完了。通過對自己自律能力的清晰理解,相信你可以找到一種適合自己逐漸學習和掌握 Python 的方式。

但是完成了讀書和聽課,是不是就完事大吉了?當然不是。

許多人在這裡犯了錯誤。他們以為拿到了證書,或學完了教材,就算是真正掌握 Python。然後把這門語言丟棄在一旁,去刷美劇和小說了。相信我,你會遺忘的。如果你對於長期不接觸的東西從不遺忘……去醫院檢查一下吧。大部分人的記憶模式,都是這個樣子的:

掌握這個學習方法讓 Python 不再從入門到放棄

若不加以干涉,不出一個星期,你就能把學到的新知識幾乎忘光。如果你不希望自己辛苦學來的 Python 知識被如此輕易浪費掉,怎麼辦?

實踐

你應該實踐。

實踐 Python 技能,未必一定要找個世界 500 強企業的核心技術部門,「996」工作 N 年才能完成。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。

我真正覺得自己初步掌握了 Python,就是在完成了我的第一個 Github 項目之後。

項目非常簡單,就是用 Python 作為膠水語言,把一系列工具連接在一起。可以把 Markdown 撰寫的內容隨心所欲一鍵變化成各種格式。

格式包括而不限於:

  • PDF/LaTeX;
  • Word;
  • Bitcron 文稿;
  • MarkEditor 文稿;
  • MWeb 文稿;
  • Bear 文稿;
  • TextBundle(可以導入 MindNode, Ulysses 等);
  • Reveal.js 幻燈;
  • 發佈版本 Markdown(圖片一鍵至七牛圖床);
  • 本地版本 Markdown(簡書等遠程 Markdown 同步圖片至本地);
  • Day One 日記。

其中部分功能我正陸續發佈在 Github 公開項目中,地址在 這裡。相應地,我也 撰文 做了介紹。

掌握這個學習方法讓 Python 不再從入門到放棄

這個小項目,我從 2014 年開始做。實話實說,現在回頭看當時的代碼,簡直慘不忍睹。但是如果你逐漸對自己你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。你可以從生活中尋找各種有趣的問題,然後思考能否用 Python 編程來解決它。的代碼有了這種感覺,證明你在進步。

不要指望自己一出手就能寫出完美的代碼,要把「迭代」兩個字時刻裝在心裡。這樣你才能容忍自己的笨拙,不斷提高。正如古人說的那句:

勤學似春起之苗,不見其增,而日有所長。

我在做這個項目的過程中,曾經遇到了中文編碼、隱私信息存儲、文件名空格處理、絕對與相對路徑、發佈流程劃分、功能解耦合、Web 圖片地址附帶參數……等等一系列的問題。

掌握這個學習方法讓 Python 不再從入門到放棄

通過回顧用 Git 版本控制工具記載下來的日誌,以及版本對比功能,你可以清楚看到自己是在何時利用什麼方法解決了這些問題。然後別忘了,給自己工具箱裡的新增小技能打個勾。

一個個小問題逐漸被你攻克的時候,你才能真正感受到所學技能的價值,並且點滴積累自信。


需要編程資料的可以私信喔!


分享到:


相關文章: