Python全方向学习路径知识体系整理
不耽误时间,我们直接开始正题!
今天分享的内容主要围绕一个点:完整的知识体系,不管你是自学也好还是报班,完整的知识体系很重要!
下面我把Python学习的大致路线图以及每个阶段需要学习的具体内容都整理出来了,希望对大家有帮助~有学习需求的朋友可收藏。
先来看一下Python的职业成长路径图
Python全方向学习路线导图:
在我看来,明确自己的学习目标和学习路径,比你一开始像“大力出奇迹”那样到处收集几个G的学习资源要实用的多。
各方向学习路线大纲整理:
01 Python基础阶段
基础真的蛮重要的,因为Python的易应用性很容易让大家产生我什么都会了的感觉,但实际上还是不怎么会。
首先要了解Python是什么,它都能做些什么?
需要知道什么是变量、算法、解释器等等,主要掌握python脚本、python界面编程能力、数据库、基本爬虫、多线程多进程开发能力,可以胜任基本的python开发工作。
基础拆分细化:
1、数据的存储:Python概述、进制以及进制转换、原码、反码、补码、第一个Python程序、终端读取与打印等。
2、运算符与表达式:关键字和标识符、算术运算符、python数据类型、赋值运算符、运算符、复合运算符、条件控制语句(if..else...)、逻辑运算符等。
3、循环:循环语句之while、循环语句之for、break与continue语句等。
4、基础数据结构:Number与数学函数操作、String(查找,替换,下标索引、列表(常用)、元组、字典(常用)、set集合、迭代器与生成器(常用)、函数概述等。
5、函数:函数的调用、简单函数的定义、函数的返回值、传递参数、关键字参数、默认参数、不定长参数、匿名函数、装饰器、偏函数、回调函数、变量的作用域、递归函数、目录遍历、递归遍历目录、栈模拟递归遍历目录(深度遍历)、队列模拟递归遍历目录(广度遍历)等。
6、模块:模块概述使用标准库中的模块使用自定义模块name属性包的概述安装第三方模块virtualenv与时间相关模块。
7、面向对象编程:面向对象思想、类与对象、类的方法与属性、构造函数与析构函数、self的使用、重写__ repr__ 与__str__ 函数、访问限制等。
继承、封装、多态 :单继承的实现、多继承的实现、函数重写、人开枪射击子弹小案例、多态、对象属性与类属性、类方法与静态方法等。
8、面向对象高阶:动态添加属性方法、property、运算符重载、发邮件与发短信等。
9、文件操作与异常处理:StringIO与BytesIO、文件的管理操作、文件读写(csv、txt)操作、异常处理等。
10、高阶函数与测试:调试(打印、断言、logging、pdb)
11、排列组合与正则表达:破解密码(排列、组合、排列组合)、正则表达等。
12、网络编程:TCP/IP简介、TCP编程、UDP编程等。
面对对象是个难点,所以这里再单独提一下。
如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征。
在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系。
实例化:创建一个类的实例,类的具体对象。
方法:类中定义的函数。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
02 爬虫阶段
应该有很多人都对爬虫感兴趣吧?
爬虫不只是爬虫工程师会用到,业余时间也可以用来爬点自己想要的东西,又或者是做兼职也是可以的,比如日常办公自动化、电商抓取商品信息、分析销售数据做报表等等。
大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内容”这样的流程来进行,这其实也是模拟了我们使用浏览器获取网页信息的过程。
所以爬虫的简要学习路径大概有:
学习 Python 包并实现基本的爬虫过程
了解非结构化数据的存储
学习scrapy,搭建工程化爬虫
学习数据库知识,应对大规模数据存储与提取
掌握各种技巧,应对特殊网站的反爬措施
分布式爬虫,实现大规模并发采集,提升效率
Scrapy框架
数据库
03 web阶段
前端
能够写出简单的HTML页面,会使用jQuery、CSS,会使用流行的前端框架等。
HTML+css
网页界面设计实战
javaScript+ajax
jquerry
jquerry EasyUI, Mobile简介,photoshop
Bootstrap
Python后端
(常用的后端架构和企业项目实战)
后端开发Python目前还无法跟Java等语言匹敌,但它同样有它的优势。
比如开发周期短,很适合中小型企业,单个项目工期短也就是说同等时间内可以完成的项目就更多。
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架。
目前比较有名气的框架Django、Flask;
Django入门
Django高级
Django实战
Flask开发原理
Flask开发项目实践
Tornado开发原理
Tornado开发项目实践
Flask web框架的使用
Flask web框架的使用
模板与表单、数据库的使用、单元测试、第三方扩展与部署、Redis缓存使用、GIT版本控制、云服务器的使用、验证码的收发、网站项目开发实战
Django web框架的使用
框架的使用方法、模型介绍、ORM以及数据库操作、视图以及模板、Django中间件、Django REST Framework、网站项目开发实战。
04 Linux基础
掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器。
(linux入门,和python结合可以找linux+python运维的工作)
虚拟机安装
linux服务器安装与配置
apache服务器与nginx服务器安装与使用
linux常用服务器命令
Python-WEB服务器运行环境与配置
版本管理工具svn
版本管理工具git
程序部署与网站迁移
Linux运维自动化开发(Linux中比较深度的案例和实战)
Python开发Linux运维
Linux运维报警工具开发
Linux运维报警安全审计开发
Linux业务质量报表工具开发
Kali安全检测工具检测
Kali 密码破解实战
05 Python数据分析
数据分析也是当下的一大热门方向,用Python来做的话比其他语言强很多。
但往往只会数据分析还是差点意思,如果能具备爬虫能力来爬取数据就更好了。(分析爬虫抓取的数据,分析规律,用于商业化)
numpy数据处理
pandas数据分析
matplotlib数据可视化
scipy数据统计分析
python 金融数据分析
06 Python机器学习
(机器学习的一些入门概念和案例,python支持很多机器学习的框架)
现在不是各种吹人工智能么,机器学习就是人工智能的一个分支,它的应用太广泛了,比如自然语言处理,搜索引擎,各种识别技术,数据挖掘等等。
这难度不用我多说了吧,不会点算法就别碰,一碰就是各种高斯过程回归、线性判别分析、决策树、线性回归...
机器学习基础知识:
KNN算法
线性回归
逻辑斯蒂回归算法
决策树算法
朴素贝叶斯算法
支持向量机
聚类k-means算法
07 工具部分
PyCharm
新手建议首选 PyCharm,可以快速上手。
如果对开发工具感兴趣且时间充裕的话,也可以学习一下其他工具,从而做到在不同的场景选择最高效的工具。
VS code:这也是一款非常不错的代码编辑器,功能很齐全,安装使用都很简单方便。
Github:学习编程的不可能不知道,没有开发大型项目,只是在不同的电脑间进行同步
Mindmaster:思维导图模板很多,对于梳理知识点用处很大,而且不用的电脑,收集端,都可以同步
Snipaste:一款截图的小软件,在Microsoft store中直接下载,可以钉在屏幕上,可以看历史截图,可以看屏幕上各个地方的颜色值,挺适合前端设计的。
很多人觉得学编程难,大都是掌握方法不对,而不是能力、性别或其他原因。学习方法不对,没有培养出编程的思维和能力,这是一个因果关系。
学习编程的过程,一些经验总结大致概括就是:
1)看书、看博客、学课程或者看视频等
2)模仿着书上或者博客的代码,进行复现,复现不重要,思考才是关键 ⚠️
3)思考学习别人思路后,脱离书本和博客,完全自己实现功能
4)自己实现一些 DEMO,看别人项目代码,与别人讨论,提升代码能力
5)在别人的框架和要求下,写代码实现业务
6)自己负责别人设计的模块的实现
7)独立设计业务模块并开发实现
8)负责大项目框架设计和拆分,带领别人进行开发
9)其他高阶的架构和管理工作,已经不仅仅是代码能力了
好了,今天的分享就暂且到这里了!
以上这些参考经验,可以吸取适用自己的地方。每个人情况不一样,置顶的学习计划也就不一样,要根据自己的情况实时调整。
END
最后:
欢迎关注「Python新手快速入门」
每天5分钟,学习一个Python小Tip!助力你成为更优秀的Python学习者~