上次应阿里实习群里面的小伙伴要求,写了一篇《我的实习生面试经历》。里面提到了我还在面其他公司,这家公司就是Yelp。在那篇文章发完之后,有不少朋友在评论和私信里面表示共勉,也有在微博鼓励我面试加油的朋友。
跟这些关心我的朋友们分享一个喜讯,我已经取得了Yelp的实习生Offer,将在那里进行为期六个月的实习。也因为这个,有阿里的小伙伴又要求我写一篇面经。我也很希望分享,由此作海外篇。
跟上一篇不同。上一篇我主要介绍技术面试中可能出现的问题,以及如何应对。这篇我将着重阐述国外实习生申请的流程。但由于我只申请过这一次,所以我将根据我的经验,结合别人的经验,试图较完整地介绍这个流程。
另外,我只针对大公司。国外创业公司和小公司一般不会要国外的大学实习生,因为他们第一付不起你们薪水,第二是选人标准会很高,第三是他们没办法给你办签证。
仔细调查
老外很注重一个问题。
Are you well engaged?
你在面一家公司之前,要非常清楚你为什么要进入这家公司。一般在第一轮面试的时候,都会问你这个问题。如果你没有办法流利地回答这个问题,而且硬实力上也不是很突出,或许对方就不会选择你。
所以,请了解清楚一家公司做什么,你是否对它做的事情感兴趣。当你对一件事情感兴趣的时候,你会不由自主地在面试的过程中体现出来,这个是装不出来的。对方作为一个从业人员,自然也能感觉出来,这会为你自己加上很多的分数。
你可能会觉得,不就是实习吗,难道还考察价值观?是的,国外公司招聘实习生的标准就是招聘应届生、全职员工的标准,几乎是一模一样的。这一点面试官自己也跟我提到多次。
准备时间
国外公司的实习生申请窗口期一般是每年的十月到十二月。具体每个公司的招聘时间点要关注这个公司官方的公告。主要的信息来源除了公司官网,还有公司的Twitter、Facebook以及LinkedIn。
我就是一个反例。我其实是在二月份的时候才开始申请,因为我没有事先了解清楚,所以搞到最后可选择的范围变得很小。
内推?
内推是一定要找的,否则我也不可能在窗口期全部关闭的情况下依然还能申请。浩如烟海的申请中,内推能为你加上很强的一个保障。如果你有认识的学姐和学长在目标公司工作,那么再好不过了,赶快把你们的简历投给他们。
关于简历要注意的问题,可以看我之前写的《我的实习生面试经历》。但是如果你有更多时间的话,建议不要看那篇,而是看一本书,叫做《The Google Resume》。你不一定是要申请Google,也不一定是申请技术岗位,但是里面的技巧是通用的。
找内推的第二种方法,也是我用的方法,就是用LinkedIn。我在LinkedIn上面花了二十几美刀注册了一个月的Premium会员(高级会员),最便宜的那个。高级会员的好处除了可以使用更强大的搜索之外,还有就是可以发送InMail。
首先是搜索。我只搜同校(同济大学)的学长和学姐,然后搜索对应公司。这样你就会获得对应公司里面的校友员工。
接下来就是给他们发送InMail。InMail实际上就是LinkedIn的站内信,专门让你发送给他人求内推、求咨询等。在这里,我们就是用来求内推(Referral Request)。选定了要发送InMail的人之后,就给他写一封InMail,告诉他你要内推,并附上你的简历。
至于InMail怎么写,超出了本文的范畴。简单一个字:短。再补充一句,标题一定要有Referral Request的字样。最后的补充,最好用英语。
有人说,那我直接Connect不行吗?LinkedIn是一个熟人专业圈子,你跟对方至少要认识或者说过话,哪怕是在线聊过天。如果是一个搜索到的,根本之前不认识的人,你去加他,人家估计只会觉得你很无礼甚至有点脑残吧。
接下来介绍接下来的面试流程。每家公司各有不同,但是大同小异,因为国外的面试是很规范的。我这里写的就是Yelp的流程。
Initial Phone Screen
下面开始会有比较多英语词汇穿插出现。如果你是要申请国外实习,那么你应该要了解这些词的意思。
内推开始后,如果HR觉得你的经历不错,那么她就会告诉你你已经进入了Recruiting Pipeline。HR发邮件告诉你,约个时间进行Initial Phone Screen。
所谓Initial Phone Screen就是一个简单的电话交流。不要看到screen就以为是用Skype面试。HR打电话给你,问一下你的基本信息,然后问你一些你所申请的职位的最基本的问题,确认你有资格进行下一轮面试。
对于技术岗位,HR在电话里可能只会问你的信息,不会问太多技术相关的东西。他们会在这次电话之后发给你一个Online Coding Challenge的链接。Online Coding Challenge不一定都是写代码,写代码的题目可能只有一两题。接下来还会有十几题小题,就跟高考填空一样的。这些小题主要考察你的专业技能基础。
例如,我申请的是软件开发相关岗位,那么他会问我一些Computer Science最基础的问题。例如
- 链表插入节点的最差时间复杂度是多少
- 一位八进制数等同于几位二进制数
- Linux下面杀掉进程的SIGKILL信号的数值是多少
这真的是考基本功了,我想我并不能提供太多建议。这些问题都可以在Glassdoor上面找到,请探索一下这个网站,会对你的面试有非常非常大的帮助。
关于英语口语的训练,超出本文的范畴。临时拯救自我可以看郭家宝的这篇《海外实习面试记》。
One-on-one Interview
通过前面的考验后,HR认为你有能力进行后面的Steps。他会让Coodinators(专门负责协调时间)协调你接下来的一次One-on-one interview(一对一面试)的时间。
这次的面试一般会采用Skype面试的方式,时长是标准的45分钟。
对于技术面试,面试的问题分为两类,Behavioural和Technical。简单讲,Behavioural就是考察你的经历、沟通能力、项目能力、团队合作能力等,主要以软技能为主。这部分真的是很重要,文化是大公司很重要的一部分,他们会深入考察你的个人习惯、性格是否适合在这里工作。
而Technical的问题就是实打实的技术问题。这里面又分成两类,一类是描述,一类是实战。所谓描述,就是他问你技术问题(例如,IE6下双倍浮动外边距的bug是怎么解决的?),你把解决方案说出来;所谓实战,就是写代码。他会打开一个在线实时代码编辑器,你写代码他也会立刻看到。
重点说下实时编写代码这一个部分。他会给你一个算法题,类似LeetCode上面的题目。我这次面试刷了131道LeetCode上面的算法题,就面到了一道原原本本的原题。需要注意的部分有:
- 写最好写的办法。有人追求一下就写时间复杂度最好的算法,但是这个算法可能很难实现。可能你很厉害,一下子就能写出来,但是估计也不会多好看。面试官其实想要你先实现Quick and dirty的方案。在你实现复杂度并不是太好,但是很直白的方案后,他还会问你如何改进,然后你再娓娓道来即可,甚至不需要写。
- 注释引导编码。先用注释把算法框架描绘出来,然后把代码填进去。这是为了体现你的思考过程,同样也体现你的编码习惯,加分真的一定不会是一点点。
- 静态查错。面试官并不会去跑你的代码,他的经验足够看出你的错误。你写完之后不要马上说我写完了,而要进行静态差错。可是查错又会让双方沉默很久,这很尴尬,那怎么办?教你一个方法,你可以说,下面我为你逐行解释这个程序。他一般肯定会说好。于是你开始逐行解释,顺便查到一些问题。这个加分也肯定不止一点点。
后面亮点其实都是情商问题了,纯粹靠你的软实力。不可否认,硬实力是通过面试的前提,但是软实力才真的是通过面试的利器。
Back-to-back Interviews
通过了前面的面试,接下来会安排你进行Back-to-back Interviews。注意这里的Interviews是复数,说明这里有多场面试。所谓Back-to-back Interviews就是两场背靠背接连进行的面试。
两场面试的时间依然是分别45分钟,那么总共就是90分钟。这是一个持久战,面完之后我口干舌燥。特别是凌晨五点半进行面试,对于我这种平常六点起的人都很吃力,更别说大部分习惯两三点睡的码农了。下面我会谈谈时差的问题。
这两场面试形式和前面的One-one-one是完全一样的,除了难度会往上抬。面试官会是一个工程师外加一个Manager。这个Manager就是你如果通过面试以后,去工作时候的主管。所以,你去得去不了,他一句话说了算。
依然还是会有写代码环节,所以你将在凌晨五点半解决两道算法题。我遇到的题目分别是一道动态规划题,以及一道链表题。具体题目,由于保密协议,我不能透露。如果你心里没底,去刷LeetCode吧。
时区问题
你一定要搞清楚时区问题,以及如何换算时间。美国还有夏令时和冬令时的差别。对于夏令时(PDT),我们中国的北京时间减去15个小时之后就是他们的时间。对于冬令时(PST),我们北京时间减去16个小时之后才是他们的时间。
在邮件沟通的时候,你要不厌其烦地使用PT(PDT和PST通称)。例如:
Okay, I will wait for your call at around Mon 1st Apr 3:30pm PT.
第一让人家觉得你很Engaged,第二是让人觉得你很细心。
另外,HR会经常touch base(招聘用语,其实就是跟你沟通信息),所以你将经常很早起。所以,搞清楚时区之后就要调整作息。面试基本都是在凌晨五点半、六点半。为了这个,我连续一周半是四点半起的。我一般平常十二点睡,早上六点起。连我到最后都觉得有点扛不住,实在是太累了。特别是要面试的早上,你不仅仅要早起,还要在凌晨的紧张状态下面写代码,回答技术问题。
如何变得Engaged
所谓Engaged,就是要让别人觉得
- 你做事很成熟
- 你很在意这次机会
这两点都很重要。有一句话叫做“你不理财,财不理你”,面试也是一模一样的道理。
我并没有办法告诉你如何做到步步都让人觉得你很Engaged,这又是软技能范畴。
我就简单地给你举个例子。
在每次Interview前,我会给Coordinator发邮件,让他帮我告诉面试官:网络状况可能很差,如果到时候网络连接出了问题,无法连接Skype的话,请发邮件给我,我会时时刻刻看着我的Inbox,并及时回复。
原文是这样的。
Hi XXX,
Could you please forward this email to 面试官1 and then 面试官2? I will open my Skype at Wednesday, 3/18/2015 at 3:15pm PDT and wait for incoming call. Really looking forward to talking with them.
In case of internet connection problem (which is a common issue), they can send me email (webmaster@leapoahead.com). I will watch my inbox actively, respond immediately and negotiate with them.
Thanks for your time!
里面还有很多的礼貌用语。一定要记得,你是在用别人的时间,所以,请感激别人为你做的事情。
我当然不是纯粹为了让他觉得我Engaged才发的,如果是可以的,傻子都看得出来是巴结。写这封信的基础是我确实也很担心国内的网络状况,所以提醒他们一下。
后来Coordinator给我回信。
Hi John,
I will certainly pass along your message to 面试官1 and 面试官2. Additionally, is there a phone number you could provide? We find that's a good solution as well.
Thank you!
看,他不仅同意我的看法,而且要求我给他我的电话,作为第二个预防无法建立连接的方法。我给了他我的电话后,他还回了一封。
Hi John,
I have updated your event with your additional contact info. Thank you for being proactive!
Good luck!
对方觉得我很proactive(有预见性的)。我相信面试官也会这样觉得,因为我提到要Coordinator帮我转发邮件(这个我是故意的),他应该也会这样做,而不是再写一封。面试官会看到我的邮件,这样我在面试之前实际上就加上了不少印象分。
所以,什么都是要用心经营的。你的生活、家庭、爱情、事业……都是要经营的。(心灵鸡汤时间)
别忘了感恩
前面就是面试的所有流程,以及要注意的地方。
无论你是否通过面试,你都应该发邮件跟这个过程中帮过你的对方公司中的人表达感谢。这是最基本的礼仪,我们不应该从利益的角度来看这个事情。
如果你是面硅谷公司,这就更有必要了。硅谷的HR圈子很紧密,互相之间信息传递很快。如果你是一个很无礼的人,说不定第二天所有大公司的HR都会有人知道这件事情,这个一点都不夸张。
总结
对于分享这个事情,我有求必应,无论是面试、技术、产品还是其他内容。今天由于时间问题,只能说这么多。如果有任何问题,欢迎和我交流。
最后祝大家,也祝我自己,Good luck!