怒肝半月!Python 學習路線+資源大匯總

Python 學習路線 by 魚皮。

原創不易,請勿抄襲,違者必究!

大家好,我是魚皮,肝了十天左右的 Python 學習路線終於來了~

和之前一樣,在看路線前,建議大家先通過以下視頻了解幾個問題:

  • Python 為什麼這麼火?
  • 為什麼都在說學 Python 找不到工作?Python 真香么?
  • 我要學 Python 么?
  • 怎麼快速學習?

視頻地址:https://www.bilibili.com/video/BV133411C7u5/

點擊文末閱讀原文可直接跳轉

Python 為什麼火了?

有很多原因,列舉幾點:

  1. 語法簡單易學,其他語言 5 行代碼才能實現的東西,python 一行搞定!可以少寫很多代碼,因此不少同學拿 Python 刷演算法題(但注意要理解演算法本身哦)。
  2. 類庫生態豐富,想做什麼功能基本都有現成的代碼,拿來直接用就行,無比方便!
  3. 免費開源,感興趣、有能力的同學可以自己去研究源碼
  4. 其他特性,比如跨平台、可擴展等。
  5. 作為數據科學、人工智慧的首選語言,踩到了時代的風口。

於是乎,Python 被推向了神壇,甚至在 2021 年 10 月的編程語言排行榜中,Python 登上了第一位!

TIOBE 編程語言排行榜

但就是這樣一門 「永遠的神」 的編程語言,卻在網上被口口相傳說:學了 Python 找不到工作!

哎,為啥呢?

為什麼 Python 不適合找工作?

一方面是,大多數的企業,都不用 Python 來開發應用。

因為 Python 的運行速度太慢了,別說跟底層的 C++ 比了,Java 都能甩它幾條街!而且這和語言本身的設計實現有關,所以哪怕你再出什麼技術去優化它的性能,也終究有個瓶頸,世界上最好的語言 PHP 也是一樣。

而對企業來說,性能 會直接影響用戶體驗和機器成本,尤其是在這個信息爆炸、大家都在追求性能的時代,Python 在應用開發領域的地位就很尷尬,而開發崗又正好是程序員中佔比極高的崗位。

另一方面,雖然 Python 的應用場景很多、相關崗位也不少,又是什麼 AI、數據科學的主流語言是吧,未來很美好。但是,這些前沿技術的難點並不是 Python 語言的代碼本身,而是演算法和思想。Python 只是一個調包、把你思想表達出來的工具而已。所以這些前沿崗位的門檻遠比你入門 Python、或者聽培訓機構畫餅時要高的多,演算法崗位、大廠的產品崗真就是神仙打架,而且研究生居多。

學習目標

既然這樣,那我還要不要學 Python 呢?

我認為:必須要學!

但是,一定要先思考自己的學習目標,目標不同,對 Python 的學習態度和投入的時間也不同。

如果想找開發崗位的工作,像上面說的,不建議把 Python 作為你的主語言,而是把它當做你的副武器。只需簡單學學 Python 基礎,就可以編寫 Python 腳本來自動化辦公、提高工作效率、做一些小工具了,性價比很高。

如果說編程語言是工具,那 Python 是對這句話的完美詮釋。 多會用一個神器,誰不愛呢?

如果你想找其他崗位的工作,比如運維、測試、數據分析、產品經理、大數據、爬蟲、人工智慧、圖像處理、多媒體處理、演算法研究,當然也可以,只是如果以這些崗位為目標,除了要打好 Python 基礎外,更重要的是理解對應領域的思想、方法和實踐,而不是只會引庫調包。

如果你是初學編程或者出於好奇學編程,我也建議你學 Python,好玩、能學下去、能培養興趣,這些對初學者非常重要,有了興趣之後,再學別的語言就會如魚得水。

學習建議

對於初學者和非 Python 崗位的從業者,就把 Python 當工具學,了解下基礎語法和常用類庫,需要寫 Python 腳本時,能利用搜索引擎和文檔寫出(或者複製)代碼就行。只要你學過其他編程語言,上手 Python 真的都很容易,3 - 7 天就能學會。

建議學習時多寫些小例子,比如 Python 處理表格、Python 處理 PDF 等,感受 Python 類庫的強大就完事兒~

