天下前端出阿里,这么说有一定道理,阿里前端的技术氛围是一个巨大的诱惑,所以一来就和原来打飞机的机友联系,问上海这边有没有前端需求,朋友顺手就推到了自己的团队杭州天猫了,我想反正也没差就去试了试,不打没准备的仗,还对天猫H5站点做了一些分析研究,有了个大概的了解然后就开始了首轮面试。
web前端面试经验:阿里Web前端面试
因为面试日期距今已经有3个星期,不太记得住了,便大概介绍一下流程,阿里的面试一把是这样的:
① 首轮面试,这个一般称为简历验证,看你简历描述和你实际技术水平是否一致,这个面试者一般是P6
首轮面试下来感觉问的比较基础,问的问题就是常见的一些面试题,我当时记得答得7788,基本没有太大问题然后就过了
② 技术面试,这个是真资格的技术面试,面试官会希望面出你实际水平了,有粗有细,这个面试官一般是P7
这轮面试的质量提升了不少,会问到在鞋厂做框架的一些架构问题,也就是说,他不止关心你的基础技术水平会关注你的实际工作情况,他会希望你对你的工作足够了解,足够胜任,也希望看到你在上下游起到的作用,比如他就问了我一个很开放的问题:
你是如何推动你们的框架的,你是如何给框架升级的?
因为我实际参与了两次框架大型推动以及几轮优化与升级,对其中的痛点和难点都比较清楚,便答得很详细。不能说答得很好,但是能描述清楚自己是在这个事情上扮演了什么角色,起到了什么作用。
然后问了一个AMD与CMD相关的问题,我说我读过requireJS的源码,那边便问我实现,因为requireJS本身比较晦涩,我一时不太记得住便实话实说了,我感觉这里答得不好,没有把我真实水平表达出来。
然后又问了前端优化,我本身工作的重点便是前端优化这里的经验比较丰富,便详细说了几轮优化技巧,感觉答得不错。
后面又回到了基础一点的问题,一个Function和Object相关的问题,我依稀记得这里有坑,问题大概是这样的:
var F = function(){};
Object.prototype.a = function(){};
Function.prototype.b = function(){};
var f = new F();
他这里想问的是f能不能拿到a方法和b方法,我这里知道有坑,我也知道能拿到a,但是我回答的是能拿到a和b,他说不对,然后就过了,我觉得这里是我表达不对,因为在读Backbone源码的时候,我使用过f.constructor可以同时拿到a和b,结果他以为我认为直接通过f拿
最后记得的就是一个viewport的适配问题,这个东西我原来研究过,最后没搞懂,只记得几个属性,他问的时候我就直接说不了解了,这个问题答的尤其差......
面试结束后面试官问了我有没有什么问题,我比较好奇的一点是为什么他们没有SEO不做webapp,这里他的回答我映像很深刻,也很认可,他说:
其实我们不做webapp不是技术不到,而是要首先考虑如何把前后打通,让我们的webapp模板相关既可以在前端解析,也可以在服务器端解析,如何能最优最快的显示我的页面(这里插一句,阿里node端的水平有点高);我们考虑的是如何能出一个轻量级的框架能让各个业务同事快速的接入,这个是我们真正考虑的,而不是为webapp而webapp......然后这次面试也基本结束了。
③ 深入面试,一些时候可能你面的级别有点高,或者想找到最适合你的岗位便会进行第三轮技术面试
这次面试,问的也是一些常规的前端问题,但是其中又出现了viewport这个问题,说实话,第二次结束时我便和周文斌与左盟主就这个问题进行了求教,因为不是专业的CSSER,最后就是把我讲不懂,然后这次这个问题又说的很差......
④ HR面
经过前几轮面试,我基本与高P无缘了,其实这个结果也是意料中的事情,我个人感觉自己也和P7有一定距离,这次单单和HR聊了一点工作上的事情,一些规划,为什么离职,简单说了下待遇期望便结束了,这次阿里面试也基本结束了。