原文出处: 逗比程序媛(@逗比程序媛) html
两年前写的文章,如今读来虽然有点幼稚可是仍是颇有价值的,但愿可以帮助到你们。^_^面试
通过近半年的辛苦面试,总算签约dream company。整理下思路,把本身的状况写出来,只是为了给你们作个参考,但愿能帮助到须要的人。算法
2010年国内一本本科毕业(大学排名30之外),四年左右iOS相关开发工做经验的女程序媴。有多家公司的工做经验,囧。期间作过free lancer一年,和多家公司(团队)合做过,认识了很多朋友。从2012年年末开始尝试面湾区工做,G、F及多家startup所有都是一两次电话面试就直接失败,以后开始作各类online编程比赛,看Cracking the Coding Interview,天天关注@陈利人 的微博及评论,和@待字闺中 的微信,并Crack了全部Leetcode的题(开始花了一个多月作完大部分题,等到昨晚剩下的难题一共花了3个月左右)。2013年夏天进入国内某top互联网公司,9月份只花了两个多礼拜重作Leetcode,发现本身的代码愈来愈简洁了。以后开始面G,11月初面完进入漫长等待,12月中去美国onsite FB,直接悲剧。回国后,焦急的等待G的结果好久都没有任何进展,以为不能坐以待毙,14年1月底辞职飞去湾区集中精力找工做一个月,最终拿回LinkedIn,Amazon,Google,Twitter,和一个startup Tango的五个offer,所以标题简称为FLAGT。以后和各公司hr、hiring manager周旋两礼拜,总算尘埃落定。编程
刚回国后,感受全部公司的反馈都是很是好,心情很是激动。好像一切都来得太容易,忽然以为本身找到了成功的方法。在和小伙伴们分享面经的时候,解释什么状况要怎么作、怎么说,好像按照本身说的去作就必定能成似的。其实如今冷静思考后,才发现,我这一路走来,有不少不少不可或缺的因素,履历、工做领域、性别、人脉、努力,还有运气,不过整体感受确实没有我以前想象的那么高不可攀。微信
可是找工做的过程确实很痛苦,但愿你们能找到本身的“组织”,有小伙伴们一块儿努力,互相分享经验、互相打气。从去年10月开始到2月,小伙伴们是愈来愈焦急,可是确实是不少人都在最后的时刻拿到了dream offer!貌似这趋势仍是越到最后的拿得越好。毕竟从国内招过去的人最好状况都要10月份才能开始干活,因此不少公司到2月份才开始启动海外招聘。只有Google和Facebook的校园招聘是最先的,大概每一年八、9月就开始启动了。因此请坚持到底,笑到最后的人笑得越好。架构
如今我不少面试的题目都记不太清了,面得实在太多,有时候都只是惯性的回答问题,惯性的写出代码。可是面下来看和别人分享的面经里说的内容确实没什么差异。因此我就以问答方式分享下个人一点体会吧。app
我都没有碰到特别难的算法题目,印象出现不少二叉搜索树的问题。在Leetcode上难度排行的话,大部分也就中等水平。由于Leetcode上的题我都认真作了,不少题我都知道不仅两种方法的解答。就算面试不必定出原题,但都是一些一样的套路。关键是简单的题,要能写出漂亮且bug free的代码,这个能力是须要花时间去锻炼的,并且必定能练出来。那些一直作题,一直找新题、难题作的朋友,也许到最后的收益就不会太多了。不如再花点时间提升其余方面的能力。iphone
系统设计题也大部分都是我没作过的,我彻底没有经验,就按本身的思路去说,也能过关。网站
要说难题,只有Twitter第一面碰到一个ACM拿过金牌的面试官,前面两个简单题我作得特别快,他很高兴,并且以前咱们的聊天中他透露到中国区的ACM金牌在世界上算最难拿的,他很想挑战我,出了道稍微难的题。我花了几分钟努力肯定我正确理解了题目意思,以后反正就那套路,brute force,或者greedy,他或许也忘记具体怎么作了,反正就是一块儿探讨,因为时间很少,他提示说动态规划。我立马就反应过来,而后列出状态转移方程。他看起来很享受讨论难题的过程,本身也接过来写下去,我就在旁边叫好。url
因此,遇到难题并不用慌,尤为在那一面最后的时候碰到难题,时间确定不够,面试官也是知道的,因此通常就要个思路而已,那思路就那么几个套路去想就是了。就算作错了其实影响也不会很大吧。最后这个面试官很高兴的和我握手,祝我好运!
有些面经说前面的热身问题不要花太多时间了,省得影响后面的面试。我看倒也不全对。确实别花太多时间,但也要重视这几分钟。Google的前几面我都很是紧张,一开始面试官想用几个热身问题让我放松,可是发现我没太多话和他们聊也就做罢。最后两面,我当时已经自我感受很良好,面试开始进入状态了,因此开头能和面试官聊上来几句。面试官介绍本身作了哪些Google产品,我表示很是喜欢用,以后我透露了本身简历中“丰富”的项目经验和“屡次跳槽经验”-_-,以后才有了strong hire,由于他们以为我比较有眼光和系统设计答得很好。(我也不记得本身系统设计是怎么答的了,反正是cache相关的。就记得他从很小的一个case开始问,而后不断提出新的需求,而后我反应很快的给出新的解决方案,也许是由于整个流程比较顺畅吧)。
以后去湾区的面试中,就更熟练了,他们首先会介绍本身作什么的,而后我会表现很感兴趣,适当问几个问题。以后轮到我说,就说本身以前作了什么什么项目,我甚至拿了不少iOS设备去给他们作demo,有的面试官开玩笑问我到底有多少iphone。其实十分钟时间能展示不少亮点。好比startup面试我会展示我以前和startup团队合做的艰苦岁月,好比一个礼拜和CEO、CTO一块儿工做90个小时之类的。和twitter我会说本身特别喜欢用weibo,而后weibo和twitter不一样的地方,而后weibo特别的地方,那个manager听了看起来挺惊讶的(毕竟Twitter多少年来都没什么花样嘛)。其实我主要就是作demo,由于作过不少app,不一样面试官我还会换个app来介绍什么的。
每轮面试的最后,通常面试官都会问,你有什么问题问我吗?有的面经上说最好不要问什么问题啦,由于面试官并非真的感兴趣去回答你的问题。但我以为不对。我第二次去湾区的时候,几乎每一个面试官最后我都会问好几个问题,包括电话面试,并且他们都很是认真的回答我,一个问题都要回答好长一段,有时候我真的没大听懂,但也很差意思打断。我以为最后这个环节,若是能问比较好的问题,或者有趣的甚至有挑战的,会让面试官喜欢你。湾区人才紧缺,他们愿意花时间来回答你感兴趣的问题表示尊重,也是给你一个更多了解公司的机会。有的面试专门是为了考察你对公司的感兴趣程度的,你若是没有任何问题问他们,也许他们会认为你没太多兴趣,会怀疑你的求职动机,不少人只是想拿个competing offer不是么?因此要表现本身的热情。哪怕是带我吃午餐的,也许都不列入最后评分的,我都会努力和他们交流,虽然其实我真的很想休息一会,节省体力。
Amazon onsite的午餐是我和一个组的hiring manager订了盒饭在面试会议室里吃的,整个午饭过程他都一直问我,还有什么问题吗?而后我挤一个,他回答。以后他吃几口饭继续问,还有什么问题吗?我又再挤一个。当时真的快崩溃了,几乎把我常备的问题都榨干了,并且我平时吃饭都不喜欢太动脑子的。
其实就抓住这个机会,侧面反应你的思考能力,求职所关心的内容,和对他们的热情程度。好比我会问code review的状况,team有多少人,有时候开玩笑问几男几女呀?What kind of people are you looking for?这些公司我都应聘的是iOS开发,因此我还会问那个iOS app团队怎么分工合做的?如今team里有多少人是熟悉整个项目的?像Twitter的app太大了,manager直接回答一个都没有,我表示失望和理解。而后LinkedIn有个面试官说,只有他一个是懂整个iOS项目的,我表示很崇拜⋯⋯还能够问,你对这个公司喜欢或者不喜欢的地方分别有哪些。或者先问你最喜欢的地方是什么,他回答完立马问那你最不喜欢的是什么呢?有时候我会针对面试官本身问一些问题,由于你对他们感兴趣,他们也会以为开心吧。好比问他以前在哪一个公司,为何来这个公司的,来多久了,发财了没有(不要每一个面试官都问这样无聊的问题,换不一样问题去问)。我还问过一个L的面试官,Do you think LinkedIn is better than Facebook?他听了哈哈大笑,其实我不理解他为何笑,也许外国人就是那么容易笑吧。他想了想以为这个问题很大,问我具体什么样,我以为他笑了就达到目的了,就让他介绍从engineer的角度来分析吧。而后他就说了一大堆Facebook的坏话,哈哈。其实面试官确定是多说本身公司的好话的,至于很差的地方仍是要靠本身私底下多作调查。
因此,多准备一些好的问题。
我以为必定要自信,态度要不卑不亢。哪怕本身回答错了也没关系。自信真的过重要了,就算你面失败了,也并不表明真就是你能力的问题,不要看轻本身。不少面试官进来会握手问候,而后问你目前都进行得怎么样?我通常想都没想就说,I think it’s good!我猜他们也许就至关于问how are you同样,并不真的关心你怎么回答,就是礼貌问候,那么回答how are you通常都是Good how are you?那么回答目前顺利吗?也要说Good。我猜的-_-
而后就是在讨论问题的时候,也要勇于提出疑问。Facebook有一面我当时就是明知道本身对的,可是英语又解释不清楚,那面试官又很坚持本身的观点,而后我当时时差没倒好特别困,意志力一薄弱就妥协了。挂得心甘情愿。尤为是面试官刚把问题提出来,其实一开始的问题都很简单,你就得提出疑问,说什么状况怎么样。当时Amazon问我关于Goodreads的问题,相似于豆瓣读书,我当时说我很是喜欢那个app,那个在Amazon的kindle组待了8年半的女principle engineer听了深表欣慰说她本身也超级喜欢啊。她问要推荐书,因此求出一个person 2度关系之外的圈子内的星级最高的书。我当时问,有的书很popular可是评分不够高也能够推荐啊,有的书只有一我的给5 star也不必定那么好。而后她很高兴我说出这个,回答说那就求最popular的。
有个视频说,两腿打开站直,抬头挺胸,两手叉腰,而后用这种伸展的姿式保持五分钟,你就会变自信不少。我一开始紧张的时候会用,好像有点用^_^
还有个视频说,和别人交谈的时候,能够有意的去模仿别人的动做,能增长好感。固然要作得天然。好比说当他们忽然把手在胸前交叉,那你也作个相似的动做,好比他们一开始是趴桌子上讨论,忽然向后靠了,那你也边说话边天然的向后靠。若是一开始大家俩的姿态都比较拘禁,好比都颔首、前倾,而后慢慢他们开始变得放松、天然了,你也要跟着改变。好比他们一开始是坐着的,而后站起来走到白板前面开始写,你也站起来跟在旁边看着。若是他们开始擦白板了,你也找个刷子一块儿擦。若是他们在找笔,你也帮着一块儿找。
因此,面试的时候哪怕本身真的很紧张,也请努力催眠让本身变得无比自信吧!
显然不是。我认识有个朋友一面能秒杀三道题的算法大牛都被Google无视了(不点名,偷笑ing)。借我一朋友的话来讲,面试不如说是种社交。借着讨论算法、设计题,来社交。要和面试官沟通,要和他一块儿讨论问题,要把你的思路简洁明了的解释明白,要让他们以为你很聪明。
你拿了题就开始coding,面试官在旁边看着其实很无聊的,根本不知道你在干吗,也不知道你是否是已经作过在背答案。我通常会简单画个图解释下个人思路,而后中途有问题就请教面试官,有时候他们高兴了会故意提示你让你别卡住的。固然若是大家肯定了思路,你就开始coding,就能够一句话都不用说了,最好是一鼓作气,若是你忽然断了,在思考一些问题,最好think aloud,让面试官知道你在想什么。
把面试官看成朋友吧,平等对待,朋友是愿意帮你的。
若是是由于累的,没有办法,面试确实很消耗体力,你得本身扛着,可是我建议能够稍微透露给面试官。我很是后悔2012年Google电话的时候,前一天晚上加班到很晚,而后大清早状态很很差,却没有主动要求reschedule。还有13年末的Facebook onsite也是,时差倒得一塌糊涂,只想睡觉。但我看开了,相信一切都是上帝最好的安排,There is a purpose behind every delay。后来有经验了,Twitter onsite,一天六面,最后一面我在coding的时候,发现本身头脑出现了短暂的空白,而后我就敲了敲本身的脑壳,说OMG I am too tired…而后面试官表示理解立马说能够用一些伪代码什么的。可是我休息了会仍是继续写了完整的代码。以后他就不让我写code题了,改成聊天,哈哈。
Amazon的onsite也是六面,是我onsite的最后一个公司,我学聪明了,每次面试开始以前,我都要求去上洗手间,而后在里面整理几分钟,哈哈,对本身说,上一面已通过去,把它抛到脑后,如今focus到当前这一面。
有时候我很是紧张,思路乱七八糟也不知道什么才是他们想要的答案的时候,我干脆就停下来,不说话,看着窗外思考一分钟,面试官会等你的^_^有时候灵感真的就忽然出现了。
LinkedIn第一面的系统设计短url系统,我历来没接触过,一开始我给的设计他们(有两个面试官)老是给我提出新的问题,若是request不少不少怎么办?你的设计在什么什么状况下会出现什么问题?我都快崩溃了,可是我后来望着窗外思考了的那一分钟内,整理了下,就把以前的设计所有推翻,从新快速设计了一个,以后他们特别满意,主面试官还谦虚的说他刚进LinkedIn的时候都不懂这些的。
Amazon第一面也是系统设计,park车的计费machine的系统设计,写类和接口,我也没作过相似的,不知道到底答到什么程度才算对。我本身一我的在白板上写了又写,而后擦了又写,自言自语的,中途发现本身已经面红耳赤了,干脆停下来故做深思,喝口冰水(美国大冬天都喝冰的吗?!)。真的是喝了那口水,本身的心跳立马就恢复正常了,而后就想到本身要加一个和机器交互的模块。加了以后,我发现面试官们仍是没有任何反应,就回过头问他们,还有什么其余需求吗?而后他们说哦,没了,你已经作了不少了。囧。
他们不反感。有些人彻底不care你以前的经历,我猜是,在国外找工做是平等关系,你干得不开心了,以为公司不合适就走,很正常。另外个人工做经历都是一个比一个好。
可是他们确实会有顾虑,其实如今跳槽是很正常的事情,因此前面提到不少公司面试会专门考察你的热情程度和求职动机。LinkedIn的最后一面仔细问了我每家公司离职的缘由。我解释清楚当时的各方面缘由,有公司很差的地方,也有本身不成熟的问题。可是我强调此次我去找美国的工做是我花不少精力去认真挑选的,并且因为身份问题,我必定会把下一份工做看成长期的事业。
话说回来,因为个人工做经历丰富,因此我也许比别人多一些推荐信,每段经历都有一封。这个对个人帮助太大了,Google是我面得最差的一个公司,搞很差没有这些推荐信我就挂了。谢谢大家!不过也只有Google要了这么多东西,其余公司什么都没要,就由于我有Google的pending offer,他们就都抢着要,可见Google招聘的品牌效应之大。
问啊-定制化IT教育平台,牛人一对一服务,有问必答,开发编程社交头条 官方网站:www.wenaaa.com 下载问啊APP,参与官方悬赏,赚百元现金。
QQ群290551701 汇集不少互联网精英,技术总监,架构师,项目经理!开源技术研究,欢迎业内人士,大牛及新手有志于从事IT行业人员进入!