---------------------------------------
1. 總體來講,找?guī)妆究孔V的書,由淺入深,邊看邊練。
我是從去年下半年開始學習Python / ML / CV,利用每天晚上22:00- 01:00的業(yè)余時間,每天進行,幾乎很少間斷。
2. 以下是我自己訓(xùn)練Python的一些小經(jīng)驗。
2.1 基礎(chǔ)入門
當然是因工作需要而學,所以有傾向性,會以Data Analysis或者現(xiàn)在時髦的說法叫Data Science方向為主。
01-《a byte of python 中文版》絕對入門級,掃盲,零基礎(chǔ)的人都可以看。當時我大概花了三天擼完,照著敲了一遍代碼。稍微有點感覺了。
02- 看斯坦福的在線教程,入門級。Python Numpy Tutorial英文好的同學可以看看,這個教程我看的不多。主要是因為自己喜歡看紙質(zhì)書。
03-同時繼續(xù)夯實python語言本身,建議看《Python Cookbook 中文版》,我也時不時的會看
2.2 以上基本概念弄熟練后。接下來看你要做什么了?選個方向。
- 1、Web開發(fā)方向
那么建議看簡單的框架flask,那么推薦《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》。(我只掃一眼目錄,因主要方向不在此處)
- 2、數(shù)據(jù)分析方向
建議看《利用Python進行大數(shù)據(jù)分析》,非常棒!強烈建議看。主要講Pandas庫,講數(shù)據(jù)分析。很多金融巨頭,用Python進行數(shù)據(jù)分析。引用大神Kirat的話說,“它正在快速代替主流金融機構(gòu)中使用的工具和語言,并成為事實上的標準”。我花了1個月左右時間,一個字一個字啃完。同時邊敲代碼。
- 3、科學計算方向
建議看《python_sci用python進行科學計算》。
- 4、AI的機器學習方向
建議看《Hands-on ML with Scikit-learn and TensorFlow》,還沒有中文版,我在看。若有同學需要中文版,可以告知我,我視需求而定,是否將其翻譯成中文版。
- 5、AI的計算機視覺方向
建議看《Python計算機視覺編程》,我還在看,雖然看得不多。
- 6、網(wǎng)絡(luò)爬蟲方向
這里不多作介紹。
2.3 夯實:若有同學對【數(shù)據(jù)分析方向】感興趣
這里強烈推薦Yupeng Jiang博士撰寫的《三天搞定Python基本功》,只用三天時間可以了解Python數(shù)據(jù)分析的廣度和所涉及的概念,是誠意之作,十分難得!因原文是用英文寫成,給英國倫敦大學學院的本科生、研究生上課用的。我將其翻譯成了中文,便于自己將來快速復(fù)習用。在征得jiang博士的同意后,分享給大家。鏈接:
英文原版可見鏈接:三天搞定Python基本功
2.4. 進階:順著【數(shù)據(jù)分析】這個方向,把金融類的數(shù)據(jù)分析搞透徹。
在看完《利用Python進行數(shù)據(jù)分析》之后,強烈建議看《Python 金融大數(shù)據(jù)分析》一書。
我是自學的Python。從對Python一無所知,到在博客上寫Python相關(guān)的系列文章(Python快速教程),前后有將近三年的時間。期間有不少門檻,但也充滿樂趣。樂趣是自學的最大動力。Python是一個容易編寫,又功能強大的動態(tài)語言。使用Python,可以在短短幾行內(nèi)實現(xiàn)相當強大的功能。通過自己寫一些小程序,迅速的看到效果,發(fā)現(xiàn)問題,這是學習Python最便利的地方。
在學習Python之前,可以了解一下Python的特點和設(shè)計理念(Python簡史)。在設(shè)計之初,Python就試圖在復(fù)雜、強大的C和方便、功能有限的bash之間,找到一個平衡點。Python的語法比較簡單,用起來很方便,因此有些人把它當作腳本語言使用。但Python要比普通的腳本語言功能強大很多。通過良好的可拓展性,Python的功能相當全面,應(yīng)用面很廣:web服務(wù)器,網(wǎng)絡(luò)爬蟲,科學運算,機器學習,游戲開發(fā)…… 當然,天下沒有免費的午餐,也沒有完美的語言,Python為了達到上述兩點,有意的犧牲了Python的運行速度。如果你是在編寫高業(yè)務(wù)量、運算量的程序,可能Python并不是最好的選擇。
Python的主體內(nèi)容大致可以分為以下幾個部分:
面向過程。包括基本的表達式,if語句,循環(huán),函數(shù)等。如果你有任何一個語言的基礎(chǔ),特別是C語言的基礎(chǔ),這一部分就是分分鐘了解下Python規(guī)定的事。如果你沒有語言基礎(chǔ),建議從Python Programming為參考書。這本書是計算機導(dǎo)論性質(zhì)的教材,不需要編程基礎(chǔ)。
面向?qū)ο?,包括面向?qū)ο蟮幕靖拍?,類,方法,屬性,繼承等。Python是面向?qū)ο蟮恼Z言,“一切皆對象”。面向?qū)ο笫呛茈y回避的。Python的面向?qū)ο髾C制是相對比較松散的,不像Java和C++那么嚴格。好處是容易學,容易維護,壞處是容易犯錯。
應(yīng)用功能,包括IO,數(shù)據(jù)容器如表和詞典,內(nèi)置函數(shù),模塊,格式化字符串等。這些在其它語言中也經(jīng)常出現(xiàn),有比較強的實用性。
高級語法,上下文管理器,列表推導(dǎo),函數(shù)式編程,裝飾器,特殊方法等。這些語法并不是必須的,你可以用前面比較基礎(chǔ)的語法實現(xiàn)。學這些高級語法的主要原因是:它們太方便了。比如列表推導(dǎo)一行可以做到的事情,用循環(huán)結(jié)構(gòu)要好幾行才行。
學習Python主體最好的參考書是Learning Python,它非常全面,滿滿的都是干貨。雖然很厚,讀起來并不難讀。另一個是參考官網(wǎng)的教程Python.org
Python號稱“Battery Included",也就是說,功能都已經(jīng)包含在了語言中。這一自信,主要來自Python功能全面的標準庫。標準庫提供了許多功能模塊,每個模塊是某一方面功能的接口,比如文件管理,操作系統(tǒng)互動,字符處理,網(wǎng)絡(luò)接口,編碼加密等等。
The Python Standard Library中,你可以看到標準庫模塊的列表。這里也是標準庫最好的學習資料。如果想找書,我只看到過兩本關(guān)于標準庫的:
Python Essential Reference
The Python Standard Library by Example
說實話,這兩本都不算很好的標準庫教材,而標準庫的參考書也確實很難寫。因為標準庫只是調(diào)用功能的接口,最終實現(xiàn)的是Python和系統(tǒng)的互動。這需要很強的系統(tǒng)知識,比如文件系統(tǒng)知識,進程管理,http原理,socket編程,數(shù)據(jù)庫原理…… 如果這些知識都已經(jīng)準備充分,那么標準庫學起來完全沒有難度。然而,這些背景知識的學習并非一朝一夕的事情。
更深入的Python學習也是如此,需要大量的背景知識,而不是Python自身。如果你對Python的編譯和運行機制感興趣,你可以往Python底層這一深度挖。如果你對應(yīng)用感興趣,你可以多學習幾個自己用的上的第三方包。學到這個時候,就是要自己探索的廣闊空間了。
基本上,學過主體內(nèi)容之后,Python還是要靠做項目來練習。有不少小練習題類型的資料,比如Python Cookbook。但更好的方式是自己去想一些應(yīng)用場景,用Python來解決。Python功能全面,所以不要擔心自己想的問題Python解決不了 (基本上Python解決不了的問題,別的語言也沒戲)。比如我學習多線程的動力,就因為要并行的下載大量的文件?;旧弦粋€項目下來,會用到Python好幾塊的內(nèi)容,知識會特別鞏固。
最后,和其它任何知識的學習一樣,筆記和總結(jié)很重要。在看參考書和看網(wǎng)頁時,可以做一些筆記。等到學了一段時間后,可以把筆記整理成更有條理的參考卡片(reference card),或者寫博客。這也是我寫“Python快速教程”的主要原因。另外這個教程內(nèi)容的順序,也是我認為的比較合理的學習順序,僅供參考。
作者:MurphyWan
鏈接:https://www.zhihu.com/question/20702054/answer/236412402
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。