http://www.jianshu.com/p/1a60a3f159a7
我都没有碰到特别难的算法题目,印象出现很多二叉搜索树的问题。在Leetcode上难度排行的话,大部分也就中等水平。因为Leetcode上的题我都认真做了,很多题我都知道不只两种方法的解答。就算面试不一定出原题,但都是一些同样的套路。关键是简单的题,要能写出漂亮且bug free的代码,这个能力是需要花时间去锻炼的,而且一定能练出来。那些一直做题,一直找新题、难题做的朋友,也许到最后的收益就不会太多了。不如再花点时间提高其他方面的能力。
之后去湾区的面试中,就更熟练了,他们首先会介绍自己做什么的,然后我会表现很感兴趣,适当问几个问题。之后轮到我说,就说自己之前做了什么什么项目,我甚至拿了很多iOS设备去给他们做demo,有的面试官开玩笑问我到底有多少iphone。其实十分钟时间能展现很多亮点。比如startup面试我会展现我之前和startup团队合作的艰苦岁月,比如一个礼拜和CEO、CTO一起工作90个小时之类的。和twitter我会说自己特别喜欢用weibo,然后weibo和twitter不同的地方,然后weibo特别的地方,那个manager听了看起来挺惊讶的(毕竟Twitter多少年来都没什么花样嘛)。其实我主要就是做demo,因为做过很多app,不同面试官我还会换个app来介绍什么的。
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的坏话,哈哈。其实面试官肯定是多说自己公司的好话的,至于不好的地方还是要靠自己私底下多做调查。
所以,多准备一些好的问题。
然后就是在讨论问题的时候,也要敢于提出疑问。Facebook有一面我当时就是明知道自己对的,但是英语又解释不清楚,那面试官又很坚持自己的观点,然后我当时时差没倒好特别困,意志力一薄弱就妥协了。挂得心甘情愿。尤其是面试官刚把问题提出来,其实一开始的问题都很简单,你就得提出疑问,说什么情况怎么样。当时Amazon问我关于Goodreads的问题,类似于豆瓣读书,我当时说我非常喜欢那个app,那个在Amazon的kindle组待了8年半的女principle engineer听了深表欣慰说她自己也超级喜欢啊。她问要推荐书,所以求出一个person 2度关系以外的圈子内的星级最高的书。我当时问,有的书很popular但是评分不够高也可以推荐啊,有的书只有一个人给5 star也不一定那么好。然后她很高兴我说出这个,回答说那就求最popular的。
有个视频说,两腿打开站直,抬头挺胸,两手叉腰,然后用这种伸展的姿势保持五分钟,你就会变自信很多。我一开始紧张的时候会用,好像有点用^_^
还有个视频说,和别人交谈的时候,可以有意的去模仿别人的动作,能增加好感。当然要做得自然。比如说当他们突然把手在胸前交叉,那你也做个类似的动作,比如他们一开始是趴桌子上讨论,突然向后靠了,那你也边说话边自然的向后靠。如果一开始你们俩的姿态都比较拘禁,比如都颔首、前倾,然后慢慢他们开始变得放松、自然了,你也要跟着改变。比如他们一开始是坐着的,然后站起来走到白板前面开始写,你也站起来跟在旁边看着。如果他们开始擦白板了,你也找个刷子一起擦。如果他们在找笔,你也帮着一起找。
所以,面试的时候哪怕自己真的很紧张,也请努力催眠让自己变得无比自信吧!
我都没有碰到特别难的算法题目,印象出现很多二叉搜索树的问题。在Leetcode上难度排行的话,大部分也就中等水平。因为Leetcode上的题我都认真做了,很多题我都知道不只两种方法的解答。就算面试不一定出原题,但都是一些同样的套路。关键是简单的题,要能写出漂亮且bug free的代码,这个能力是需要花时间去锻炼的,而且一定能练出来。那些一直做题,一直找新题、难题做的朋友,也许到最后的收益就不会太多了。不如再花点时间提高其他方面的能力。
2.前面的热身问题不重要?
有些面经说前面的热身问题不要花太多时间了,免得影响后面的面试。我看倒也不全对。确实别花太多时间,但也要重视这几分钟。Google的前几面我都非常紧张,一开始面试官想用几个热身问题让我放松,但是发现我没太多话和他们聊也就作罢。最后两面,我当时已经自我感觉很良好,面试开始进入状态了,所以开头能和面试官聊上来几句。面试官介绍自己做了哪些Google产品,我表示非常喜欢用,之后我透露了自己简历中“丰富”的项目经验和“多次跳槽经验”-_-,之后才有了strong hire,因为他们觉得我比较有眼光和系统设计答得很好。(我也不记得自己系统设计是怎么答的了,反正是cache相关的。就记得他从很小的一个case开始问,然后不断提出新的需求,然后我反应很快的给出新的解决方案,也许是因为整个流程比较顺畅吧)。之后去湾区的面试中,就更熟练了,他们首先会介绍自己做什么的,然后我会表现很感兴趣,适当问几个问题。之后轮到我说,就说自己之前做了什么什么项目,我甚至拿了很多iOS设备去给他们做demo,有的面试官开玩笑问我到底有多少iphone。其实十分钟时间能展现很多亮点。比如startup面试我会展现我之前和startup团队合作的艰苦岁月,比如一个礼拜和CEO、CTO一起工作90个小时之类的。和twitter我会说自己特别喜欢用weibo,然后weibo和twitter不同的地方,然后weibo特别的地方,那个manager听了看起来挺惊讶的(毕竟Twitter多少年来都没什么花样嘛)。其实我主要就是做demo,因为做过很多app,不同面试官我还会换个app来介绍什么的。
3.最后问面试官的问题不如不问?
每轮面试的最后,一般面试官都会问,你有什么问题问我吗?有的面经上说最好不要问什么问题啦,因为面试官并不是真的感兴趣去回答你的问题。但我觉得不对。我第二次去湾区的时候,几乎每个面试官最后我都会问好几个问题,包括电话面试,而且他们都非常认真的回答我,一个问题都要回答好长一段,有时候我真的没大听懂,但也不好意思打断。我觉得最后这个环节,如果能问比较好的问题,或者有趣的甚至有挑战的,会让面试官喜欢你。湾区人才紧缺,他们愿意花时间来回答你感兴趣的问题表示尊重,也是给你一个更多了解公司的机会。有的面试专门是为了考察你对公司的感兴趣程度的,你如果没有任何问题问他们,也许他们会认为你没太多兴趣,会怀疑你的求职动机,很多人只是想拿个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的坏话,哈哈。其实面试官肯定是多说自己公司的好话的,至于不好的地方还是要靠自己私底下多做调查。
所以,多准备一些好的问题。
4.面试过程中需要谦虚吗?
我觉得一定要自信,态度要不卑不亢。哪怕自己回答错了也不要紧。自信真的太重要了,就算你面失败了,也并不代表真就是你能力的问题,不要看轻自己。很多面试官进来会握手问候,然后问你目前都进行得怎么样?我一般想都没想就说,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的。
有个视频说,两腿打开站直,抬头挺胸,两手叉腰,然后用这种伸展的姿势保持五分钟,你就会变自信很多。我一开始紧张的时候会用,好像有点用^_^
还有个视频说,和别人交谈的时候,可以有意的去模仿别人的动作,能增加好感。当然要做得自然。比如说当他们突然把手在胸前交叉,那你也做个类似的动作,比如他们一开始是趴桌子上讨论,突然向后靠了,那你也边说话边自然的向后靠。如果一开始你们俩的姿态都比较拘禁,比如都颔首、前倾,然后慢慢他们开始变得放松、自然了,你也要跟着改变。比如他们一开始是坐着的,然后站起来走到白板前面开始写,你也站起来跟在旁边看着。如果他们开始擦白板了,你也找个刷子一起擦。如果他们在找笔,你也帮着一起找。
所以,面试的时候哪怕自己真的很紧张,也请努力催眠让自己变得无比自信吧!