咱们在加入 Python 开发岗位面试的时候都要做哪些筹备?
个别 Python 技术方面的面试会问哪些问题?
明天,咱们从 2 位面试官的角度来看看,加入 Python 开发岗面试须要做哪些筹备。
1
我之前在豆瓣负责过一段时间咱们组的技术面试。因为当初不再去面试,能够爆一爆。
1. 我从来不问 google 可取得的答案的问题 ,只是问问面试者「在过来的工作中,遇到的 Ta 认为最有成就感的一件事件是什么」和「如果呈现了一个 google 不到的问题,你会怎么解决」这样的问题。
2. 我从来不问操作系统等和 Python 无关的话题 ,首先是我不怎么问和工作太无关的话题,有些货色用不到很多就被会忘记,挑起来这种问题其实挺无聊;其次我是非计算机专业毕业,问的货色说不定我本人都没有把握,那就不进去献丑了。我只关注面试者的学习能力和解决问题的形式,说白了,是不是就是看他是不是「聪慧的人」。
3. 不问面试者的短处。 我在本人被面试的时候有过这种精力,面试者问他善于的内容,我不肯定搞的定,如果反过来面试 Ta,我也会灭掉 Ta。所以我会尽力寻找面试者的劣势和长处,尤其是对方曾经明确抵赖。其实很多教训和能力,只是须要一个机会和环境,所以我不想放过任何一个适合的人。
4. 面试者不会 Python 也没有关系。 面试者的主动性和学习能力感觉更重要,如果他在其余畛域能证实做的不错或者能让我感觉到这个一个将来有潜质成为优良工程师的人,不会 Python 没有关系。嗯目前看来,我没有看错过。
5. 我从来不问 Python 语法这种看书和 google 就能学会的问题 ,我只想理解 Ta 是否违心去学。举个例子,我会让面试者「讲讲日常开发中都用到了那些 Python 内置的模块」,基本上说完我就能评估出他的能力和格调,继而就是再问一些问题去验证我的评估是不是精确。
6. 最初,我个别都会和面试者细聊一个 Ta 认为在过来的工作或者本人开源的我的项目中最相熟的一个 ,从我的项目设计、踩过的坑儿、开发周期以及如何安顿、如何确定需要、如何和其他人合作等方面,最初评估下 Ta 是否能很容易的融入到咱们当初的团队,大家是否能够承受 Ta,对工作不负责的、没有用心工作的、没有团队意识的、沟通能力有缺点的就放弃掉,对性情上容易发生冲突的、不适宜团队单干的我就得思考下,将来也会如实反馈给 HR。
2
吃午饭的时候我就始终在想这个问题,我感觉重点不是 Python 而是后端工程师,因为 Python 只是零碎的一部分,linux 根底操作要熟吧,sql 要懂吧,音讯队列要晓得吧,git 要相熟吧 …… 木桶实践,每一环都不能落下,精通其中一两环就更好了。
根底功扎实,新货色学得快,代码写得溜,命令敲得顺,bug 解的好 ,妈妈再也不必放心我天天加班了~~~
一. 语言
1. 举荐一本看过最好的 python 书籍?拉开话题好扯淡
2. 谈谈 python 的装璜器,迭代器,yield?
3. 规范库线程平安的队列是哪一个?不平安的是哪一个?logging 是线程平安的吗?
4.python 适宜的场景有哪些?当遇到计算密集型工作怎么办?
5.python 高并发解决方案?我心愿听到 twisted->tornado->gevent,能扯到 golang,erlang 更好
二. 操作系统
能够间接认为是 linux,毕竟搞后端的少数是和 linux 打交道。
1.tcp/udp 的区别?tcp 粘包是怎么回事,如何解决?udp 有粘包吗?
2.time_wait 是什么状况?呈现过多的 close_wait 可能是什么起因?
3.epoll,select 的区别?边缘触发,程度触发区别?
三. 存储
存储可能蕴含 rdbms,nosql 以及缓存等,我以 mysql,redis 举例
mysql 相干
1. 谈谈 mysql 字符集和排序规定?
2.varchar 与 char 的区别是什么?大小限度?utf8 字符集下 varchar 最多能存多少个字符
3.primary key 和 unique 的区别?
4. 外键有什么用,是否该用外键?外键肯定须要索引吗?
5.myisam 与 innodb 的区别?innodb 的两阶段锁定协定是什么状况?
6. 索引有什么用,大抵原理是什么?设计索引有什么留神点?
redis 相干
1. 什么场景用 redis,为什么 mysql 不适宜?
2. 谈谈 redis 的事务?用事务模仿原子 + 1 操作?原子操作还有其它解决方案吗?
3.redis 内存满了会怎么样?
四. 平安
web 平安相干
1.sql 注入是怎么产生的,如何避免?
2.xss 如何预防?htmlescape 后是否防止 xss?
3.csrf 是什么?django 是如何防备的?
明码技术
1. 什么是分组加密?加密模式有哪些?ecb 和 cbc 模式有什么区别?为什么须要 iv 向量?
2. 简略说说 https 的过程?
3. 对称加密与非对称加密区别?
3. 如何生成共享秘钥?如何防备中间人攻打?
五. 杂
是否关注新技术啊?golang,rust 是否理解?numpy,pandas 是啥鸟?
是否紧跟时代潮流?逛不逛微博,刷不刷知乎?
可能你感觉我问的好细,但这好多都是平时常常遇到,并须要解决的,细节更能体现一个人。
有人说好简略,有人说好难,其实我感觉这只适宜面试 2~3 年工作教训的后端工程师。真的没有问很难的题目,只是可能你平时没有留神。