一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 722|回复: 1
收起左侧

Bloomberg on-campus面经

[复制链接] |试试Instant~ |关注本帖
rialmat 发表于 2014-10-24 06:48:27 | 显示全部楼层 |阅读模式

2014(10-12月) 码农类 硕士 全职@Bloomberg - 网上海投 - 校园招聘会 |Other

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
差不多4周前在网上投的,等了三周后还没任何消息,看到别人都是2周之内就联系电面,故也不抱什么希望了。中间学校有个career fair,他家的队伍排得老长都可以比肩google了,也就懒得去光顾了。
谁知昨天突然告诉我要校园面,只好赶紧预订最晚的那一场。一天之内翻了前面的面经,练习纸上写代码,在geeksforgeeks上看了C++和OS的问题集锦,然后今天早上还特别猛看distributed system的东西,因为简历上唯一的C++项目就是一年前上distributed system课做的,很多细节都忘了。。。

结果,几乎一行代码也没写。。。. 鍥磋鎴戜滑@1point 3 acres
. 1point3acres.com/bbs
面试官一位是美白中年男,另一位亚裔,取了个洋名,不过听口音应该是国人。这个组合还是挺不错的。整个面试过程感觉挺顺利,而且二位人都很好的样子,也没什么冷场之类的,跟之前大数人反映的他家面试情况不太一样。
上来先自我介绍,然后问有什么项目可以说一下的,然后说了暑假的实习项目。接着看了我的简历问什么是F score,这个只要上过ML, NLP之类的课应该都知道吧。然后因为我说习惯用C++,就给我看一段小程序,问会输出什么结果。程序如下:
  1. class A {. more info on 1point3acres.com
  2.      A() { cout << "A" << endl;}
  3.      ~A() { cout << "~A" << endl;}. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  4. };
  5. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  6. class B : A {. from: 1point3acres.com/bbs
  7.       B() { cout << "B" << endl;}
  8.      ~B() { cout << "~B" << endl;}. visit 1point3acres.com for more.
  9. };
  10. -google 1point3acres
  11. int main() {
    . From 1point 3acres bbs
  12.     B b;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  13.     cout << "main" << endl;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  14. }
复制代码
这个就是很基础的构造和析构函数的调用顺序。
. more info on 1point3acres.com
然后开始做题。不是传统的算法题,是两道开放型的问题,此间在纸上狂写狂画,不过唯一写的称得上代码的也就是定义几个class之类的。
第一个问题是给你一个log文件,每行可能会有个错误信息,也有可能没什么错误,不同错误的信息会对应有一个操作。问我该怎么parse这个log,把错误找出来,然后根据找的错误信息执行对应的操作,要用到什么数据结构。我开始对该题理解有诸多疑问,不断询问下总算搞清楚:每行信息没有固定的格式,错误信息可以出现在每行的任意地方,但信息种类都是已知的。我当时想这不就是找个字符串嘛,c++有现成函数啊。后来问我这样做的时间复杂度,回答了以后问可不可以快一点啊?我想了想可以,找字符串可以线性时间啊,把已知的错误信息都转成automaton, 然后一个个匹配呗。然后问我那c++中有什么可以用来构建automaton?结果瞬间吓尿,不会叫我实现这个吧。。。我迟疑了几秒后,中年男问我那如果用python会怎么做,我说python的话直接用正则表达式的library呗,然后他说c++也有啊。我当时一个汗啊,我知道有,但谁会用C++去做正则匹配啊。。。本来以为这题要考我C++编码,结果变成测试我会不会用python做正则匹配。然后又问我有必要每个错误信息都compile成一个pattern吗,我说没必要,可以compile成一个大pattern包含所有信息。接着问我这样做会更快吗?我说应该会吧,正则匹配毕竟是有library可用,library里的函数应该都尽可能优化过的吧。然后那男的说,的确正则匹配已经够快了。

第二个问题是,有一个函数,基本上就是先会从一个map里提取一些信息,然后这些信息会分别送到不同的函数处理,最后该函数整合所有结果并返回。但是这个函数非常慢,问有什么方法可以加速吗?对,这题就这么点条件,乍一看很抽象。我一开始还在纠结函数里的map是一般的treemap,还是unordered_map。结果他说这个不重要。然后,想了想应该可以并行吧,然后又吓尿,上次用C++做并行已经不知是猴年马月了,而且都是很基本的pthread然后再join。不过,尽管这样,我还是把我知道的都说了(其实本来想说map reduce, 不过想想算了,自己从未做这相关project,纯属找虐)。国男说可以,不过分成几条thread然后join都是人工hard coded的,有什么算法可以自动分配哪些可以并行,哪些不可以。我直觉可以画个数据间的dependent graph, 然后从strong connected components扯到topological sort.但是好像都跟串行有关系,谈不上什么并行啊。后来中年男觉得我可能理解错意思了,就给了个简单的例子,比如要做F, 必须先做C, D, 然后C又要取决于E和F之类的。结果画出来的关系图是一个树,然后我就马上看出来树的每一层其实都是互相独立的,可以并行了,问题不就成了树的分层遍历吗。然后中年男说我思路在正确的方向上,但是如果那树不是完全平衡的,应该就不是分层遍历了。然后我恍然大悟,得先找叶子节点,然后所有叶子都可以并行,然后去掉一层叶子后再找叶子,依次类推。。。

后来,一小时也快到了,就让我问问题。我就当场想了三个问题:第一个是实际工作中有没有用到c++11的新特性。结果那男的回答有一些,但是考虑到有很多老代码要维护,用的不是很多。然后他还说真是讽刺,BB好多人都还是C++委员会的,竟然工作中都用不上C++11。然后基于他的问答我就问了你觉得哪些c++11的特性对工作会最有帮助。第三个让他讲了一个他最近碰到或是印象最深的bug。然后就白白了。

感觉跟地里好多面经比起来好非主流啊,而且题应该都是他们临时想的,像第二题是国男出的,那个中年男在一边跟我同步解题。
写了一大堆,也仅供参考吧。希望不要挂啊!!. more info on 1point3acres.com
yannan 发表于 2014-10-24 14:48:16 来自手机 | 显示全部楼层
我上周面了BB感觉也特别非主流。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 06:47

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表