分享一個(gè)我認(rèn)為迄今為止最為短時(shí)高效的Python學(xué)習(xí)方法

本文根據(jù)多年的Python軟件開發(fā)以及數(shù)據(jù)分析經(jīng)驗(yàn)總結(jié)而成,希望能夠幫助想要快速學(xué)習(xí)上手Python,或者已經(jīng)有一定基礎(chǔ)想要更加系統(tǒng)化提高Python技術(shù),但又陷在龐雜的資料推薦中無(wú)所適從的你


首先,你要明確你學(xué)Python是為了做什么,學(xué)Python是為了做什么, 為了做什么,做什么

計(jì)算機(jī)技術(shù)的迭代非常之快,而網(wǎng)上現(xiàn)存推薦的Python學(xué)習(xí)資料非常多而且雜,動(dòng)則千余字,上GB的資料大全,學(xué)習(xí)路徑,思維導(dǎo)圖。但是,你會(huì)發(fā)現(xiàn)真的開始學(xué)的時(shí)候,要么堅(jiān)持不下來(lái),學(xué)不下去,要么真的花了大幾個(gè)月的時(shí)間按照資料一個(gè)個(gè)啃了,卻根本沒有用。我曾經(jīng)還看到一篇答案建議每天花1小時(shí)瀏覽技術(shù)博客網(wǎng)站進(jìn)行隨機(jī)的Python技術(shù)的學(xué)習(xí)掌握,堅(jiān)持就是勝利什么的。真的,我堅(jiān)持了一段時(shí)間,血與淚的教訓(xùn),毛用沒有。。。

要牢記,Python只是一個(gè)工具,不是目的。不要變成一個(gè)學(xué)習(xí)資料的收藏狂,越來(lái)越多的資料堆砌只會(huì)讓你越看越焦慮。根據(jù)多年的Python軟件開發(fā)以及數(shù)據(jù)分析經(jīng)驗(yàn),我想給大家分享一個(gè)迄今為止我認(rèn)為的最為有效的學(xué)習(xí)Python的路徑方式:

經(jīng)過經(jīng)驗(yàn)總結(jié)出來(lái)的最有效的Python學(xué)習(xí)路徑

我當(dāng)年就是用這個(gè)方法學(xué)了Python,R,并且用不到1個(gè)月的時(shí)間完成計(jì)劃3個(gè)月交接的項(xiàng)目的。根據(jù)經(jīng)驗(yàn),按這幾個(gè)步驟走下來(lái),不需要再焦慮地各種尋找資料,花費(fèi)大量時(shí)間去制定計(jì)劃地沒有什么效率地去為了學(xué)習(xí)而學(xué)習(xí)了,最多只需要10天的時(shí)間,你就可以直接開始上手完成項(xiàng)目了。至于編輯器,開發(fā)軟件,等等在這篇回答里面就不贅述了,VScode,PyCharm,Sublime, Anaconda挑一個(gè)都可以,推薦Anaconda,因?yàn)楹?jiǎn)單易上手并且環(huán)境什么的都幫你配置好了。

接下來(lái),讓我們來(lái)看看具體每一步應(yīng)當(dāng)怎么做:

1. 明確自己學(xué)Python是為了做什么

再?gòu)?qiáng)調(diào)一遍,Python只是一個(gè)工具,不是目的,你一定要明確自己學(xué)Python是為了做什么,一定要有一個(gè)或者多個(gè)明確的目的。比如,可能你現(xiàn)在的想法是:我學(xué)Python是為了找好工作,OK,但這個(gè)目的不具體,再往下想一層,我學(xué)Python是 (1)為了通過數(shù)據(jù)分析師的面試在金融行業(yè)找到數(shù)據(jù)分析師的工作,或 (2)?為了通過軟件工程師的面試,在互聯(lián)網(wǎng)行業(yè)找到軟件開發(fā)工程師的工作。都是學(xué)Python為了找工作,但是顯而易見,這兩種不同的學(xué)習(xí)目的匹配的學(xué)習(xí)方式有著天壤之別。當(dāng)有了具體的目的出現(xiàn)之后,你就會(huì)發(fā)現(xiàn)無(wú)論是搜尋資料或者是在看教材的時(shí)候,腦中都會(huì)有意識(shí)地去主動(dòng)學(xué)習(xí)

簡(jiǎn)單歸納一下,一般而言,學(xué)習(xí)Python的目的可以大致分為以下兩種:

