之前17年的时候在CSDN写过一篇初级面试总结,写完之后盗链的比较多,然后最近找工作的时候,又输出了一篇,算是中级python的面试总结吧,全文如下:

时光荏苒,岁月如梭,一转眼,又到了春暖花开跳槽季。。。从我17年转行进入web开发这个行当,已经3年了,然后年初的这次疫情,让我有了一个充分准备面试的时间,从3月9号开始投递简历,就只看上海和杭州的机会,然后到目前4月初,大概一个月的时间,面试了10多家大小型的互联网公司。于是乎,想在[前文的基础上](一个初级python web后端开发工程师的面试总结),再做一些中级web开发的总结,造福大家~~

跟之前初级开发总结一样文章流程,先说公司:莉莉丝、商汤、触宝、两家外企、阿里云、蚂蚁金服、网易伏羲、抖音、华为(若干事业部,性格测试挂了)、同花顺、以及其他若干C/D轮公司。

一句话感慨,python web可选范围真的小啊,我基本把boss直聘、拉勾翻烂了才挑出这些家公司。诸位保重,还是有机会多学习一下Java和go吧...

猎头加几个,偶尔会有惊喜

emmm,还有脉脉,里面大公司和猎头超多。偶尔看看offer动辄百万的职言,就更有努力学习的动力了...

## 面试准备篇

还是按上一篇文章的结构来,首先是

### 1. 基础部分

这块没什么太多的区别:线程、进程、协程必问;三者区别和联系,应用场景;python中有何特殊之处;python的协程用过吗,如何实现的,asyncio中是如何实现的,协程间是如何实现调度的?

元类的作用;

如何实现动态加载;

如何实时debug;

可变、不可变是什么,为何会这么设计;

如何理解python的一切皆对象;

lambda函数,怎么看待;

迭代器是什么,next和iter各自是干嘛的;

如何垃圾回收,什么情况会内存泄漏,如何排查;

### 2. 算法排序部分

这块没啥好说的,LeetCode刷起来。至于如何刷,我觉得知乎上说的不错,第一遍直接看答案,照着答案手打去理解;熟悉常见的数据结构/算法之后再做题,至于先做哪些题,我觉得没必要一道道来,先熟悉数据结构和常见的算法,[知乎如何刷LeetCode](大家都是如何刷 LeetCode 的?) 然后可以先做腾讯50,或者热点面试题这种;

如果数据结构你都了解,那么推荐一个大神:[labuladong的算法小抄](labuladong的算法小抄)。看完之后你会发现,什么狗屁算法题,都是模板,直接往里套就行。。回溯、动态规划、二分、二叉树、双指针、滑动窗口。。。全给你整明白了,值得每天看一遍,真的牛逼

手写LRU(LRU简直不要太频繁,几乎必考,也经常会让手写,,python使用OrderedDict还是很轻松的)

手写堆排;

找中位数,或者类似topK问题(堆排,或者快速排序的思想)

单链表排序;

手写冒泡,如何优化;

大文件/海量数据的处理,这块也很频繁,推荐专门搜下这方面,基本就是分治的思想,哈希表,tire树,或者AC自动机,布隆过滤器。多看两篇文章就懂了,没啥好说的

如何设计URL短链,比如微博分享的这种(抖音问的)

二叉树的右视图;

链表第K位翻转;

三数之和的进阶版:三数之加减乘除,,这题我没想出来,直接跪了。。

等等一些,基本都是常见的LeetCode中等难度及以下的题,简单的题基本都会问这样实现的时间、空间复杂度多少,如何优化

### 3. 网络基础部分

这块问的不多,可能是我样本比较少吧,当然也得必需准备,万一到时候说不出,那就基本凉了。。

握手挥手、time_wait这些都是必需准备的,没啥好说的

HTTP版本,常见header,HTTPS介绍

Nginx介绍,有几个进程,为何这么快;

uwsgi介绍, 是干嘛的;

socket方面,epoll为何快,底层用了什么?顺带说下红黑树,比如左旋右旋,变色,和AVL区别,为啥大家都会用这个;

### 4. 数据库部分

这块是重头戏,高不高级就看着快了

