登录
  • #码农类general
  • #工作信息
  • #求职
  • #找工就业

分享‌‌‍‍‌‍‍‌‍‍‌‍‌‍‍‍‍‌‌‌‌‌‍‌‍‌‍‍‌‌‍‌下国内硕士找US Job的经历吧

ygnhzeus
10210
35
这个文章写出来有两周了一直没发,上周签了MS的offer,今年关于国内直接找US JOB的分享比较少,于是乎拿出来大家姑且看看吧,同时增加了一些面试中碰到的题目,希望对大家有帮助。

投过的公司:BaiduAlibabaWorks ApplicationsMicrosoft(US)Yahoo!、有道、Google(US)Amazon(US)OfferBaiduAlibabaWorksapplicationsMicrosoft (US)面挂:Google(US)笔挂:Yahoo!没消息的:Amazon(US)中途放弃的:有道最终选择:MS Redmond计划中是准备申请学校出国读PHD的,GT也考过了,所以投的公司不多,没想到找工作结果还不错,准备直接去美帝工作,反正最终都是要进公司的,殊途同归。先说说找工作的历程吧,最后再分享一下微软面试的过程。 百度是最先面的,虽然职位是测试的,我不是很感兴趣,倒也没拒绝,想借着机会练一练进入状态;面了3次拿到的offer,面试的问题主要也是和简历上的项目相关的,期间也问了几个智力题。 Worksap是第二个面的,笔试过了之后只有一轮英文面试,做了个很简单的题目,面完和HR聊了聊当场拿到的offer letter 阿里是第三个面的,之前拿的实习offer没有去,校招就直接终面了,感觉今年阿里组织的有点混乱,在阿里终面面了2轮,主要是围着简历上的东西再问的,同时还有一些HR问的Behavior Questions Google是内推的,期间和阿里交叉着面试,在Google的第一次面试和二三次面试之间隔了1个月,二三面的时候有点找不着北了…Google上来就出题写代码,基本每轮12个题目吧,根据题目具体情况不同,同时也会少量问一些设计类的题目。那段时间各种事情弄得很忙,经过之前面其他几个公司面试以及通过Google第一轮面过之后显然有点轻敌了,到这段时间为止其实没有很认真地准备coding面试,剑指offerCracking the Coding Interview基本只是看了一遍,Leetcode上面的题基本也没做,在第二轮和第三轮面的时候发挥明显感觉没有状态,自然就没有然后了…Google一面碰到的是个中国人,二三面都是US Office过来的面试官。Google HR安排面试挺认真的,1HR专门负责若干个学生,有任何问题都可以随时联系,很赞。 之前去参加过Yahoo!Hack Day,我觉得Yahoo!的工作环境很不错,早饭零食都提供,只是笔试没过,因为投的是研究工程师,我却只会做研发工程师的题目T_T…最后两个主成分分析和贝叶斯模型相关的题目直接没做出来,信息检索课上学的东西都交回去了诶,看来Yahoo!研究工程师偏爱Data Mining方向相关的,不是我的菜。 网易有道么,我只面了一面,拿到微软offer后面就没去了,基本流程也是做题写代码。 最后说下大救星微软,一直以来就没有想过会去微软,一是因为primary programming languagejava,另一个原因是微软貌似没什么途径内推,不过考虑到用了一年windows phone、外加每个月掏40多块用着的office365,冥冥之中自有天意从整个过程安排来看要给微软5颗星,原因主要是:a. 微软的HR很负责,一直跟踪着进度,有任何问题立马就会解决,面试前会开一个在线的Meeting介绍一下基本情况,甚至会把和Seattle生活相关的信息发给我们以便我们做决定是否接受offer。b. 在深圳面试,微软包来回机票、最多2晚5星级酒店住宿以及早中晚各15、20、40刀的饭钱…c. 微软面试官感觉比较Nice.d. 给了offer.微软今年国内公司貌似招的人不多,总部招的人数不太清楚,我们这一波3天应该一共面了30来个人吧;一共经历了5轮英文面试,都是MS Redmond有10+年经验的Engineer/Manager直接面的,面试之前会提供若干个时间供你选择,比较灵活。下面说一下面试过程吧,感觉通过这次面试还是有不少收获。 1面:第一轮,面试的时候是北京时间晚上11点,电话面试,大概半个小时,刷人的概率比较小吧,这一面主要就是确认下简历上的经历,问一问以前碰到的挑战啊一类的Behavior Questions,然后还有一个智力题。英文电话面感觉有一点不习惯,有时候听得不是特别清楚,还有就是可以明显感觉到延迟,话说完要等1-2秒对面才有回应在这之前两天花了些时间根据自己的简历里比较重要的经历,按照Cracking The Coding Interview里面提到的表格准备了一些问题。 一面通过之后有1周左右的时间准备接下来的面试,Redmond的面试官会来中国,我先说下自己怎么准备的吧,其实挺纠结的,刚好是准备出国申请材料的关键阶段,又要分心准备面试,最终结果是时间都用来准备面试了,有点孤注一掷的感觉准备过程就是刷Leetcode的题目,几天下来大概做了70来道,同时按照题目的分类总结一下各个考察点的常用方法,比如动态规划、回溯之类的,还有一些常见算法题,比如GraphTree、字符串相关的一坨。另外就是想一些有意义的问题来问面试官。还有一个比较有用的收获的是,花了$200+CareerCup.com上面做了1个小时的Mock Interview,给我做Mock Interview的是微软Redmond的一个干了8年的Senior SDE,模拟面试的模式是他给一道题,然后我在collabedit.com上写代码,他会根据面试过程的表现情况作一些记录,然后后面告诉你哪些地方可以改进,最后有15分钟的时间都是在给我反馈,同时也问他一些问题,感觉还是很不错的,有一点就是他们不会讨论或回应任何与雇主有关的话题和问题。我总结下来他给的建议主要是:1.写代码实现之前多想一想,关注design而不是实现本身,试图寻找多个方法,如果某个方法过于复杂,可以考虑放弃,试图寻找更simple & efficient的方法,因为面试时间就这么多,题本身不会很复杂。这一点要因人而异,如果时间确实很紧也没有什么更好的办法,建议还是按照大部分书上所写的:先实现你最先想到的算法再考虑作提升,a working solution is better than nothing.2.问一些问题,特别是关于特例的,可以让面试官给几个例子。3.代码命名更完整一些,尽量不要用看不出来实际意义的变量名。4.关于多个解法,主动比较它们的不同,并做出解释,虽然某些方法性能可能显然要差很多,这样可以体现你的思考过程。5.在开始写代码的时候,多主动表达这么做的目的和原因,例如I want to implement ... I want to add sth here… 我个人体会是面试写代码的时候通常就沉默了,特别是对于面试官正在看你写代码的情况,最好主动去解释每一部分的目的。用他的话说是what you do is not as important as why you do it6.关于测试方面的问题,尽量考虑更广泛一点(performance, reliability, security, multi-threads, correctness etc.),不要局限自己的思维,因为大部分情况下,你能想到的,其他人也能想到。个人觉得一个有用的方法是用mindmap列出来多个方面,然后再逐个细化,这样会比较有条理,也可以给面试官留一个好印象。 下面来说二三四五面,面试在深圳一个酒店里进行的,一共有5个面试官,1个面试官来自北京Office,不过以前是Redmond的,另外3个面试官来自Redmond,其中2个中国人1个老美,还有1个面试官坐镇Redmond,通过电话+视频远程面试的,现场面试可能会有34轮,根据面试官得到的信息是否足以作出拒绝还是offer的决定,不过我看到的人基本都是4面。总体感觉微软的面试官都比较Nice,面试基本是在欢乐祥和的氛围中进行的面试内容遵循:1.说说你做过的东西(实习或项目)以及碰到的challenges->2.我们来coding一下吧->3.有这么个需求,你怎么设计这个系统->4.有这么个玩意儿你怎么测试->5.有啥要问我吗?其中234一般只会同时出现2(23或者24)5有时间的话就多问问。有一个地方微软比较细心,在两轮面试之间会有休息时间,这个过程中面试官会互相交流,在上一轮考察不够的地方下一轮面试官会重点考察,比如上一轮题目做的不是很好的话面试官可能会给你一点提示怎么解,下一轮的面试官出的题目可能会看看你有没有从刚才的提示里面学到什么东西。我第一轮面试花了很多时间在13上面,导致coding的时间很少,第二轮面试的时候就集中在245。第三轮面试相对要轻松一点,集中在125。第四轮是远程面试的,和我一起面试的同学有2个是在前两轮进行的远程面试,说感觉表现很一般,可能还没热身就进入完全英文环境+远程电话面试确实比较蛋疼,还好我是最后一轮才远程面,已经完全放开了,就比较自如,这一轮考察了1245,先让说了下之前在Morgan Stanley实习做的东东。对面是开发Excel的,然后问我最喜欢的微软产品是啥,我果断说office;接着又问why,我说office用户体验很好很注重细节啊,举了个例子说在Morgan Stanley实习的时候用Live MeetingLive MessengerOutlook交流,感觉很方便,比如在打call的时候Messenger的状态会自动同步切换到In meeting的状态,这些细节做的很好(我觉得有例子支持是最好的,真实例子比干巴巴地夸来夸去要有效地多);他接着又问你觉得有什么可以improve的吗,我想了下说现在很多企业在搞big datacloud computing之类的玩意儿做分析,Excel用来做报告的,也许可以增加一些功能帮助用户获取这些大数据分析结果,他就说他们确实有这方面的打算;我觉得这可能是个比较加分的回答吧,后面就是写了个题目代码以及问了点测试的东西,最后让我问问题,我问了两个就结束了。然后大概等了半个小时HR就告诉我给offer了,然后问接不接受;我是上午面的,最后一个面完的,815开始面一直持续到下午13:30左右才完事,和去年Morgan Stanley的实习面试神似,看来还是和缩写为MS的公司有缘分诶,我走之前下午来的那波人都开始面了总结一下这次面试相对于之前的几个面试,有几个方面应该还是有比较明显的进步:1. Be more communicative. 这也是从MockInterview得到的建议,无论是写代码还是思考的时候尽量多和面试官交流,主动解释自己的思路和代码的目的,各种特殊输入的情况,凡是任何觉得没有把握的问题都可以和面试官提出来。2. 找工作的态度。国内的公司就不说了,没太多针对性的准备,面Google的时候也是抱着试试的态度,大不了申请PhD出去;Google面挂确实是一个警醒,找工作绝对是一个没有付出就没有回报的过程;考虑到微软这次安排这么细心,也就认真搏一把了。3. 向面试官的提问。之前的面试都没太注重这些方面,这次好好准备了一下感觉还是有效果的,如果面试官对你问题的反馈先是说一个good question,然后滔滔不绝和你说他们工作的情况的时候,个人感觉气氛瞬间会好很多,特别是在这个面试官这里表现的一般的时候,最后问他的问题如果能引起他的兴趣总能帮着扳回一些印象。4. 加强对产品的了解。面微软的一个好处是不管是谁总能说出来一些和微软有关的产品,根据一些新产品或新功能提一些问题感觉还是很有帮助的。 吐槽一下关于考察面试者能力的模式,就我个人体验来说,我觉得面试风格主要有4种:1. 直接上算法题coding,我不关心你简历上写的东西。这一类的Google是典型,搞ACM的应该很有优势,不过面试题目通常比竞赛题目简单,没搞过ACM竞赛的(like me)也不用太紧张,把leetcode上一半题目过一遍我觉得应该能应付大部分题目了。2. 根据你的简历问相关的项目,几乎没有算法题目但有少量相关技术问题。就我个人来说阿里应该属于这个范畴内的,感觉每轮面试都是在重复讲那些东西…可能和具体的部门有关吧,有的部门工程性强可能就会这样面,算法工程师或许另当别论吧。3. 给你一个小题目(涉及算法和OOP Design)并给你几天时间做,然后筛选人来做面试,面试只做一个简单的题目就OK。这种类型比较独特,目前只看到Worksap是这么做的,面试满意的话就直接给offer,不太满意的话给实习机会再根据情况给offer,我觉得这样挺好的,毕竟45分钟的面试时间要想把能力完全展示出来是很难的,这种方式可能更贴近平时工作的状态。只要过了笔试,Worksap的面试注意下细节应该说不上难。4. 比较综合的,即做题写代码(1~2道或者1道题基础上追问)、又问经历、还会考察测试、系统设计和智力题。微软应该属于这一种,算法题目通常不会比Google的难,但问的比较全面所以个人感觉MS面试对表达能力的要求相对Google感觉要高一点。很难说哪种方法是最好的,要我说没有一种方法是能完全体现一个人的能力的,毕竟每轮面试的时间只有短短45分钟,面试的风格只能体现一个公司的喜好。找工作是实力(50%经验积累+50%面试前准备)+运气(碰到什么样的面试官和问题)+状态(一般连续面试比较容易调整状态,不过太频繁会很累)的综合结果,我想对于大部分人来说实力不会相差太大,更多的是看找工作过程中的准备以及运气了吧,找工作只是踏入门槛的第一步,实际工作就完全是另一个场景了。再谈谈出国吧,这两年来越来越不想留北京,高房价+烂空气这两座大山估计短期之内推不翻了,假如要留在国内也倾向去上海杭州或者深圳,出去看看的想法也越来越强烈,出国的途径也就申请PHD或者直接找FGM这些个大公司sponsor H1B。本科时候有心血来潮想出去读PHD的,GRE红宝书也买了但后来没坚持下来,当时感觉很难缺乏动力,其实从今年上半年准备过程来看,GRE和TOEFL这种考试只要计划好了,每天按部就班完成单词+做题也不是那么难的事情,最痛苦的可能是刚开始背单词1-2遍的时候把,后来把要你命3000和红宝都给背了几遍之后感觉好很多。本科后来放弃出国可能是没想清楚想要的方向吧,缺乏动力。现在回头看看,如果要出国还是要早做打算,如果没有很强烈做Research的动力,本科毕业出去读个MS是最好的选择了,从国内直接找工作选择面要小很多,今年感觉只有Google和MSFT在国内招人,没看到FB、Linkedin、Twitter有什么动作,有的话估计也是很小的范围,从国内直接找工作出去选择面太小太小了,每年的情况可能都不同,有的时候招人多有的时候招人很少;当然PHD也是个不错的途径,想出去的话本科就做打算是最好的,虽然国内拿个Master再出去也未尝不可,只是觉得又耽误了3年宝贵时间,等拿到PHD都快30了。

自己背景:本科211排名30后了,读的Digital Media Tech,和CS有许多重叠课程不过基础肯定还是要弱一些,大四有一年在IBM Research China的实习经历,硕士保送的计算所,研一暑假有2个月在MorganStanley实习经历,若干做可视化和APP的奖,无ACM,算法渣。

最后说说面试里面碰到的题目:1.聊聊经历,实习或者是project,最challenge的东西2.字符串里面找出现频率最高的最长子串3.设计两人的tic tac toe游戏,O(1)时间复杂度4.设计一个用于下载文件的客户端schedule算法5.谈项目里的一个系统,如何验证他的正确性6.实现算法从一个未排序数组中找乘积最大的3个数字7.测试一个判断3条边是否能够构成三角形的函数(等边、等腰、非法、普通有不同的输出)

补充内容 (2013-11-21 12:45):

WORD粘出来的,排版可能有点混乱,多包涵
35条回复
热度排序

发表回复