拿到offer一定回来还愿,加写面经。。。
拿到了bloomberg的offer。
想了想还是在这里奉上我的面经。可能对大多数mm没有太大意义。但是毕竟苹果是养我的地方;P
申请的是bloomberg的financial software developer的职位。
首先是笔试。我不小心填写自己对c++熟练程度中等,结果online test还比较难。因为完全没有心理准备,做了开头两题差点决定退出。带着快哭出来的心情坚持做完。结果居然拿到了advanced的分数。看了一下在company的rank居然有98%。不过这些说明我都没看懂。体会不论题目多难都要坚持下去,其实结果有时候并不是很差。
紧接着就接到了小蜜的邮件,要求安排面试。我给了她一个很大的时间范围选择。体会是不要把面试往后推。第一给人感觉不太自信,第二容易失掉机会。
第一次面试是1-3个小时。会有三轮面试,两轮技术,一轮hr。前面一轮通过才会有接下去一轮。面试中间可以去bloomberg的厨房吃东西。
面试的题目在很多地方都有写。不是特别难。但是准备面试不要一味求出答案就可以了。要多想这个方法有什么缺点。有什么有点。有没有其他的方法。
有一题是输出fibonacci序列。我先写了一个递归的解法。然后面试官问如果输入的n很大会有什么问题,我说会有stack overflow的问题。于是他又要求我写了一个非递归的程序。写完以后我又告诉他,如果n很大,我还可以用公式求解,不需要循环。面试官非常称赞。体会是其实bloomberg的很多题都是老题,也不太难,大多数人都能做出来。所以给面试官留下印象就要不断的深想,challenge自己的同时也能启发同事,不要像对待课后习题一样认为做出来就完事。
另外我写程序的时候,两个面试官故意开始大声聊天,想扰乱我。我的做法是没有理会他们。自己尽量不受干扰的写完程序。因为bloomberg是一个完全开放的工作环境。你不可能要求自己工作的时候旁边没有人讨论问题聊天。其实那个时候还是很心烦意乱的。但是只有将自己稳住。
很多细节问题也要尽量弄清楚。面试官还问了我stl的set和map是怎么实现的。然后我就小小的纠正了他一下,我说stl只是规定这些container的接口,不实现他们。具体实现方法是由编译器决定的。然后我又仔细讲了讲set和map一般怎么实现的。red black tree又是怎么实现自我平衡的。面试官也挺赞的。
另外还有一些brainteaser都很简单。
第二轮面试是一个team leader面技术。出的题目也不难实现。但是他会不停的问有没有更好的方法。其实给出的复杂度已经是O(n),他还不停的问有没有更好的方法。我这个人有个习惯就是人家challenge我,我就会很配合。我就在那里疯狂的想解决方法,告诉他我觉得怎么做能更快。本来一个长序列需要走两遍的,经过我们的共同讨论改良为只走一遍就可以完成。然后我也在纸上写了这个程序。又做了一个brainteaser。
第三轮面hr就很简单了。几个问题一定要准备好的是,为什么选bloomberg,自己的职业计划,想培养自己什么技能。这种问题完全是我的强项。我的感觉是所有的behavior question一定要自己写。要很认真的想,很认真的写。这些问题我一开始也觉得很无聊。但是后来就不这么觉得了。所有的问题我都没有用模板,都是自己写的。其实一个人如果进一个公司的愿望很强烈,这些问题只要自己静下来想两天,完全能找到答案。而且是可以说服别人的答案。
面完,hr就对我说让我第二天等她的联系。第二天收到邮件说经理还要终面一次。
和经理终面很轻松,问了一下以前的项目,把为什么要进bloomberg,自己的职业规划又说了一遍。又讨论了一些技术问题,包括red black tree,一些数据结构的问题。
接下来一天就收到了offer。不过因为现在还在等另外一个offer,等那个offer到了再写写另外一个公司的面经。
最终体会是一定要坚持下去,哪怕再悲观,我一月份被高盛拒掉,因为不会数据结构。当时在家哭了整一天,和gg大吵,自己激动的差点跃窗而出。接下来回国过年,疯狂的看c++和数据机构。还要看金融方面的东西,因为有申其他的职位。这次bloomberg面试反馈是技术方面很强,让我觉得很欣慰。
bloomberg的R&D要招50个人左右。大家如果背景相同都可以尝试一下。祝大家好运。
顺便呼唤我另外一个offer。
无论最终选什么offer,我都会把第一个月的工资捐给动物基金(暂时还没选定哪一家),希望有mm给我推荐一下。