鱼皮爆肝 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 安装 开发工具 PyCharm Sublime VS Code 变量 定义变量 关键字 命名规则 基本数据类型 类型转换 运算符和表达式 流程控制 条件分支 循环 基本数据结构 字符串 列表 元组 集合 字典 函数 定义 参数传递 作用域 lambda 表达式 常用内置函数 ⭐ 面向对象编程 封装 继承 多态 类方法 实例方法 静态方法 self 属性 方法 访问控制 单继承 多继承 方法重写 类和对象 三大特性 运算符重载 装饰器 反射 模块 文件处理 日期时间 导入模块 常用模块 包 导入包 生成包 异常处理 捕获异常 try ... else ... finally 结构 自定义异常 文件操作 文件开闭 文件读写
进阶
函数进阶 闭包 匿名函数 生成器函数 装饰器 高阶函数 正则表达式 数据库编程 聚合 分组 关联 排序 数据库基础 SQL 编写 查询 事务 数据库设计 数据库调优 并发编程 同步和异步 阻塞和非阻塞 多线程 多进程 协程 并发类库 网络编程 网络基础(七层模型、IP) 网络协议(TCP、UDP、HTTP、HTTPS、FTP、DNS) WebSocket
web 开发
Django 框架 概念 数据序列化 Django Rest Framework 分页 缓存 序列化 信号 celery 任务调度 本地缓存 Redis 分布式缓存 模板语法 静态资源 数据库基础 ORM 单表查询 多表查询 聚合查询 安装与 Demo MVT 分层 模型 视图 模板 路由 Django Admin 管理工具 测试 会话 鉴权 文件上传 中间件 高级特性 Restful API 开发 部署 项目实战 前端基础 HTML CSS JavaScript Flask 框架
爬虫
概念 合法性 数据抓取 selenium puppeteer 响应头 响应参数 请求头 请求参数 请求类型 常用网络协议(http / https)概念 请求 响应 requests 模块 urllib 模块 模拟登陆 静态 / 动态网站抓取 无头浏览器 数据解析 常用标签 BeautifulSoup 正则表达式 xpath 数据导出 Redis MongoDB MySQL Excel CSV 文件 数据库 中间件 Scrapy 框架 命令行工具 Spiders Selectors Items Item Loaders 管道 Scrapy Shell Link Extractors 核心概念 调度器 分布式爬虫 部署 并发异步爬虫 aioHttp asyncio 高级 IP 代理 验证码识别 APP 抓取 增量式爬虫 项目实战 反爬虫 请求头限制 验证码 黑白名单 封禁 IP 数据加密 数据混淆 行为分析
自动化运维
Linux 环境 Shell 脚本编写 脚本管理 脚本发布 Python 运维库 常用运维工具
数据分析(数据科学)
环境搭建 Anaconda Conda Miniconda Jupyter Notebook 常用数据结构 常用类库 Series DataFrame 索引 对齐 函数 统计 数组 索引 切片 多维数组 函数 Numpy Pandas 数据处理 数据清洗 层次化索引 数据连接 数据合并 分组聚合 轴向旋转 数据可视化 matplotlib seaborn pyechart
算法(人工智能)
鱼皮自己没怎么接触人工智能,结合网上很多大神的资料整理而成,也有一定参考意义。
数学基础 高等数学 线性代数 概率论 统计分析 机器学习 Scikit-learn 监督与无监督学习 回归(有监督) 分类(有监督) 聚类(无监督) 降维 进阶 线性回归 决策树 集成算法 逻辑回归 决策树 支持向量机 集成算法 贝叶斯算法 k-means dbscan 主成分分析 线性判别分析 GBDT 提升算法 lightgbm EM 算法 隐马尔科夫模型 模型分类 模型评估 模型训练 模型调优 特征工程 模型 常用算法 多因子模型 常用库 量化交易策略 深度学习 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 练习题目)
尾声
以上就是鱼皮熬了几天大夜、结合个人经验、并且参考了大量网上的视频、文章和评论总结而成的学习路线,真的是非常不容易,如果大家觉得满意请务必点个 赞 + 在看 支持下。
在本公众号【程序员鱼皮】后台回复【python】可以获取原图、思维导图源文件、学习视频~
我是鱼皮,持续分享编程干货的程序员,欢迎关注,下期再见~
往期推荐
读者 | 做了个博客,看看咋样
精品 IDEA 插件大汇总!值得收藏
怒肝 Linux 学习路线,这回不难!
我被最恨的公司采访了!