學習路線大綱

摺疊了一部分,還是老長,公眾號【程序員魚皮】回復【python】獲取思維導圖:

魚皮 - Python 學習路線

學習路線

基礎

  • Python 安裝
  • 開發工具 PyCharmSublimeVS Code
  • 變數 定義變數關鍵字命名規則基本數據類型類型轉換
  • 運算符和表達式
  • 流程式控制制 條件分支循環
  • 基本數據結構 字元串列表元組集合字典
  • 函數 定義參數傳遞作用域lambda 表達式常用內置函數
  • ⭐ 面向對象編程 類和對象三大特性 封裝 self屬性方法 類方法實例方法靜態方法 訪問控制 繼承 單繼承多繼承 多態 方法重寫 運算符重載裝飾器反射
  • 模塊 導入模塊常用模塊 文件處理日期時間
  • 包 導入包生成包
  • 異常處理 捕獲異常try ... else ... finally 結構自定義異常
  • 文件操作 文件開閉文件讀寫

進階

  • 函數進階 閉包匿名函數生成器函數裝飾器高階函數
  • 正則表達式
  • 資料庫編程 資料庫基礎SQL 編寫查詢 聚合分組關聯排序 事務資料庫設計資料庫調優
  • 並發編程 同步和非同步阻塞和非阻塞多線程多進程協程並發類庫
  • 網路編程 網路基礎(七層模型、IP)網路協議(TCP、UDP、HTTP、HTTPS、FTP、DNS)WebSocket

web 開發

  • Django 框架 安裝與 DemoMVT 分層模型 資料庫基礎ORM 單表查詢多表查詢聚合查詢 視圖模板 模板語法靜態資源 路由Django Admin 管理工具測試會話鑒權文件上傳中間件高級特性 分頁緩存 本地緩存Redis 分散式緩存 序列化信號celery 任務調度 Restful API 開發 概念數據序列化Django Rest Framework 部署項目實戰
  • 前端基礎 HTMLCSSJavaScript
  • Flask 框架

爬蟲

  • 概念
  • 合法性
  • 數據抓取 常用網路協議(http / https)概念請求 請求頭請求參數請求類型 響應 響應頭響應參數 requests 模塊urllib 模塊模擬登陸靜態 / 動態網站抓取無頭瀏覽器 seleniumpuppeteer
  • 數據解析 常用標籤BeautifulSoup正則表達式xpath
  • 數據導出 文件 ExcelCSV 資料庫 MongoDBMySQL 中間件 Redis
  • Scrapy 框架 核心概念 命令行工具SpidersSelectorsItemsItem Loaders管道Scrapy ShellLink Extractors 調度器分散式爬虫部署
  • 並發非同步爬蟲 aioHttpasyncio
  • 高級 IP 代理驗證碼識別APP 抓取增量式爬蟲
  • 項目實戰
  • 反爬蟲 請求頭限制驗證碼黑白名單封禁 IP數據加密數據混淆行為分析

自動化運維

  • Linux 環境
  • Shell 腳本編寫
  • 腳本管理
  • 腳本發布
  • Python 運維庫
  • 常用運維工具

數據分析(數據科學)

  • 環境搭建 AnacondaCondaMinicondaJupyter Notebook
  • 常用數據結構
  • 常用類庫 NumPy 數組索引切片多維數組函數 Pandas SeriesDataFrame索引對齊函數統計
  • 數據處理 數據清洗層次化索引數據連接數據合併分組聚合軸向旋轉
  • 數據可視化 matplotlibseabornpyechart

演算法(人工智慧)

魚皮自己沒怎麼接觸人工智慧,結合網上很多大神的資料整理而成,也有一定參考意義。

  • 數學基礎 高等數學線性代數概率論統計分析
  • 機器學習 特徵工程模型 模型分類模型評估模型訓練模型調優 常用演算法 監督與無監督學習回歸(有監督) 線性回歸決策樹集成演算法 分類(有監督) 邏輯回歸決策樹支持向量機集成演算法貝葉斯演算法 聚類(無監督) k-meansdbscan 降維 主成分分析線性判別分析 進階 GBDT 提升演算法lightgbmEM 演算法隱馬爾科夫模型 多因子模型常用庫 Scikit-learn 量化交易策略
  • 深度學習 數據預處理演算法 神經網路卷積神經網路遞歸神經網路對抗生成網路序列網路模型 常用演算法框架和平台 Tenserflow2PytorchKerasCaffe
  • 自然語言處理
  • 圖像處理
  • 計算機視覺

