4.面试
机会永远只垂青有准备的人。我这么说,不是说我自己有准备,是因为我有教训,呵呵。
面试1:本地一间小有名气的公司,雇员人数以百为单位计。我在job fair上撒了一圈简历,根本没指望有人会给我面试,所以在之后的一个多月里,我完全忘了这回事,当时离毕业也有些远。突然间,电话来了,让我第二天就去面试。我当时正在做project,满脑子都是做着的事情,问什么说什么,让我第二天去,我居然随口就答应了。结果可想而知,面试没过。不过还是说说面试内容吧。
先问30分钟常规问题,针对你简历上做过的学过的东西。再来1个半小时笔试,内容包括一道概率题,一道几何题,三四道基础知识比如什么叫pure virtual function,写一个pure virtual function;什么叫template,写一个template之类。几道C++ coding,几道java coding。笔试结束,再来30分钟问题,又是简历上的。
Tip:如果面试来得太突然,你完全没有准备,第一反应是撒一个小小的谎,说你第二天有重大事务,其实一般会允许你再推后一两天。
面试2:一个某领域的国际大公司,雇员人数以千为单位计。全球有6个开发中心,北美有3个:除了我在的这间外,在洛杉矶和纽约也各有一个。加上销售与技术支持点有15个。通知我面试的时间非常合适,正好在圣诞节前一天,通知我后他们就放假了,加上元旦假期,所以他们直到1月初才安排我正式面试的日子。我有充分的时间去准备。
第一轮面试先是2小时的technical test,同样笔试。分A、B卷。A卷是小题,填空选择和判断,好象6、7页左右,内容包括:brain teaser(类似于智力题,比如什么电梯传送带啊、向南走1里、向东走1里、向北走1里能回到原地的地方在地球上有几个之类)、逻辑题(从数列与图形中找规律之类)、位运算、虚函数、内存与指针操作等等。B卷是大题,估计8、9页这样,包括几何(三角形之类)、brain teaser(切蛋糕)、面向对象基础知识(诸如inline function与macro的区别及各自的优缺点)、专业知识(关于图像的),5道coding(有关于字符串、数组、链表的,具体题目我记不太清了,但要求最快的算法最少的内存)。
大家看到这个内容表,估计都晕了。事实上,接待我的HR也没指望有很多人2小时能做完。他叮嘱我说哪怕有一点想法都要写在上面,因为他们喜欢有想法的人,即使不能完全解决问题。不过我手气太顺了没办法,其实较难的是那5道coding,但我之前已经明白那是technical test中最常考的知识点,早就下苦功研究过了,所以我居然提前10分钟做完了。交了卷我就知道我能进入第二轮面试。不过大家别指望有熟人面试过了,背熟题了就有用,他们是有题库的。
第二轮面试前半部分是技术部门的人口试,先是review我的笔试卷,不过我基本上做对了,所以他们没什么问题问。然后又开始问我简历上的技术内容,然后轮到我问他们工作上的问题。后半部分是HR的人来面试,什么你最大的优点、最大的缺点、team work中的冲突与communication之类,都是常规问题,我也早在monster的virtual interview(
http://interview.monster.ca/)中演练过了,也答得头头是道。你不能按上面virtual interview的背,要记住回答要点,然后举一个自己的例子来说明这个要点,一定要有论点就有论据,不能光说空话。第二轮面试加起来大概2个多小时。
所以这个job offer我就拿到了。
面试3:Microsoft (Seattle),这个公司规模不用说了,以万计(我每面试一轮,公司规模就上一个数量级,呵呵)。微软在加拿大的分公司都没有做开发的,全部是销售和技术支持。所以来招人的是微软西雅图总部。拿到这个面试速度之快,让我吓了一跳。第一天下午我突然心血来潮发出简历(那天刚好是收简历的deadline,兼他们到学校来作专场介绍),第二天晚上通知我面试,第三天中午面试。事实上,我上周末刚面试完,还不知道结果,呵呵。
微软面试有两轮,第一轮叫screen interview,在学校里进行,或者电话(如果微软不在你的学校招人),30到40分钟。如果你通过了,会让你飞到西雅图再面试一次(on-site interview),根据我拿到offer的朋友说,是早上9点半到下午5点半,大概四、五拨人一轮轮来考你,是重体力和重脑力活。
我目前完成的是screen interview。前半时间在聊简历上的技术问题,后半在考coding,我做得不太好,要了他的提示才做完了。主要还是老毛病,我没有准备好。给我这样一个突然袭击,我无法进入考试状态。而且微软的coding是要当着考官的面在白板上写的,不是写在纸上的,因为他们要看你的思路,我紧张啊!
大家也许要问为什么我决定要公司2的offer还接受了微软的面试。首先,即使过了screen interview,我不认为我目前能过on-site interview,实在是准备不充分,而且我基本功还没好到那个地步。其次,即使我都过了,有工作签证的问题。如果你是加拿大公民,微软会让你先用TN工作几个月,等年底H1-B下来。因为我要明年初才能拿到公民,而今年H1B的名额已经用完了,最快要到年底新的申请才下来(微软的人说的)。微软是会等的,但我会有大半年无所事事。
或者问我为什么去面试微软,还要接受公司2的offer。这因为我LG的工作很不错,也是业界数一数二的国际大公司,而且是“有发展前途的中层小干部”,但是就业面相对窄,若是搬到Seattle未必能找到同样好的工作。微软一定会给得比公司2给我目前的多,但我们也没什么很奢侈的爱好,现在我们两人的收入加起来十多万两个人花,已够用了,何况还有上升空间,我刚入行,LG每年加薪一次,我们每半年加薪一次。以后不会比现在更低。搬到一个新地方,就面临重新建立生活秩序,我有点犹豫。
我不是有创业精神的人,所以微软面试对于我的意义,好象运动员之于运动会(自己创业的人当然看不上它了),微软面试的风格影响了一代high-tech企业招人的标准和方式,无数人为此写了无数文章和书。我想没有人在我的位置上会拒绝它家面试的邀请。即使知道自己也许会失败,或者得到了,物质生活也不会有太本质的提高。但这种面试的诱惑实在无法拒绝。
Google和Amazon要人的要求相对具体,不是我那个方向的。加拿大IBM除了在Markham的lab是做研发之外(且做DB2, lotus之类的多,我也不通),其它全是做销售和技术支持的。所以这3个公司我都没有申请。