爱奇艺面试Python,居然挂在第5轮……

今天给你们分享我曾经在爱奇艺的面试,过程仍是比较有意思的,能够给你们一些参考前端


聊骚阶段

嗲妹妹:你好,我是爱奇艺的HR,咱们正在招聘运维开发岗位,请问您最近有在看工做机会吗?python

我:(这声音也太酥了吧我去……)嗯,你好,信号不太好,能在说下吗?(让我再酥一次吧)nginx


嗲妹妹:(重复)web

我:(我去,真的好酥啊)啊听到了,嗯,最近有在看 (不看机会,就没机会聊下去了啊)面试


嗲妹妹:嗯嗯,那简单的介绍一下,……,公司在xxx,你看何时方便过来一次吗?算法

我:能够能够,那就约在周xx吧,我应该能够,那天是你本人接见我吗?(卧槽……情不自禁的就问出去了……)api


嗲妹妹:固然是啦,我会全程负责你的此次面试(没有此次面试几个字多好?)的,好呀,那咱们周xx见咯,拜拜~浏览器

我:嗯……(快不行了……)缓存


准备环节

这是一个运维开发的岗位,在去以前呢,我也看了下爱奇艺的JD,讲道理,我这我的呢,仍是喜欢作点准备的,若是去,就是我可能会考虑对吧,(毕竟他们除了要我,还有其余选择吗?)那最爽的结果就是手握各大厂的OFFER,而后沉浸在没法作出选择的幸福中了。服务器


那准备过程当中,发现他们的要求中须要对ansible熟悉,那我以前是有用过ansible的,可是对saltstack是比较熟悉的,由于产品化的东西更吸引我,并且在工做中也用他作过二次开发,因此就去对ansible作了一些调研,而后本身写了几个playbook,包括python api调用。

这里要说下,网上不少资料都是ansible 2.2 的,这个老版本了,截至发稿,已是2.5了,其中的api调用也发生了不少的变化,建议你们多去看Official Guide,百度到的真的太乱。这里不展开讲了。


那天到了后,进入爱奇艺大厦(大厂都是有独栋的,确实不同,下次有机会在分享其余的bilibili、鹅厂、饿了么的),就在下面等着呗

而后坐了一会,来了个男的,把我接上去了(我去???难道电话对面就是你?变声器?这么套路的?还好呀?还嗯嗯?),领到小房间后,让我填表格什么的。

我很老实的告诉你们,我全程脑子里就在循环电话那头的声音。我很低落,很难过,难道真的是jc上脑?

填完单子后,就等着呗,而后那个变声男就把个人单子拿走了,而后丢了句,“稍微等下,面试官立刻就来”(心想,你走吧走吧,我也差很少准备走了……)


初面

来了位个子通常的(由于我胖啊,我怕谁),作个自我介绍


我以为这个仍是有说明的必要的,自我介绍必定要强势,必定要底气足。是大家要我,不是我本身找大家的,不要搞错好伐……


那么须要凸显的有

  • 本身的项目介绍(运开的话,就是CMDB、CI/CD、k8s、OpenStack,有什么吹什么,千万别很差意思)

  • 武器库(Python什么级别?用过协程就别说多进程,用过Tornado就别说只会Django)


Q:Python的列表解析式会写吗?会的话,写一个呗。好比选出1-100中的奇数。

A:[i for i in range(100) if i % 2 != 0](其实这里有不少种作法,好比最简单的用切片就能够了 list(range(100))[1::2]都不须要列表解析式,但为了迎合他的问题,你得往他身上靠啊……)

Q:那 (i for i in range(100) if i % 2 != 0) 这个和你写的有什么区别呢?

A:你如今写的是生成器解析式,返回的是一个可迭代对象,不是list对象(其实技术面试呢,若是你能摸到对面的当心思,那就稳了呀)


Q:装饰器有用过吗?用过的话,通常你是用于解决什么场景的?

A:用过。典型的,用户认证,简单点的可能日志处理等。主要用来处理一类问题的时候。


