近些年,編程語(yǔ)言Python的熱度越來(lái)越高,因?yàn)镻ython簡(jiǎn)單,學(xué)起來(lái)快,是不少程序員入門的首選語(yǔ)言。我將學(xué)習(xí)過(guò)程分成八步,并借鑒了敏捷開(kāi)發(fā)的迭代思想,以達(dá)到自我迭代學(xué)習(xí)的效果。行勝于言,理論結(jié)合實(shí)踐才是王道,所以本文我將基于前面的學(xué)習(xí)方法,分享我是如何學(xué)習(xí)python的。
為什么學(xué)習(xí)python?
"Lifeisshort,youneedPython!"--BruceEckel
python是一種被廣泛使用的高級(jí)編程語(yǔ)言,其代碼語(yǔ)法簡(jiǎn)潔、可讀性強(qiáng),并且具有豐富和強(qiáng)大的庫(kù)。python簡(jiǎn)單易學(xué),應(yīng)用廣泛,web開(kāi)發(fā)、爬蟲(chóng)、運(yùn)維、人工智能……可以說(shuō)無(wú)所不能。python去年還被列入了全國(guó)計(jì)算機(jī)等級(jí)考試科目,也逐步成為小白踏上編程之路的入門語(yǔ)言了。
"人生苦短,我用python!"用python干什么?這個(gè)因人而異,個(gè)人而言,我學(xué)習(xí)python主要用于兩個(gè)方向:爬蟲(chóng)和運(yùn)維,工作上可以幫助我們復(fù)雜工作簡(jiǎn)單化,重復(fù)工作自動(dòng)化,以及以后的人工工作智能化。
本文和大家探討的是學(xué)習(xí)python的方法,接下來(lái)我們就馬上開(kāi)啟python的學(xué)習(xí)之旅。
1.確立目標(biāo)
我對(duì)python的定位,其實(shí)就是一個(gè)提升工作效率的工具,我學(xué)習(xí)python的目的簡(jiǎn)單明確,總的來(lái)說(shuō)就兩個(gè):
1.學(xué)習(xí)python語(yǔ)言,并能用它來(lái)爬取數(shù)據(jù)做數(shù)據(jù)分析;
2.使用python制作一些腳本工具,以幫助并提升工作效率。
2.拆分任務(wù)
我們通過(guò)逆向分解,將目標(biāo)拆分成具體的可執(zhí)行任務(wù)。這個(gè)過(guò)程其實(shí)就是將目標(biāo)細(xì)分整理成具體的小目標(biāo)或問(wèn)題,然后將其關(guān)聯(lián)到一個(gè)個(gè)可執(zhí)行的任務(wù),目的是完成目標(biāo)或解決問(wèn)題。
完成我的兩個(gè)目標(biāo),需要具體學(xué)習(xí)哪些知識(shí),完成哪些事項(xiàng)呢?第一個(gè)目標(biāo)需要學(xué)習(xí)python的基本語(yǔ)法,像數(shù)據(jù)類型、邏輯結(jié)構(gòu)、列表、元組、字典、引用等基礎(chǔ)知識(shí),以及爬蟲(chóng)相關(guān)的requests、urllib、pycurl、tornado等模塊。第二個(gè)目標(biāo)則需要根據(jù)平時(shí)工作的實(shí)際需求,進(jìn)一步借助python語(yǔ)言及相應(yīng)模塊來(lái)制作腳本工具,以提升工作效率。
梳理之后,目標(biāo)就會(huì)被分解成一個(gè)個(gè)需要完成的具體任務(wù)。
拆分任務(wù)
3.搜集知識(shí)資源
學(xué)習(xí)過(guò)程中必然少不了各種學(xué)習(xí)資料,在搜集知識(shí)資源時(shí)主要側(cè)重三方面:書(shū)籍、官方文檔和網(wǎng)絡(luò)技術(shù)文章。
我學(xué)習(xí)的是python3.x版本,首先找的就是python的官方文檔,內(nèi)容既權(quán)威又全面。(英語(yǔ)確實(shí)是道坎。)其次書(shū)籍買的是《Python基礎(chǔ)教程(第2版)》、《Python網(wǎng)絡(luò)數(shù)據(jù)采集》,同時(shí)網(wǎng)上也下載了基本PDF電子書(shū)。
對(duì)于知識(shí)資源的搜集,還是要提醒大家注意一點(diǎn),切勿做"收藏控"。很多朋友對(duì)于書(shū)籍、各種教程、網(wǎng)絡(luò)文章等資源,購(gòu)買了下載了收藏了,然后,就沒(méi)有然后了,最終真的淪落為"收藏品"。而我們真正要做的是要把知識(shí)"收藏"并沉淀到我們腦子里。
4.分配自身資源
其實(shí)就是時(shí)間管理。我們時(shí)間、精力等各方面資源有限,所有的知識(shí)不可能平均分配有限資源。對(duì)于我們搜集的知識(shí)資源,要分清主次,然后使用不同的時(shí)間管理策略進(jìn)行學(xué)習(xí)。
前面梳理了一些需要執(zhí)行的學(xué)習(xí)任務(wù),并整理了大量的學(xué)習(xí)資源,這一步要做的就是將這些任務(wù)、資源結(jié)合自身的實(shí)際情況,合理規(guī)劃分配時(shí)間精力。每個(gè)人的情況不同,所以這一步因人而異.
5.勤學(xué)
學(xué)習(xí)效率與效果取決于執(zhí)行力。之前文章介紹過(guò)學(xué)習(xí)過(guò)程中的一些方法論,這里我簡(jiǎn)要地介紹一下學(xué)習(xí)python時(shí)的大體過(guò)程。
a.快速泛讀
如果你有一定語(yǔ)言基礎(chǔ),比如我之前學(xué)過(guò)C、PHP語(yǔ)言,再學(xué)起python來(lái)上手就相對(duì)快一些?;镜恼Z(yǔ)法知識(shí)可以先快速過(guò)一遍,像python的模塊庫(kù)、對(duì)象等知識(shí)可以先了解基本的應(yīng)用流程,具體的細(xì)節(jié)問(wèn)題在后面的使用操作時(shí)在深入研究。
b.深入解讀
由淺入深地沉淀每個(gè)知識(shí)點(diǎn)。python的語(yǔ)法與其他語(yǔ)言還是有區(qū)別的,比如列表、字典、循環(huán)結(jié)構(gòu)等,而且python2和python3在語(yǔ)法上也有些變動(dòng)。雖然我直接學(xué)習(xí)的python3,但python2的一些不同之處還是要了解的,畢竟很多python資源模塊在2上已經(jīng)很成熟了。
c.問(wèn)題攻讀
對(duì)于學(xué)習(xí)過(guò)程中遇到的問(wèn)題,先查閱資料或谷歌來(lái)解決。比如python2和3的區(qū)別,作為爬取模塊的requests、urllib、pycurl、tornado的區(qū)別等等。如果有難以解決的問(wèn)題,可以先記下,或許后面會(huì)柳暗花明或找他人幫助。
這一步學(xué)習(xí)的正確姿勢(shì)是在實(shí)踐操作中發(fā)掘問(wèn)題,然后帶著問(wèn)題找答案。
6.建立知識(shí)體系
不要以為這一步可有可無(wú),建立知識(shí)體系有助于幫我們理清各個(gè)概念和知識(shí)點(diǎn)之間的關(guān)聯(lián),逐漸形成系統(tǒng)的知識(shí)體系?;谇懊娴拇罅糠鹤x和深入解讀,我們可以逐步構(gòu)建出一個(gè)知識(shí)體系。
7.好問(wèn)
基于前面問(wèn)題攻讀后還有未解決的問(wèn)題,就要求教他人獲取幫助了。提問(wèn)也是一門藝術(shù),這仍是一個(gè)學(xué)習(xí)交流的過(guò)程,而不是讓別人去解決原本你該解決的問(wèn)題。
向別人提問(wèn)求助時(shí),要講問(wèn)題的來(lái)龍去脈講清楚,如怎么引起的,自己嘗試做了哪些操作等等。這些年在眾多技術(shù)交流社群和平臺(tái),見(jiàn)過(guò)很多奇葩的提問(wèn)方式,這里列幾個(gè),與大家共勉。
a.直拋結(jié)果型
直接甩出一張截圖或錯(cuò)誤提醒,并附上一句:怎么解決?怎么破?跪求科普……
b.不懂就問(wèn)型
不動(dòng)腦,不動(dòng)手,碰到問(wèn)題就問(wèn)。這種選手即便幫他解決了問(wèn)題,他也學(xué)不到東西。
c.懶人型
與前者類似,但更滑稽可笑,看到這種問(wèn)題我個(gè)人向來(lái)直接無(wú)視。比如"這個(gè)問(wèn)題是這樣操作么?","我這樣整對(duì)不對(duì)?","是點(diǎn)這里么?"……
8.分享復(fù)述
其實(shí)即便不提"費(fèi)曼技巧",我們很多人在學(xué)習(xí)時(shí)都會(huì)用到分享復(fù)述這個(gè)方法。無(wú)論是演講、錄視頻、還是像我此刻這樣寫(xiě)文章,其實(shí)都是在向他人闡述自己對(duì)知識(shí)的理解和觀點(diǎn),然后大家會(huì)給自己一些反饋,比如你的錯(cuò)誤、問(wèn)題,接著自己再回歸到知識(shí)里完善不缺"漏洞",如此迭代學(xué)習(xí)。
小結(jié)
我將自己學(xué)習(xí)python的過(guò)程分為八步:
1.確立目標(biāo):沒(méi)有目標(biāo)的學(xué)習(xí)是不會(huì)有結(jié)果和效果的。
2.拆分任務(wù):將目標(biāo)分解成具體可執(zhí)行的學(xué)習(xí)任務(wù)。
3.搜集知識(shí)資源:查閱官方文檔、購(gòu)買書(shū)籍、搜集網(wǎng)絡(luò)干貨文章。
4.分配自身資源:合理分配時(shí)間精力,制定學(xué)習(xí)計(jì)劃。
5.勤學(xué):強(qiáng)大的執(zhí)行力是學(xué)習(xí)的根本保障。
6.建立知識(shí)體系:將學(xué)習(xí)的知識(shí)在腦海里建立系統(tǒng)模型。
7.好問(wèn):避免孤立學(xué)習(xí),但好問(wèn)也要會(huì)問(wèn)。
8.分享復(fù)述:檢驗(yàn)學(xué)習(xí)成果,提高學(xué)習(xí)效果的最好方法。
以上內(nèi)容為大家介紹了學(xué)習(xí)Python的正確姿勢(shì),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://madgrindclothing.com/