非死book面试Q&A
openkk 12年前
前言:本文作者 RoBa ,据其个人博客中简绍是在腾讯北京搜索部门做后台开发工作。他最近拿到 非死book 入职 Offer 后,不少读者对此事有些提问。本文是 Roba 做的问题答复总结。 <p> 说实话,其实我的眼界从来很狭窄,以前想的是,如果能在天朝帝都扎下脚跟,过上老婆孩子热炕头的日子,对我来说已很满足。所以之前也从未对出国读书或工作有过准备,下文所述很多内容都是我在最近的一小段时间里才接触到的,而且现在离正式入职还早,对于 fb 内部的情况并没有什么了解,签证之类的麻烦事还在办理中,说不定去不成了也是有可能的(-_-)……扯远了,总之就是说,虽然我已经尽力做到客观准确,但恐怕难免会有错漏,请读者不吝赐教。本文仅供参考,引起什么不好的后果本人不负责任 =,=</p> <p> Q: 你的学历、学校、专业、英语成绩、论文、竞赛获奖、工作经验、参与开源项目等背景情况?一定很牛吧?</p> <p> A: 真的不牛,矮丑穷,纯 RP 爆发而已。本科天津大学软件学院,硕士天津大学计算机学院。高中无竞赛经历,本科阶段 ACM-ICPC 竞赛亚洲区域赛有几次金奖(其实只是一百个队里前十几名而已的意思),进过一次总决赛但无奖牌。Topcoder 现在黄圈未满,最高时曾红了一点点。世界范围的算法比赛比如 Topcoder Open, Google Code Jam 之类只求混件衣服从没进过决赛,中国范围的如百度之星, GCJ 中国站之类运气好的时候进过一两次,但最终没有很高的成绩。没考过托福 GRE。没有 Top 期刊会议论文。没有参与过靠谱的开源项目。毕业前没有实习经验,毕业后在腾讯公司有一年工作经验,做搜索引擎的后台开发,小兵一枚。</p> <p> Q: 你是怎么和 非死book 联系上的?自己投的简历还是找人内推?</p> <p> A: 一开始是一个国外的猎头公司给我发的邮件,说有 非死book 的工作机会,如果有兴趣的话回复简历给他们,我就回了一个。我不清楚这个猎头公司是从什么途径找到了我的联系方式。</p> <p> Q: 面试用英文还是中文?</p> <p> A: 全程英文,不过对自己的英语没有信心的同学也不必太担心。书面英语大家应该不太发怵,担心的估计是听和说。</p> <p> 听的方面:因为面试的时候大多数时间都是在白板上(在线白板或者现场白板)写代码,而代码是地球人都看得懂的~ 面试问题中一些关键的信息,面试官为了清楚起见都会写在白板上(如果没有,你也可以要求他写一下),所以总的来说还好。值得注意的是有些面试官会有口音(最常见的就是印度口音了),如果之前完全没有听过的话会很不好懂,尤其是在电话面试时加上噪音的干扰,这个也没什么好办法,听不清就让对方重复几遍好了,关键信息可以让对方写在在线白板上。我在电话面试时遇见的就是印度面试官,答得磕磕绊绊,还好通过了。(扯远两句,不知道多听 TBBT 里 Raj 的说话有没有帮助,嘿嘿。据说对于成年人,练习听力的最好办法不是只听非常标准的英语,而是要尽可能多地接触各种口音,这样才能把耳朵的分辨能力练出来)</p> <p> 说的方面:人脑的纠错功能不是盖的,你作为 non-native speaker,语法错误没人会 care,哪怕你毫无语法的一个个单词往外蹦,老外也能基本听懂。切记这是技术面试不是口语考试,不要因为组织不好语言就不敢说话了。比如你的思路被卡住的时候,不要一直闷头苦想,要把你目前想到东西说出来,让面试官知道你不是毫无头绪的,他也可以根据你的想法给出些提示。再比如在白板上实现算法的时候,如果代码不是显而易见的,最好能一边写一边简单解释一下,让面试官跟上你的思路。(上面这段其实不只限于英文面试)</p> <p> 当然,虽说不用太担心,但基本的英文水平(包括一些专业术语)还是需要的,比如如果你连二叉树、排序都不知道对应的英文单词怎么说,那还是不行的。我觉得如果能在英文字幕的帮助下看得懂 MIT 算法导论的讲课视频的大部分内容,这种程度的话英文和算法应该就都没有问题了,哈哈。</p> <p> Q: 面试的流程是怎样的?</p> <p> 好像每个人都略有不同,只说我自己的。发简历过去之后,先被要求在 interviewstreet.com 上限时做一道题(很水,就是看看你会不会写代码的程度。难度远低于那网站上的题目的平均水平,不要被那网站公开出来的题目吓到了)通过之后就是预约时间进行电话面试,电话面试的形式是面试官打电话过来,然后一边讲电话一边在一个在线白板网站(collabedit.com)上写代码,双方都可以实时看到,约 45 分钟到 1 小时。我只电面了一轮,据后来了解,也有人电面了两轮或三轮的。然后被叫到香港去现场面试(三轮,每轮 45 分钟左右),前两轮是纯技术面试,最后一轮一半技术,一半应是所谓 behavioral question。然后就是等消息了。</p> <p> 关于面试地点,我们那批是在香港。之前有大神是直接去美国面的,之后据说又有一批是在北京面的。</p> <p> Q: fb 这次招了多少中国人?</p> <p> 我不知道。我们去香港的那批估计有二十人左右,有应届生,也有两三年工作经验的,我不知道多大比例拿到 offer。我知道的 ACMer 里面大约有五六个。</p> <p> Q: 面试时写代码的语言是?</p> <p> A: 无限制。不过我觉得最好是用比较主流的语言,比如C++/Java/Python 之类。我不确定用伪代码行不行。</p> <p> Q: 面试题什么类型?难度如何?</p> <p> A: 基本全是算法/数据结构题,但我不太确定这是普遍情况,还是因为我的简历上强调自己算法还行,从而导致他们有针对性地问。难度的话,不能算容易,但也不算太难,至少比 Google 中国的题简单。(ps. 貌似据说 Google 中国的题也比 Google 总部难-_-)代码量不会很大,不超过二三十行的样子。</p> <p> 另外需要说的一点是,这些面试官给的感觉是真的“懂”自己出的题的,和他们能够进行有效率的交流。举个例子,有一道面试题我有个地方用了带点 trick 的写法,面试官指着代码刚要问,我也刚要进一步解释,他忽然自己看明白了”Oh I see. Good.”,于是就继续后面了。另外一场面试时,我有个不太重要的地方粗心写漏了些东西,面试官说“There is a little mistake…”又马上说“but never mind.” 我不顾他说了好几次”never mind”,又仔细盯了半天才终于发现了错误,确实是并不影响大局的,他可以看出我是找到了正确的解法的,并不在意这种明显是手误的 bug。反观国内有些公司,有的面试官给人的感觉是临时从网上找了几道题目,自己也对某些细节不明所以,于是双方都稀里糊涂,互相跟不上对方的思路。</p> <p> 我感觉如果 fb 继续在海外招人,他们应该很快会发现“啊……原来中国有这么多神牛啊……之前招的那个叫 roba 的真是弱的像渣一样啊……裁掉算了吧……” 所以还请各位神牛轻虐……orz……</p> <p> Q: 去了之后主要做什么方向?</p> <p> A: 只知道是 Software Engineer,具体未知。他们的说法是在刚去的几周内有机会在各个方向都体验一下,然后自己选择。我觉得这应该只是理想情况,估计应该是个双向选择吧。</p> <p> Q: 工资?</p> <p> A: 具体数字不能说,呵呵。可以参考 glassdoor.com 上给出的统计,还是比较接近实际情况的。</p> <p> Q: 什么时候过去?听说有绿卡?</p> <p> A: 只是工作签证(H1B)而已,绿卡什么的是很久远以后的事了,fb 哪有那么大能量直接发绿卡的。如果这期间我被公司裁掉了又没找到下家,就得直接回来了。</p> <p> 关于 H1B 签证的申请和发放时间是值得一说的,每年 H1B 的开始申请时间是 4 月 1 日,签证发放时间是 10 月 1 日,所以即使拿到了名额,从中国过去工作的话也只能在 10 月份以后。近年的名额数目是每年 65000 个普通名额 +20000 个高学历名额 (仅给在美国大学取得硕士以上学位的留学生),用完为止。以我自己为例,收到和接受 offer 是在今年 5 月初,公司请的律师把申请递交到美国移民局是在 5 月中旬,递交上去就算占住坑了,当时 65000 个名额里我记得是已经用了一半多一些。这次的名额全部被用完是在 6 月中旬。我知道的几个应届生大神,因为学校的毕业证差不多也是那时候才刚发下来,所以就搞得相当危险。H1B 名额的申请速度每年波动很大,以前甚至出现过在 4 月一开始就被占满的情况,这次的消耗速度就比去年快得多,有牛人预测明年的速度可能会更快,所以如果想从国内直接找美国工作的话,要早做准备。比如现在因为今年 h1b 已用完, <del> 听说 非死book 已经暂停了从海外招人 </del>[Edit: 我不确定,可能不实](呃……我不清楚美国的公司如果有意向从海外招人,一般每年是从什么时候开始……我一开始收到猎头的信好像是在 3 月份……总之要记住 4 月和 10 月这两个时间点来安排计划,呵呵)</p> <p> 上面这一段是我现炒现卖,详请大家可以去自行搜索。如有错误请高人指正。</p> <p> Q: 妹纸怎么办?</p> <p> A: H1B 签证是可以带家属的(当然得先领了结婚证),不过家属过去的话是 H4 身份,法律上规定不能找有收入的工作。要想工作的话,一种是也直接找到一个可以帮她申请 H1B 的公司,另一种办法是先读个书,这样再找工作会容易些。</p> <p> ps. 具体到我自己的妹纸,她的事业心还是比较强的,决不甘心在那边当主妇。目前正在准备英语考试中,打算看看能不能申请到一个附近学校的 master 读。这次 非死book 的面试,从投简历,准备面试,到后来去往香港过程中的诸多波折(没有且来不及办港澳通行证,买了到泰国的机票想装作过境香港,出发前一天发现泰国虽然落地签但是中国边检不放,又退了换成到印尼的,在机场被工作人员拦下说必须有往返票,又临时改签+买回程票),每次我觉得太折腾想放弃的时候,都是她一边忙前忙后地查票打电话上网搜索,一边鼓励我,才终于有了现在的结果,我对此非常的欣赏与感激。</p> <p> Q: 需要托福 GRE 成绩么?</p> <p> H1B 和 H4 都不需要</p> <p> Q: 能否推荐一些对面试有用的资源?</p> <p> A: 如果时间充裕的话,看书我还是推荐算法导论……只为准备面试的话,有一本叫 Career cup Top 150 题之类名字的书可以看一下(可以搜到电子版,这里就不提供链接了),类似的针对程序员面试的英文书还有另外几本,比那个《程序员面试宝典》靠谱些。</p> <p> 网站资源的话,上面提到的 interviewstreet.com, glassdoor.com 都不错,另外 careercup.com,leetcode.com 都是听别人提起比较多的,上面有各种各样的算法题目(我自己都没怎么上过,不知道哪个更好些)。当然对于 ACMer 来说,各个 OJ 都是很好的资源,对于非 ACMer 来说,如果想接触一下竞赛题的话,我推荐 topcoder.com 里面的 Algorithm 竞赛里 Div2 难度的题目。Topcoder 的题目代码量通常不会太大,更接近面试时的情况,而且多数题目都会在赛后有解答,而且可以看到别人的提交,所以也是学习的好机会。</p> <p> 论坛的话,我上的最多的是水木社区的算法版(newsmth.net),另外 mitbbs.com 上关于在美国签证、找工作、移民等等的讨论都很多。前不久发现一个叫”一亩三分地(www.1point3acres.com/bbs)<cite></cite>的论坛看上去也很赞。</p> <p> 突然发现写了这么多了,先到此为止。最后,最近 RP 消耗太多了,求 RP……</p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958522488142158203" target="_blank">heliang.me</a> </div>