分成3部分吧,MySQL,Redis,MQ/KAFKA

首先是MySQL,

ACID说一下;

事务隔离的级别,默认是啥,幻读是啥意思;

如何优化?涉及到分库分表,慢查询如何看,explain哪个字段能看是否用索引;最左前缀优先匹配;建索引的原则;

CPU高应该怎么办;

B+树和B树区别,MySQL为何用B+;主键查询和非主键索引查询有何区别;

哈希索引;

什么是聚簇索引;

B树有何优点,什么场景会用B树?(memcache)

扇区、节点大小的概念,为何树的高度要低;

innodb和myisam的区别,存储方面呢;

你如何看待外键,优劣;

redis

(这块问的超多,也有可能是因为我说我看过单机Redis的源码)

常见使用场景有哪些?

为啥快?单线程到底是因还是果;

发布订阅功能,和MQ,比如rabbitMQ有何区别?

排行榜、关注的人用什么实现;如果我想范围取值,你推荐用什么方式;

dict底层实现,rehash讲一下;触发条件;

zset底层实现,跳跃表讲一下;

sds的特点,为何这么设计;

淘汰机制,近似LRU,为何这么设计;

两种持久化应用场景,RDB有何缺点,默认会用什么;

aof文件太大怎么办;

集群:你知道几种方式,cluster特点,主从之间是如何同步的,哈希槽概念讲一下,是如何动态扩容的;

异常情况考虑过吗,比如master断网后,选举出新master,原master又恢复了。。

分布式锁如何设计

redis双写,是先写数据库还是先缓存?各有什么问题,怎么解决?

强一致性要求,是否要用缓存?

MQ/KAFKA

(这块应该会根据你的项目经历来问,用的多问的多)

何时会用队列;

rabbitMQ和卡夫卡的优劣;

如何保证消息不会丢失/重复消费(基本必考)

卡夫卡的partition概念是什么;

### 4. Linux部分

常用命令说下,多个文件下查找目标string,比如cat find,awk

这个也算是问的比较少

### 5. 项目部分

这块就每个人都不一样了。

我的话就是RBAC权限模型问的比较多,白板上设计一个公司的权限系统,数据库如何设计;

django/flask区别;

tornado为何快;

flask里的请求上下文和应用上下文说一下。

celery任务丢失遇到过吗,如何保证高可用;

待补充。。。

### 6. docker+k8s

这块,说实话我没啥经验,但是呢,这个基本算得上是必考内容了,常问的就是如何编排docker等等,,推荐好好搜几篇文章认真准备下,这里我就不献丑了

## 面试过程篇

一般上来就是自我介绍,可以适当发挥一些简历上没有的东西,影响不大。

然后面对面试官的提问,如果是没头绪或者不知道怎么回答,不要直接就说不会,而是可以说下你自己的理解,或者说下你知道的其他技术,是如何解决这个问题的,猜测一下。但千万不要不懂装懂,如果面试官觉得你这个人不实诚,那就真的凉了。。

还有就是尽量把面试官往你擅长的方向去,多去问你十拿九稳的,比如面试官问:MySQL如何优化,不要一句话上缓存/加索引就结束了。可以举个具体例子来讲,巴拉巴拉一顿输出,时间不可能少于3分钟,然后再相互聊几个问题深入一下,10分钟就过去了。

最后的反问环节,这块也提前准备几个问题,具体可以知乎看下,问的目的,是为了让面试官知道,你真的很期待加入这个团队,让他觉得,只要给你offer你就会加入。

HR面,不要把HR想象的太坏,也不要跪舔,就把她当做以后的同事就OK了,不卑不亢,此处不留爷自有留爷处

