眼瞅着已经是要毕业的人了,校招这趟浑水也是不得不淌啊。之前写过百度前端面试经历,今天写阿里,预计一个月之后还会写腾讯。凑齐 BAT, 就能获得传说中的金坷垃了……
阿里巴巴 2014 年的招聘启动的很早,像腾讯、百度都是十一假期结束后才开始笔试,阿里(就北京地区而言)9月初 —— 甚至前端 8 月份 —— 就开始走流程了。
笔试
阿里前端的笔试很有意思,是在线答的。不清楚题目是大家都一样还是从题库中随机抽,反正我觉得题目并不是很难。除了一些基本信息比如「你在学校里学到了什么」、「你是怎么踏入前端这个行业的」、「你目前为止最好的作品」之类的,专业问题有印象的只有一个:怎么解决 IE 6、7、8 不支持 placeholder 的问题(原题不是这么问,但是明显是考这个点)。
印象中还有几个 JavaScript 的题,也就是考了很基础了变量作用域、变量声明提前之类的。
然后,全部答完后,没有提交按钮……为此我不爽了一个下午(打开 Inspector 看了一下,提交按钮被注释掉了,而且没有绑定任何的点击事件在上面,不知为何)。
大概一周后同时收到了短信、邮件和电话的面试通知。
一面
阿里的面试定在了国贸附近,通惠河北路南面的国家广告产业园区。虽然稍微难找了一点儿(其实我是坐摆渡车过去的),但是工作环境真心不错,一看就很有互联网公司的范儿。
抛开琐碎的细节不谈,直接进入核心环节。
第一个面试我的哥们看起来很憔悴,听说是面了一整天了……他先问我有没有其他语言的开发经验,我说有『PHP』、『Node.js』,想了想又补充了一个『Objective-C』(好歹这博客以前也叫 iOS 开发博客,我还是有点儿 iOS 开发的底子)。结果这位面试官大人就开始跟我聊 iOS,还好基本没露怯。
然后问的比较松散,也比较杂,大概如下:
- JavaScript 如何实现继承
- 如何实现鼠标悬浮在某个元素上时在这个位置出现一个 tooltip
- 如何管理一个页面中多个虚拟窗口(div,通过 z-index 进行区分),实现点击任意一个将其提升到最前(用户完全可见,不会被遮挡)
- 如何实现九宫格(这个当时在百度也考过,没答上来,这回就小意思了)
- 经典的一侧定宽、另一侧自动扩展的布局如何设计
- 一些常见的浏览器 BUG
整个过程大概持续了 20 分钟左右,然后出去等二面。
二面
二面没想到是由淘宝 UED 的大牛清羽面的,听说他是专程从杭州过来面试……很激动,面完了拉着他合了张影。
基本上二面没有问很多的技术问题,清羽仔细的看了我的简历,然后针对我写的项目经验一个个问我。还打开了其中一个网站进行浏览,然后问某一个模块是如何实现的。
又聊到我印象最深的一个项目是什么,为什么印象深刻。
还有我在百度实习最大的收获是什么。
此外还问了有没有读过大项目的源码,我说我看过部分的 jQuery 源码,基本就是发现这个函数的功能和我预期的不一样,就是看看源码是如何实现的。然后我就举了个 jQuery.parseJSON 的例子,blahblahblah。
结果这里露怯了,我说我之前解析 JSON 都是用 eval,后来用 jQuery.parseJSON。清羽就问我 eval 为什么不好,我当时第一时间想到的就是可能含有恶意代码,对执行结果不确定。后来想想,使用 eval 还可能导致 global 命名空间被污染,如果代码执行出错会导致脚本执行中断等问题……只是当时没回答上来,就知道『eval 是不好的』。
总而言之二面给我的感受就是我的知识还不够扎实,知其然并不志气所以然,所以多问一步就把我难倒了。但是我觉得总体的面试还是挺愉快也挺顺利的。
目前还在等消息中……
2013年10月12日更新:已拿到offer