如果你一直想學Python毕荐,但是不知道如何入手束析,那就別猶豫了。這篇文章就是為你寫的憎亚。
疑問
隨著數據科學概念的普及员寇,Python這門并不算新的語言火得一塌糊涂。
因為寫了幾篇用Python做數據分析的文章第美,經常有讀者和學生在留言區(qū)問我蝶锋,想學習Python,該如何入手什往?
我經常需要根據他們的不同情況扳缕,提出對應的建議。這樣針對性雖強恶守,但效率不高第献。這個問題贡必,我還是寫出來兔港,讓更多的人一同看到吧。
有幾位出版社的編輯仔拟,給我發(fā)私信衫樊,鼓勵我趕緊寫一本Python教材出來。
我暫時還沒有寫Python基礎教程的計劃利花。因為在我看來科侈,現有的學習資源已經足夠好了。
有現成的資源和路徑炒事,為什么許多人依然在為學Python犯愁呢臀栈?
因為學習有個效率問題。
Python語法清晰明快挠乳,簡單易學权薯。這是Python如此普及的重要原因姑躲。但是,選擇合適的Python學習方式盟蚣,需要跟你自身的特性相結合黍析。
人群劃分的標準是什么?不是你是否計算機相關專業(yè)屎开,也不是你是否已經工作阐枣,而是一個重要的指標——你的自律能力。
你可能覺得我說的話沒有信息含量奄抽。自律能力強蔼两,學得更好,地球人誰不知道逞度?
可是宪哩,自律不夠強的人,難道就注定什么也不能學了第晰?
當然不是锁孟。
每個人的性格都有不同的特點,沒有絕對的高下之分茁瘦。不信你聽聽劉寶瑞先生的相聲《日遭三險》品抽,就明白了。
自律能力也是這樣甜熔。只要你能清楚認識自己圆恤,就能以更高效的方法來學習新知識和技能。
下面我們分類探討一下腔稀,不同自律能力的人盆昙,該如何學Python,才能更高效焊虏。
路徑I
咱們先從自律能力最差的人說起淡喜。
這樣的同學,往往是三分鐘熱度诵闭。偶然受到了刺激炼团,發(fā)奮要學習Python,以便投入數據科學的事業(yè)中疏尿。
他會立即跑到圖書館或者書店抱回來一本《X天從入門到精通Python》的書開始啃瘟芝。結果X天還沒到,就順利跑完了從入門到放棄的全過程褥琐。
你沒能堅持下來锌俱,自己肯定是有責任的。但是最大的問題敌呈,在于過度高估自己的自律能力贸宏。
這樣的同學贩汉,我推薦你到Coursera平臺上,按部就班學習一門非常好的MOOC——“Programming for Everybody”锚赤。
推薦這門課匹舞,是因為課程質量真是太好了。
首先是教材好线脚。這本教材的來源是有故事的赐稽。
先是 Allen B. Downey 寫了一本開放書籍 “Think Python: How to Think like a Computer Scientist”。
這本書在Amazon上的評價是這樣的:
Charles Severance覺得這本書寫得太好了浑侥,想把它作為教材姊舵。于是征得作者同意,大篇幅借鑒了這本書的內容架構寓落,編寫了一本 “Python for Informatics”括丁。
Charles寫作這本書的時候,同時開放推出了iBook格式伶选。里面就包含了自己的授課視頻史飞,供學生直接觀看學習。
后來仰税,Charles用這本書擴展构资,做成了一門MOOC。2015年上線不久陨簇,硅谷資深工程師就都爭相學習吐绵。
Charles深諳課程迭代的技藝。他不斷添加內容河绽,完善課程體系己单,將一門課發(fā)展成一個專項課程(Signature Track),并且將教材升級為 “Python for Everybody: Exploring Data In Python 3”
在目前全球MOOC口碑榜上耙饰,Charles的這門課一直名列前茅纹笼。
這個專項課程深入淺出講解Python本來就很簡單的語法,而且還用數據科學的一些基礎工作任務榔幸,帶動你去使用Python語言寫簡單項目允乐。這種扎實的訓練過程可以增強你的信心,激發(fā)興趣削咆。
對于自律程度低的同學來說,下面這個特性更重要——一切工作都有時限蠢笋。
Coursera上的課程拨齐,每周的任務很明確。練習題正確率如果不能達到80%昨寞,就不能過關瞻惋。到了截止日期厦滤,如果你不能完成全部練習和課程項目,就拿不到證書歼狼。
老師在前面引領你掏导,助教在旁邊督促你,平臺用時間表提醒你羽峰,論壇上的同學們在用同儕壓力推擠你……
想偷懶趟咆?想三天打魚兩天曬網?很難梅屉。
路徑II
如果你的自律能力中等偏上值纱,那么你可以選擇的面就寬了。
這里我給你推薦另一個MOOC平臺坯汤,叫做Datacamp虐唠。
我第一次接觸Datacamp,是在2015年初惰聂。那時我在Coursera上選修杜克大學的統(tǒng)計學課程 “Statistical Inference”疆偿,配套的練習就在Datacamp上。
當時這個平臺就給我留下了非常深刻的印象搓幌,因為代碼的運行都采用了云環(huán)境翁脆。學習者不需要在本機安裝任何環(huán)境,一個支持HTML5標準的瀏覽器就能帶給你完整的學習體驗鼻种。
對初學者來說反番,這種入門方式太好了。要知道叉钥,許多人的學習熱情罢缸,就是被環(huán)境配置和依賴軟件包安裝的坑埋掉的。
兩年之后投队,Datacamp已經迭代得更為強大枫疆。你可以打開首頁的Data Scientist with Python這個學習路徑,查看其中已經提供的20門課程敷鸦。
這些課程涵蓋了從Python基礎息楔,到數據處理,直至人工智能和深度神經網絡的方方面面扒披。
所有的課程設計值依,都是短小精悍的。一般不超過4個小時碟案,就可以完成某一主題的學習愿险。這樣你學起來毫不費力,可以在相當短的時間內獲得反饋(練習題自動評分)和成就感(證書)价说。
這個平臺的課程辆亏,進度完全由學習者自己掌控风秤。所以我把它歸納為適合有一定自律能力的學習者。
它既可以給你即時的回饋扮叨,讓你時刻了解自己所處的位置進度缤弦,不會迷失方向,又能充分體驗自主學習的樂趣彻磁。
Datacamp的課程碍沐,一般都是第一部分免費開放。后面部分購買后才能解鎖學習兵迅。如果你對自己的學習能力和毅力有信心抢韭,可以購買一個完整時間段(例如一年)的課程。在此期間恍箭,所有平臺上的課程刻恭,你都可以學習,并且可以在通過后獲取證書扯夭。這樣的購買方案本身已經有優(yōu)惠鳍贾,而且每年都會有特定時段的大幅打折促銷,非常劃算交洗。建議放到購物車里面多關注骑科。
這是我在Datacamp拿到的深度學習框架Keras課程證書。確實只需要幾個小時的時間就能學完构拳。成就感還是蠻強的咆爽。
路徑III
前面提到的課程費用不菲。Coursera上每門課平均價格在49美元左右置森。對來自發(fā)展中國家的學生群體斗埂,Coursera可以提供助學金。你可以根據自己的需求如實填寫申請表凫海,來獲得資助呛凶。
對于自律能力強的同學來說,你的選擇可以變得非常簡單直接——可以用最受推崇的教材行贪,自己看書學習漾稀。
最受推崇的教材,其實是沒有的建瘫。正如西諺有云:
One man’s meat, is another man’s poison.
這個世界上崭捍,就沒有哪件東西大家都說好。但口碑非常好的教材是存在的暖混,例如這本起了個怪名字的《笨辦法學Python》(Learn Python the Hard Way)缕贡。
千萬不要被名稱迷惑,望文生義覺得這是一本糟糕的Python入門教程拣播。
恰恰相反晾咪,這本書的設計,非常適合人們的認知規(guī)律贮配。
我們學東西谍倦,由淺入深,由易到難泪勒,逐步遞進昼蛀。如果一味追求新知,那么之前學的東西會很快遺忘圆存。如果總是原地打轉叼旋,會帶來枯燥和無聊的感覺。還記得高三做的那一年卷子吧沦辙?
好的教科書夫植,應該在每一個章節(jié)給學習者提供新的知識和內容,提出足夠的挑戰(zhàn)油讯。但是挑戰(zhàn)性不能高到讓學習者產生挫敗感而放棄详民。同時也不能忽視在后續(xù)內容中把前面所學知識改換面目不斷螺旋上升式重復出現。只有這樣才能鞏固所學陌兑,讓學習者感受到基礎知識的作用沈跨,增強學習的愉悅感。
這么說有些抽象兔综,實際上有一本英語教材非常符合上述認知規(guī)律饿凛。就是我在課堂上和文章里反復推薦過的這一套教材:
《笨辦法學Python》也是一本這樣的書。你需要做的就是把書打開软驰,同時打開一個好用的代碼編輯器涧窒,開始按書中要求敲代碼、運行代碼碌宴、改代碼……
下圖是我當初學習時杀狡,照著這本書敲的代碼。
書中對Python基礎內容訓練的完備性贰镣,至今無出其右者呜象。
順便說一句,這本書有中文版哦碑隆。所以如果你英語不好恭陡,完全不用擔心。
囑咐一句上煤,英語真該好好學休玩。拓寬的不僅是你的眼界,也增加了你可能獲得的機會∷┌蹋考慮到仔細閱讀這部分的讀者都是自律性很強的人永部,我就不用多說了。
挑戰(zhàn)
三條基本的Python入門路徑講完了呐矾。通過對自己自律能力的清晰理解苔埋,相信你可以找到一種適合自己逐漸學習和掌握Python的方式。
但是完成了讀書和聽課蜒犯,是不是就完事大吉了组橄?
當然不是。
許多人在這里犯了錯誤罚随。他們以為拿到了證書玉工,或學完了教材,就算是真正掌握了Python淘菩。然后把這門語言丟棄在一旁遵班,去刷美劇和小說了。
相信我瞄勾,你會遺忘的费奸。
如果你對于長期不接觸的東西從不遺忘……去醫(yī)院檢查一下吧。
大部分人的記憶模式进陡,都是這個樣子的:
若不加以干涉愿阐,不出一個星期,你就能把學到的新知識幾乎忘光趾疚。
如果你不希望自己辛苦學來的Python知識被如此輕易浪費掉缨历,怎么辦?
實踐
你應該實踐糙麦。
實踐Python技能辛孵,未必一定要找個世界500強企業(yè)的核心技術部門,“996”工作N年才能完成赡磅。
你可以從生活中尋找各種有趣的問題魄缚,然后思考能否用Python編程來解決它。
我真正覺得自己初步掌握了Python焚廊,就是在完成了我的第一個github項目之后冶匹。
項目非常簡單,就是用Python作為膠水語言咆瘟,把一系列工具連接在一起嚼隘。可以把Markdown撰寫的內容隨心所欲一鍵變化成各種格式袒餐。
格式包括而不限于:
- PDF/LaTeX;
- Word;
- Bitcron文稿;
- MarkEditor文稿飞蛹;
- MWeb文稿谤狡;
- Bear文稿;
- TextBundle(可以導入MindNode, Ulysses等);
- Reveal.js幻燈;
- 發(fā)布版本Markdown(圖片一鍵至七牛圖床);
- 本地版本Markdown(簡書等遠程Markdown同步圖片至本地)卧檐;
- Day One日記墓懂。
其中部分功能我正陸續(xù)發(fā)布在github公開項目中,地址在這里泄隔。相應地拒贱,我也撰文做了介紹宛徊。
這個小項目佛嬉,我從2014年開始做。實話實說闸天,現在回頭看當時的代碼暖呕,簡直慘不忍睹。但是如果你逐漸對自己的代碼有了這種感覺苞氮,證明你在進步湾揽。
不要指望自己一出手就能寫出完美的代碼,要把“迭代”兩個字時刻裝在心里笼吟。這樣你才能容忍自己的笨拙库物,不斷提高。正如古人說的那句:
勤學似春起之苗贷帮,不見其增戚揭,而日有所長。
我在做這個項目的過程中撵枢,曾經遇到了中文編碼民晒、隱私信息存儲、文件名空格處理锄禽、絕對與相對路徑潜必、發(fā)布流程劃分、功能解耦合沃但、Web圖片地址附帶參數……等等一系列的問題磁滚。
通過回顧用git版本控制工具記載下來的日志,以及版本對比功能宵晚,你可以清楚看到自己是在何時利用什么方法解決了這些問題垂攘。然后別忘了,給自己工具箱里的新增小技能打個勾坝疼。
一個個小問題逐漸被你攻克的時候搜贤,你才能真正感受到所學技能的價值,并且點滴積累自信钝凶。
討論
你學會Python了嗎仪芒?你是用什么方法學會的唁影?可否把你的學習心得體會分享給大家?對本文推薦的資源和路徑掂名,你有什么不同的意見据沈,或者更好的建議?歡迎留言饺蔑,記錄下你的思考锌介,我們一起交流討論。
喜歡請點贊猾警。還可以微信關注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)孔祸。
如果你對數據科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數據科學发皿?》崔慧,里面還有更多的有趣問題及解法。