常用類庫

Python 能被廣泛應用,很大程度上是因為其豐富的類庫,就是他人提前寫好並封裝的代碼。基本你要做什麼東西都能找到對應的類庫,直接看文檔用就行了,大大提高開發效率!

開源項目 awesome-python-cn(地址:https://github.com/jobbole/awesome-python-cn) 和 awesome-python(地址:https://github.com/vinta/awesome-python)已經幫大家整理了各方向的 Python 類庫,數量非常多。魚皮在此基礎上篩選了一些相對優質的庫,分享給大家。

通用

日期處理

  • delorean:日期處理庫
  • pendulum:日期時間操作庫
  • dateutil:對標準 datetime 模塊的強大擴展

終端優化

  • IPython:功能豐富的互動式 Python 解析器
  • Jupyter Notebook:基於網頁的用於交互計算的應用程序
  • Prettytable:生成美觀的 ASCII 格式的表格
  • Colorama:讓終端具有顏色
  • bashplotlib:在終端中進行基本繪圖
  • emoji:支持在 Python 終端輸出表情
  • Ipyvolume:在 Jupyter notebook 中可視化 3d 體積和字形

文本處理

  • FlashText:高效的文本查找替換庫
  • furl:url 處理庫
  • pypinyin:漢字拼音轉換工具
  • simplejson:JSON 編 / 解碼器
  • JMESPath:JSON 查詢語法庫

其他

  • Pipenv:Python 官方推薦的新一代包管理工具
  • threading:自帶的線程庫
  • multiprocessing:自帶的多線程庫
  • Chardet:字元編碼檢測器
  • logging:日誌功能
  • PySnooper:Python 調試工具
  • sphinx:Python 文檔生成器
  • pyttsx3:文字轉語音庫
  • PyWin32:提供和 windows 的交互
  • shortuuid:生成唯一 uuid 的庫
  • more-itertools:支持迭代操作對象
  • cryptography:密碼學工具包

網路請求 & 解析

  • requests:HTTP 請求庫
  • aiohttp:非同步 HTTP 網路庫
  • scrapy:分散式網頁採集框架
  • pyspider:一個強大的爬蟲系統
  • BeautifulSoup:從 html 或 XML 文件中提取數據的庫
  • you-get:網頁視頻下載器
  • wget:網頁文件下載
  • musicdl:Python 音樂下載器

文件處理

  • openpyxl:Excel 讀寫庫
  • tablib:處理表格數據
  • CSVkit:用於轉換和操作 CSV 的工具
  • XlsxWriter:操作 Excel
  • python-docx:操作 office word 文檔
  • PyPDF2:操作 PDF 文檔
  • pdfminer:從 PDF 文檔中抽取信息的工具
  • xhtml2pdf:HTML 轉 PDF 工具
  • WeasyPrint:可視化網頁,並支持導出為 PDF
  • html2text:將 HTML 轉換為 Markdown 文檔
  • xmltodict:像處理 JSON 一樣處理 XML
  • moviepy:基於腳本的視頻編輯模塊
  • eyeD3:操作音頻文件的工具
  • pyAudioAnalysis:音頻特徵提取分析

界面開發

  • pyQT:跨平台的用戶界面開發框架
  • Turtle:互動式繪畫庫
  • pyglet:跨平台界面及多媒體框架
  • wxPython:Python 用戶界面開發工具
  • Pygame:一組用來開發遊戲的 Python 模塊
  • Manim:Python 數學動畫引擎
  • progressbar:一個滾動條函數庫
  • progress:進度條輸出
  • tqdm:快速、可擴展的進度條

測試

  • nose:測試框架
  • faker:生成假數據
  • PyAutoGUI:跨平台 GUI 自動測試模塊
  • coverage:代碼覆蓋率測量
  • sqlmap:自動 SQL 注入和滲透測試工具

Web 開發

  • Django:Python 界最流行的 web 框架
  • Django REST framework:用於開發 web api 的框架
  • FastAPI:快速構建 web 應用程序
  • flask:Python 微型框架
  • Twisted:一個事件驅動的網路引擎

運維

  • psutil:跨平台的進程和系統工具模塊
  • supervisor:進程式控制制管理系統
  • sh:讓 Python 支持 shell 腳本
  • dnspython:DNS 工具包
  • scapy:數據包處理庫
  • pexpect:在偽終端中控制交互程序
  • paramiko:遠程連接服務
  • Ansible:IT 自動化平台
  • SaltStack:基礎設施自動化和管理系統
  • watchdog:管理文件系統事件的 API 和 shell 工具

圖像處理 & 計算機視覺

  • Pillow:圖像處理庫
  • kornia:計算機視覺庫
  • Opencv:開源計算機視覺庫
  • Mahotas:計算機視覺和圖像處理庫
  • Luminoth:計算機視覺的深度學習工具集

數據分析 & 數據科學

  • NumPy:數值計算工具包
  • Pandas:主流的數據分析工具
  • pyecharts:基於百度 Echarts 的數據可視化庫
  • Dash:快速構建 Web 數據可視化應用
  • matplotlib:Python 2D 繪圖庫
  • Seaborn:使用 Matplotlib 進行統計數據可視化
  • python-recsys:實現推薦系統的庫
  • vaex:高速大數據處理庫
  • SciPy:演算法和數學工具庫
  • blaze:NumPy 和 Pandas 的大數據介面
  • statsmodels:統計建模和計量經濟學

人工智慧

  • Tensorflow:谷歌開源的最受歡迎的深度學習框架
  • keras:深度學習封裝庫,快速上手神經網路
  • Pytorch:具有張量和動態神經網路,並有強大 GPU 加速能力的深度學習框架
  • Caffe2:一個輕量、模塊化、可擴展的深度學習框架
  • scikit-learn:基於 SciPy 構建的機器學習 Python 模塊
  • PyMC:馬爾科夫鏈蒙特卡洛採樣工具
  • mmdetection:深度學習目標檢測工具箱
  • imbalanced-learn:不平衡學習工具包
  • XGBoost:分散式梯度增強庫
  • Gym:強化學習演算法的工具包

自然語言處理

  • NLTK:自然語言處理工具包
  • Gensim:話題建模庫
  • Pattern:自然語言處理工具
  • fuzzywuzzy:用於字元串模糊匹配、令牌匹配等
  • TextBlob:為進行普通自然語言處理任務提供一致的 API
  • PyFlux:時間序列處理庫
  • jieba:中文分詞工具

大綱

(大綱圖)

崗位

  • 騰訊校招 Python 相關崗位:https://join.qq.com/post.html?keyword=python
  • 崗位薪資查詢:OfferShow 小程序
  • 運維工程師
  • Web 開發工程師(後端、全棧為主)
  • 測試工程師
  • 數據分析師
  • 產品經理
  • 演算法工程師 機器學習計算機視覺NLP多媒體處理
  • 大數據工程師 大數據開發數據挖掘
  • 網路爬蟲工程師
  • 技術研究員

資源

視頻

零基礎

  • 千鋒教育 700 集零基礎 Python 教程:https://www.bilibili.com/video/BV1R7411F7JV(非常全面,基礎、web 開發、爬蟲、數據分析、AI 基礎都講了,例子也很豐富)
  • ⭐ 黑馬程序員600集 Python 教程:https://www.bilibili.com/video/BV1ex411x7Em(比較全面,基於 Linux 環境學習,以 Python 基礎 + 面向對象為重點,還包含一部分遊戲開發)
  • ⭐ Python 全棧開發教程:https://www.bilibili.com/video/BV1wD4y1o7AS(很純粹的 Python 基礎教程,案例多,適合快速入門)
  • 小甲魚 -《零基礎入門學習Python》最新版:https://www.bilibili.com/video/av52080698(可惜,更新到一半就沒了。。)
  • 麻省理工學院-中文字幕版】Python 和計算機科學導論公開課:https://www.bilibili.com/video/BV1ty4y1x7xP(適合外語不錯的同學課外看,感受國外教學氛圍)
  • 阿里雲 python 工程師學習:https://developer.aliyun.com/graph/python(有在線編程體驗)
  • 魚皮公眾號【程序員魚皮】後台回復 Python,也有一套視頻課

其他

  • Web 開發 Python Django 項目實戰教程:https://www.bilibili.com/video/BV1pq4y1W7a1Python + 微信小程序實戰開發:https://www.bilibili.com/video/BV1Xy4y1s792(挺完整,後台用的 Django 框架)
  • 數據結構與演算法 Python 數據結構與演算法全套 100 節:https://www.bilibili.com/video/BV1uA411N7c5【北京大學】數據結構與演算法Python版(完整版):https://www.bilibili.com/video/BV1VC4y1x7uv
  • 爬蟲 2020 年Python爬蟲全套課程(學完可做項目):https://www.bilibili.com/video/BV1Yh411o7SzPython 爬蟲編程基礎 5 天速成:https://www.bilibili.com/video/BV12E411A7ZQ(很短的爬蟲實戰入門課)
  • 數據分析 自學數據分析課程:https://www.bilibili.com/video/BV1ZM4y1u7uF(很純粹的數據分析 + 可視化課程,適合辦公黨快速上手)完整數據分析課程:https://www.bilibili.com/video/BV1vV411p7D6(數據分析 + 機器學習,很全面)Python 數據分析入門視頻合集:https://shimowendang.com/docs/36pykCPH6XCjKJcv/read
  • 其他 一天搞定人臉識別項目(python+opencv):https://www.bilibili.com/video/BV1Lq4y1Z7dm Python 自動化辦公:https://www.bilibili.com/video/BV1uv411W7Fi(主要是處理 Excel)

書籍

  • ⭐《Python編程:從入門到實踐》:https://www.code-nav.cn/rd/?rid=cbddf0af6064484f002658102cdbba17
  • 《python學習手冊》:https://www.code-nav.cn/rd/?rid=79550af260643c8e0ce47ab84633e200
  • 《笨辦法學Python3》:https://www.code-nav.cn/rd/?rid=b00064a760643bb90cbba72836995fd5
  • 《Python編程快速上手》(第2版):https://book.douban.com/subject/35387685/
  • 《Python Cookbook 中文版》(第3版):https://book.douban.com/subject/26381341/
  • 《父與子的編程之旅》:https://www.code-nav.cn/rd/?rid=8937eaa9615519680ed81c0e3165ee65
  • ⭐《Python 深度學習》https://www.code-nav.cn/rd/?rid=2d44d6c261624dd31224ed1b5841920c
  • 《Python網路爬蟲實戰》第2版:https://www.code-nav.cn/rd/?rid=b00064a7606440d40cbc2fca19192e4f
  • 《Python數據科學手冊》:https://book.douban.com/subject/27667378/
  • 《利用Python進行數據分析》:https://book.douban.com/subject/25779298/
  • 《輕量級Django》:https://www.code-nav.cn/rd/?rid=28ee4e3e60641fd60d91fd2441418491
  • 編程導航 - 超多 Python 書籍直接免費下載 :https://www.code-nav.cn/topic/Python(選擇書籍標籤)
  • Python Guide(英文):https://docs.python-guide.org/

文檔

  • ⭐ Python 入門教程(菜鳥教程):https://www.runoob.com/python3/python3-tutorial.html(可以在線寫代碼練習)
  • Python 入門教程(W3Cschool):https://www.w3cschool.cn/python3/(支持手機閱讀)
  • Python 中文學習大本營:http://www.pythondoc.com/(一系列文檔教程的集合)
  • Python 100 天:https://github.com/jackfrued/Python-100-Days
  • 廖雪峰 Python 入門教程:https://www.liaoxuefeng.com/wiki/1016959663602400
  • 莫煩 Python 教程:https://mofanpy.com/(包括基礎、數據處理、機器學習等,部分內容有視頻)
  • Django 官方教程:https://docs.djangoproject.com/zh-hans/3.2/intro/tutorial01/
  • Manim 動畫引擎教程:https://docs.manim.org.cn/shaders/
  • A Byte of Python:https://python.swaroopch.com/(Python 英文入門教程)
  • ⭐ 谷歌 Python 代碼規範:https://google.github.io/styleguide/pyguide.html

實戰

  • ⭐ 藍橋雲課 Python 實戰合集:https://www.lanqiao.cn/courses/?fee=free&tag=Python
  • 騰訊雲在線 Python 實驗:https://cloud.tencent.com/developer/labs/gallery?tagId=23
  • 阿里雲 Python 入門實驗:https://developer.aliyun.com/adc/scenario/e04fe73ad95d4782aef7aecca206196e
  • 華為雲沙箱實驗室:https://lab.huaweicloud.com/testList.html
  • Python123:https://python123.io/index(在線編程,部分課收費)
  • CheckiO 遊戲學 Python:https://py.checkio.org/
  • 通過測試互動式學 Python(英文):https://github.com/gregmalcolm/python_koans
  • 互動式 Python 挑戰(英文):https://github.com/donnemartin/interactive-coding-challenges
  • 通過項目學 Python(英文):https://github.com/practical-tutorials/project-based-learning#python
  • 通過示例互動式學 Python(英文):https://github.com/jerry-git/learn-python3

代碼

  • 數據結構和演算法 Python 實現:https://github.com/keon/algorithms
  • 《劍指 Offer》演算法面試題 Python 實現:https://github.com/JushuangQiao/Python-Offer
  • 設計模式 Python 實現:http://www.pythontip.com/python-patterns/detail/abstract_factory
  • Python Machine Learning 代碼:https://github.com/rasbt/python-machine-learning-book-3rd-edition
  • Python 小腳本:https://github.com/RealHacker/python-gems

合集

  • ⭐ GitHub Python 專區:https://github.com/topics/python
  • 神經網路和深度學習相關框架:https://github.com/ChristosChristofidis/awesome-deep-learning
  • 機器學習相關庫:https://github.com/josephmisiti/awesome-machine-learning#python
  • 開源 Python 應用程序大全:https://github.com/mahmoud/awesome-python-applications
  • Python 類庫大全:https://github.com/vinta/awesome-python
  • Python 類庫大全(中文版):https://github.com/jobbole/awesome-python-cn
  • Python 非同步大全:https://github.com/timofurrer/awesome-asyncio
  • jupyter 相關:https://github.com/markusschanta/awesome-jupyter
  • Python 書單:https://github.com/Junnplus/awesome-python-books
  • Python 書單(中文版):https://github.com/jobbole/awesome-python-books
  • StackOverflow Python 專區:https://stackoverflow.com/questions/tagged/python(解決問題必備)
  • ⭐ 掘金 Python 專區:https://juejin.cn/tag/Python(看技術文章)

社區

  • ⭐ PythonTab:https://www.pythontab.com/(中文 Python 開發者社區)
  • Learnku Python 技術論壇:https://learnku.com/python
  • 開源中國:https://www.oschina.net/(綜合的開源社區)

工具

  • ⭐ Python 在線編程(菜鳥教程):https://c.runoob.com/compile/6/
  • 騰訊雲 Python 在線手冊:https://cloud.tencent.com/developer/devdocs
  • Python 在線手冊匯總:https://docs.pythontab.com/

面試題

  • ⭐ 牛客 Python 專項練習:https://www.nowcoder.com/intelligentTest
  • 牛客 Python 試題:https://www.nowcoder.com/search?query=python&type=question
  • 牛客機器學習面試題:https://www.nowcoder.com/search?type=question&query=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0
  • 牛客機器學習筆試:https://www.nowcoder.com/search?type=paper&query=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0
  • Python 面試題整理:https://github.com/taizilongxu/interview_python(高星)
  • Python 面試題整理:https://github.com/kenwoodjw/python_interview_question
  • 機器學習面試題:https://geektutu.com/post/qa-ml.html

其他

  • ⭐ Python 常見問題:https://docs.python.org/zh-cn/3/faq/general.html(官方提供的 )
  • GitHub Python 趨勢:https://github.com/trending/python
  • Python 模塊推薦:https://pymotw.com/3/
  • Python 練習冊:https://github.com/Yixiaohan/show-me-the-code(一些 Python 練習題目)

尾聲

以上就是魚皮熬了幾天大夜、結合個人經驗、並且參考了大量網上的視頻、文章和評論總結而成的學習路線,真的是非常不容易,如果大家覺得滿意請務必點個 支持下。

我是魚皮,持續分享編程乾貨的程序員,歡迎關注,下期再見~