Q:那你能写一个装饰器吗?用来对用户的参数进行检查,若是参数类型不匹配,就返回一个error报文,不然返回success。

A:好的。(就写呗。这里不以代码为主,思路很简单么,若是你用py2可能就要用attr了,但我py3 能够用inspection啊,简单啊,而后把获取到的参数检查一下类型就行了呗,但这里也有一个要求,类型是定义在函数声明时?py3.5开始的类型注解。仍是写在配置文件或者函数体里面?反正我就当你用py3写了类型注解了。)


……(省略一些基础问题)


由上能够看出,面py开发,基础是很重要的,由于大多自学py的,按照个人经验,对于基础部份内容掌握得不牢靠,觉得py就是调调第三方库那么简单。

期间还问了上下文的实现原理,还有类的使用、继承、__init__和__new__的区别,实例方法、类方法、静态方法,实力属性、类属性等等。不一一展开了。


Q:你有作过CMDB吧,那大家CMDB里,若是有多套业务同时发生,你是怎么处理的?

A:(开始问我网络和并发了,这个要能听出来)我起初用的是多线程的,后来发如今处理并发的状况下,效果并不理想,就改用多进程了。但仍是会有瓶颈,好比在做业模块上(主动抛出橄榄枝,我还作过做业平台),并发比部署系统更频繁,多进程处理会直接打满服务器CPU。后来就考虑换了协程,效果很是好。


Q:哦~你说到了协程,能说明一下协程和线程、进程的区别吗?

A:(知道你要问,这不被我带节奏了么)……(省略百度百科),协程主要解决的仍是并发的问题,以及python GIL带来的并行处理能力。


接着就让我写一个协程。那就简单的写一个生产者消费者模型呗。

聊了大概四五十分钟吧。以后还聊了Django 和 前端的一些技术。感受都ok。

最后了解了下,他是负责运开的技术开发。


二面

休息事后,就来了第二位面试官,面我运维的,运开嘛,若是没有运维知识确定是不行的。


先从最简单的三次握手四次挥手问起来。


接着深刻一点,开始问我在一次浏览器地址输入一个连接后,到显示出页面,中间通过了哪些过程?其实就是问你DNS呗。

A:先找hosts文件,若是没有就开始dns了,查询本地缓存,若是没有则向根发起查询,一层层向下请求,直到找到为止,响应给本地DNS服务器,在返回给客户端。(我的感受dns这块回答的有点虚……相对py来讲)


Q:那你有作过相似nginx的配置吗?能简单说下代理或者负载均衡吗?

A:nginx就本身用过,但没有生产维护过。(没有作过的话,我的建议仍是老实交代为好,其实原本技术面试就有可能遇到你不会的,彻底没有关系啊,只要符合要求,部分技术不合规也是没有关系的。)


后来的对话中,面试官也表示,可能以前作的更多的是DB的工做,对于web容器这块不熟悉关系也不是很大。

而后就和我聊起了DB,MySQL的高可用、分表,SQL优化,监控等。这些基本都回答的ok,也是老套路了,网上能查到不少,这里不作叙述。


技术组长

过了2轮后,居然还有技术面,我去,是技术组长,而后仍是自我介绍(不得不说,每轮都要自我介绍,每一轮我居然说的还不同……)

通过一些基础的可能上面两轮问过的问题后,就开始问我算法了,嗯,确实不太同样。这里我只能说靠平时积累了,有多少货就都掏出来吧!


Q:如今给出一个列表,[a,b,c,d,a,v,s,d,c,a],对他进行计数,返回出现次数最多的

A:嗯,我想一想。而后给出了一个字典的存储方式,缘由就是能够减小循环次数,尽量下降时间复杂度。其实我一开始想说,直接用Counter模块不就行了么,可是没说出口,我知道会被打。


