面试Python屡屡受挫,我开始反思学Python到底学什么

前言:好像是自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 思考

  1. Coding 才是王道,真正的高手应该都是 拿代码说话
  2. 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

语言进阶篇

迭代器和生成器

函数进阶

魔法函数:

  1. __str____repr__

浅拷贝和深拷贝

类进阶

  • 鸭子类型和多态
  • 抽象基类

内存管理

深入理解Python内存管理

垃圾回收机制

  • 引用计数
  • 标记清除
  • 分代回收

元类编程

  • 装饰器

模块和包

GUI编程篇

  • tkinker

网络编程篇

网络基础

socket–底层网络接口

  • TCP

  • UDP

并发编程

基础:线程与进程

  • multthreading 多线程
  • multiprocessing 多进程
  • coroutine 协程

不得不学的asyncio

进阶路线

条条道路皆可成神,你究竟选哪一条?
每一个方向都有众多的知识,我这里只简单列出部分内容。

Web开发篇

创建Web API

现在,让我们更全面地了解一下网络世界,程序和应用程序之间相互交互,共享资源,最重要的是,使用HTTP协议将请求彼此传递。每个可以相互通信的应用程序称为微服务。这意味着,如果您希望您的应用与世界互动,那么您应该知道如何通过创建API来提供您的服务!

学习Python网络编程库–

  • Flask

创建Web应用

现在,您可以使用Python创建Web应用程序,那么不得不学习

  • Django
  • Tornado

Django是一个完整的Web框架,您可以使用它在Python中创建一个端到端的Web应用程序。它使用MVC(模型视图控制器)架构和ORM(对象关系映射)进行数据访问。Python中有一些库完全支持ORM和构建Web应用程序安全性。

其他Web相关知识点

爬虫篇

scrapy

数据科学篇

必装工具之Anaconda

  • Numpy
  • Scikit-Learn

人工智能篇

机器学习

深度学习

  • TensorFlow

  • Keras

  • Pytorch

自动化运维和测试

  • Selenium with python

最后的话

如果你能看到此处,说明你应该也是一个Python的爱好者了吧。

回到最初学Python的原因,别人说Python简单易学,你还信吗?真简单吗?

从上面的结构,可以看到一个Python 极客需要学习的知识跟各种成长路线图,开始明白了前辈说的Python易学难精。

的确,如今自己的Python知识的确还是一个小学生。有很多的知识还待自己去挖掘,还有很多学过的内容等着自己去总结。

想学好一门编程语言,往往是一个长年累月的过程。不然“精通”这个词也不会那么让人望而却步吧。

写完这些,可能才是真正的Python之旅吧。

旅途上见!

你可能感兴趣的:(不归路之Python)