8個月的Python學(xué)習(xí)歷程,他的經(jīng)歷感動了整個程序員圈子!
從正式開始學(xué)習(xí)Python到現(xiàn)在差不多8個月的時間了,雖說進(jìn)展比較緩慢,但多少也算有些進(jìn)步和體會,現(xiàn)在想把把這大半年來的學(xué)習(xí)情況簡單梳理一下,既是給自己做個總結(jié),也希望能給與我情況類似的朋友們一點幫助。
本篇文章有幾千字,是奔跑的鱷魚同學(xué)辛苦寫了幾天的總結(jié),也許對初學(xué)者有用,建議大家耐心看完。
一.我的情況
作為一名非技術(shù)類崗位在職人士,學(xué)習(xí)Python不以轉(zhuǎn)行求職為目標(biāo)、不以提升工作能力為目的、不以直接經(jīng)濟(jì)利益為訴求,僅僅當(dāng)作一項業(yè)余活動來看待。當(dāng)然,這種情況下學(xué)習(xí)的劣勢是顯而易見的:
-
沒有明確的目標(biāo),學(xué)習(xí)方向不固定
-
沒有強(qiáng)烈的動機(jī),學(xué)習(xí)欲望不強(qiáng)烈
-
沒有項目的支撐,學(xué)習(xí)環(huán)境不理想
就我自身情況而言,由于長期從事非技術(shù)類崗位的工作,無論對web開發(fā)還是數(shù)據(jù)分析,相關(guān)知識都比較欠缺。 另外由于工作比較忙,不能保證每天都有機(jī)會使用互聯(lián)網(wǎng),相信就這一點而言,很多打算學(xué)習(xí)Python的朋友都要比我有優(yōu)勢。
不過,嚴(yán)格來說我也不算是完全零基礎(chǔ),畢竟是工科專業(yè)出身,讀書時參加過ACM之類的比賽,做過計算機(jī)方面的一些項目,編程的基礎(chǔ)還是有一點。
二.心路歷程
從最開始接觸Python到現(xiàn)在,我把自己的學(xué)習(xí)歷程大體分成徘徊、入門、進(jìn)階三個階段。
1.徘徊
最開始了解Python這門語言大概是2年多以前的事了,當(dāng)時動過學(xué)Python的念頭,但就像前面說的那樣,缺乏明確的目標(biāo)和強(qiáng)烈的欲望,學(xué)習(xí)這件事剛開始不久就被***期擱置了。
第二次打算學(xué)習(xí)Python是去年夏天,當(dāng)時剛好自學(xué)通過了一門資質(zhì)認(rèn)證,下半年打算給自己再找一個新目標(biāo),就又想起了Python,慶幸的是這次堅持了下來,一直到現(xiàn)在。
說起來這次能夠成功入門并堅持學(xué)習(xí),“菜鳥學(xué)Python”這個頭條號功不可沒,事實就是地講,這個頭條號里有很多適合小白和新手的東西,能夠讓你在短時間內(nèi)對Python語言、應(yīng)用領(lǐng)域、學(xué)習(xí)方向有一個大概的了解,能夠幫助你一步一步地正式展開對Python的學(xué)習(xí)。
2.入門
要想入門一門語言,有兩個要素?zé)o法回避的,一是學(xué)習(xí)資料,二是開發(fā)工具。
1).學(xué)習(xí)資料
網(wǎng)上的視頻、書籍、博文等學(xué)習(xí)資料可謂鋪天蓋地,但畢竟我們的學(xué)習(xí)時間是有限的,不可能去一一嘗試,選好適合自己的學(xué)習(xí)方式和資料對入門者來說是很關(guān)鍵的一步。
我的選擇是閱讀紙質(zhì)書籍,選幾本適合自己的書靜下心來認(rèn)真閱讀,書中的代碼一定要仔細(xì)琢磨(有條件的可 以自己把代碼寫一遍,加深理解),實在看不懂的地方可以暫時跳過,但一定要堅持讀下去,說白了就是“硬啃”。
這里我著重介紹兩本入門書籍:
-
《a byte of Python》:它***的作用是讓你對Python這門語言有一個 整體、全面的了解,為下步學(xué)習(xí)奠定基礎(chǔ)。
-
《Python核心編程(第二版)》:需要注意的是 要一定要買“第二版”而不是“第三版”,另外這本書的中文版里面有一些錯誤,如果遇到了請不要懷疑,它就是錯的!
2).開發(fā)工具:
學(xué)習(xí)Python以來,陸續(xù)接觸過IDLE、pycharm、sublime text、spyder、Ipython五個編輯器,往期文章里有篇文章(Python開發(fā)工具之神兵利器),對開發(fā)工具進(jìn)行了推薦,這里我簡單闡述一下對上述五種工具的使用感受:
-
IDLE: Python安裝自帶工具,被很多人詬病,但我覺得它安裝簡單,反而很適合初學(xué)者。如果實在不喜歡,可以在學(xué)習(xí)一段時間后改選其他的工具。
-
pycharm:專業(yè)級神器,缺點是比較笨重,平時寫小程序的話一般不用。
-
sublime text:輕量級神器,我的***,非常喜歡它的界面。
-
Anaconda:集成了大量數(shù)據(jù)分析相關(guān)庫,安裝方便,另外它的調(diào)試功能據(jù)說也比較強(qiáng)大。缺點是界面比較難 看,代碼補(bǔ)全功能也不完善。
-
Ipython:又稱jupyter,Anaconda自帶,我最近才開始使用,能夠?qū)崟r查看代碼輸出(這一點也很適 合初學(xué)者)
***再補(bǔ)充一點Python版本選擇的問題,其實這個問題真的真的不用糾結(jié),因為py2和py3的差別非常小,隨便選一個盡快上手才是真諦。當(dāng)然,對于沒有明確需求的初學(xué)者,我還是建議選擇Python入手,畢竟Py3是大勢所趨。
3.進(jìn)階
這里所謂的“進(jìn)階”并不是說已經(jīng)度過了入門階段,而是指在學(xué)習(xí)Python基本語法的基礎(chǔ)上做一些擴(kuò)展,向著實際應(yīng)用邁出***步。
目前來看學(xué)習(xí)Python主要有三個方向:web開發(fā)、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)。個人覺得Python在web開發(fā)領(lǐng)域沒有太大的優(yōu)勢,而機(jī)器學(xué)習(xí)需要大量的理論和技能基礎(chǔ)、入門門檻較高,所以我最終的選擇是從數(shù)據(jù)分析入手。
這一階段的學(xué)習(xí)方法除了自己閱讀資料外,***能找一些外部的支持,對口專業(yè)的在校生和在職人員或者是身邊的老手請教。如果都沒有可以從網(wǎng)絡(luò)上尋求幫助,這方面我主要采取了下面兩種途徑:
1).結(jié)合自身情況購買一門在線課程
買在線課程的***作用不是它提供的視頻和資料,而是給你一個與其他人共同學(xué)習(xí)交流的氛圍和機(jī)會,有的課程會設(shè)置進(jìn)度或者時間限制,這些都可以對自學(xué)起到督促作用。
現(xiàn)在網(wǎng)上的課程很多,我覺得沒有***的,只有最適合。有的課程一套七八千RMB,雖然質(zhì)量很高,但對于業(yè)余玩家來說是否必要還要看自己的選擇。
我當(dāng)時選的是一套300元左右的爬蟲課程(為了排除打廣告的嫌疑,平臺名稱這里就不寫了),說這套課程有些缺陷,但它確實成功地帶領(lǐng)我入門爬蟲、入門數(shù)據(jù)這個領(lǐng)域,客觀來講還是物有所值的。
2).尋找并加入適合自己的網(wǎng)絡(luò)群體
一個人自學(xué)很有可能因為動力不足而中途放棄,可以嘗試加入一個或幾個適合自己的網(wǎng)絡(luò)群體(QQ、微信、 社區(qū)等),尋找志同道合的學(xué)習(xí)伙伴,相互交流、相互促進(jìn).如果大家想要學(xué)習(xí)交流歡迎給我私信,私信關(guān)鍵詞:001.系統(tǒng)堅持到關(guān)鍵詞會自動發(fā)送。
三.學(xué)習(xí)體會
1.堅持學(xué)習(xí)
堅持是一個老生常談的話題,不過這里想說的重點略有不同,生活中我們都有很多事情要忙,不是所有人都能堅持每天擠出時間來 完成學(xué)習(xí)任務(wù)。
對于這一點我們要正確看待,“三天打魚兩天曬網(wǎng)”的狀態(tài)是很正常的,學(xué)習(xí)中斷了等有時間后繼續(xù)就可以,要學(xué)會調(diào)整心態(tài),不必因?qū)W習(xí)受阻而氣餒、放棄,要接受這種并不順利的學(xué)習(xí)狀態(tài),這才是我們業(yè)余學(xué)習(xí)者應(yīng)有的堅持。
2.細(xì)化目標(biāo)
在學(xué)習(xí)過程中,***能夠制定比較細(xì)小的目標(biāo),然后不斷更新,像做一個web網(wǎng)站、開發(fā)一個小游戲之類的中 期目標(biāo),個人認(rèn)為并不適合每一個初學(xué)者。
我們需要根據(jù)自身的學(xué)習(xí)程度和技能水平不斷細(xì)化、調(diào)整當(dāng)前的目標(biāo), 例如在語言學(xué)習(xí)初期可以設(shè)定“搞清楚is和==之間的關(guān)系”、“學(xué)習(xí)模塊調(diào)用”之類的目標(biāo)。
隨著學(xué)習(xí)的推進(jìn)可以調(diào)整 為“寫一個小型爬蟲”、“清洗并分析一組數(shù)據(jù)”之類的目標(biāo),以此類推。制定適合自己的目標(biāo)可以讓學(xué)習(xí)更有動力, 反之則會增強(qiáng)挫敗感。
3.多練多看
-
“練”是指在學(xué)習(xí)過程中要勤于動手寫代碼,在學(xué)習(xí)初期,哪怕是照抄書本上的代碼也可以加深對程序的理解
-
“看”是指要善于閱讀和學(xué)習(xí)其他人優(yōu)秀的代碼,這樣才有可能慢慢體會到python真正的精髓所在。