领英总部大厅的巨大Logo
天下没有免费的午餐?
美帝面试有三宝,流程清晰、费用全包、待遇好。
可千万别小看这三宝,勤劳刻苦、聪明过人的中国留学生们可是因此总结出了很多免费旅游的攻略方法的。之前还在密歇根读研的时候,我认识的学长学姐们在已经收到了他们最理想的工作offer以后,依旧在马不停蹄地到处面试。我曾经好奇地问过他们,为什么还在不停地面试,是觉得工资还不够高?想找个待遇更好的公司?而他们的回答则像是提前统一了口径一样:「我早就定了要去上班的公司啦!之所以还在到处面试,目的只是为了能免费旅游。我想去纽约玩,就投纽约的公司;想去洛杉矶玩,就投洛杉矶的公司。拿到onsite(被邀请到公司现场面试)之后,就可以吃住行全包的飞过去旅游,顺便面个试!」
当时的我很羡慕他们的这份潇洒,可我也很清楚,他们能够得到这种「免费旅游」的机会,依靠的还是他们自身强大的技术实力。在美国,大多数IT公司出于成本的考虑,招聘新员工都会采取本地候选人优先的策略,这样省时省力又省钱。而这对于本地求职者来说也是一件好事,既免去了舟车劳顿之苦,又可以专心准备面试。我现在的工作机会就是两年前作为一个本地候选人得到的。如果公司邀请外地的候选人来面试,则要为他买机票,订酒店,报销伙食费租车费等各种费用。这一切的额外成本都会使得对于外地候选人的挑选标准变得更加严格。好在,美国IT公司的招聘流程比较清晰,大都遵循着同一种套路。一般来说,想要拿到公司的现场面试(onsite)邀请,候选人要经过两到三轮的选拔,包括电话面试(phone interview),网上做题(online coding)等等。只有通过了这几轮测试得到了公司招聘部门的青睐,才有机会拿到「免费旅游」的机会。所以,天下真的有免费的午餐,但这种机会大多属于有准备的人。
来自领英猎头的勾搭
当然,机会偶尔也会光顾没有什么准备的人,比如说我。去年底,正当我困顿在「前端疲劳 」的苦海里不能自拔的时候,无意间收到了一封来自领英猎头的站内信,标题很醒目:「Shawn(我的英文名)+LinkedIn = Magic! 」这封站内信让我感到异常的兴奋,因为这是我转行前端程序猿以来第一次被「FLAG」 (Facebook, LinkedIn, Amazon, Google)的猎头勾搭。而随兴奋而来的,也有莫名的紧张,觉得自己的技术实力还不足以从容应对「FLAG」级别公司的考验。
心里有了压力,自然也就来了动力,之前的前端疲劳感似乎一瞬间就无影无踪了(我发现!!!多参加面试似乎是消除前端疲劳的一个有效方法~)。由于我在工作中大多数时间使用的都是PHP,而LinkedIn的前端职位技能要求里则清楚地写明了求职者要精通JavaScript。因此,恶补JavaScript就成了重中之重。在接下来一个月的时间里,我啃完了三本JavaScript的经典书籍。而之后的面试经历告诉我,这三本书真的让人受益无穷:
-
《JavaScript: The Good Parts》中文版:《JavaScript语言精粹》
-
《Professional JavaScript for Web Developers》中文版:《JavaScript高级程序设计》
-
《High Performance JavaScript》中文版:《高性能JavaScript》
电话面试
在收到领英猎头站内信的大约一个月之后,便正式进入到了我刚刚提到的美国IT公司的标准面试流程:第一轮是与HR的电话面试,主要聊背景和项目经验。第二轮电话面试的面试官是一位LinkedIn前端工程师,这轮电面进行了一个小时,包括三个概念讨论题和三道coding题,coding使用的是collabedit.com 提供的在线coding工具,面试官可以实时的看到我在屏幕这端写的代码。下面是真题时间:
概念讨论题:
-
What is website accessibility and how to improve the accessibility of a website?
(网站易访问性的概念以及如何提升网站可访问性)
-
Have you ever used any CSS preprocessors? Give the pros and cons of using CSS preprocessor.
(谈谈CSS预处理器使用上的经验,比如SASS、LESS之类。分析一下CSS预处理器的优缺点)
-
Tell me about event bubbling. How could you use it?
(JavaScript事件冒泡的理解和应用)
Coding题:
-
预测以下代码的输出结果:
var Foo = function(a) {
function bar() {
console.log(a);
};
this.baz = function() {
console.log(a);
};
};
Foo.prototype = {
biz: function() {
console.log(a);
}
};
var f = new Foo(7);
//预测输出结果:
f.bar(); // result: TypeError, f.bar is not a function.
f.baz(); // result: 7
f.biz(); // result: ReferenceError, a is not defined
-
给了一张网页截图,要求用HTML/CSS实现其中的布局
-
已知endorsement array, 要求写一个function实现想要输出的结果:
// function input
var endorsements = [
{ skill: 'javascript', user: 'Chad' },
{ skill: 'javascript', user: 'Bill' },
{ skill: 'javascript', user: 'Sue' },
{ skill: 'html', user: 'Sue' },
{ skill: 'css', user: 'Sue' },
{ skill: 'css', user: 'Bill' }
];
// function output
[
{ skill: 'javascript', user: [ 'Chad', 'Bill', 'Sue' ], count: 3 },
{ skill: 'css', user: [ 'Sue', 'Bill' ], count: 2 },
{ skill: 'html', user: [ 'Sue' ], count: 1 }
];
我的运气比较好,遇到的这位前端工程师是密大的校友。在美国,校友资源是社会人际关系里的一条重要纽带。校友见校友,两眼泪汪汪。可能是和这位校友聊的很投缘,当然题目也基本都做对了,两天之后我便收到了onsite的通知,邀请我在今年的二月去LinkedIn在加州硅谷的总部面试。终于,我也可以体验一次「美帝面试三宝」了。
总部面试的前奏
由于路途遥远,从亚特兰大直飞硅谷腹地圣何塞要4个多小时,因此我必须提前一天到达。好在领英的招聘部门很慷慨,给我订了商务舱的机票,飞行全程还算舒适惬意。至于到达之后的地面交通,可以选择自己租车,也可以选择乘坐Uber之类的出租车。包括停车费在内的全部交通费用,领英全部cover。一天伙食费的报销额度是65刀,在美帝每顿饭花20刀就能吃的很好了,65刀绰绰有余。令我印象最深刻的是领英家的官方指定面试接待酒店,Wild Palms Hotel。住在这种充满着浓郁Bungalow风格的度假酒店里,连我那因为紧张而绷紧的神经都变得舒缓平静了。