阿里云一二三四面,跪在了四面的coding

前两天这个贴发过一次,被我删掉了,今天再发一次
经历了两个星期的阿里云polarDB组面试结束了,我的最后一面是第四面,全程48分钟,全部是coding,跪得非常惨烈。
(面试系统上还是显示“面试中”,但是我问了面试官,确定流程已经结束了)
很不甘心,因为研究生阶段的科研做的都是相关内容,而且前三面问的都是扩展性的问题,难度很大但是我答得还不错,挂在了四面实在觉得前功尽弃。
但是其实也只能怪自己实力不行,挂在编程题上说明数据结构部分还是有欠缺。

一面 - 1小时20分钟

聊了40分钟项目相关的实现,40分钟两道编程题。因为我的研究方向就是分布式数据库,所以一面二面三面都没有问常规知识(牛客C++面试宝典里的那些)。

介绍一个你最想跟人介绍的项目吧。
那你做的这个内存池是静态大小的吗?所以是一个object store的感觉?(是的)
那内存池要扩容的话怎么做?
hugepage 跟普通 page 比,优势是什么?
L1 L2 L3 cache access / Memory access 各是多少毫秒?
你们怎么测的 NUMA memory latency?
说说 cache coherence protocol 是什么?
你们做的这个确定性的数据库是什么特点?(这里聊具体细节,可以看出面试官的功力很深)
说说在头条的经历吧(同样聊具体细节)

  • 编程题1 - 请实现 uint32_t IPtoInt(const string IP) ,函数可以将IP字符串(如 “127.0.0.1” )转换到一个 uint32_t 中去(如值为 0xef000001)。(细节:要处理各种异常)
  • 编程题2 - 给定一个 CAS (compare and swap) 函数的签名 int CAS(void** location, void* old, void* new),请实现一个无锁的链表。

二面 - 1小时2分钟

离一面过了两天。全程都在聊项目,没有编程,是我感觉压力最大的一次面试。面试官往下钻得非常深,而且很多问题都是看你有什么思考。

你们的分布式系统是如何接受事务请求的呢?
那你觉得怎样可以让整个系统可以均匀地进行服务,分配资源?
不说分布式系统吧,一台单机上你要怎么让多核心能够均衡的协调资源呢?
你是如何理解消息传递机制的?
Go里面有原生的消息传递机制对吧,那要是你需要在C++里实现一个,你觉得难度大吗,你会怎么做?
看过相关消息传递机制的源码吗?
你做了很多内存相关的内容,解决内存的争用有哪些方式?
能说说内存的段页式管理吗?
内存的段页式管理是为了解决什么问题?
那非线性地址映射能带来什么好处?
你学习的操作系统的知识,平时会有用到嘛?
用过 C++11 对吧,C++11 的 memory order 了解吗?
有去了解过通用的内存池技术吗,是看过源码还是读过文档?
你们用RCU的方式去回收内存,在实践中还是很少的,你们为什么选用 RCU ?
在网络方面你做过相关的工作吗,有去实践过相关的实现吗?还是只是用过库代码?
在存储方向你有做过哪些研究,有过哪些尝试呢?
你之后的职业规划是怎样的呢?

三面 - 1小时8分钟

离二面过了三天。同样,全程都在聊项目,但是没有二面难,具体聊的什么我没有记下来。

四面 - 48分钟

离三面过了一个星期。我不知道这一面的面试官是不是交叉的P9,他只说了他是阿里云的。
这一面全都是coding,别的全都没问。我估计是因为二面三面没有编程,所以四面补一下。我应该是牛客网上第一个阿里四面全是编程的吧,也是第一个挂在四面编程题上的吧。

  • 编程题1 - 请实现 void print_uint32_t(uint32_T) ,函数可以将一个 uint32_t 打印到屏幕上。如 0 打印成 0,15 打印成 F,255 打印成 FF。

这道题很基础了,我花了15分钟完成。

  • 编程题2 - 给你提供一个 pair<int, int> 的数组,请将他们插入到数据结构 TREAP 中(下面有解释)。

面试官一开始说“你听说过TREAP这个结构吗?”的时候,我的心里简直是崩溃的,这都啥啥啥?
TREAP 是一种二叉树,每个节点有两个值 a 和 b, 要满足所有的 a 按照二叉搜索树的顺序排列,所有的 b 按照最小堆的顺序排列。面试官说插入的过程中二叉搜索树可以不平衡。
面对新的数据结构不知所措,我接连说了好几种思路面试官都说不对,最后我想出来一个思路 “先按照堆的方式进行插入,然后不符合搜索条件的再去旋转调整”(应该是这样说的),然后面试官说“这样是可以,但是太麻烦了,有没有简单一点的呢,你再想想”……最后22分钟过去了,我也没给出思路,面试官就给下一道题了。

  • 编程题3 - 你觉得C里面的函数指针有什么用呢?(答:可以实现多态)那你用C的函数指针实现一个多态吧。

我最后说的思路是类似C++,弄一个虚表存在对象的首地址上,也没来得及写代码。后来巨佬跟我说,应该是在struct里加一个type类型和大小,然后进行强制类型转换。

最后面试官问我,“你平时写C写的多吗”,“大学期间的代码行数有多少啊”,然后就说“我这边没什么要问的了”。自己知道表现太差,我也就没问他问题。

Anyway,秋招还是要继续,科研还是要继续,生活还是要继续……

#面经##校招##阿里巴巴##C++工程师#
全部评论
tql
1 回复 分享
发布于 2019-09-09 23:06
太难了。。。
点赞 回复 分享
发布于 2019-09-21 16:52
大佬能具体说一下 如何用c语言的函数指针实现多态吗
点赞 回复 分享
发布于 2019-09-21 18:49
我***, 这都什么题啊
2 回复 分享
发布于 2019-09-10 00:35
很强了,再多刷刷题,大佬加油
点赞 回复 分享
发布于 2019-09-09 22:27
大佬已经很强了,也未必会挂吧
点赞 回复 分享
发布于 2019-09-09 22:57
太难了
点赞 回复 分享
发布于 2019-09-10 00:31
这个好难啊
点赞 回复 分享
发布于 2019-09-10 14:02
话说释放简历好慢,挂了一个星期了还没释放
点赞 回复 分享
发布于 2019-09-11 05:21
感觉楼主很强了,果真是写c++的
点赞 回复 分享
发布于 2019-09-18 00:06
这招的是啥啊
点赞 回复 分享
发布于 2019-09-18 01:12
楼主已经很强了。。可以试试PingCAP
点赞 回复 分享
发布于 2019-09-22 09:45
老哥应聘的岗位是C++工程师吗?
点赞 回复 分享
发布于 2019-10-09 16:04
这也太强了吧
点赞 回复 分享
发布于 2019-10-09 16:55
请问这是招实习吗
点赞 回复 分享
发布于 2021-03-07 16:24
老哥最后去哪了啊
点赞 回复 分享
发布于 2021-04-01 16:12

相关推荐

10-31 17:09
湖南大学 C++
海信视像 算法 21w
点赞 评论 收藏
分享
诨号无敌鸭:恭喜佬,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
10-16 19:39
已编辑
门头沟学院 Java
小马云表哥:03男巨蟹座,喜欢家暴,爱好出轨,吃喝嫖赌样样精通,收入不固定,主要看女方给我多少钱,不会做家务,不会做饭,身高155体重190,爱玩马超,喜欢玩火影,喜欢陪岳父岳母爬山 爱玩原神😋
点赞 评论 收藏
分享
20 106 评论
分享
牛客网
牛客企业服务