面试经历-小结比较不错

来源:互联网 发布:网络作家代表作 编辑:程序博客网 时间:2024/05/24 05:02
GOOGLE面试经历时间:2009年1月13日


已经好多天没有睡好了,虽然告诉自己Google的这次interview并没让我多激动,但是内心潜在的焦虑,渴望让我兴奋和紧张。5.18电面,6.1受到onsite面试的通知,6.6面试,开始以为是intern的面试,后来发现是SE的面试,从下午2点到6点,四轮。6.6中午从西郊宾馆走向google,虽然北京的天气比武汉还热,但是也没有任何理由让我手心都出汗啊,ft。小跑了一阵,准点到达,因为hr长得很像我一个同学,更亲切了,她带我走进了“小满”,并告诉我,她就在我隔壁房间,有什么问题就直接找她。嗯,打开一瓶绿茶,等候面试官的到来...
    
四个面试官性格的交集就是很nice,感觉不是面试更像是讨论,而且之前以为google的工程师肯定长得奇形怪状,毕竟才貌两全是小概率事件,但是感觉长得都不错,而且白。但是他们又各具特点。

第一个面试官:风流潇洒
这个面试官举手投足之间是一种洒脱。我开始自我介绍,blala...完了开始做题,题目不难,但是边界条件超多,位操作也很繁琐,做得很小心,期间我发现一个问题,遂讨论,引申到操作系统的一些知识,面试官便深入挖掘,于是我开始解释并给例子,完了一直有争执,面试官又给出例子为什么我不对,开始我不以为然,面完了才发现我的确错了。所以讨论的时间占了一大半,程序匆匆写完,时间快到了,没有review就开始解释,把所有的分支条件解释完了以后,又解释我为什么返回bool的类型。后来就剩下提问了。总的感觉,这个面试官考察的是思维严谨性和CS基础的掌握情况,不停的挖掘,看你到底真正思考过这些问题没有。建议在纸上写程序最好用铅笔,利于涂改。

第二个面试官:热心积极
他一进来就自我介绍,我降低了一些紧张感。完了就直接做题,问我在黑板上做还是在纸上写,我说在黑板上写(之前纸上我划得乱七八糟重写了几次),第一题好做,构思了一下就在黑板上写完了,这个工程师很迅速的发现了我一个小问题,我确定之后开始做第二题,容易给出方案一
O(n!),我说这个肯定不行,换一个数据结构,于是换之,发现还是O(n!),于是叫我分析这两个数据结构的空间复杂度,我想了一下,分析并确定了极限情况和普通情况这两个方案的优劣。于是叫我继续优化,我说我可以坐着想么?于是坐下来。这位面试官很热心,总想大家一起迅速解决问题,感觉我在thinking的时候,他总尝试提醒我,我就更紧张,后来我想到了,于是他问我接下来怎么办,因为他叫我不要管我之前设计的数据结构,所以我没有绕回去,其实最后的正解就是又绕到我之前用到的方法从而可以实现O(n)的复杂度。我ft啊ft,当场抱头遗憾之极...最后完了,这个面试官指出我太紧张了。其实这个面试官前30分钟是我面得最流畅顺利的,但是由于我的短路加上这个大哥太热心,我ft了。建议面试的时候即使很被动的情况下,也不要慌,一慌脑子就会乱,所以如果你能把握主动权那就更好了。

第三个面试官:睿智敏锐
这个面试官看起来就是那种斯文敏锐的人。自我介绍了一段时间开始做题目。第一题,很陌生加上面二官留下来的紧张余感,开始只给出了很挫的办法。要我优化,我就优化,但是我这个方案可能会蜕化成线性问题,重新思考,他提示我思路是对的,但一直想不到具体的实施方法。我开始有些崩溃的趋势,不过面试官说我们换一道吧,这个题目很小,但是很有意思,我给出了O(n)的方案并且确定了不能再快,但是空间复杂度也增及了O(n),于是他提示我用另外的方法想想,我说这个不行啊,他从侧面提示我,汗,终于想到,方法很有趣,现场感叹10s,“太秒了”,感叹人类智慧的结晶啊...然后继续做题,很快的写完了代码,他问我,程序有问题么?我review了一下,说没有,他说你再看看,继续说没有,他提示了一下,发现问题...汗,改了一行,通过了。这个面试官也喜欢交流,但是我想的时候或者有时候自言自语,他都不会理我,给我的空间大些,后来我说我的程序可以换另外的方式实现,效率提升会很多,他点了点头,我没有改了,因为感觉他很敏锐,肯定知道是怎么样的。然后问了我数据库和网络的一些问题,都还比较好。

第四个面试官:稳重大腕
四面官感觉跟前面三个不一样,应该title不一样。开始还是介绍自己和项目经验,完了做题,感觉这个不是问算法的,于是问他,我不考虑最快的办法了,他说能快就快,我不管了,自己写了慢一点但我容易实现的算法。后来问了我java的语言特性和底层机制,那个底层机制我不会,我说我可以猜一下么,于是我就猜了,但是他没置可否。于是我补充我java项目做得多,但是C/C++更好些,于是他问我一些底层机制的问题,我回答了并且对java里面同样的机制进行了比较。最后一面很快,大概不到三十分钟就叫我提问了。于是我瞎扯了一下,后来想了一下貌似有些问题问得很离谱。

总结一些个人经验:
1.不能指望不紧张,也不能指望紧张情况下能发挥好,但是一定要准备好,准备好你解决问题的方法哲学,准备好基本功。
2.之前都说Google只考算法,不是的,算法是最重要的,但是操作系统,网络,程序理论甚至数据库都重要。
3.个人感觉题目是准备不到的,并且也不同于一般的acm的题目,往往都会有思路,然后不停的优化优化。所以把你平时的方法哲学回顾一下更好一些。
4.不要把面试当考试,当学习和讨论,不要陷入题目中,如果能够在这个过程中充分展现你其他方面的能力那就更好了。
5.面完了就告诉自己挂了,让自己有心思做其他事情。
6.体力要好.
原创粉丝点击