20届找实习C++后台面经
这个帖子不维护了,想交流直接私信我吧~
一、面试情况
从上个月28号投出第一份简历到现在,由于简历一般,一共只有四家公司给了面试机会(腾讯、网易、吉比特、CVTE),到今天为止,这四份offer都拿到手了,写个帖子发一下面经(都是C++开发岗,由于面试后没有好好做记录,面经里只有一些印象深刻的问题,不完整)。
二、CVTE
CVTE是本人面试的第一家公司,一轮技术面和一轮hr面(吐槽一下,公司离学校实在太远,要坐几十个站的地铁)
2.1 技术面
- C++和Python的区别
- 为什么要做C++
- 两个线程交叉打印A和B
- 你的线程池是怎么实现的
- 定时器为什么要用最小堆
- 缓冲区实现,为什么不使用循环队列
- unique_lock和lock_guard的区别
- 怎么解决黏包问题
- select、poll和epoll的区别
- TCP滑动窗口、拥塞控制
- HTTP长连接和短连接,区别,长连接有什么好处
- 面向对象三大特性
- 什么是多态
- 多态实现原理,虚表指针,虚函数表
- 构造函数可以是虚函数吗?析构函数呢?
面完技术面后,面试官跟我说面试到这里结束了,回去等通知吧。我当时听完楞了一下,印象中CVTE是两轮技术面的,让我回去就是要挂我了?我明明都答上来了啊,后来才知道今年CVTE实习生只有一轮技术面。
2.2 hr面
hr面是一对二,我和一个广工的本科生分到了一组,一个女面试官面我们两个人。
hr面就没什么面经好发的了,都是一些基本操作,比如查户口什么的。比较难受的问题是,在什么情况下你会放弃CVTE的offer?
面完一个星期后,官网状态更新为终面已通过。
三、吉比特
吉比特是投的牛客提前批专场,提前批专场海投了十几家,只有吉比特给了面试机会。。
吉比特也是一轮技术面和一轮hr面
3.1 技术面
- 项目细节
- 定时器除了小根堆,还可以怎么做
- 要求实现时间跨度为一天的定时器,插入时间复杂度O(1),定时不需要很精确
- 手写代码,单例模式,不用锁怎么写
- 手写代码,找出数组中最小的重复数字
- 还做了什么其它的项目
- Python的flask框架自带的服务器性能不高怎么办
- 对编程语言怎么看,一定要做C++吗?
技术面还问了一些其它的问题,但是忘记了。。
3.2 hr面
面完技术面后第二天就面了hr,hr跟我介绍了部门的情况,并且表示要我进去做编译器开发,会比较枯燥,问是否能接受?
hr面完当晚就发了实习offer,这也是我拿到的第一份offer。
四、腾讯
腾讯第一次捞我的部门未知,一面电话面,个人感觉是劝退面,随便问了下情况,不到十分钟就结束了,官网状态秒灰。
第二天被PCG捞了,可惜打电话过来我没接到,两天后约了视频面。一面19号,二面23号,hr面27号,28号收到了offer。
4.1 一面
- 你的项目为什么用epoll
- 做项目时遇到什么问题,如何解决的
- 常见的并发模型有哪些
- 惊群问题
- 讲一下协程
- 如果要把协程应用到你的项目里,该怎么做
- 手写代码,链表反转
- 手写代码,跳台阶
- 实习经历
- 用过哪些数据库,讲一下
一面面试官似乎对我的博客感兴趣,有很多问题都是一边看我的博客一边问的,面完后还给了我好多建议,性格真的nice,希望以后能成为同事。
第一轮技术面结束后过了一天,状态变成复试,第三天约了二面。
4.2 二面
- RST报文和哪个信号相关(大概是这么问的,忘记原话了)
- Linux内核是怎么实现定时器的(应该是这么问的吧。反正当时没答上来)
- 手写代码,twosum
- 手写代码,threesum
- 手写代码,有一个无序数组,找到子数组使得子数组所有元素之和大于给定的数,并且子数组是最短的那个
- 让你实现一个哈希表,怎么做(当时按照Redis中哈希表的实现原理回答)
二面给我一种压力面的感觉,面完觉得要挂了,结果过了一个小时后官网状态变成hr面。二面和hr面隔了四天。
4.3 hr面
hr鸽了我几分钟,感觉挺忙的,应该是在流水线式地进行hr面吧,毕竟提前批快结束了。
面试过程中一直被怼:你这实践经历太少了、实习时间三个月太短。也不知道是不是压力面,故意怼我的。
最后问我面了哪些公司,然后和我说前两轮面试官对你评价不错,接下来两天内会有同事联系你的。
面完后,第二天下午接到了offer call,随后收到了邮件offer。
五、网易
网易是在宣讲会上投的,当时网易来学校开了个提前批专场。20号一面,22号二面及hr面,今天收到了offer call。
5.1 一面
- 介绍项目
- 黏包问题
- 项目里缓冲区怎么实现的
- 怎么知道HTTP报文体长度
- 四次挥手过程,TIME_WAIT状态
- TIME_WAIT状态会导致什么问题,怎么解决
- extern关键字用法
- new和malloc的区别
- 构造函数怎么做可以减少内存拷贝次数,与C++11无关,不要讲移动拷贝构造函数
- epoll水平触发和边沿触发,底层原理
- 解释top命令右上角的三个数字
- top命令怎么查看线程
- 实习经历
- 熟悉哪些数据库
一面面试官年龄稍大,估计接近40吧,人很nice,还夸我C++学得不错哈哈。
5.2 二面
二面是两个面试官怼我一个,一男一女。
- Python装饰器原理
- Python的yield关键字
- Redis有哪些对象,什么情况用什么对象
- 怎么从很大的log文件中查找某个记录
- 你平时什么情况下用gdb
- gdb怎么查看某个线程
- 怎么查看进程,你会关注top命令的哪些字段
- top怎么查看线程
- 怎么按照内存使用大小对进程排序
- epoll_wait的最后一个参数是什么意思,如果设置为0会怎样
- Linux下的/var目录有什么用
总的来说,二面问得很细,比较考验工程能力。面完后,面试官让我回博学堂等hr进一步安排,结果我被安排到了当天的最后一个进行hr面,一共等了两个小时。
5.3 hr面
这位hr也很nice,还跟我说因为开会,让你久等了。
面试过程很轻松,hr跟我说部门是CC直播,到时候可能要转Python。
印象深刻的是,hr问我有没有在官网投递过,我说有投过网易互娱的游戏开发实习生,但是笔试没过,被diss了一下。
面完后刚好一周,接到了offer call。
六、总结
从开始找实习到现在,刚好花了一个月的时间,还算是比较顺利,对面试把握地比较好,有面试机会的都拿到offer了。
接下来,再面一下个别大厂(也要看人家给不给我面试机会),其它的公司就不面了,在学校专心磕盐。