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

進階

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

web 開發

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

爬蟲

  • 概念
  • 合法性
  • 數據抓取
    • 常用網絡協議(http / https)概念
    • 請求
      • 請求頭
      • 請求參數
      • 請求類型
    • 響應
      • 響應頭
      • 響應參數
    • requests 模塊
    • urllib 模塊
    • 模擬登陸
    • 靜態 / 動態網站抓取
    • 無頭瀏覽器
      • selenium
      • puppeteer
  • 數據解析
    • 常用標簽
    • BeautifulSoup
    • 正則表達式
    • xpath
  • 數據導出
    • 文件
      • Excel
      • CSV
    • 數據庫
      • MongoDB
      • MySQL
    • 中間件
      • Redis
  • Scrapy 框架
    • 核心概念
      • 命令行工具
      • Spiders
      • Selectors
      • Items
      • Item Loaders
      • 管道
      • Scrapy Shell
      • Link Extractors
    • 調度器
    • 分布式爬蟲
    • 部署
  • 並發異步爬蟲
    • aioHttp
    • asyncio
  • 高級
    • IP 代理
    • 驗證碼識別
    • APP 抓取
    • 增量式爬蟲
  • 項目實戰
  • 反爬蟲
    • 請求頭限制
    • 驗證碼
    • 黑白名單
    • 封禁 IP
    • 數據加密
    • 數據混淆
    • 行為分析

自動化運維

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

數據分析(數據科學)

  • 環境搭建
    • Anaconda
    • Conda
    • Miniconda
    • Jupyter Notebook
  • 常用數據結構
  • 常用類庫
    • Numpy
      • 數組
      • 索引
      • 切片
      • 多維數組
      • 函數
    • Pandas
      • Series
      • DataFrame
      • 索引
      • 對齊
      • 函數
      • 統計
  • 數據處理
    • 數據清洗
    • 層次化索引
    • 數據連接
    • 數據合並
    • 分組聚合
    • 軸向旋轉
  • 數據可視化
    • matplotlib
    • seaborn
    • pyechart

算法(人工智能)

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

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

常用類庫

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
    • 多媒體處理
  • 大數據工程師
    • 大數據開發
    • 數據挖掘
  • 網絡爬蟲工程師
  • 技術研究員

資源

視頻

零基礎

其他

書籍

文檔

實戰

代碼

合集

社區

工具

面試題

其他

尾聲

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM