秋招总结 C++方向,腾讯、百度、华为、滴滴、搜狐

作者:caelum
链接:https://www.nowcoder.com/discuss/13362
来源:牛客网
 

写在前面的话:

        今天收到了腾讯的签约邀请,这意味着我的秋招之旅基本上可以结束了。平时经常在牛客上刷题以及看大家分享的面经,受益匪浅,因此趁着还有点小激动,跟大家分享下我的经历。首先来总结一下这次秋招,我投了30家公司,以下列出,给来年的学弟学妹们做些参考吧:

        阿里、腾讯、百度、京东、微店、唯品会、好未来、迅雷、360、搜狐、完美世界、携程、去哪儿、爱奇艺、网易、网易有道、网易游戏、搜狗、欢聚时代、美团、百度外卖、今日头条、滴滴、深信服、艺龙、科大讯飞、小米、猿题库、乐视、金山。

        笔试光荣牺牲的有:阿里、京东、美团、猿题库,可能还有搜狗

        面试挂的有:百度

        拿到了两家的签约意向书:腾讯,搜狐

        华为进了池子,滴滴还在等通知,其他的直接放弃了或者是还没有任何消息

        在应届本科生中,我并不是什么大神,身边的大神们早就通过实习转正或者内推拿到了bat的offer,我知道自己和他们的差距,所以在秋招前,我的心情是非常紧张和焦虑的。特别是投了一些内推完全没动静,唯一有动静的网易内推笔试直接GG了,于是就更郁闷了,真的是一度在怀疑人生。

        在这些面试过程中,由于我的项目写的比较多(然而大部分都是自己写的小项目),所以大部分面试官都花了很多时间去问项目方面的细节(除了百度)(百度还是重基础啊,所以一些基础知识感觉问的不是特别多,也可能是本科生的缘故,问的不是特别难、特别偏,基本上看面经的时候都看到过。当然,这跟运气确实有很大的关系,我感觉我遇到的都是非常不错的面试官。另外,本人记忆力不好,有些问题已经忘了。

搜狐一面 50分钟

全程聊项目

印象中问了两个基础问题:

    select和epoll的区别

    举两个stl内部实现的例子

搜狐二面 10分钟

两个问题:

描述一个印象最深的项目

对个性化推荐的理解

百度一面 50分钟

1. strcpy和memcpy的区别

2. 手写memcpy

3. linux下的malloc和free底层都干了什么事(调用free貌似系统不一定会真正释放内存)

4. 手写一个类(考察类的前置声明)

5. epoll和select的区别

6. map遍历删除(考虑迭代器失效)

7. 手写快排

腾讯一面 90分钟

1. 做题:将近20道,主要是C++,操作系统和计网,都是一些基础知识点。记得的有:

    struct内存结构

    一些关键字的作用(super是C++的?,没看到过)

    执行int main(int argc, char *argv[])时的内存结构

    中断

    虚拟地址

    Nat

    Tcp的三次握手和四次握手

    访问www.qq.com经历的过程

2. 问一些笔试做错的题

3. 虚函数是怎样实现的。。。

4. 已知有一个struct X,其中包括一个变量a,求a在X中的偏移量(不能声明struct变量)

    面试官给的答案:&reinterpret_cast<struct X *>(0)->a

5. 进程和线程的区别

6. 项目相关

腾讯二面 50分钟

1. 主要是项目

2. 进程间的通信方式

3. 如果父类和子类都有自己的虚函数(不是覆盖),内存结构是怎样的(各自都有自己虚函数指针)

4. 手写快排

5. 数独求解算法

腾讯HR面:30分钟

1. 你的一些个人基本情况

2. 总结你的大学四年

3. 你的优点和缺点,附上实例

4. 你的意向岗位和城市

5. 其他公司的面试情况

6. 等等。。。

华为技术面 40分钟

1. 虚函数是怎样实现的。。。

2. 看github代码。。。

3. 实现一个计算器的思路

4. 项目相关

华为综面 30分钟

面试官应该不是HR,像是一个部门的头头,一直在说他们工作的方向,没问我啥,就让我宣传一下华为以后只会招更多的本科生,研究生会招的越来越少

滴滴一面 30分钟

笔试做错的题全都拿来问一遍

问些基础,有两个问题印象很深刻:

    epoll和select的区别。。。

    虚函数是怎样实现的。。。

项目相关

滴滴二面 40分钟

1. 介绍tcp协议和udp协议

2. stl traits是怎样实现的

3. stl迭代器在哪些情况下会失效

4. ipv4的不足之处(提到了地址数量有限和安全性)

5. DDos攻击

6. 算法:一个链表,每个结点有next指针和向下指针,按照层的顺序打印出来(用队列即可)

滴滴三面 60分钟

1. map是怎么实现的

2. vector是怎么实现的

3. epoll和select的区别。。。

4. 虚函数是怎样实现的。。。

5. 构造函数可以是虚函数吗?析构函数呢

6. 手写字节序转换函数(从小端到大端

7. 手写memmove函数

8. 项目相关,问的很刁钻,应该是所有面试官中问的最深的,问到最后自己会感到有点慌了,最后他表示把我当成研究生了

滴滴HR面 30分钟

1. 你的个人情况

2. 你父母的一些情况

3.你的未来规划

你的优点和缺点

你的期望薪资

等等。。。

关于项目:

在项目方面,面试官对其中的3个点比较感兴趣

1. 陈硕的muduo网络库,这是我在项目中用到的,已经阅读过了它的源码,所以面试时的相关问题都可以讲的很细很透彻

2. 简单的UDP协议,常见的问题有:项目的实现过程,ARP协议的实现原理,IP的分片和重组

3. CMM解释器(实现了char、指针、函数、调试等功能),常见的问题有:指针、调试是怎么实现的,语法树、中间代码、内存、临时变量的实现问题

总结:

1. 大部分面试官都会问虚函数是怎么实现的select和epoll的区别

2. 个人感觉校招前的准备和平时的积累是相辅相成的,面试官看到你简历上写的项目和技能后已经初步对你有了一个评估,之后的问题只是为了证明他对你的判断,根据你的表现进行加分减分。对于这些问题有些确实需要去刻意地准备。

3. 对于一些简单的问题尽量去回答得深入,比如说”虚函数是怎样实现的“,我一般是从单继承、多继承、虚继续三种情况去说明内存的布局。又比如”epoll和select的区别“,除了基本的区别外,还可以说下epoll的LT和ET模式。我遇到的面试官对这些回答都很满意。因此,去准备面经的时候不能只背,一定要去理解。

4. 个人对于学习C++方向的一些想法。除了基本的专业必修课,强烈建议看的书有:C++ Primer(Plus),Effective C++,深度探索C++对象模型,stl源码剖析,如果涉及到linux和网络方面(最好去掌握),需要看的书:APUE,UNP,Tcp/Ip详解(卷1)。这些书不一定所有的章节都要看,但是重点不能看一遍就不管了,一定要熟练掌握。以外,一定要刷剑指offer,刷到你一看题目就能想到思路能写代码为止,如果有时间还可以去刷leetcode。

猜你喜欢

转载自blog.csdn.net/qq_29996285/article/details/85247393