Python 自学走线 by 鱼肉。
创作者难于,切勿剽窃,乳类!
我们好,我是鱼肉,肝了八天以内的 Python 自学走线总算来了~
和以后那样,在看走线前,提议我们先透过下列音频介绍两个难题:
Python 为何那么火?为何都在说学 Python 找不出组织工作?Python 通心面么?我Thoubal 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、或者听培训机构画饼时要高的多,算法岗位、大厂的产品岗真就是神仙打架,而且研究生居多。
自学目标
既然这样,那我还要不Thoubal Python 呢?
但是,一定要先思考自己的自学目标,目标不同,对 Python 的自学态度和投入的时间也不同。
如果想找开发岗位的组织工作,像上面说的,不提议把 Python 作为你的主语言,而是把它当做你的副武器。只需简单学学 Python 基础,就可以编写 Python 脚本来自动化办公、提高组织工作效率、做一些小工具了,性价比很高。
如果说编程语言是工具,那 Python 是对这句话的完美诠释。 多会用一个神器,谁不爱呢?
如果你想找其他岗位的组织工作,比如运维、测试、数据分析、产品经理、大数据、爬虫、人工智能、图像处理、多媒体处理、算法研究,当然也可以,只是如果以这些岗位为目标,除了要打好 Python 基础外,更重要的是理解对应领域的思想、方法和实践,而不是只会引库调包。
如果你是初学编程或者出于好奇学编程,我也提议你学 Python,好玩、能学下去、能培养兴趣,这些对初学者非常重要,有了兴趣之后,再学别的语言就会如鱼得水。
自学提议
对于初学者和非 Python 岗位的从业者,就把 Python 当工具学,介绍下基础语法和常用类库,需要写 Python 脚本时,能利用搜索引擎和文档写出(或者复制)代码就行。只要你学过其他编程语言,上手 Python 真的都很容易,3 – 7 天就能学会。
提议自学时多写些小例子,比如 Python 处理表格、Python 处理 PDF 等,感受 Python 类库的强大就完事儿~
自学走线大纲
自学走线
基础
Python 安装开发工具 PyCharmSublimeVS Code变量 定义变量关键字命名规则基本数据类型类型转换运算符和表达式流程控制 条件分支循环基本数据结构 字符串列表元组集合字典函数 定义参数传递作用域lambda 表达式常用内置函数 面向对象编程 类和对象三大特性 封装 self属性方法 类方法实例方法静态方法 访问控制 继承 单继承多继承 多态 方法重写 运算符重载装饰器反射模块 导入模块常用模块 文件处理日期时间包 导入包生成包异常处理 捕获异常try … else … finally 结构自定义异常文件操作 文件开闭文件读写
进阶
函数进阶 闭包匿名函数生成器函数装饰器高阶函数正则表达式数据库编程 数据库基础SQL 编写查询 聚合分组关联排序 事务数据库设计数据库调优并发编程 同步和异步阻塞和非阻塞多线程多进程协程并发类库网络编程 网络基础(七层模型、IP)网络协议(TCP、UDP、HTTP、HTTPS、FTP、DNS)WebSocket
web 开发
Django 框架 安装与 DemoMVT 分层模型 数据库基础ORM 单表查询多表查询聚合查询 视图模板 模板语法静态天然资源 路由Django Admin 管理工具测试会话鉴权文件上传中间件高级特性 分页缓存 本地缓存Redis 分布式缓存 序列化信号celery 任务调度 Restful API 开发 概念数据序列化Django Rest Framework 部署项目实战前端基础 HTMLCSSJavaScriptFlask 框架
爬虫
概念合法性数据抓取 常用网络协议(http / https)概念请求 请求头请求参数请求类型 响应 响应头响应参数 requests 模块urllib 模块模拟登陆静态 / 动态网站抓取无头浏览器 seleniumpuppeteer数据解析 常用标签BeautifulSoup正则表达式xpath数据导出 文件 ExcelCSV 数据库 MongoDBMySQL 中间件 RedisScrapy 框架 核心概念 命令行工具SpidersSelectorsItemsItem Loaders管道Scrapy ShellLink Extractors 调度器分布式爬虫部署并发异步爬虫 aioHttpasyncio高级 IP 代理验证码识别APP 抓取增量式爬虫项目实战反爬虫 请求头限制验证码黑白名单封禁 IP数据加密数据混淆行为分析
自动化运维
Linux 环境Shell 脚本编写脚本管理脚本发布Python 运维库常用运维工具
数据分析(数据科学)
环境搭建 AnacondaCondaMinicondaJupyter Notebook常用数据结构常用类库 Numpy 数组索引切片多维数组函数 Pandas SeriesDataFrame索引对齐函数统计数据处理 数据清洗层次化索引数据连接数据合并分组聚合轴向旋转数据可视化 matplotlibseabornpyechart
算法(人工智能)
鱼肉自己没是不是接触人工智能,结合网上许多大神的资料整理而成,也有一定参考意义。
数学基础 高等数学线性代数概率论统计分析机器自学 特征工程模型 模型分类模型评估模型训练模型调优 常用算法 监督与无监督自学回归(有监督) 线性回归决策树集成算法 分类(有监督) 逻辑回归决策树支持向量机集成算法贝叶斯算法 聚类(无监督) k-meansdbscan 降维 主成分分析线性判别分析 进阶 GBDT 提升算法lightgbmEM 算法隐马尔科夫模型 多因子模型常用库 Scikit-learn 量化交易策略深度自学 数据预处理算法 神经网络卷积神经网络递归神经网络对抗生成网络序列网络模型 常用算法框架和平台 Tenserflow2PytorchKerasCaffe自然语言处理图像处理计算机视觉
常用类库
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:操作 Excelpython-docx:操作 office word 文档PyPDF2:操作 PDF 文档pdfminer:从 PDF 文档中抽取信息的工具xhtml2pdf:HTML 转 PDF 工具WeasyPrint:可视化网页,并支持导出为 PDFhtml2text:将 HTML 转换为 Markdown 文档xmltodict:像处理 JSON 那样处理 XMLmoviepy:基于脚本的音频编辑模块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:为进行普通自然语言处理任务提供一致的 APIPyFlux:时间序列处理库jieba:中文分词工具
大纲
岗位
腾讯校招 Python 相关岗位:https://join.qq.com/post.html?keyword=python岗位薪资查询:OfferShow 小程序运维工程师Web 开发工程师(后端、全栈为主)测试工程师数据分析师产品经理算法工程师 机器自学计算机视觉NLP多媒体处理大数据工程师 大数据开发数据挖掘网络爬虫工程师技术研究员
天然资源
音频
零基础
蓝桥云课 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.htmlPython123: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_factoryPython Machine Learning 代码:https://github.com/rasbt/python-machine-learning-book-3rd-editionPython 小脚本: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-applicationsPython 类库大全:https://github.com/vinta/awesome-pythonPython 类库大全(中文版):https://github.com/jobbole/awesome-python-cnPython 异步大全:https://github.com/timofurrer/awesome-asynciojupyter 相关:https://github.com/markusschanta/awesome-jupyterPython 书单:https://github.com/Junnplus/awesome-python-booksPython 书单(中文版):https://github.com/jobbole/awesome-python-booksStackOverflow 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/devdocsPython 在线手册汇整: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%A0Python 面试题整理: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/pythonPython 模块推荐:https://pymotw.com/3/Python 练习册:https://github.com/Yixiaohan/show-me-the-code(一些 Python 练习题目)
尾声
以上就是鱼肉熬了几天大夜、结合个人经验、并且参考了大量网上的音频、文章和评论总结而成的自学走线,真的是非常不容易,如果我们觉得满意请务必点个赞 支持下。