剑知北美生活快报   版面列表   admin登录
JiansNet Logo


美国Bloomberg On Site Technical Interview面试总结

by JC, published: 2013-02-16 22:27 viewed: 1927 times
想了解更多的美国生活窍门?请订阅: JC写的剑知北美生活快报。
以下美国Bloomberg公司技术面试总结. 根据网上资料整理, 以帮助找工作的同学.

Technical interview,一个亚裔和一个印度人(用A和I代替)。基本上都是语言问题,问了一点很简单的算法。整理如下:

1. (A) 给一个程序查错。有几个错误是很常见的,比如指针形式返回一个local的数组,strncpy分配的内存不够之类。后来A说这些都是run-time error,有没有compile-time error。我一开始没看出来,后来A提示让我看某一行,我恍然大悟,发现是本来应该return指针的函数return了一个&buf,而buf是一个数组的名字。我立即说应该把&去掉或者用&buf[0]。然后A说如果不改这一行,如何修改。我说可以把函数signature里的返回值换成pointer的reference或者pointer to pointer。A问reference和pointer的区别是什么。我回答了一下,然后A又问C里面有没有reference。我说有啊,A说其实C里是没有reference的(这个我真不知道),C++才有。

2. 一个几百个文件的程序有memory leak,如何debug。老题,不多写了。(By the way,这题最好的答案是什么?)

3. (A, 中间I进房间一起问)关于一般variable,static variable和global variable所在的memory位置。然后问后两个有什么区别,我说static variable是要程序运行到所在函数才分配内存,global variable是一开始就分配,所以有些情况下static variable更好一些。

4. (I, A) 如何用binary tree organize一些数,1到10之类。我说用BST,然后他们问BST如何插入一个值,如何delete一个BST。写了一点code。

5. (I) new和malloc的区别。这个比较简单。

6. (I) polymorphism含义,virtual function之类。我给他们比较详细的解释了一下virtual table(这个地方有点弄巧成拙,因为后来R说他是C programmer,不太懂C++, 然后A顺势又问了不少virtual function的问题,而这些问题自己研究的又不够细致。两边都没有讨好。)R问从一个programmer的角度来讲如何利用polymorphism. 我说可以用一个指向base class的pointer指向derived class,这样,比如在写程序的时候可以call同一个函数,不用知道具体的class,但不同class有不同的behavior。R说他在一个struct里定义一个pointer to function,然后也可以有同样的效果。我说class的意义不仅仅在于polymorphism,还有encapsulation,inheritence等等。他在这个问题上纠缠了一会,似乎觉得我没有说出很strong的理由为什么我们要用C++,试图argue C++的feature C都可以实现。我这时候只好又举出template之类的C实现不了的例子。总之说了很多,但沟通效果不好。

6. (I,A) 接着上面的题,关于virtual function。A问如果是pure virtual function那么virtual table里还要不要有这个function。然后又问pure virtual function能不能有definition,我一开始说没有,后来A说是可以有的,说有一种情况这个还挺有用。我说这样的话derived class可以省去这个function的定义,如果不想override它的话。但这好像不是他要的答案。我似乎在哪儿见过另一个用途,但是没想起来。

7 (I,A) I问C和C++里static有什么区别,我解释了一下。然后他们又想起了virtual function,问能不能有static virtual function,我说这个不行,他们让解释,我说了一通,但是感觉他们对我的解释不是很满意。

8. (I) 写一个singleton。I批评我class的名字和member的名字都起的太短,没有任何意义,说要是他coding review 肯定过不了。这个其实非常冤枉,因为我平时是写Java的,Java里面的变量名通常都比C长而且更加规范,但是我写字比较慢,于是面试前我觉得写code时应该写快一点,是故意把名字起的比较短的。这个时候我有点哭笑不得,然后他又问singleton用在multi-thread环境中的时候有什么问题,如何避免。然后随便聊了聊,就结束了。

中间还有些顺手问的小题,比如有没有用过template,你认为自己的C++程度如何,等等。都比较简单。

准备计算机面试算法方面的书,请看 美国计算机面试算法书比较
Comments (1)
1. JC 2013-02-16 22:27
最近看到Bloomberg on campus interview, 一共3轮技术 + 1轮hr, 总结如下:
-写螺旋打印矩阵
-一个人走方格的走法数目(最简单的,排列组合能算的那种)
-quicksort的pivot
-reservoir sampling
-求一个double的square root
-什么是OO
-multi-threaded programming要注意什么,怎样防止deadlock等
-why bloomberg,why software engineering.
本文版权属于美国剑知信息网。如需转载,请先同我们联系。
订阅JC写的剑知北美生活快报,您会了解到更多的美国生活窍门。
Related Articles:
• 美国bloomberg onsite面试过程分享
• Bloomberg On-Site Interview Questions
• Top Salary Research Sites In USA
• 美国Quant金融工程interview推荐用书
• 美国计算机Computer Science面试算法书比较
• 推荐一本职场好书,帮助各位老中在每天工作中处理应对各种Difficult Situation
• 在美国买车, 如何砍价
• 美国实用英语生活疑难词汇大全 (1)
• 美国买什么牌子的活动硬盘好?
• Top IT Skills and Salaries In USA
美国职业发展 | 返回顶部 | 返回首页
About Us | Advertise with Us | Privacy Policy
Copyright © 2007-2016, All Rights Reserved.