以后就对我本身作的一个MiracleOps问了好久,主要围绕的仍是实现的方式和原理,能理解啊,你作的东西,本身一我的作的,那随便问你都知道咯,(就是看看你是否是在吹呗,不少人会把本身参与的项目说成是本身独立完成的

这里就会涉及到应用层的逻辑分化,以及软件层面的架构选型。这个仍是看你我的经验了,若是没啥的话尽可能别硬吹,很容易吹破。

好比为何个人运维平台是用MongoDB,没用MySQL。在处理多租户、多任务的时候你是怎么解决竞争关系的。做业交付中,若是断点了怎么办,是等待仍是结束?一系列的问题都值得讨论。


整个三面大概也持续了要有不到一个小时。


技术总监

终于熬出头了,和技术总监对吹环节终于到了,和技术总监聊就有一个好处,你能够不用说具体的实现了,和“老人家”聊技术,你就得让他以为你这个小伙很靠谱,思惟很先进,有意思


我充分发挥了我12年的语文词汇,把能说的成语都套上了技术的字给丢出去了。让我谈谈理想,我就吹啊,我要把本身的余生交给公司,为公司开辟疆土,将运维盈利化、产业化。让咱们的部门成为公司最受瞩目的part,让总监你成为老板的左膀右臂!

我也不知道这波吹的怎么样,反正总监是笑了。大家以为呢?


其实我以为我更适合和总监面试,由于我这人有个毛病,喜欢吹……遇到同类型选手可能会激发个人斗志,经过身体的荷尔蒙喷发出更强大的吹的欲望

那给你们的建议就是,对于和总监、领导面试,放轻松点,没什么的,技术都过了,总监无非就是关心一下你的家里状况,方便后面加班咯……在关心下你的我的状况,看看身体能不能吃得消996咯……

你若是真的想进这家公司,那你面试的时候就表达出本身身体贼好,家里所有交代清楚了。固然你也能够明确说明我不加班,我不996。


HR

吹完江山,接下来就是和美人聊咯,嗯,hr小姐姐来了,和我说完大概状况后,和我开始聊起待遇,问我要多少。

划重点了,你们在这个时候必定要稳住,千万别兜底,你本身得要有本身的底,过了咱就不伺候了

你能够在本身的工资上面稍微加一点,把平时的奖金、福利、打车报销balabala,都加在基本薪资上,毕竟涨薪和福利可不要紧

另外,hr若是要你说指望,你就往高了说,反正高了也会压你,低了也会压你。别作老好人,我遇到太多读者和我抱怨要少了,后悔,也没办法了。


通过一番博弈后,hr小姐姐终于问出了那句“若是薪资没有达到你的预期,你还会考虑咱们公司吗?”

小伙伴们,这句话大家应该不陌生对不对,千万不要方,你能够委婉的告诉他,“通过一天的面试,我以为贵司的流程制度仍是很是完善的,而我应聘的部门气氛也很是好,我相信我能为公司、部门带来看获得的提高,也相信公司会正确的给予我一个合理的范围。”

这叫什么?打太极啊!你推我,我推你,不就那回事吗,hr就懂了呀。

在薪资方面我就很少说具体数字了,毕竟透露公司薪资是不道德的,反正那个薪资是在我合理涨幅里的,其实还高了一点,20%+,但我想要更多,哈哈哈。最后就考虑下呗


总结

好了,吹了一天的面试经历,到家就已经7点多了。真的累了,但我仍是忘不掉那天电话里的声音。为何始终没有出现。仍是出现了我并无发现……

面试流程大致相同,不一样的是技术问题,以及每一个人对应的方式方法,给你们总结一下个人经验

  • 技术面的时候,必定要把本身有的全都掏出来,让对面看看咱的真家伙……

  • 在和总监面的时候,尽可能说的眼界大些,能给部门带来收益是最好的了,但别越界了,让领导以为你过来会威胁到他,那估计就没戏了。

  • 和hr再聊薪资的时候,不要过早暴露本身底线,另外hr想要知道你的指望都是ok的,但你能够多加一点,反正合不合适hr都会告诉你的,要你就会说在考虑下,或者争取下,若是不合适,你低了过去也没意思。


但愿这篇文章能给你们带来一些思考,而不是纯技术上的刷面试题。


公众号「Python专栏」后台回复:运维自动化平台,获取MiracleOps全套代码。

python专栏

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息