腾讯、百度、阿里面试经验—(3)阿里面经

  接上篇,2012年可以说相当的辛苦经常有加班到11点、凌晨的情况,基本上是9点之后才能下班。为了这个重要的项目大家都很努力,终端领域也终于向好的方向发展,直到年底。

  年底发生了一件不愉快的事情,内容就不说了跟主题无关。本人又开始了找工作之旅。

  1、第一次进军阿里

  当时听说阿里在无线发力,taobao和tianmao都在招人,两个部门都对我发出了邀请,但是集团规定只能面其中一家,本人就选的tianmao。一面是组长面,电话面的,问了下项目,问了网络通讯协议,为什么用json不用xml,pb协议的好处和坏处。因为本人负责的是非常敏感的业务,对安全有很高的要求,所以还问了些关于安全策略设计和构造。这个是本人的强项,因为当时在终端安全方面吃了大亏,经过好几个不眠之夜之后设计的三层换票加密算法,除非有内鬼,否则即使反编译了我们的代码也无法解析我们的加密协议。感觉不错,就让我保持手机畅通准备技术面。

  技术面应该是一个组员面的,问的全是基础的问题。iOS runtime、多线程几种实现方式、如果进行网络通讯、对于block的看法,基本上都回答上了。最后问了下我对iOS6的新特性的认识,这个回答的不太好。因为本人当时忙一个大项目,基本每天搞到11点多,没怎么充电。面试完了查了下iOS6的新特性,也没什么特别的,有点遗憾。

  过了2天,那边来电话让我去一个酒店进行终面,他们的老大来深圳出差顺手面我一下。面试整整持续了一个小时。问了我对微信的看法,问我们有没有跟微信合作。如果缩减安装包体积,这个问题我当时觉得自己回答的不错。一年后回想起来,其实回答的很差,缩减安装包的体积要从资源文件上下手,尽可能用Core Graphics自绘代替资源图片。如果是用户可能用不到的功能,那么应该只把代码合成进去而资源文件应该在用户第一次使用的时候从服务器下载并缓存在本地。裁剪第三方开源库的代码等等。面试进行了一个小时,面试官客气的把我送出房间。

  过了一段时间没消息,让猎头帮忙问下情况,回复是工作年限太短,没戏了。还是被小小的打击了一下。如果面试管表现的特别客气那么你就要小心了,很可能被毙了。

  4、第二次进军阿里

  这次去阿里面试可以说非常非常的偶然和戏剧性,因为本人根本没投简历,以至于阿里hr给我电话的时候我一度认为是诈骗电话。因为深圳这家公司不错我还想在这里干个两年左右再考虑考虑。

  这个时候的本人已经发生了很大的转变,从刚进腾讯的浮躁、自大、惧怕面试,已经转变为淡泊、谦虚,并且喜欢上了面试,感觉每次面试就像杨过跟大雕过招一样,武功都能精进不少。本着去看看技术面内容的心态去了福田东海大厦。

  一面没有技术面直接就是组长面,首先是自我介绍,之后问了下项目内容。我就说了下即时通讯和视频加工两个模块。他让我画出模块的架构图,这个建议大家准备一下,阿里和百度都有要求应聘者画模块图考察应聘者的开发层次和思路。本人没什么准备,不过当时设计评审时的UML还记着,就把模块图和类图画了下。面试官又问,有没有遇到困难;我说有,性能瓶颈、卡顿的问题、瞬时信息量过大导致的UI卡死;他就问如何解决的:我说由实时刷新改为定时刷新。他问还有没有更好的实现方式,我回答有用任务队列。我们又争论了下任务队列的设计应该用先进先出还是后进先出。这个时候本人已经完全忘记是来面试的了,只想争赢。语速也越来越快、声音也越来越大。他质疑我这个机制在效率调优上没有意义,因为系统会进行cell缓存;我说在中间的时候系统缓存可以生效,在最底部的时候就失效了,就会卡顿。最后还是我争赢了,时间就这么不知不觉中过了一个小时。问通讯消息腾讯是如何做的,我说不知道我猜测是这么做的巴拉巴拉。问了下我滤镜的使用和原理,如何时图片更鲜亮,我说修改OpenGL中的RGB值,做个差值运算就可以了;问如何进行视频合成,这个很简单就是把视频和音频轨道抽出来再用composition合成就可以了。问了下加水印、也是从文件中把视频轨道layer抽出再把图片layer加在这个layer上就可以了。把开始时间和持续时间、帧率设置好就ok了。又问了下为什么来面试,本人说没想过换档,是你们叫我来面试的。

  一面结束让我去休息之后是二面,二面的面试官很nice。让我做自我介绍之前竟然先做了自我介绍。他负责的部门是个很核心的部门。面试的内容跟一面差不多。让我在白板上画我设计的系统架构图之后就是讲解。问了下我的职业规划,我说现阶段还是想写代码。他问多久,我说2年吧。他有问你对管理岗位怎么看,我说一个好的管理首先要能帮助组员解决问题,我现在水平还达不到这个境界,想多写点代码,代码量上去后设计能更合理一些,像这个设计当时有几个优化点没考虑到,有点遗憾。面试官问我有什么问题之后我就询问了下他们部门的情况和企业文化。面试官好像比较满意,就让我去hr面,还特别强调就是跟hr聊聊不算面试。

  hr面过程不表,就是问了下杭州房价问题。问我能不能来杭州发展,我说我考虑下,还不知道你们会不会录用。闲扯了半个小时,就打道回府了。3天后收到阿里的offer通知介绍。给的薪水又一次超过了本人的心理预期,还有本人一直梦寐以求的期权。实在是没法拒绝。

  阿里的面试跟腾讯百度都不同,感觉更注重项目实践一些。总结来说BAT的技术面都差不多。只要把内功和外功都修炼好了再配合点实战经验基本上都可以应付三大的面试了。

  面试的核心流程都是:

  技术一面、技术二面(组长面)、总监面、hr面。腾讯会多一个经理面。但是一般总监认为可行的人,9成的应聘者都会通过经理面的,除非发现严重的撒谎行为。hr面就是走过场,刷人的机率基本上为零。以前招聘过一个同学,hr想刷掉,理由是没有大公司经验,被我们组长抱怨,说这个人各方面都很适合又踏实,如果你们觉得这个不行你们就要负责招一个你们认为行的,否则我们工作做不下去了,hr就软了。后来事实证明,这个同事工作完成的相当好,人的能力跟公司大小没关系。最难的就是二三面,人也基本上是这两面中刷下去的,大家一定要小心。我个人的经验来看,总监越严肃通过的机率越大,越客气就越危险。

  最后说一下,面试准确讲不应该叫面试应该叫面谈,就是interview。劳资双方坐下来谈谈聊聊,互相了解。我们程序员作为技术工作者不是去求职的,只是去看看你的机会,你可以保留你的职位,我保留我的做事方法。

posted @ 2014-03-18 18:32  挽弓挽长  阅读(8268)  评论(23编辑  收藏  举报