前言:好像是自2018年Python火起来之后,“人生苦短,我用Python”——这句口号也慢慢成为了我跟朋友调侃自己学Python的原因。
步入了Python这个大坑后,买了很多的书,也学习了一些的Python视频,可是每次都是很没出息的一学就懂,学完就忘,从没好好的总结过。
于是,到了今年2020的3、4月求职季(不知是不是真正的互联网寒冬来了),反正我是频频受挫,的确也是一个狠狠的打击。
真正的大神都不care是不是寒冬
看到那么多大神总结的Java学习路线和知识总结,开始了疯狂保存、突击的过程(病急乱投医),或许看完这些也能找到工作了吧。
可是实际情况并不然,那些别人深入脑海,总结出来的知识点(对知识的提炼),跟我这种只能读到浅层(或者说背知识)根本不能相提并论。
经不起三连问,一问就露馅。
不禁陷入了思考,我学Python到底学到了什么?
Python是
可能很多人会告诉你Python简单,让你选择Python作为编程之旅的起点。
毕竟Python的优点摆在这:
- 简单易懂,支持大量模块,鼓励代码重用
- 跨平台 —— code once, run anywhere(支持各种平台比如:Windows,Linux,Unix,Mac,etc…)
- 解释型语言 —— 解释器逐行执行代码,方便调试
- 支持面向对象编程、函数式编程
- 开源 - 随时都可以使用与练习
- 胶水语言,允许与其他语言集成,比如Java、C、C++
- Python有众多的优秀的标准库和第三方库
- 其他
很多优点是怎么体现出来的,你知道吗?
最好的学习方式
学习Python最好的方式 —— Practice练习 + Thinking 思考
- Coding 才是王道,真正的高手应该都是 拿代码说话
- What + How | Why, 真正的高手应该是 知其然知其所以然
很多人包括我 容易只停留What 和 How的阶段:What用Google、百度。How 就有博客、视频和文档
了解完这些,让我们来一探究竟学Python需要学什么 —— 从入门到弃坑的更多主题。
既然已经吃过亏,只能接下来慢慢往每个模块写相关的知识总结
语言基础篇
每门语言都有自己的语法和规则,这些应该是最容易的
变量和数据类型
动态语言的特点
运算符
无外乎与 + - * / == % >= <=
条件语句
if elif else while for
函数
def
异常处理
try catch except finally
数据结构
数据结构是所有编程语言所共有的,Python中,可以称之们为collection,这使得存储和检索数据变得轻而易举。从而是程序变得更快和高效。
Python中有四种主要的collection类型,分别是:
- list - 列表,是Python最简单也最常用的数据结构,有序可变,支持索引
seq[0]
,支持增删改查 - tuple - 元组,有序不可变。支持索引,不支持增加和删除元组中的元素
- set - 集合,无序不可索引。但可以通过循环遍历整个set查看某个元素是否存在
- dictionary - 字典,也可被称为maps,无序但可以通过键值对访问。
面向对象
Java、C++等大多数高级编程语言都基于OOPS(面向对象编程概念),Python也是如此。
在OOP中,一切都被视为对象。类是我们根据需要创建对象的实体。
数据来源
用户输入
从用户那里获取输入非常简单。仅使用input()
方法即可从控制台获取输入。
name = input('Please enter your name: ')
文件处理
文件处理是任何应用程序的重要组成部分。您的应用程序可能想要读取文件,写入文件等等。
文件操作有四种类型,我们称之为CRUD-
- Create创建
- Read读取
- Update更新
- Delete删除
内心OS:不想只做一个CRUD程序员
连接数据库
-
MySQL
-
MongoDB
-
Redis
语言进阶篇
迭代器和生成器
函数进阶
魔法函数:
类进阶
- 鸭子类型和多态
- 抽象基类
- …
内存管理
- 引用计数
- 标记清除
- 分代回收
元类编程
- 装饰器
- …
模块和包
GUI编程篇
网络编程篇
-
TCP
-
UDP
并发编程
基础:线程与进程
- multthreading 多线程
- multiprocessing 多进程
- coroutine 协程
不得不学的asyncio
进阶路线
条条道路皆可成神,你究竟选哪一条?
每一个方向都有众多的知识,我这里只简单列出部分内容。
Web开发篇
创建Web API
现在,让我们更全面地了解一下网络世界,程序和应用程序之间相互交互,共享资源,最重要的是,使用HTTP协议将请求彼此传递。每个可以相互通信的应用程序称为微服务。这意味着,如果您希望您的应用与世界互动,那么您应该知道如何通过创建API来提供您的服务!
学习Python网络编程库–
创建Web应用
现在,您可以使用Python创建Web应用程序,那么不得不学习
Django是一个完整的Web框架,您可以使用它在Python中创建一个端到端的Web应用程序。它使用MVC(模型视图控制器)架构和ORM(对象关系映射)进行数据访问。Python中有一些库完全支持ORM和构建Web应用程序安全性。
其他Web相关知识点
爬虫篇
数据科学篇
必装工具之Anaconda
人工智能篇
机器学习
深度学习
自动化运维和测试
最后的话
如果你能看到此处,说明你应该也是一个Python的爱好者了吧。
回到最初学Python的原因,别人说Python简单易学,你还信吗?真简单吗?
从上面的结构,可以看到一个Python 极客需要学习的知识跟各种成长路线图,开始明白了前辈说的Python易学难精。
的确,如今自己的Python知识的确还是一个小学生。有很多的知识还待自己去挖掘,还有很多学过的内容等着自己去总结。
想学好一门编程语言,往往是一个长年累月的过程。不然“精通”这个词也不会那么让人望而却步吧。
写完这些,可能才是真正的Python之旅吧。
旅途上见!