工作两年二本程序员在天猫、蚂蚁金服、百度等大厂面试中被拒经历
背景
二月份前后一个月的时间,有幸获得天猫、蚂蚁金服、百度和Never China的面试机会,对于普通院校毕业的我,能够收到大厂面试机会已经很兴奋了,然后就幻想着收到offer的场景,或许是兴奋冲昏了头脑,没有好好审视自我,竟然觉得面试通过的把握还是有的,毕竟有2年工作经验嘛。
准备过程
1.刷面试题,相信这是大多数小伙伴的惯用伎俩吧,每次换下家前刷面试题是必经流程。所谓刷面试题就是把职业相关基础知识在脑海中跑一遍,对于大神级的人物可以忽略这一步,能被众人膜拜肯定是有两把刷子的。我的感受是,刚开始找工作的时候,实际开发经验很少,看基础知识很费力,就像是过年回家爸妈带着我走远房亲戚一一介绍七大姨八大姑很难记住一样,各种关系根本不知道怎么联系到一起。经历过几个实际项目之后,刷面试题就会轻松很多。面试题的出发点是为了验证应聘者对基础知识的掌握程度,以及日常开发过程中遇到的问题,如果没有亲身经历过这些问题便很难理解。所以面试题不是用来背的。
2.了解岗位相关知识,不同大厂的面试流程是不同的,比如阿里从一面到给offer ,Line和百度不接受电面,只能到公司面试等等。不同公司不同部门注重的点都是千差万别的,唯一不变的就是应聘岗位的基础知识。所以在刷面试题的基础上需要研究你所应聘的岗位,牵扯到哪些知识点和应用方面的问题,然后进行针对性的复习。
3.取面经,看各种大佬写的面试博客,推荐几个:猿题库-唐巧、ENJOY-靛青、百度-bestswifter、南峰子。
4.准备一份自我介绍,一个好的自我介绍是非常重要。自我介绍是面试过程中必问的,面试官通过这个途径简单的了解应聘者的基本信息,最好是言简意赅,姓名、专业、多久毕业、工作多久了、在项目中承担什么角色、工作之外做了些什么与技术相关的东西等等,一定要突出亮点,毕竟面试官面试很多人已经疲软了,都是千篇一律的话很难提起面试官的兴趣。
面试过程
1.天猫
天猫的面试通知,是我第一个大厂的面试机会,本来就是抱着试一试的态度投的简历,竟然通过第一轮筛选,接到电话后很兴奋。约到一天后电面了一个多小时,首先介绍自己做过的项目,在项目中承担的角色,遇到的技术难点等等等。感觉每次面试都会遇到的类似的问题,问题就在这里,因为待了三家创业型的公司,产品几乎都是通过三方库堆叠起来的,所以遇到这种问题,我很懵逼,是真的不知道公司技术难点是什么,这是很减分的一项。然之后就问了一些基础知识:
Runtime的消息转发机制
Runloop的工作原理
内存管理
block
2.Never China
整个面试过程三个小时,到公司首先要求一个小时内完成一份全英文面试题,有9道基本概念的题,1道修改程序的题,前9道还是没有压力的,程序修改题给出一段代码然后指出不合理的地方并修改,我没有改完。我以为写完面试题就over了,之后发现我太天真,面试官拿着我做的答案一道道讲解,虽然我的答案是对的,但是面试官要求的是举一反三挖的比较深,直到挖到我回答不出来为止。最后问了一个思维方面的问题,给了我半个小时的思考时间,奈何我从一开始的思考方向都是错误的。其实整个过程我都对自己很满意,估计最后一个思维题是一个减分项。相关题目:
GCD
定时器的几个类方法底层分别是怎么实现的([NSTimer timerWithTimeInterval:repeats: block:]等)
KVO、delegate、通知的区别以及底层实现
Struct与Union主要区别
思维题:情景:20个主人,20条狗,在同一个小区每天在同一个地方同时遛狗,狗主人绝对聪明,一旦发现自己家的狗是疯狗,回家之后就会用枪把狗打死。第一天晚上遛狗回家后没有听见枪响,第二天晚上遛狗回家后没有听见枪响,第三天晚上遛狗回家后听见多声枪响,请问有多少条疯狗。
条件:
①狗主人不能直接发现自己家的狗是否是疯狗,可以直接发现别人家的狗是否是疯狗,凭此可以推断自己家的狗是否是疯狗
②狗主人遛狗期间不会有任何交谈
③疯狗不会传染
3.蚂蚁金服
蚂蚁金服是我面试最失败的经历,突然来电话就直接面试,感觉自己都没准备好,全程紧张状态,整个过程持续了半个小时。我的感觉是尬聊了半个小时,可能面试官是出于礼貌才继续问我问题吧。相关问题:
iOS11的新特性
点击应用图标到启动应用整个过程,系统进行了什么操作
swift相关知识
Apple pay的支付流程
4.百度
这段面试印象最深,接到面试通知电话很开心,可是百度不接受电面,必须到公司面试。我在成都,很纠结,不过我觉得机会来之不易,毅然决然的买了周五去北京的机票面试,虽然没有面试通过,但还是很珍惜这段面试经历,至少我尝试去抓住这次机会。
第一轮面试:
写一段程序判断文本框内输入的IP地址是否合法
+的实现逻辑
runtime的相关知识
autorelease的使用场景
plist读写操作如何进行锁管理
NSNotification实现逻辑,子线程中给主线程发送通知,主线程是否会处理通知
编译器怎么检测#import和#include导入多次的问题,三方库导入时如何设置""和<>
第二轮面试:第一轮面试通过了,第二轮面试问的基本都是关于业务方面以及性能方面的问题,然而这些都是我的短板,这里又要强调我的借口-创业公司待久了,对业务和性能方面不太重视,这是硬伤。问了组件化的问题,怎么修复线上卡顿、崩溃问题,项目结构等等。
最深的印象:大厂不愧是大厂,很有礼貌!
总结
嗯,就是在这么精心准备的前提下,我依然被刷了,看到这里是不是很嘲讽?其实我自己都觉得嘲讽,就像是异常兴奋的情况下被泼了一盆冷水。这说明什么?如果没有牢固的基础,一个月突袭是远远不够,死记硬背的始终不是自己的,学以致用才是真理,面试就是一个自我审视的机会。
创业公司需要能做事的人,大厂需要会做事的人;创业公司的项目要求能跑通就ok,大厂的项目需要跑通+稳定等等等。对于没有大厂经历的小伙伴们,如果真想做技术,千万不要满足于现状,仅屏创业公司的工作经历是满足不了大厂的要求,工作之外也要学习,不过我觉得兴趣才是最重要的,毕竟学自己感兴趣的会不那么吃力。
所以,革命尚未成功,我们还需努力!各位看官加油!
注意:简历上的项目一定要写自己熟悉的,知识点了解就是了解,千万不要写精通,不然大佬们会问到你哭!