怎么自學(xué)python,大概要多久

文 |?太陽(yáng)雪
來(lái)源:Python 技術(shù)「ID: pythonall」

2020年10月 TIOBE 排行榜超過了 Java,歷史上首次 Python 超越了 Java,再次讓許多朋友對(duì) Python 產(chǎn)生了興趣,今天我們來(lái)梳理下學(xué)習(xí) Python 幾個(gè)階段或者級(jí)別,期望對(duì)持續(xù)進(jìn)化的你有所幫助
本文緣起于知乎上的一個(gè)提問:怎么自學(xué)python,大概要多久?,當(dāng)時(shí)做了一個(gè)回答,這次重新整理了一遍,全文如下:
看了回答區(qū)的很多回答,感覺很專業(yè)也很詳盡,覺得要回答多久的問題,需要先回答 學(xué)習(xí)的目標(biāo)是什么 這個(gè)問題,這里將目標(biāo)分為 入門、進(jìn)階、深入和終極四個(gè)部分來(lái)說(shuō)明
入門:只是了解
Python 已然是最流行的語(yǔ)言,特別是在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)風(fēng)靡的情況下,Python 也受到了少兒編程的青睞,所以許多同學(xué)處于各種原因,只是需要了解一下
那么需要先了解 Python 環(huán)境搭建,了解一下操作系統(tǒng)的基本只是,比如環(huán)境變量、命令行工具等 然后安裝 Python,并且可以在命令行中執(zhí)行進(jìn)入 Python,執(zhí)行簡(jiǎn)單操作

接著,在文件文件中,寫入 print(Hello World),保存,執(zhí)行

這就可以算入門了,整個(gè)過程不到一個(gè)小時(shí)
對(duì)應(yīng)入門來(lái)說(shuō),推薦用命令行的方式,很多教成會(huì)推薦 Anaconda,PyCharm 等集成開發(fā)工具,雖然功能強(qiáng)大,界面美觀,不太信息量太大,比如容易分散注意力,且不利用 Python 環(huán)境的理解

進(jìn)階:完成簡(jiǎn)單任務(wù)
要完成一些簡(jiǎn)單任務(wù)或者是寫寫腳本,比如處理下 Excel、Word、文本中的數(shù)據(jù),做些文件處理操作,寫個(gè)自?shī)首詷返男〕绦颍ǚ俏⑿臷支付寶\頭條等小程序)等
只需要了解基本 Python 語(yǔ)法,比如變量定義,基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),判斷語(yǔ)句,循環(huán)語(yǔ)句,方法定義等
另外學(xué)習(xí)一下相關(guān)軟件包,比如 OpenPyXl (可參考《Excel 神器 —— OpenPyXl》)用于處理 Excel
Python-docx(可參考《Word 神器 python-docx》),用于處理 Word
Python 內(nèi)置模塊 os,用于處理文件系統(tǒng),Pygame 簡(jiǎn)單游戲包(可參考《做硬核老爸,我用 Python》),用來(lái)做些好玩的游戲,等等
這一階段,只要持續(xù)練習(xí),一個(gè)月左右,就能熟練上手,做出自己想要的東西,提高工作效率
我公司有個(gè)通信設(shè)備工程師,為了方便調(diào)試主機(jī),開始學(xué) Python,不到一年時(shí)間,不僅解決了工作中的問題,得到了嘉獎(jiǎng),還成了部門 Python 專家,經(jīng)常指導(dǎo)其他人學(xué)習(xí) Python

高級(jí):構(gòu)建應(yīng)用系統(tǒng)
如果想讓更多的人用自己寫的程序,而不僅僅用于自己,就需要構(gòu)建一個(gè)系統(tǒng)或者應(yīng)用。
Web 系統(tǒng)
需要學(xué)習(xí) Flask(可以參考《Web 開發(fā) Flask 介紹》) 或者 Django 等 Web 框架
更重要的是,需要了解網(wǎng)絡(luò)基礎(chǔ)知識(shí),如 Http,域名,云服務(wù)器等
數(shù)據(jù)庫(kù)處理等相關(guān)知識(shí),如 Sql 語(yǔ)句,Mysql 數(shù)據(jù)庫(kù),或者 Sqlite 數(shù)據(jù)庫(kù)等
安全相關(guān)知識(shí),如 Session,token,OAuth 認(rèn)證機(jī)制(可以參考《OAuth2.0 簡(jiǎn)介》)等
服務(wù)部署相關(guān)知識(shí)或技能,將自己的程序通過網(wǎng)絡(luò)方式提供更多的人使用(可參考《部署 Flask 應(yīng)用》)
桌面應(yīng)用
比如在 Windows,或者 Linux 下的應(yīng)用,需要了解操作系統(tǒng)相關(guān)知識(shí)
并學(xué)習(xí) wxpython、PythonWin、PyGTK、PyQt 等軟件包,像 wxpython 有強(qiáng)大豐富的功,并且支持跨平臺(tái)的桌面應(yīng)用,讓你做的程序有更好的適應(yīng)環(huán)境
Windows 下的應(yīng)用,可參考《公交鬧鐘 —— 再也不用白等車了》],其中描述了如何構(gòu)建一個(gè)Windows 定時(shí)任務(wù),以及將 Python 程序打包成 可執(zhí)行文件 的方式
如果要達(dá)到構(gòu)建系統(tǒng)的目標(biāo),除了 Python 語(yǔ)言本身以及相關(guān)軟件包的學(xué)習(xí)之外,更多的是需要學(xué)習(xí)網(wǎng)絡(luò)、操作系統(tǒng)、編程思想、設(shè)計(jì)模式等方面的知識(shí)
如果是從頭學(xué)習(xí),至少需要半年使時(shí)間,如果要到達(dá)精通,且在商業(yè)項(xiàng)目中應(yīng)用,則可能需要一到兩年時(shí)間

