自學python,從小白到大神,需要多久?
2020年10月 TIOBE 排行榜超過了 Java, 歷史上首次 Python 超越了 Java ,再次讓許多朋友對 Python 產生了興趣,今天我們來梳理下學習 Python 幾個階段或者級別,期望對持續進化的你有所幫助
本文緣起於知乎上的一個提問: 怎麼自學python,大概要多久?
,當時做了一個回答,這次重新整理了一遍,全文如下:
看了回答區的很多回答,感覺很專業也很詳盡,覺得要回答多久的問題,需要先回答 學習的目標是什麼 這個問題,這裡將目標分為 入門、進階、深入和終極四個部分來說明
入門:只是瞭解
Python 已然是最流行的語言,特別是在資料分析和機器學習風靡的情況下,Python 也受到了少兒程式設計的青睞,所以許多同學處於各種原因,只是需要了解一下
那麼需要先了解 Python 環境搭建,瞭解一下作業系統的基本只是,比如環境變數、命令列工具等 然後安裝 Python,並且可以在命令列中執行進入 Python,執行簡單操作
接著,在檔案檔案中,寫入 print(Hello World)
,儲存,執行
這就可以算入門了,整個過程不到一個小時
對應入門來說,推薦用命令列的方式,很多教成會推薦 Anaconda,PyCharm 等整合開發工具,雖然功能強大,介面美觀,不太資訊量太大,比如容易分散注意力,且不利用 Python 環境的理解
進階:完成簡單任務
要完成一些簡單任務或者是寫寫指令碼,比如處理下 Excel、Word、文字中的資料,做些檔案處理操作,寫個自娛自樂的小程式(非微信\支付寶\頭條等小程式)等
只需要瞭解基本 Python 語法,比如變數定義,基礎資料結構,判斷語句,迴圈語句,方法定義等
另外學習一下相關軟體包,比如 OpenPyXl (可參考 《Excel 神器 —— OpenPyXl》 )用於處理 Excel
Python-docx(可參考 《Word 神器 python-docx》 ),用於處理 Word
Python 內建模組 os,用於處理檔案系統,Pygame 簡單遊戲包(可參考 《做硬核老爸,我用 Python》 ),用來做些好玩的遊戲,等等
這一階段,只要持續練習,一個月左右,就能熟練上手,做出自己想要的東西,提高工作效率
我公司有個通訊裝置工程師,為了方便除錯主機,開始學 Python,不到一年時間,不僅解決了工作中的問題,得到了嘉獎,還成了部門 Python 專家,經常指導其他人學習 Python
高階:構建應用系統
如果想讓更多的人用自己寫的程式,而不僅僅用於自己,就需要構建一個系統或者應用。
Web 系統
需要學習 Flask(可以參考 《Web 開發 Flask 介紹》 ) 或者 Django 等 Web 框架
更重要的是,需要了解網路基礎知識,如 Http,域名,雲伺服器等
資料庫處理等相關知識,如 Sql 語句,Mysql 資料庫,或者 Sqlite 資料庫等
安全相關知識,如 Session,token,OAuth 認證機制(可以參考 《OAuth2.0 簡介》 )等
服務部署相關知識或技能,將自己的程式通過網路方式提供更多的人使用(可參考 《部署 Flask 應用》 )
桌面應用
比如在 Windows,或者 Linux 下的應用,需要了解作業系統相關知識
並學習 wxpython、PythonWin、PyGTK、PyQt 等軟體包,像 wxpython 有強大豐富的功,並且支援跨平臺的桌面應用,讓你做的程式有更好的適應環境
Windows 下的應用,可參考 《公交鬧鐘 —— 再也不用白等車了》 ],其中描述瞭如何構建一個Windows 定時任務,以及將 Python 程式打包成 可執行檔案
的方式
如果要達到構建系統的目標,除了 Python 語言本身以及相關軟體包的學習之外,更多的是需要學習網路、作業系統、程式設計思想、設計模式等方面的知識
如果是從頭學習,至少需要半年使時間,如果要到達精通,且在商業專案中應用,則可能需要一到兩年時間
深入:資料分析與機器學習
python 幾乎是個萬能的語言,特別實在資料分析和機器學習方面,因為其寫更少的程式碼,做更多的事的理念,深受資料科學家們的追捧。
如果目標是做資料分析,首先需要對資料分析思想和過程有所瞭解(可以參考 《這個資料分析報告,居然沒寫一行程式碼》 )
然後需要學習,資料採集、資料整理、資料視覺化等方面的知識或者技能:
-
資料採集基本上就是常說的爬蟲,從網路上獲取需要分析的資料,相關框架或者軟體包有 Scrapy,Selenium,Requests 等
-
資料整理就是對要分析的資料進行清洗、分解、歸類、轉換等操作,常用的包有 Numpy、Pandas 等,可以以極為高效的方式處理完成任務,例如我寫的一篇 《幹掉公式——Numpy就該這麼學》 ,從另一個側面介紹了 Numpy 的強大
-
資料視覺化只有能被人直觀感受到,才能更多的發揮資料的價值,通過條形圖、圓餅圖、雷達圖、散點圖等直觀有效的影象,將資料直觀的呈現出來,是資料分析必不可少的環節,相關框架和軟體包有 matplotlib、pyecharts、Dexplot 等,我寫過一篇關於 Flask 和 pyecharts 結合的檔案可以參考 《Python Flask 資料視覺化》
如果你的目標是做資料分析,從頭學起,堅持練習,三個月,就可以做基本工作了,這是找個相關資料分析的工作,不成問題,如果想要深入研究,資料分析、甚至機器學習相關的原理演算法,並能應用自如,沒個三五年估計很難做到
終極:成為專家
其實任何領域成為專家,有一個共識定律:一萬小時定律,想成為 Python 的專家也不例外
python 之所以成為眾多領域中首選的程式語言,並非 Python 是眾多領域的核心,而是 Python 可以作為一種處理問題的思想和實現工具
所以更多的學習者是想將 Python 作為一種學習和工作的工具,提高某個領域中解決問題的效率,因此,如果目標是成為專家,可以先選擇一個 Python 可以得到應用的領域,比如系統構建、資料分析、機器學習、視訊遊戲等等
然後通過在該領域的不斷深入,使 Python 技能在該領域上得到最大限度的發揮,可能是個成為專家的捷徑
如果問需要多久,只能說看造化了。
總結
無論你的目標是什麼,都離不開不斷的學習與實踐
學習分為三個階段,第一階段是學,即瞭解和學習相關習知識;第二階段是教,即跟著老師或者教材學;第三個階段是練,這個階段是最為重要,需要自己多練
希望這篇短文對你的學習之旅有所啟發,祝你早日實現自己的目標。