怒肝半月!Python 学习路线 + 资源大汇总
Python 学习路线 by 鱼皮。
原创不易,请勿抄袭,违者必究!
大家好,我是鱼皮,肝了十天左右的 Python 学习路线终于来了~
和之前一样,在看路线前,建议大家先通过以下视频了解几个问题:
Python 为什么这么火?
为什么都在说学 Python 找不到工作?Python 真香么?
我要学 Python 么?
怎么快速学习?
视频地址:https://www.bilibili.com/video/BV133411C7u5/
点击文末阅读原文可直接跳转
Python 为什么火了?
有很多原因,列举几点:
语法简单易学,其他语言 5 行代码才能实现的东西,Python 一行搞定!可以少写很多代码,因此不少同学拿 Python 刷算法题(但注意要理解算法本身哦)。
类库生态丰富,想做什么功能基本都有现成的代码,拿来直接用就行,无比方便!
免费开源,感兴趣、有能力的同学可以自己去研究源码。
其他特性,比如跨平台、可扩展等。
作为数据科学、人工智能的首选语言,踩到了时代的风口。
于是乎,Python 被推向了神坛,甚至在 2021 年 10 月的编程语言排行榜中,Python 登上了第一位!
但就是这样一门 “永远的神” 的编程语言,却在网上被口口相传说:学了 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 安装
开发工具
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
多媒体处理
大数据工程师
大数据开发
数据挖掘
网络爬虫工程师
技术研究员
资源
视频
零基础
⭐ 千锋教育 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/BV1pq4y1W7a1
Python + 微信小程序实战开发: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/BV1Yh411o7Sz
Python 爬虫编程基础 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 练习题目)
尾声
以上就是鱼皮熬了几天大夜、结合个人经验、并且参考了大量网上的视频、文章和评论总结而成的学习路线,真的是非常不容易,如果大家觉得满意请务必点个 赞 支持下。
我是鱼皮,持续分享编程干货的程序员,欢迎关注,下期再见~
评论