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 登上了第一位!

但就是这样一门 “永远的神” 的编程语言,却在网上被口口相传说:学了 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
    • 多媒体处理
  • 大数据工程师
    • 大数据开发
    • 数据挖掘
  • 网络爬虫工程师
  • 技术研究员

资源

视频

零基础

其他

书籍

文档

实战

代码

合集

社区

工具

面试题

其他

尾声

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

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

怒肝半月!Python 学习路线+资源大汇总的更多相关文章

  1. Python 学习路线(2022)

    原文链接: Python 学习路线(2022) 前几天整理了一份 Go 学习路线(2022),广受好评.那么趁火打劫,不是,是趁热打铁,又整理了一份 Python 学习路线. 内容依然是从入门到进阶, ...

  2. 关于python学习路线

    *Python进阶(目录/书籍/学习路线) 忘了从哪里转的了,没办法标记哦,实在不好意思... 目录:) 1. 简介&helloworld&开发环境配置 2.基本语法:标识符& ...

  3. 【最新发布】最新Python学习路线,值得收藏

    随着AI的发展,Python的薪资也在逐年增加,但是很多初学者会盲目乱学,连正确的学习路线都不清楚,踩很多坑,为此经过我多年开发经验以及对目前行业发展形式总结出一套最新python学习路线,帮助大家正 ...

  4. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  5. C#开源资源大汇总

    C#开源资源大汇总     C#开源资源大汇总 一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行 ...

  6. Python学习路线2019升级版(课程大纲+视频教程+网盘资源下载)

    2019最新Python全栈+人工智能学习路线升级版 全面涵盖前端.后端.爬虫.数据挖掘.人工智能等课程(课程大纲+视频教程+网盘资源下载)! 学习路线四大亮点: 1.人工智能三大主流框架全覆盖 2. ...

  7. Python学习路线【对标大厂Python工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文要点:从Python爬虫工程师的招聘要求出发制定学习路线,同时还推荐免费优质的学习资源. 打卡学习不迷茫. 干货满满,建议收藏,需要用到时常看 ...

  8. 一份最中肯的Java学习路线+资源分享(拒绝傻逼式分享)

    这是一篇针对Java初学者,或者说在Java学习路线上出了一些问题(不知道该学什么.不知道整体的学习路线是什么样的) 第一步:Java基础(一个月左右) 推荐视频: 下面的是黑马内部视频,我比较推荐的 ...

  9. 比培训机构还详细的 Python 学习路线,你信吗 0^0

    前言 这其实是将自己写的文章进行一个总结分类,并不代表最佳学习路线 会不断更新这篇文章...没链接的文章正在编写ing...会不会哪天我的这个目录就出现在培训机构的目录上了... 目前实战比较少(要是 ...

  10. Linux学习路线+资源

    Linux学习路线,个人收集分享 学习路线图 资源链接(蓝色下划线字体对应相应资源链接) Linux 基础 Linux 基础 Linux安装专题教程 Linux中文环境 Linux—从菜鸟到高手 鸟哥 ...

随机推荐

  1. 使用jsbarcode生成条形码

    安装 yarn add jsbarcode 使用 // HTMLElement 承载条形码的元素 svg/canvas // text 显示在条形码下方的文字 // option 条形码的配置项 具体 ...

  2. Vue——安装

    Vue.js 设计的初衷就包括可以被渐进式地采用.这意味着它可以根据需求以多种方式集成到一个项目中. 将 Vue.js 添加到项目中主要有四种方式: 1.在页面上以 CDN 包的形式导入. <s ...

  3. 7z 命令行压缩解压详解-中文版

    1) 简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件. 主页:http://www.7-zip.org/ 中文主页:http://7z.sparanoid.com ...

  4. tab切换中嵌套swiper轮播

    今天在做官网的时候需要用到swiper多图轮播的功能,但是得嵌套在tab切换中,就在我把砖都搬完后,发现了个问题,就是我在进行tab切换后,发现原本设置的swiper的自动轮播竟然失效了,而且样式也是 ...

  5. numpy基础--用于数组的文件输入输出

    以下代码的前提:import numpy as np numpy能够读写磁盘上的文本数据或二进制数据. 1 将数组以二进制格式保存到磁盘 np.save和np.load是读写磁盘数组数据的两个主要函数 ...

  6. 认识mongodb

    Mongodb是一个介于关系数据库和非关系数据库之间的产品(Nosql),是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自 ...

  7. 喜讯!INFINI Easysearch 在墨天轮数据库排名中挺进前30!

    近日,2023 年 10 月的 墨天轮中国数据库流行度排行 火热出炉,本月共有 283 个数据库参与排名,中国数据库行业竞争日益激烈.其中,极限科技旗下软件产品 INFINI Easysearch 稳 ...

  8. edge 书签栏 收藏夹栏 字体大小

    WIN10中,edge收藏夹栏字体太大,如果收藏数目多,得多翻好几页. 解决方法: 地址栏中输入: edge://flags/#edge-pc-ui-integration Enable Window ...

  9. 鸿蒙HarmonyOS实战-窗口管理

    前言 窗口管理是指计算机操作系统中管理和控制窗口的一种机制.窗口管理器负责处理窗口的创建.关闭.移动.调整大小等操作,并且决定窗口的位置.层级.是否可见.是否接收用户输入等属性.窗口管理器还负责绘制窗 ...

  10. Spring扩展——BeanFactoryPostProcessor(BFPP)

    引言 在Spring中BeanFactoryPostProcessor(后面使用简写BFPP),作为容器启动过程的对容器进行修改操作的Bean对象,是Spring框架对外提供的核心扩展点之一,Spri ...