怒肝半月!Python 学习路线+资源大汇总

Python
421
0
0
2022-11-08
标签   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 登上了第一位!

imgTIOBE 编程语言排行榜

但就是这样一门 “永远的神” 的编程语言,却在网上被口口相传说:学了 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】获取思维导图:

img鱼皮 - 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 相关岗位:
  • 岗位薪资查询:OfferShow 小程序
  • 运维工程师
  • Web 开发工程师(后端、全栈为主)
  • 测试工程师
  • 数据分析师
  • 产品经理
  • 算法工程师
  • 机器学习
  • 计算机视觉
  • NLP
  • 多媒体处理
  • 大数据工程师
  • 大数据开发
  • 数据挖掘
  • 网络爬虫工程师
  • 技术研究员

资源

视频

零基础

其他

书籍

文档

实战

代码

合集

社区

工具

面试题

其他

尾声

以上就是鱼皮熬了几天大夜、结合个人经验、并且参考了大量网上的视频、文章和评论总结而成的学习路线,真的是非常不容易,如果大家觉得满意请务必点个 支持下。

我是鱼皮,持续分享编程干货的程序员,欢迎关注,下期再见~