ipython控制台 绘图 后端_如何面试Python后端工程师?相关推荐

  1. 如何面试java后端_近期面试Java后端的一些感悟

    上面的提到都是将技术用于业务实践,以及高效的解决业务中出现的问题.但这是否就意味着自己的技术已经过关了呢?我认为还不能. 判断技术是否过关的第三步是能否洞察技术背后的设计思想和原理. 如果你参加过一些 ...

  2. python后端开发流程_2019 Python后端开发面经总结

    原标题:2019 Python后端开发面经总结 本人技术栈为Python后端开发,面经如下: python基础部分: 1. 迭代器生成器 生成器是如何实现迭代的 2. list实现 3. import ...

  3. 网易微专业python爬虫工程师一期多久_微专业-Python爬虫工程师 – 3个月成为网络爬虫工程师...

    [2020最新]Python爬虫工程师 – 3个月成为网络爬虫工程师 课程简介 1.平均薪资高 入行爬虫工程师薪资可达15w高级爬虫工程师薪资可达30w

  4. python工程师-如何面试Python后端工程师?

    更新:2020年5月10号 惭愧惭愧,我已经叛逃Python 4年了,加入了Java阵营,主要是大数据领域被Java.Scala占领了. 工作中真正的核心竞争力还是写出整洁的代码和架构,面向对象的思维 ...

  5. python后端开发工程师做什么-如何面试Python后端工程师?

    更新:2020年5月10号 惭愧惭愧,我已经叛逃Python 4年了,加入了Java阵营,主要是大数据领域被Java.Scala占领了. 工作中真正的核心竞争力还是写出整洁的代码和架构,面向对象的思维 ...

  6. java行转列_最近面试 Java 后端开发的感受!

    首发:cnblogs.com/JavaArchitect/p/10011253.html 上周,密集面试了若干位Java后端候选人,工作经验在3到5年间.我的标准其实不复杂(适用90%小小小公司,BA ...

  7. python 3d绘图 汉字_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  8. 阿里测试开发python面试题_[阿里面试]测试开发工程师面试

    2015年4月20日,我参加了阿里巴巴的实习生面试.面试是在西安悦豪酒店进行的.我报的职位是测试开发工程师.最终结果是挂在了2面上.但是我还是把面试过程写下来,希望都大家有些参考. 一面 我预约的是下 ...

  9. python怎么连接前端_前端调用Python后端API的小贴士

    前言: 在仿造廖雪峰的大作业做一个博客教程的过程中,我发现后端要利用jinja模板渲染 然后前端还需要什么VUE的屌丝玩儿,而这让我在原先项目上直接写html代码然后调用API 的RESTFUL  很 ...

最新文章

  1. HDU 4870 Rating 高斯消元法
  2. linux iptables找不到,centos /etc/sysconfig/下找不到iptables文件解决方法
  3. 超文本css样式换行
  4. phpExcel与jq的ajax
  5. Java基础学习总结(61)——Java项目开发要注意的60个问题
  6. 本地更新github项目_【图文说明】将本地项目上传到github上
  7. tomcat事件处理机制
  8. ubuntu 1404部署tomcat7
  9. ASP中如何在退出一个页面时自动清空session变量
  10. SpringBoot 配置文件说明
  11. 萤石云官方Demo下载并二次开发 QT5.12.10
  12. delphi完美经典--第十八章
  13. 使用gradle发布文件到maven仓库
  14. java.lang.IllegalArgumentException: Receiver not registered:
  15. 爬取微信公众号cookie获取与token获取
  16. 实验吧-简单的登录题
  17. CyclicBarrier(集成7颗龙珠召唤神龙)
  18. VC学习路线书籍+视频
  19. 机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)
  20. [机缘参悟-52]:交浅言深要因人而异

热门文章

  1. JZOJ 3515. 软件公司
  2. beforeEach钩子与无限循环问题
  3. 2道编程题:1.给定一个字符串,计算字符串中数值的个数并求和。
  4. Visual Studio控制台程序输出窗口一闪而过的解决方法
  5. Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案
  6. 【报告分享】2021-2022元宇宙报告-化身与智造:元宇宙座标解析.pdf(附下载链接)...
  7. 【报告分享】产业互联网发展趋势及机会分析报告.pptx(附下载链接)
  8. 【报告分享】新零售专题报告:从直播电商的春秋战国,看mcn的进阶之道.pdf
  9. 【报告分享】汽车行业“无接触”营销风险初探.pdf(附下载链接)
  10. 【报告分享】交通运输行业:2019年度中国主要城市交通分析报告.pdf(附下载链接)...