(1) 在校計(jì)算機(jī)學(xué)生,或轉(zhuǎn)專業(yè)計(jì)算機(jī)的學(xué)生,主要目的是想系統(tǒng)學(xué)習(xí)計(jì)算機(jī)知識(shí)。相信如果是想要系統(tǒng)學(xué)習(xí)計(jì)算機(jī)知識(shí)的話,Python肯定不是你唯一的選項(xiàng),Java,C++可能是更多計(jì)算機(jī)科學(xué)教材的首選。在這種情況下,如果你在校,有系統(tǒng)的教學(xué)計(jì)劃的話,我的建議是,跟著教學(xué)計(jì)劃,用廣泛涉獵來(lái)精學(xué)課程以及項(xiàng)目。不要糾結(jié)于哪個(gè)教材好,哪個(gè)框架新,是用《算法導(dǎo)論》第三版,還是用《清華大學(xué)計(jì)算機(jī)系列教材:數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》,跟著教學(xué)計(jì)劃走最大的收益來(lái)自于老師,教材,同學(xué),大項(xiàng)目的多維配合,最大程度上開發(fā)你的想象力,完善知識(shí)體系架構(gòu)。當(dāng)然,如果教學(xué)計(jì)劃奇葩地離奇,那另當(dāng)別論。。

(2) 非計(jì)算機(jī)專業(yè)學(xué)生,想用Python做一些真正的東西,有效地提升工作,生活效率。大部分的人應(yīng)當(dāng)歸于此類,可能你之前從沒有接觸過編程,Python可能是你的第一個(gè)編程語(yǔ)言,人人都在說Python,人人都在談Python,工作的晉升,轉(zhuǎn)崗都需要Python作為利器的幫助,所以,你想要快速學(xué)習(xí)上手Python來(lái)真正做一些事情。對(duì)于抱著此類目的的朋友們,這篇文章非常適合你們,同時(shí),在進(jìn)行到下一個(gè)步驟前,請(qǐng)?jiān)俣鄦栕约簬讉€(gè)問題,要搞清楚,自己究竟要用Python做什么。舉兩個(gè)簡(jiǎn)單的例子:

我是一個(gè)金融行業(yè)的數(shù)據(jù)分析師,之前都是用Excel表格在進(jìn)行數(shù)據(jù)的處理,分析,做題以及PPT,每周的工作強(qiáng)度很大,不僅僅因?yàn)閿?shù)據(jù)繁雜分析辛苦,更主要的是 1) 每天的Excel處理相同的流程很浪費(fèi)時(shí)間; 2) Excel的計(jì)算功能薄弱,常常要引用好多表格,往往會(huì)搞錯(cuò)算錯(cuò); 3) 聽說Python可以很方便地跑一些機(jī)器學(xué)習(xí)的東西,想著能不能試一下

很容易看出,作為金融行業(yè)的數(shù)據(jù)分析師,目前有三大需求,不同的需求需要進(jìn)行不同的主題學(xué)習(xí),需求 1) 需要掌握Python的基本操作,OS,CSV包的調(diào)用以及Python和Excel的communication, 需求 2)需要掌握Pandas,Numpy包的運(yùn)算以及Python基本框架的掌握; 需求 3) 需要scikit-learn, tensorflow, keras以及一些作圖相關(guān)的Python知識(shí)

我是一個(gè)微信公眾號(hào)運(yùn)營(yíng),在公司分管著5個(gè)公眾號(hào),需要 1) 負(fù)責(zé)粉絲的維護(hù); 2) 文章的管理; 3) 流量的分析管控。這些流程經(jīng)常需要花大量的時(shí)間,并且有時(shí)候會(huì)出現(xiàn)一些錯(cuò)誤

這里和上面的分析流程一樣,我們會(huì)發(fā)現(xiàn),只要掌握:

Python的基本框架?+ 不同的主題學(xué)習(xí)

在學(xué)會(huì)了Python的基本框架的基礎(chǔ)上,加上根據(jù)不同的主題需求進(jìn)行有針對(duì)性的學(xué)習(xí)了解,我們就可以快速運(yùn)用Python作為利器完成各種不同的任務(wù)

因此,在接下來(lái),我們重點(diǎn)討論,如何學(xué)習(xí)搭建基礎(chǔ)框架,以及如何快速進(jìn)行不同的主題學(xué)習(xí)

