本文根據(jù)多年的Python軟件開發(fā)以及數(shù)據(jù)分析經(jīng)驗總結而成涕癣,希望能夠幫助想要快速學習上手Python,或者已經(jīng)有一定基礎想要更加系統(tǒng)化提高Python技術协怒,但又陷在龐雜的資料推薦中無所適從的你
首先涝焙,你要明確你學Python是為了做什么,學Python是為了做什么孕暇, 為了做什么仑撞,做什么
計算機技術的迭代非常之快,而網(wǎng)上現(xiàn)存推薦的Python學習資料非常多而且雜妖滔,動則千余字隧哮,上GB的資料大全,學習路徑座舍,思維導圖沮翔。但是,你會發(fā)現(xiàn)真的開始學的時候曲秉,要么堅持不下來采蚀,學不下去疲牵,要么真的花了大幾個月的時間按照資料一個個啃了,卻根本沒有用榆鼠。我曾經(jīng)還看到一篇答案建議每天花1小時瀏覽技術博客網(wǎng)站進行隨機的Python技術的學習掌握瑰步,堅持就是勝利什么的。真的璧眠,我堅持了一段時間缩焦,血與淚的教訓,毛用沒有责静。袁滥。。
要牢記灾螃,Python只是一個工具题翻,不是目的。不要變成一個學習資料的收藏狂腰鬼,越來越多的資料堆砌只會讓你越看越焦慮嵌赠。根據(jù)多年的Python軟件開發(fā)以及數(shù)據(jù)分析經(jīng)驗,我想給大家分享一個迄今為止我認為的最為有效的學習Python的路徑方式:
我當年就是用這個方法學了Python熄赡,R姜挺,并且用不到1個月的時間完成計劃3個月交接的項目的。根據(jù)經(jīng)驗彼硫,按這幾個步驟走下來炊豪,不需要再焦慮地各種尋找資料,花費大量時間去制定計劃地沒有什么效率地去為了學習而學習了拧篮,最多只需要10天的時間词渤,你就可以直接開始上手完成項目了。至于編輯器串绩,開發(fā)軟件缺虐,等等在這篇回答里面就不贅述了,VScode礁凡,PyCharm高氮,Sublime, Anaconda挑一個都可以把篓,推薦Anaconda纫溃,因為簡單易上手并且環(huán)境什么的都幫你配置好了。
接下來韧掩,讓我們來看看具體每一步應當怎么做:
1. 明確自己學Python是為了做什么
再強調一遍,Python只是一個工具窖铡,不是目的疗锐,你一定要明確自己學Python是為了做什么坊谁,一定要有一個或者多個明確的目的。比如滑臊,可能你現(xiàn)在的想法是:我學Python是為了找好工作口芍,OK,但這個目的不具體雇卷,再往下想一層鬓椭,我學Python是 (1)為了通過數(shù)據(jù)分析師的面試在金融行業(yè)找到數(shù)據(jù)分析師的工作,或 (2)?為了通過軟件工程師的面試关划,在互聯(lián)網(wǎng)行業(yè)找到軟件開發(fā)工程師的工作小染。都是學Python為了找工作,但是顯而易見贮折,這兩種不同的學習目的匹配的學習方式有著天壤之別裤翩。當有了具體的目的出現(xiàn)之后,你就會發(fā)現(xiàn)無論是搜尋資料或者是在看教材的時候调榄,腦中都會有意識地去主動學習
簡單歸納一下踊赠,一般而言,學習Python的目的可以大致分為以下兩種:
(1) 在校計算機學生每庆,或轉專業(yè)計算機的學生筐带,主要目的是想系統(tǒng)學習計算機知識。相信如果是想要系統(tǒng)學習計算機知識的話缤灵,Python肯定不是你唯一的選項烫堤,Java,C++可能是更多計算機科學教材的首選凤价。在這種情況下鸽斟,如果你在校,有系統(tǒng)的教學計劃的話利诺,我的建議是富蓄,跟著教學計劃,用廣泛涉獵來精學課程以及項目慢逾。不要糾結于哪個教材好立倍,哪個框架新,是用《算法導論》第三版侣滩,還是用《清華大學計算機系列教材:數(shù)據(jù)結構(C語言版)》口注,跟著教學計劃走最大的收益來自于老師,教材君珠,同學寝志,大項目的多維配合,最大程度上開發(fā)你的想象力,完善知識體系架構材部。當然毫缆,如果教學計劃奇葩地離奇,那另當別論乐导。苦丁。
(2) 非計算機專業(yè)學生,想用Python做一些真正的東西物臂,有效地提升工作旺拉,生活效率。大部分的人應當歸于此類棵磷,可能你之前從沒有接觸過編程蛾狗,Python可能是你的第一個編程語言,人人都在說Python泽本,人人都在談Python淘太,工作的晉升,轉崗都需要Python作為利器的幫助规丽,所以蒲牧,你想要快速學習上手Python來真正做一些事情。對于抱著此類目的的朋友們赌莺,這篇文章非常適合你們冰抢,同時,在進行到下一個步驟前艘狭,請再多問自己幾個問題挎扰,要搞清楚,自己究竟要用Python做什么巢音。舉兩個簡單的例子:
我是一個金融行業(yè)的數(shù)據(jù)分析師遵倦,之前都是用Excel表格在進行數(shù)據(jù)的處理,分析官撼,做題以及PPT梧躺,每周的工作強度很大,不僅僅因為數(shù)據(jù)繁雜分析辛苦傲绣,更主要的是 1) 每天的Excel處理相同的流程很浪費時間; 2) Excel的計算功能薄弱掠哥,常常要引用好多表格,往往會搞錯算錯; 3) 聽說Python可以很方便地跑一些機器學習的東西秃诵,想著能不能試一下
很容易看出续搀,作為金融行業(yè)的數(shù)據(jù)分析師,目前有三大需求菠净,不同的需求需要進行不同的主題學習禁舷,需求 1) 需要掌握Python的基本操作彪杉,OS,CSV包的調用以及Python和Excel的communication, 需求 2)需要掌握Pandas,Numpy包的運算以及Python基本框架的掌握; 需求 3) 需要scikit-learn, tensorflow, keras以及一些作圖相關的Python知識
我是一個微信公眾號運營榛了,在公司分管著5個公眾號在讶,需要 1) 負責粉絲的維護; 2) 文章的管理; 3) 流量的分析管控煞抬。這些流程經(jīng)常需要花大量的時間霜大,并且有時候會出現(xiàn)一些錯誤
這里和上面的分析流程一樣,我們會發(fā)現(xiàn)革答,只要掌握:
Python的基本框架?+ 不同的主題學習
在學會了Python的基本框架的基礎上战坤,加上根據(jù)不同的主題需求進行有針對性的學習了解,我們就可以快速運用Python作為利器完成各種不同的任務
因此残拐,在接下來途茫,我們重點討論,如何學習搭建基礎框架溪食,以及如何快速進行不同的主題學習
2. 搭建基礎框架
在明確了自己學習Python的目的之后囊卜,我們首先開始搭建基礎框架。這一步驟最為重要错沃,但又不能花大量時間陷在其中栅组。基礎框架不可能一步到位枢析,需要少量多餐玉掸,先搭大骨架,然后填小骨架醒叁。這里推薦用理論+實踐的方式快速搭建基礎框架:
理論:推薦 (1) 廖雪峰的Python教程; (2) Think Python: An Introduction to Software Design - Allen B. Downey司浪。這兩個材料,廖雪峰的Python教程是網(wǎng)頁版的簡單Python入門介紹把沼,Think Python則是一本經(jīng)典的Python以及計算機科學的入門教材啊易。
1.?Python教程?
實踐:實踐其實就是開寫,多寫代碼饮睬,才會對不同的代碼有感覺租谈。但是很多新手會在第一步配置環(huán)境,安裝編譯器上面卡住续捂,從而浪費了時間并且心生畏懼垦垂。對此,推薦DataCamp這個網(wǎng)站(此處絕非廣告)牙瓢,只要有一個瀏覽器打開網(wǎng)站劫拗,就可以直接開始寫代碼,無需進行復雜的環(huán)境配置矾克。
在搭建框架環(huán)節(jié)页慷,關注只要跟著網(wǎng)站節(jié)奏完成以下四門課成就足夠了解基礎框架結構了:
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
關于學習方法的路徑總結圖如下,按照這個簡單有效的路徑總結圖過一遍,很快你就能很好的搭建好Python知識的基本框架:
3. 針對主題酒繁,用入門資料快速上手
從這步開始滓彰,不同的任務需求開始進行不同的分化,正如第一步的時候已經(jīng)思考過的州袒,不同主題需要不同的學習資料揭绑。當已經(jīng)有了基礎框架的打底后,你只需要根據(jù)不同的主題需求郎哭,找到以下4種類型的資料:
例子 (Examples):?首先他匪,在網(wǎng)上搜索你要做的東西以及相應的例子,比如夸研,你想做一個機器學習分析股票的應用或者程序邦蜜,那么就直接搜“如果用機器學習預測股票價格的波動”,網(wǎng)上的大把的博客例子你都可以作為參考亥至,在搜索的時候悼沈,最重要的注意的東西就是他們用了什么包,以及他們的分析思路框架是什么姐扮?
包 (Package):?在Python當中一個非常重要的內容就是包的使用絮供,作為一個社區(qū)極其龐大的最為流行的編程語言,Python擁有數(shù)量龐大的包溶握,根據(jù)不同場景杯缺,調用不同的包是最快能夠上手項目的方法,比如睡榆,你想做網(wǎng)絡爬蟲萍肆,那么beautifulsoup4, selenium就是必備包,數(shù)據(jù)科學:pandas, numpy, matplotlib, sklearn胀屿,統(tǒng)計分析:PC塘揣,深度學習: tensorflow, keras。根據(jù)應用內容的不同宿崭,市場上有成千上萬的包亲铡,在前一步例子的搜集后,找相應的包就相對比較輕松了
導言 (Tutorial):?在有了包 (Package)的列表之后葡兑,相應的奖蔓,你可以開始搜索他的導言用來幫助你熟悉這個包的應用以及如何解決問題,一般而言讹堤,導言都是清晰簡單易懂的幾個小項目吆鹤,過一兩遍,記下來地址就可以了
參考文檔 (Documentation):這個可以是Documentation洲守,或者是相應的教科書疑务,不需要看沾凄,就放在旁邊,當真正做起項目來有一些非常難調試難解決的bug的時候知允,往往回歸參考文檔可以帶來意想不到的收獲
接下來撒蟀,準備工作都完成了,就可以開始直接干了
4. 直接做項目温鸽,在做當中學
當經(jīng)過了前三步之后保屯,現(xiàn)在的你,明確知道自己想要做什么嗤朴,有了對Python基本框架的認知配椭,針對具體主題已經(jīng)有了四大資料虫溜,接下來雹姊,根據(jù)要做的事,直接就開始上手寫代碼了衡楞。
一開始吱雏,你可能無從下手,可以先嘗試從模仿開始瘾境,模仿不等同于直接復制黏貼歧杏,這一是對原創(chuàng)者的不負責任,二是對自己的不負責任迷守,因為直接的復制粘貼對于你代碼技術的提升并無幫助犬绒。
接下來,如果有遇到想要實現(xiàn)卻不知道怎么實現(xiàn)的功能的時候兑凿,Google, Baidu,?Stackoverflow?這些網(wǎng)站都是非常好的資料來源凯力。
繼續(xù)寫下去,恭喜你礼华,你遇到bug了咐鹤,你會發(fā)現(xiàn)自己的程序跑不了,或者結果總出錯圣絮,這個時候不要慌張祈惶,因為這個是必經(jīng)之路,同時也意味著你的代碼能力將得到很大的提升扮匠,對于bug的解決辦法捧请,還是查,復制錯誤代碼到搜索引擎棒搜,看看別人是不是有同樣的問題疹蛉,他們是怎么解決的。當你成功解決掉一個錯誤bug后帮非,你往往會發(fā)現(xiàn)自己對編程的理解又上了一層樓
最后氧吐,改讹蘑。就像是好文章永遠不是寫出來的,而是改出來的筑舅。你的代碼在一開始可能看起來會非匙浚混亂并且沒有什么邏輯,可能到處都是for loop翠拣,if...else...版仔,沒關系,你只需要把代碼改到自己下次打開文檔的時候能夠理解误墓,就可以了蛮粮。不需要追求完美。
5. 在項目中查缺補漏谜慌,回歸基礎框架的完善
通過了以上4步之后然想,恭喜你,你已經(jīng)可以快速做出一份漂亮的Python項目了欣范。讓我們再次回到之前的總結技術圖:
每一次做完項目之后变泄,請歸檔總結。這有助于你的技術力量的提高恼琼,以及技術力量的積累妨蛹。在完成了諸如機器學習分析股票價格項目后,稍微花一點時間總結一下晴竞,你很容易能找出自己知識框架結構中的不足蛙卤,比如函數(shù)功能的理解不透徹,或類的定義不明確噩死,諸如此類颤难,通過一次次項目,一次次的總結甜滨,你會發(fā)現(xiàn)自己的Python能力會呈現(xiàn)一路上漲的趨勢乐严。
如果你看到了這里,首先衣摩,恭喜昂验!你用寶貴的10分鐘時間為你之后的Python學習省下了數(shù)百個小時。其次艾扮,感謝您的用心閱讀既琴,歡迎點贊收藏!
歡迎掃描二維碼關注我們:
微信公眾號:數(shù)據(jù)干貨?http://weixin.qq.com/r/VBFzawDE-F2DrUQI90RG?(二維碼自動識別)
知乎:數(shù)據(jù)干貨