Python学到什么程度可以面试工作?

找工作就像找女朋友一样,是一个匹配的过程。

找女朋友:确定目标-互相了解-展现自己-在一起/追不上。

求职:确定求职目标 -了解雇主期望 - 优化求职物料 - 面试谈判。

因此,了解企业需求是基础。

企业对Python工程师的需求主要分为后端开发、算法&大数据&爬虫类、Python前端开发/全栈开发。越早决定职业发展方向越好,这样你可以更有针对性地准备面试。

Python后端开发工程师为例,你需要掌握Python语言、数据结构、算法、Python框架、数据库等。其中,一些大厂的面试70%的题目与数据结构和算法有关。

Python学到什么程度可以面试工作?_第1张图片

Python语言

1. Python基础入门

  1. 变量及其运算
  2. Reverse 3-digit Integer
  3. Swap Two Variables

2. 程序控制流

  1. 如何写好if语句
  2. for 循环和 while 循环

3. 函数

  1. 函数的定义及使用
  2. 函数的参数传递

4. 面向对象入门

  1. 什么是面向对象
  2. 类和对象的概念

这部分推荐几个学习资源

  • Python官方文档
  • PEP-8::编写python代码的指南
  • Python Package Index:官方python包repo
  • / r / learnpython wiki

数据结构

你可以先从简单的队列、栈开始再到平衡数,把数据结构画出来,直观地去了解这些数据结构。一定要自己动手打一下代码练练手,帮助理解概念。

可以在LintCode上刷题,按照类别进行刷题,刷完一类、理解之后再刷下一类,帮助理解和巩固。每一类题目都可以先从简单的做起,不会的可以参考Lintcode答案解析。

数据结构部分需要掌握

1. 列表(List)和元组(Tuple)

  1. 列表的概念及常用操作
  2. 元组的概念及常用操作

2. 字符串(String)

  1. 字符串的概念及常用操作
  2. 字符和 Unicode

3. 什么是引用(Reference)?

  1. 计算机内存模型

4. 链表(Linked list)

  1. 链表的构建
  2. 链表的常用操作

5. 算法的时间复杂度分析

6. 栈(Stack)

  1. 栈的实现及常用操作
  2. 栈在操作系统中的应用

7. 队列(Queue)

  1. 队列的实现及常用操作
  2. Python 中的 queue 模块

8. 什么是树(Tree)?

  1. 二叉树的定义
  2. 二叉树的构建

9. 二叉树的深度优先遍历

  1. 前序遍历
  2. 中序遍历
  3. 后序遍历

10. 二叉树的宽度优先遍历

  1. 宽度优先遍历的实现
  2. 按层次遍历

11. 二分搜索树(BST)

  1. 什么是 BST ?
  2. BST 的常用操作
  3. BST 在实际系统中的应用

12. 集合(Set)和字典(Dictionary)

  1. 集合的定义及常用操作
  2. 字典的定义及常用操作
  3. 集合和字典的实现

算法

对算法题来说有两大法宝,“拿到题选什么算法”和“如何实现这个算法”,后者会更容易一些,所以可以先从实现算法开始练起(LintCode的分类阶梯训练)。

很多同学存在刷题误区:刷题百遍,效果没见

刷题应该精刷,看到一道题,先尝试做,做出来后和答案对比,自己的解答和答案的时间复杂度、空间复杂度分别是多少,使用的算法是否一样,和答案相比差在哪里。在这个思考的过程中,对题目的理解程度就很深了。这样一天可能只能刷3、4题,但不要着急,因为粗刷没有用。

算法部分需要掌握:

1. 分治算法

2. 递归(Recursive)

  1. 什么是递归 ?
  2. 递归的三要素
  3. 递归算法的时间和空间复杂度分析

3. 普通排序算法

  1. 选择排序
  2. 插入排序
  3. 冒泡排序

4. 归并排序

  1. 归并排序的算法思想
  2. 归并排序的 Python 实现

5. 快速排序

  1. 快速排序的算法思想
  2. 快速排序的 Python 实现

6. 使用 Python 的 Sort 和 cmp 函数实现各种情况下的排序

Python框架

根据岗位会有不同要求,一般需要2-3个能够写在简历上的重要项目。

web开发,主要框架有Django,Flask,Tornado;

数据科学,主要框架是Numpy,Pandas,Matplotlib;

深度学习,主要框架是TensorFlow;

网络爬虫,主要框架是Scrapy。

下面介绍一下各个Pyhton框架的学习资源。

web开发

Python里运用的最为广泛的一个框架就是Django了,Instagram,Pinterest,Washington Post等知名网站就是用Python和Django框架联合开发的。所以如果要快速熟悉Python在web开发方面的应用,那么可以从Django开始。下面是一些Django的练手小项目,可以参考这些内容进行进一步的练习。

  • 刘江的Django项目
  • Django练手小项目
  • 姓名大全网站Django练手项目
  • 班级学生信息管理系统
  • Django实现贴吧云回帖

如果自学困难,可以随时免费试听《Django开发入门》这门课程,FLAG一线大厂老师带队,一个周末就能搭建出Instagram后台。

数据科学

汽车销售偷漏纳税人识别

用python实现一个数据库

Python实现火车票查询工具

深度学习

Neural Style-照片的风格迁移

Mozilla Deep Speech-语音转文本

Deepdream-Google的开源图像识别工具

Neural Doodle-把涂鸦风图片转换为艺术品风格的画作

网络爬虫

新浪微博爬虫

bilibili用户爬虫

微信公众号爬虫

中国知网爬虫

数据库

sql语言的基本知识要掌握,要能够使用数据库实现项目功能。推荐学习资源:

Python 操作 MySQL 数据库

Python数据库篇

服务器配置

掌握Linux等平台开发使用功能,能独立将项目部署发布即可。

在实际找工作中,你会发现,即使是同是Python后端开发岗位,不同行业、不同公司的要求也不一样。以上内容已经能够cover大部分公司的要求,但建议你选定心仪公司后,根据JD要求去充实自己的技能和项目经历。

你可能感兴趣的:(python,面试,django)