Sunday, August 14, 2016

interview experience



http://www.jianshu.com/p/1a60a3f159a7
我都没有碰到特别难的算法题目,印象出现很多二叉搜索树的问题。在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的。
有个视频说,两腿打开站直,抬头挺胸,两手叉腰,然后用这种伸展的姿势保持五分钟,你就会变自信很多。我一开始紧张的时候会用,好像有点用^_^
还有个视频说,和别人交谈的时候,可以有意的去模仿别人的动作,能增加好感。当然要做得自然。比如说当他们突然把手在胸前交叉,那你也做个类似的动作,比如他们一开始是趴桌子上讨论,突然向后靠了,那你也边说话边自然的向后靠。如果一开始你们俩的姿态都比较拘禁,比如都颔首、前倾,然后慢慢他们开始变得放松、自然了,你也要跟着改变。比如他们一开始是坐着的,然后站起来走到白板前面开始写,你也站起来跟在旁边看着。如果他们开始擦白板了,你也找个刷子一起擦。如果他们在找笔,你也帮着一起找。
所以,面试的时候哪怕自己真的很紧张,也请努力催眠让自己变得无比自信吧!



Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts