2020年10月 TIOBE 排行榜超過了 Java,歷史上首次 Python 超越了 Java,再次讓許多朋友對 Python 產生了興趣,今天我們來梳理下學習 Python 幾個階段或者級別,期望對持續進化的你有所幫助
本文緣起於知乎上的一個提問:怎麼自學python,大概要多久?,當時做了一個回答,這次重新整理了一遍,全文如下:
看了回答區的很多回答,感覺很專業也很詳盡,覺得要回答多久的問題,需要先回答 學習的目標是什麼 這個問題,這裡將目標分為 入門、進階、深入和終極四個部分來說明
入門:只是了解Python 已然是最流行的語言,特別是在數據分析和機器學習風靡的情況下,Python 也受到了少兒編程的青睞,所以許多同學處於各種原因,只是需要了解一下
那麼需要先了解 Python 環境搭建,了解一下作業系統的基本只是,比如環境變量、命令行工具等然後安裝 Python,並且可以在命令行中執行進入 Python,執行簡單操作
python 命令行接著,在文件文件中,寫入 print(Hello World),保存,執行
python 命令行這就可以算入門了,整個過程不到一個小時
對應入門來說,推薦用命令行的方式,很多教成會推薦 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 技能在該領域上得到最大限度的發揮,可能是個成為專家的捷徑
如果問需要多久,只能說看造化了。
終極無論你的目標是什麼,都離不開不斷的學習與實踐
學習分為三個階段,第一階段是學,即了解和學習相關習知識;第二階段是教,即跟著老師或者教材學;第三個階段是練,這個階段是最為重要,需要自己多練
希望這篇短文對你的學習之旅有所啟發,祝你早日實現自己的目標。
參考