记蘑菇街实习生面试


昨晚11点时接到了蘑菇街HR的电话,要我第二天早上8点去面试。很晚才睡,因为第一次面试。


一面


面试官很友好地把自己的工牌给我看,他叫乐多,很风趣的一个名字,他说是花名。
我花了2分钟自我介绍,然后乐多就叫我开始了项目的介绍。期间他很友好地给我一张纸,说我可以画项目的流程图。
然后接下来10分钟,我介绍了UFLT项目。把纸画满了,他不断提出疑问,我不断解答,包括内核hash表节点下的双链表结构是怎么的之类的。
总之面试官是很厉害的,问我DIM模块部署在哪里,我说像wireshark抓包一样,linux下肯定有类似的抓取报文的工具。
然后,他问我DIM怎么匹配报文的,我说这是一个黑匣子,我们调用接口就可以了。我说ip解析工具会把hostname提取出来,然后交由内核处理。
由于我说我们的项目是把一万条预定义的rule下机器里面。然后他问,那如果用户需要10万条、100万条呢?怎么扩容?
我有点紧张,然后很自豪地说,这就要看我们二期一个功能叫云查询了。不过他似乎不感兴趣,所以我老实地说,用户可以付费进行特征库的升级。
整个面试很快,他最后问我有什么问题。
我问乐多你在公司里是负责哪一块的,他回答我说是交易平台的,这里会面临很多的高并发问题。我一听就很激动地讲,哈哈,我们项目里面也是高并发的啊,
然后说我们在内核中修改数据时都要加自旋锁。他也很开心地说,恩恩,不过锁带来的效率问题不能忽视啊。我说是的。
总之,聊地蛮好的,然后我又问了下关于底层架构开发的跟公司相关的一些东西。最后乐多叫我等下,他应该是去联系下一个面试官了。


二面


二面的面试官很礼貌地请我坐下。然后就拿笔试卷子上的一个题目问我:
为什么这个题目没有做呢?
我说实在是没有时间。他说你回去没有仔细想这个题目吗?然后示意我现在做这个题目。
我看了下题目,这个题目确实做不来。就说这个题目不会。然后指着试卷上另一个题目说,这个题目我研究比较深。
他说没关系,我们看另一个题目。
有一个nxm大小的方格,问其中有多少的矩形呢?=
这个题目从来没遇到过,所以我有点紧张。想了蛮久,然后写下了:
d[1][1] = 1
d[1][2] = 2
d[2][1] = 2

d[n][m] = d[n-1][m] + d[n][m-1]

好吧,面试官看了这个结果也不想说什么了,直接说有问题,因为有明显的反例。我再想了一分钟,很惭愧地告诉面试官怎么做,他面无表情地说这个很容易推出来的。
【我心想,这下完了,两个题目都不会做】
然后面试官就说,那我们聊聊你的项目吧,你主要做了些什么。我说就像简历上讲的,只要是sql交互部分、内核和用户态交互部分。
他比较有兴趣地说,你把IOCTL接口怎么封装的?我说:
1、在IOCTL前加了一个判断,因为我们的系统是分布式的,所以呢,要判断是下自己内核还是mesh到其他的接口板去。
2、封装函数加了一个参数,int msg, 因为要实现复用接口,这样不同的msg下内核可以用同一个个接口,内核轮询接收到消息后就相应处理。
他然后问我在项目中遇到了c语言的那些坑?

我说就比如sqlite啊,有些接口的参数类不一致,我便要找哪里的问题;还有就是网络主机序转换,我有次转换了short值直接被转成0了,后来才知道不能转short类型。
他似乎有点兴趣了,然后问我简历上的第二个项目,一个node.js写的网站。这个项目是大二时为自己所在的一个社团写的内部交流小论坛。他说为什么要使用node.js呢?
我说当时看了一本书《node.js实战》,发现比以前java web开发简单点,就尝试了下,结果一个星期就写好了。他比较满意。
然后他问我为什么要使用mongodb呢?我回答说因为mongodb不用写反人类的sql语句。
他会心一笑,然后问我有没有了解sql的实现原理,我说是树实现的,他说恩,是B+树,然后问我有没有深入了解。我花了一个B+树的图。说可以建索引,然后说自己了解也不是很深。
他对这个回答似乎不冷不热。
最后我说可惜这个网站并没有上线。他很好奇地问为什么啊?我说因为我觉得社团太小了,做一个交流页面实在没必要,建一个qq群会简单很多。不过我还是把这个项目托管到GitHub上了。
他似乎在上我的GitHub。
然后他问我对蘑菇街有什么了解?我说以前没有,自从听完宣讲会就有了。我说我下了App,并且发表了对这个App的看法,说蘑菇街的App太过于简单了,不好看。面试官听完居然露出了笑容,可能觉得我出生牛犊吧。总之气氛比较有趣。
之后他问我为什么要加点团队呢?
我说大二开始就打算从事互联网行业,而点团队无疑是个很好的平台。当时觉得自己代码写得还行便去申请加入团队,可视被刷了。后来大三时再申请很幸运进入了团队,收获了很多,编码能力提高了很多。
时间过得很快,他问我有没有什么问题呢?我说你们公司做底层架构的多不多啊,好吧,面试官不太了解我说的底层是什么意思,我就跟他说是架构图中比较底层次的结构部分,他说几乎一半的技术人员,
然后做后台的也有。我说主要是java web吗?他说java和php都有,c++的话客户端的交流工具是c++实现的。
我说我大一写过半年java【其实是大二,当时太紧张】,然后他说语言并不是重点,恩,我很认同地点头了,然偶他说你一定要找c++的吗?我说java也可以吧。
然后我又问他在公司是做哪一块的?他说是交易平台。我说忙不忙,他回答说还好吧。


三面

这一面试是HR面,比较单纯的聊天,我说自己对薪资没有要求,希望能得到更多实现自己价值的机会。


回味

回想起二面的面试官问的问题,还是蛮简单的,nxm的方格,多少个矩形,解题思路大概是:横向有n-1条直线,纵向有m-1条直线,随机抽取2条横向、2条纵向的直线,就可以构成一个矩形了。
就是在n-1中取2,m-1中取2。答案可想而知。


对了,在面试中还问了一个经典问题,5个海盗抢了100个宝石,他们每个人都聪明绝顶也贪心无比。他们决定分配这些宝石。
分配原则是轮流表决,如果有超过半数(包含半数)的人同意,则按提议分配,否则把那个提议的人扔到海里去。
5个人按抽签决定每个人的号数1、2、3、4、5,问1号最多可以得到多少宝石?

这个题目是个经典题目,我说我已经做过这个题目了,然后面试官就没有再问我了。

总而言之,面试官都很好,我们如果坦诚相待,不会就是不会,则不会太尴尬。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值