2. 搭建基礎(chǔ)框架

在明確了自己學(xué)習(xí)Python的目的之后,我們首先開始搭建基礎(chǔ)框架。這一步驟最為重要,但又不能花大量時(shí)間陷在其中?;A(chǔ)框架不可能一步到位,需要少量多餐,先搭大骨架,然后填小骨架。這里推薦用理論+實(shí)踐的方式快速搭建基礎(chǔ)框架:

理論:推薦 (1) 廖雪峰的Python教程; (2) Think Python: An Introduction to Software Design - Allen B. Downey。這兩個(gè)材料,廖雪峰的Python教程是網(wǎng)頁(yè)版的簡(jiǎn)單Python入門介紹,Think Python則是一本經(jīng)典的Python以及計(jì)算機(jī)科學(xué)的入門教材。

1.?Python教程?

2.?Think Python?

實(shí)踐:實(shí)踐其實(shí)就是開寫,多寫代碼,才會(huì)對(duì)不同的代碼有感覺。但是很多新手會(huì)在第一步配置環(huán)境,安裝編譯器上面卡住,從而浪費(fèi)了時(shí)間并且心生畏懼。對(duì)此,推薦DataCamp這個(gè)網(wǎng)站(此處絕非廣告),只要有一個(gè)瀏覽器打開網(wǎng)站,就可以直接開始寫代碼,無(wú)需進(jìn)行復(fù)雜的環(huán)境配置。

DataCamp 操作界面

在搭建框架環(huán)節(jié),關(guān)注只要跟著網(wǎng)站節(jié)奏完成以下四門課成就足夠了解基礎(chǔ)框架結(jié)構(gòu)了:

1.?https://learn.datacamp.com/courses/intro-to-python-for-data-science

2.?https://learn.datacamp.com/courses/intermediate-python

3.?https://learn.datacamp.com/courses/data-manipulation-with-pandas

4.?https://learn.datacamp.com/courses/introduction-to-data-science-in-python

關(guān)于學(xué)習(xí)方法的路徑總結(jié)圖如下,按照這個(gè)簡(jiǎn)單有效的路徑總結(jié)圖過一遍,很快你就能很好的搭建好Python知識(shí)的基本框架:

基礎(chǔ)框架搭建的路徑總結(jié)圖

3. 針對(duì)主題,用入門資料快速上手

從這步開始,不同的任務(wù)需求開始進(jìn)行不同的分化,正如第一步的時(shí)候已經(jīng)思考過的,不同主題需要不同的學(xué)習(xí)資料。當(dāng)已經(jīng)有了基礎(chǔ)框架的打底后,你只需要根據(jù)不同的主題需求,找到以下4種類型的資料:

例子 (Examples):?首先,在網(wǎng)上搜索你要做的東西以及相應(yīng)的例子,比如,你想做一個(gè)機(jī)器學(xué)習(xí)分析股票的應(yīng)用或者程序,那么就直接搜“如果用機(jī)器學(xué)習(xí)預(yù)測(cè)股票價(jià)格的波動(dòng)”,網(wǎng)上的大把的博客例子你都可以作為參考,在搜索的時(shí)候,最重要的注意的東西就是他們用了什么包,以及他們的分析思路框架是什么?

包 (Package):?在Python當(dāng)中一個(gè)非常重要的內(nèi)容就是包的使用,作為一個(gè)社區(qū)極其龐大的最為流行的編程語(yǔ)言,Python擁有數(shù)量龐大的包,根據(jù)不同場(chǎng)景,調(diào)用不同的包是最快能夠上手項(xiàng)目的方法,比如,你想做網(wǎng)絡(luò)爬蟲,那么beautifulsoup4, selenium就是必備包,數(shù)據(jù)科學(xué):pandas, numpy, matplotlib, sklearn,統(tǒng)計(jì)分析:PC,深度學(xué)習(xí): tensorflow, keras。根據(jù)應(yīng)用內(nèi)容的不同,市場(chǎng)上有成千上萬(wàn)的包,在前一步例子的搜集后,找相應(yīng)的包就相對(duì)比較輕松了

導(dǎo)言 (Tutorial):?在有了包 (Package)的列表之后,相應(yīng)的,你可以開始搜索他的導(dǎo)言用來(lái)幫助你熟悉這個(gè)包的應(yīng)用以及如何解決問題,一般而言,導(dǎo)言都是清晰簡(jiǎn)單易懂的幾個(gè)小項(xiàng)目,過一兩遍,記下來(lái)地址就可以了