深入:數(shù)據(jù)分析與機(jī)器學(xué)習(xí)
python 幾乎是個(gè)萬(wàn)能的語(yǔ)言,特別實(shí)在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)方面,因?yàn)槠鋵懜俚拇a,做更多的事的理念,深受數(shù)據(jù)科學(xué)家們的追捧。
如果目標(biāo)是做數(shù)據(jù)分析,首先需要對(duì)數(shù)據(jù)分析思想和過程有所了解(可以參考《這個(gè)數(shù)據(jù)分析報(bào)告,居然沒寫一行代碼》)
然后需要學(xué)習(xí),數(shù)據(jù)采集、數(shù)據(jù)整理、數(shù)據(jù)可視化等方面的知識(shí)或者技能:
數(shù)據(jù)采集基本上就是常說(shuō)的爬蟲,從網(wǎng)絡(luò)上獲取需要分析的數(shù)據(jù),相關(guān)框架或者軟件包有 Scrapy,Selenium,Requests 等
數(shù)據(jù)整理就是對(duì)要分析的數(shù)據(jù)進(jìn)行清洗、分解、歸類、轉(zhuǎn)換等操作,常用的包有 Numpy、Pandas 等,可以以極為高效的方式處理完成任務(wù),例如我寫的一篇 《干掉公式——Numpy就該這么學(xué)》,從另一個(gè)側(cè)面介紹了 Numpy 的強(qiáng)大
數(shù)據(jù)可視化只有能被人直觀感受到,才能更多的發(fā)揮數(shù)據(jù)的價(jià)值,通過條形圖、圓餅圖、雷達(dá)圖、散點(diǎn)圖等直觀有效的圖像,將數(shù)據(jù)直觀的呈現(xiàn)出來(lái),是數(shù)據(jù)分析必不可少的環(huán)節(jié),相關(guān)框架和軟件包有 matplotlib、pyecharts、Dexplot 等,我寫過一篇關(guān)于 Flask 和 pyecharts 結(jié)合的文件可以參考《Python Flask 數(shù)據(jù)可視化》
如果你的目標(biāo)是做數(shù)據(jù)分析,從頭學(xué)起,堅(jiān)持練習(xí),三個(gè)月,就可以做基本工作了,這是找個(gè)相關(guān)數(shù)據(jù)分析的工作,不成問題,如果想要深入研究,數(shù)據(jù)分析、甚至機(jī)器學(xué)習(xí)相關(guān)的原理算法,并能應(yīng)用自如,沒個(gè)三五年估計(jì)很難做到

終極:成為專家
其實(shí)任何領(lǐng)域成為專家,有一個(gè)共識(shí)定律:一萬(wàn)小時(shí)定律,想成為 Python 的專家也不例外
python 之所以成為眾多領(lǐng)域中首選的編程語(yǔ)言,并非 Python 是眾多領(lǐng)域的核心,而是 Python 可以作為一種處理問題的思想和實(shí)現(xiàn)工具
所以更多的學(xué)習(xí)者是想將 Python 作為一種學(xué)習(xí)和工作的工具,提高某個(gè)領(lǐng)域中解決問題的效率,因此,如果目標(biāo)是成為專家,可以先選擇一個(gè) Python 可以得到應(yīng)用的領(lǐng)域,比如系統(tǒng)構(gòu)建、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、視頻游戲等等
然后通過在該領(lǐng)域的不斷深入,使 Python 技能在該領(lǐng)域上得到最大限度的發(fā)揮,可能是個(gè)成為專家的捷徑
如果問需要多久,只能說(shuō)看造化了。

總結(jié)
無(wú)論你的目標(biāo)是什么,都離不開不斷的學(xué)習(xí)與實(shí)踐
學(xué)習(xí)分為三個(gè)階段,第一階段是學(xué),即了解和學(xué)習(xí)相關(guān)習(xí)知識(shí);第二階段是教,即跟著老師或者教材學(xué);第三個(gè)階段是練,這個(gè)階段是最為重要,需要自己多練
希望這篇短文對(duì)你的學(xué)習(xí)之旅有所啟發(fā),祝你早日實(shí)現(xiàn)自己的目標(biāo)。
參考
https://mp.weixin.qq.com/s/djrPr34u0iYJmM31rcpy9A https://www.zhihu.com/question/300985609/answer/1341878811
PS:公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起?100 天計(jì)劃!
老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下,如果感覺文章內(nèi)容不錯(cuò)的話,記得分享朋友圈讓更多的人知道!


【神秘禮包獲取方式】
