1. 程式人生 > 實用技巧 >自學python,從小白到大神,需要多久?

自學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 技能在該領域上得到最大限度的發揮,可能是個成為專家的捷徑

如果問需要多久,只能說看造化了。

總結

無論你的目標是什麼,都離不開不斷的學習與實踐

學習分為三個階段,第一階段是學,即瞭解和學習相關習知識;第二階段是教,即跟著老師或者教材學;第三個階段是練,這個階段是最為重要,需要自己多練

希望這篇短文對你的學習之旅有所啟發,祝你早日實現自己的目標。