參考文檔 (Documentation):這個(gè)可以是Documentation,或者是相應(yīng)的教科書,不需要看,就放在旁邊,當(dāng)真正做起項(xiàng)目來(lái)有一些非常難調(diào)試難解決的bug的時(shí)候,往往回歸參考文檔可以帶來(lái)意想不到的收獲

接下來(lái),準(zhǔn)備工作都完成了,就可以開始直接干了

4. 直接做項(xiàng)目,在做當(dāng)中學(xué)

當(dāng)經(jīng)過了前三步之后,現(xiàn)在的你,明確知道自己想要做什么,有了對(duì)Python基本框架的認(rèn)知,針對(duì)具體主題已經(jīng)有了四大資料,接下來(lái),根據(jù)要做的事,直接就開始上手寫代碼了。

一開始,你可能無(wú)從下手,可以先嘗試從模仿開始,模仿不等同于直接復(fù)制黏貼,這一是對(duì)原創(chuàng)者的不負(fù)責(zé)任,二是對(duì)自己的不負(fù)責(zé)任,因?yàn)橹苯拥膹?fù)制粘貼對(duì)于你代碼技術(shù)的提升并無(wú)幫助。

接下來(lái),如果有遇到想要實(shí)現(xiàn)卻不知道怎么實(shí)現(xiàn)的功能的時(shí)候,Google, Baidu,?Stackoverflow?這些網(wǎng)站都是非常好的資料來(lái)源。

繼續(xù)寫下去,恭喜你,你遇到bug了,你會(huì)發(fā)現(xiàn)自己的程序跑不了,或者結(jié)果總出錯(cuò),這個(gè)時(shí)候不要慌張,因?yàn)檫@個(gè)是必經(jīng)之路,同時(shí)也意味著你的代碼能力將得到很大的提升,對(duì)于bug的解決辦法,還是查,復(fù)制錯(cuò)誤代碼到搜索引擎,看看別人是不是有同樣的問題,他們是怎么解決的。當(dāng)你成功解決掉一個(gè)錯(cuò)誤bug后,你往往會(huì)發(fā)現(xiàn)自己對(duì)編程的理解又上了一層樓

最后,改。就像是好文章永遠(yuǎn)不是寫出來(lái)的,而是改出來(lái)的。你的代碼在一開始可能看起來(lái)會(huì)非?;靵y并且沒有什么邏輯,可能到處都是for loop,if...else...,沒關(guān)系,你只需要把代碼改到自己下次打開文檔的時(shí)候能夠理解,就可以了。不需要追求完美。

5. 在項(xiàng)目中查缺補(bǔ)漏,回歸基礎(chǔ)框架的完善

通過了以上4步之后,恭喜你,你已經(jīng)可以快速做出一份漂亮的Python項(xiàng)目了。讓我們?cè)俅位氐街暗目偨Y(jié)技術(shù)圖:

經(jīng)過經(jīng)驗(yàn)總結(jié)出來(lái)的最有效的Python學(xué)習(xí)路徑

每一次做完項(xiàng)目之后,請(qǐng)歸檔總結(jié)。這有助于你的技術(shù)力量的提高,以及技術(shù)力量的積累。在完成了諸如機(jī)器學(xué)習(xí)分析股票價(jià)格項(xiàng)目后,稍微花一點(diǎn)時(shí)間總結(jié)一下,你很容易能找出自己知識(shí)框架結(jié)構(gòu)中的不足,比如函數(shù)功能的理解不透徹,或類的定義不明確,諸如此類,通過一次次項(xiàng)目,一次次的總結(jié),你會(huì)發(fā)現(xiàn)自己的Python能力會(huì)呈現(xiàn)一路上漲的趨勢(shì)。

如果你看到了這里,首先,恭喜!你用寶貴的10分鐘時(shí)間為你之后的Python學(xué)習(xí)省下了數(shù)百個(gè)小時(shí)。其次,感謝您的用心閱讀,歡迎點(diǎn)贊收藏!

歡迎掃描二維碼關(guān)注我們:

微信公眾號(hào):數(shù)據(jù)干貨?http://weixin.qq.com/r/VBFzawDE-F2DrUQI90RG?(二維碼自動(dòng)識(shí)別)

知乎:數(shù)據(jù)干貨

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容