【阿里巴巴】C++岗-大三学生的实习面经整理

阿里这次招聘比较风风火火的样子啊…12号官方通道一开,牛客就遭到了各种内推的轰炸,然后一大波牛友被收割去了菜鸟蚂蚁。。我就观望了两三天的样子才投的简历,看来是正确的…

14晚上投的简历并做了测评,15号变成待安排面试并且更改城市变灰了,18号周一下午收到电话安排面试。

一面:

(面了1小时30分钟的样子。。)

自我介绍
之后就是狂怼项目。。。。怼了一个小时,涉及到的东西比较广吧,大概回想到如下:
UDP可靠传输
数据库底层原理(讲MySQL数据库引擎、三范式、数据库设计)
NoSQL(优缺点,对于一些特殊的应用场景比如微博好友你怎么设计,选用什么数据库比较合适)
你认为C++与C的区别在哪?
C++多态实现原理(就从C++对象模型开始讲,把虚函数虚表指针之类的都讲了)
为什么析构函数要写成虚函数以及为什么不要在构造/析构函数调用虚函数(这里扩展多一点,举了很多例子然后从Effective C++里面提到的去讲,哪些情况必须要把析构函数写成虚函数)
怼项目细节,怼的特别细。。怼到让我怀疑这个项目不是我做的。。本人有一个仿造Nginx的轮子,所以对于master/worker进程架构、epoll的细节问的特别多
考虑过多线程吗?怎么进一步提高epoll的效率,这里跟面试官指点我可以把epoll_wait得到的描述符用多线程处理,然后处理完再放回红黑树去。
就是然后发了个链接手撕代码,让我写是STL中unique函数的实现,写了10多20分钟的样子写好了
最后10分钟就是聊天,聊业务啊、进去后能干什么啊,面试官对我的评价啊(后来二面面试官告诉我一面面试官是我老乡,我就说为啥聊的这么high ? ?)

二面:

(一面当晚7点收到面试官电话,约明天下午二面,面了50分钟的样子)

没啥好说的,就是写代码!talk is cheap, show me the code!(屁话少说,放码过来,知乎这个神翻译真的是哈哈哈哈)
先聊了聊基础知识,比如对于进程空间的理解,然后给自己挖坑。。
题目1:刚才说了进程空间,怎么求一个进程可用栈空间的大小?
题目2:序列化数组,比如[1,100,1000…],让你把一个数组存到文件,尽可能节省空间,并且要能快速的序列化、反序列把数组读出来(反正我是没做出来。。被怼死了一度以为凉了 ? ?说了哈夫曼编码面试官不满意,说要边扫描数组边序列化提高效率,然后就是瞎扯了。。因为要节省空间,所以只能从编码的角度去思考,最后还是没写出来,只是不断在跟面试官交流思路。。)

三面:

(周一收到HR联系,说安排三面,准备交叉面,面了40分钟的样子)
一上来就直接问我熟不熟悉数据库,说了还行,结果走上了不归路。。

MySQL数据库引擎说一下
表过大会有什么影响、怎么解决(我说了水平分表和垂直分表)
刚才你说了分表,能详细说下嘛(主要解释了水平分表,说了哈希)
你刚才的水平分表固定哈希,如果想要加表、删表怎么办(果然来了!得亏知道一致性哈希算法,不然就交代在这了。。就说了下刚才的哈希算法数据迁移很不方便,然后讲了下一致性哈希算法、优点)
行成哈希环后单点故障怎么解决(我就说了心跳包机制)
怎么保证数据一致性(我都不知道为啥问了我这么多分布式系统的东西。。明明简历没写啊 ? ?面试时没了解这么深,只讲了重传数据库Log,后面了解到分布式一致性的拜占庭将军问题及其解决算法——Raft以及ZooKeeper的解决方案,反正分布式系统可以去看看,就CAP三个原则)
UDP可靠传输
select、poll、epoll讲一下
怼项目相关(怼项目的时候又扩展到了很多软件工程相关的知识,比如软件测试、软件工程导论,得亏学过,不然又凉了。。)
你对项目进行压力测试的目的是什么?主要关注哪些东西?如果要你来写一个检测系统检测阿里的业务,你会怎么写?(这里就一顿扯。。扯到了自己对于软件开发过程的理解,需求-开发-测试424原则,敏捷开发、迭***发,还有白盒测试、黑盒测试、压力测试、系统负载测试、容量测试之类的,反正就是软件工程导论+软件测试。这里因为软件工程导论学了快两年了,有点忘了,直接跟面试官说了不是特别懂, 千万不要不懂装懂!!)
看过什么源码吗?(看过Nginx的)
讲下Nginx(因为自己有个Nginx的轮子,所以就讲了下Nginx的架构、模块关系、以及accept_mutex的实现,面试官不满意。。。问我Nginx的信号是怎么传递的,直接说了不懂)

接下来就是聊人生了
你对于总监的看法是什么?你觉得总监平时的工作内容?总监的代码开发与其他工作的占比?(因为我的职业规划写了总监,结果被问了…感觉三面面试官就是总监吧,因为都在阿里工作10年了。所以就跟我聊了总监这事)
那根据你刚才的描述,你觉得总监符合你的期望吗?(当然符合啊,不然岂不是给自己挖坑!!然后说了一堆软件工程的东西,总算圆好了这个问题)
你觉得你的优点是什么?
有什么想问我的吗?

总的来说,三面广度比较大、也有一定的深度,好多次差点把自己坑死了。。。后面赶紧去恶补了下分布式系统和大数据的知识,怕交叉面被怼死。。总体感觉还算可以,后面确实也过了,隔了一天HR联系我了说给我安排交叉面。

HR面:

(不知道为什么没有交叉面,直接HR面了,一点准备都没有。。因为之前说是交叉面的,所以一直在准备技术,面了20分钟)
就是很常规的HR面,没什么特别坑的地方

自我介绍
业余爱好
性格缺点
用三个词形容下自己
目前有offer了吗?还在面其他公司吗?(好了,送命题!且答且珍惜)
你有什么偶像吗?(想了想说了马云先生是我的偶像。。)
工作地?(这个问题好像我每轮面试的面试官都问了…因为我不是特别想去杭州,所以感觉部门比较在意这个,当时HR面完当天晚上二面面试官还联系我去不去杭州,最后发下来录取意向书竟然不是杭州,开心…)
有什么想问我的吗?(就问了下培养制度以及各地的业务,最后感觉前面有没有Offer的问题没有答好,所以就最后表了下如果收到Offer一定会去阿里的决心,好像有用?)

差不多就这么多,毕竟啥准备没有就被HR面了…才面了20分钟,差点都以为凉了 ? ?得亏当天晚上出去浪坐地铁的时候我二面面试官联系我了,问我能不能去杭州(感觉是问base),才觉得稳一点了,不然那叫一个慌啊??

发表评论

后才能评论