【阿里、腾讯、头条】等12家企业【C++方向】30场面试经验

  • 面试经验包括 阿里巴巴、今日头条、腾讯、360、网易游戏、人人网、美团点评、京东、网易、去哪儿网、PayPal、美丽联合 共12家企业
  • 拿到的正式offer包括阿里巴巴、今日头条、腾讯、京东、去哪儿网,口头录用意向包括360、美丽联合

阿里巴巴

2月底内推,在官网填写了简历。选择的是阿里云的研发工程师C/C++实习岗位。

电话一面(团队1)-3月7日

  • B树、存储模型(B树、B+树与数据库引擎这块是热门问题
  • 字典树构造及其优化与应用
  • 持久化数据结构,序列化与反序列化时机
  • 大规模文本文件,全是单词,求前10词频的单词(Top k问题是热门问题
  • 堆排序与其在求10词频问题中的应用
  • 字典树与其在统计词频上的应用
  • 红黑树的特性与其在C++ STL中的应用
  • 红黑树的调整
  • 贪心算法与其弊端
  • 能取得全局最优解的算法
  • 动态规划的原理与本质(动态规划dynamic programming是笔试热门题型
  • 01背包问题的详细解释
  • 进程间通信方式
  • 数据库中join的类型与区别(如果平时不怎么写业务代码,可能不会经常用到数据库,建议面试前多准备一下
  • 数据库的ACID
  • 实现bitmap数据结构,包括数据的存储与插入方式
  • 实现unordered_map,键为string,value不限
  • 实现unordered_map过程中的冲突解决办法
  • 一串int型整数存放磁盘上的压缩存储方式,包括写入与读取及内存无法一次性读取时的解决办法
  • 对Java的了解
  • Bloom过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换入换出问题(Bloom过滤器是热门问题
  • 线程池的了解、优点、调度处理方式和保护任务队列的方式
  • 对象复用的了解
  • 零拷贝的了解
  • Linux的I/O模型(I/O模型是热门问题
  • 异步I/O的详细解释

电话二面(团队1)-3月10日

(二面一般对项目及各个知识点问的比较深入,答不上来的话可以直接说不太清楚,心态不能崩)

  • 线程池对线程的管理方式,包括初始化线程的方法、线程创建后的管理、指派任务的方式
  • 同步I/O与异步I/O的区别,包括如何定义异步I/O、I/O实质上交给谁完成、如果实现异步
  • Direct I/O 和其与异步I/O的区别
  • Linux内核如何调用Direct I/O
  • Bloom过滤器的优点与原理
  • 字符串hash成状态位的具体实现方式
  • hash函数如何保证冲突最小
  • 文件读写使用的系统调用
  • 文件读写中涉及的磁盘缓冲区与其手动flush问题
  • 数据库join的具体含义

(二面后一周官网显示已回绝,同时新开了一条内推进度)

电话一面(团队2)-3月16日

  • struct与class的区别
  • STL库的介绍(投C++的要对STL这块多上心
  • vector使用的注意点及其原因
  • 频繁对vector调用push_back()对性能的影响和原因
  • vector重新分配内存的大小与方式
  • hashmap的实现方式
  • map的实现方式
  • 红黑树的了解
  • C++虚函数的具体实现原理(虚函数和虚函数表是热门问题,一定要弄清楚其原理与实现
  • 实现编译器处理虚函数表应该如何处理
  • 析构函数一般写成虚函数的原因
  • 解释哲学家进餐问题
  • 描述银行家算法
  • 实现一种算法解决哲学家进餐问题
  • 大数量整数的去重问题
  • 如果用bitmap解决大数量整数去重问题,计算当全为int型整数时需要消耗的内存
  • 算法题:环形公路上加油站算法问题(此题比较经典,可百度到

现场二面 & 现场三面(团队2)-3月22日

(团队2在北京,所以邀请我去望京现场面试的)

  • 变长编码的实现与传输问题
  • 手写实现智能指针类
  • 布隆过滤器的特性及将其特性反转的实现(反转后即查到的一定存在,查不到的不一定不存在)
  • STL底层的介绍

(二面后一个月官网显示已回绝,同时新开了一条内推进度)

电话一面(团队3)-4月28日

(此次一面是在笔试后一天打来电话的,但面试官并不知道笔试成绩,面试时临时查了笔试成绩)

  • TCP与UDP区别
  • TCP建立连接的步骤(TCP连接建立与断开是热门问题
  • 对云计算网络的了解
  • 对路由协议的了解与介绍
  • 常用的Linux命令介绍
  • 对awk与sed的了解
  • C++、Java和Python的联系与区别,包括语言特性、垃圾回收、应用场景等
  • HashMap和HashTable的区别与底层实现(此为Java题,即使投递C++方向,仍然要会一些Java
  • 二叉树的遍历与实现

电话二面(团队3)-5月6日

(二面主要探讨项目与实现细节,并给出了一些额外要求让人立即实现。保持好心态一点点去想即可,面试官也会不断给些提示)

  • 网页解析的过程与实现方法
  • Bloom过滤器的实现
  • 网络层分片的原因与具体实现

电话加网页写代码三面-5月11日

  • 打开http://collabedit.com/ 在线编写代码
  • 算法题1:给定有序数组,取前面某段调整到最后,即进行一次旋转操作后,对任意元素进行快速查询。敲代码不运行(leetcode上有此题
  • 算法题2:n对括号正常匹配情况的枚举输出。敲代码不运行
  • TCP三次握手的详细过程

hr电话面(团队3)-5月11日

  • 了解实习时间
  • hr介绍整个团队后让选择实习地点,北京或杭州
  • 英文自我介绍(最好提前准备一段英文自我介绍

实习生录用意向书发放-5月13日

今日头条

3月初内推,直接发送的电子版简历。此阶段暑期实习招聘还没开始,基本都是散招,面试的过程很随意。二面结束后面试官通知面试未通过

现场一面 & 现场二面-3月9日

  • 算法题1:无序数组查找第Top k元素。手写代码实现
  • 算法题2:并查集。手写代码实现
  • Python中range与xrange的区别
  • 算法题3:链表反转。手写代码实现
  • git merge与rebase的区别

4月份在官网上又重新投递了一次,4月18日参加了今日头条的第二场在线笔试(第一场是3月30日)。笔试通过后可以在线选择是现场面试还是视频面试,我选择了视频面试

视频一面-4月25日

(一面面试官长的像赵又廷,视频一开当时我就惊呆了)

  • 算法题1:枚举给定数组中的所有非递减子序列。敲代码运行
  • 算法题2:枚举给定数组的全排列。敲代码运行
  • 介绍I/O复用技术,epoll优于select的原因
  • 介绍线程池
  • 图的邻接矩阵和邻接表的表示,邻接表的数据结构。敲代码不运行

视频二面-4月25日

  • 算法题1:给定二叉树,假设相连接的两结点间距离为1,求所有结点中距离其他所有结点距离和最小的结点。敲代码运行
  • 介绍C ++内存管理(C ++的内存模型是热门问题
  • 对文件系统的了解

视频三面-4月25日

  • 算法题1:给定数组,快速求出所有数右边第一个比其大的数。回答思路
  • 算法题2:给定k个数组,每个数组都是有序的,且每个数组最大值-最小值<1000,1<k<1000,求所有数的中位数。回答思路
  • 进程与线程区别
  • STL内存分配

暑期实习录用通知发放-5月12日

腾讯

2月底内推,在官网填写了简历。选择的是OMG(网络媒体事业群)的“软件开发-后台开发方向”岗位

电话一面-3月25日

(内推时是由SNG(社交网络事业群)面试的,面试官说简历所有事业群都能看到)

  • C和C++的特点与区别
  • C++的多态
  • 虚函数的实现
  • C++内存分配
  • 几大存储区
  • Python的特点
  • Python有哪些实现(此处是指CPython、Jython等
  • CPython的解释执行过程
  • Python里面垃圾回收是怎样的
  • Python多线程介绍
  • 多线程可以使用多核吗
  • 协程的了解
  • cgi的了解
  • http协议get和post的区别
  • 进程间通信方式
  • 建立TCP服务器的各个系统调用
  • 处理多个套接字的I/O复用介绍
  • epoll为什么更快
  • 虚拟内存的概念与介绍
  • 单链表的倒置
  • 红黑树的了解与其查找复杂度(红黑树的特性和复杂度是热门问题
  • 快速排序的优化
  • 字符串匹配算法
  • TCP的三次握手与四次挥手的详细介绍
  • TCP的超时等待的介绍
  • 流量控制的介绍
  • 数字证书的了解
  • http和https的区别
  • 对数据库包括其引擎的区别与了解
  • 数据库索引的作用(数据库索引是热门问题

(内推时间大概在清明节结束,结束后就能在公众号里面看到自己挂了。笔试是在4月2日和3日进行的)

现场一面-4月17日

(笔试后的现场面试面的是IEG(互动娱乐事业群))

  • C++内存模型
  • 程序编译链接的过程和函数找不到在哪个阶段报错
  • 线程间通信
  • 游戏中打怪时已经各个小怪的坐标,你放一个技能是圆形范围,快速求能打到的小怪(范围搜索问题,热门场景考察题
  • 虚拟内存的意义与作用

现场二面-4月19日

  • 无锁编程解决单生产者多消费者问题和多生产者多消费者问题(此题问的比较深
  • 魔兽世界10人房间,现在组队规模有3人,有5人,如何让每个人等待的时间尽可能少,即将时间线上哪些队伍组合在一起开始一个游戏(01背包问题的应用题
  • 快速排序的稳定化算法(此方法可百度到

现场hr面-4月20日

  • 对游戏行业的了解与感受
  • 对加班的接受程度
  • 对深圳的接受程度
  • 已经拿到的offer

实习生录用函发放-4月26日

360

3月初在官网投递,选的是搜索事业线的C++研发。
360的两场笔试分别是3月18日和3月25日,我参加了第一场

现场一面-3月31日

  • STL map
  • 多线程同步、线程池、无锁编程
  • I/O模型, select, epoll
  • MySQL存储引擎, B+树
  • shell指令, grep参数
  • 设计模式, 手写单例模式(设计模式中单例模式是热门问题
  • 算法题:平面上百万个点,设计数据结构求每个点最近的k个点(范围搜索问题
  • 判断二叉树是不是镜像,手写翻转二叉树
  • mem***了解
  • TCP超时等待

360面试是一站式的,由于我一面后临时有事就回学校了,hr说后续再通知去现场二面

现场二面-4月14日

  • libevent的了解
  • 线程间通信
  • Linux内核的了解

现场hr面-4月14日

  • 实习时间
  • 介绍搜索部门的业务
  • 介绍搜索的盈利与发展方向
  • 针对我对360云盘关闭的原因作出解释

电话发放offer-4月20日

hr打电话说要给我发offer问我接不接受,我说能不能考虑一下,hr说最晚下周一前答复。晚上想了想打电话过去说接受offer(因为当时零offer),接电话的是另一个人,说会帮我转告。然后一周后就收到结果为待定的邮件了,之后就一直备胎到现在

网易游戏

网易游戏有两大事业群,分别是“互动娱乐事业群”和“雷火&盘古事业群”。互娱的开发基本只招名校,官网上的职位也有写学校要求。

2月底在官网投递的,选择的是雷火&盘古事业群的研发工程师。

电话一面-4月10日

  • C++的构造函数可以为虚函数
  • 动态绑定的介绍
  • 引用是否能实现动态绑定,为什么引用可以实现
  • 介绍所有的构造函数
  • 什么情况下要给类写拷贝构造函数
  • 成员初始化列表的概念
  • 为什么用成员初始化列表会快一些
  • 遇到coredump要怎么调试
  • 内存检查工具的了解
  • 调试程序的方法
  • 对数据库的了解
  • mysql执行的慢,如何分析
  • 数据库如何建立索引,以及索引的实现
  • 对于游戏开发的了解

(4月25日hr打电话来邀请去杭州参加现场面试,北京的学生来往交通费用按最高1000报销(不论火车飞机)。最后因为种种原因我没有去)

人人网

人人网的笔试有两场,我参加的是4月9日的第二场。人人网招聘是在大街网上的

视频一面-4月13日

(视频面试是在牛客网进行的)

  • 算法题:字符串转整数,敲代码

(其他问了些小的知识点,不多,也比较简单,结束后就全忘记了)

(视频二面原先是通知为4月20日,因为人人网的问题后来hr打电话通知到4月27日,最后因为我的安排冲突放弃了面试)

美团点评

2月底内推,官网填写的简历

现场一面-4月14日

  • C语言多线程的介绍
  • 手写二叉树最近公共祖先
  • stl介绍
  • B+树详细介绍,手画B+树
  • 数据库索引,联合索引,结合B+树分析
  • C/C++内存模型
  • DOM树的实现模拟
  • 数据库引擎介绍,innodb和myisam的特点与区别(数据库引擎一般做业务的都会有问到
  • DFA的过程与正则的区别
  • 介绍了解的设计模式

现场二面-4月14日

  • 手写层序遍历二叉树并输出结点层数
  • python的unicode字符串与str联系区别
  • python的yield(yield以及协程是python的热门问题
  • http协议与TCP联系
  • http请求类别与get和post区别
  • python多线程与协程联系和区别
  • python反转list
  • python文件编码与字符串编码
  • 设计算法实现快速得到变化栈的最大结点元素
  • 对上个算法进行空间占用小于n的优化

(美团的两个面试官说法都比较一致:一是他们主要招做业务的,做底层这种几乎不怎么招;二是他们很看重实习时间,小于3个月的要求会很高)

京东

3月初在官网投递。京东这边投递时不分方向,面试只能说是看运气,分到对口的面试就比较容易

  • 招聘官网:http://campus.jd.com/ 官网和公众号都能看流程进度
  • 微信公众号:京东招聘

现场一面-4月15日

  • 手写C语言版strcpy实现
  • 最高效率判断两链表是否相交,及求出首次相交结点(此题leetcode上有
  • 一个只含有虚函数的类的size为多少
  • 含虚函数类的虚函数表是存放在哪里的
  • 手画字典树
  • 介绍更高效的建树判重数据结构
  • 介绍bloom过滤器
  • 给定数1-100,从中抽走一个数后形成一个数组,判断抽走的是哪个数

(由于我面的是京东云,所以一面面试官说我做的东西和他们很契合,非常希望我过去)

现场二面-4月15日

  • 京东云的发展状况,团队干的事,与业务的接合,在国内的地位等等

(二面是部门boss面的,没问技术问题,主要和我聊京东云的状况。感觉京东云这边应该比较缺做底层的人,所以如果有做底层的可以考虑一下京东。)

现场hr面-4月19日

  • 实习时间
  • 平时的业余活动
  • 拿到的offer

实习生招聘录用函发放-4月25日

网易北京

3月初投递的网易,当时想的还是能在北京实习,所以投的是网易北京。建议如果投网易的话还是投网易杭州比较好

现场一面-4月21日 & 现场二面-4月21日

(记录的时间比较晚,所以不少问题印象不深了,不过总体也不算太难)

  • 内存池的实现与线程安全的接口(这个问题挖掘的比较深
  • DFS的一个算法题
  • 日志系统的了解
  • MVC的了解
  • I/O复用的水平触发与边缘触发

(4月25日电话询问了一下具体能实习的时间后再无音讯)

去哪儿网

3月份在官网投递

现场一面-4月23日

  • 是否能转java开发
  • 范围搜索算法(仍然是这个热门场景题
  • 单条记录高并发访问的优化
  • 算法题:n乘m的矩形填充到N乘M的矩形中能否填充满问题。回答思路

现场二面-4月23日

  • 观察者模式和职责链模式
  • 多线程的同步
  • 菱形继承与接口目的
  • 面向对象的三大特性
  • MVC设计模式
  • 什么样的代码是优秀的代码
  • JAVA集合类的了解

现场hr面-4月23日

和hr聊了很多,关于去哪儿网的业务,实习offer的选择等。hr的意思是相比特别大的公司,在去哪儿网的优势是可以有更多快速的晋升机会

实习生录用函发放-4月26日

PayPal

三月底左右在官网投递的,4月13参加笔试。笔试题目非常难,4道算法题。题目虽然大多有思路,也写了很多代码,然而一道题都没有AC。不过还是收到了面试邀请

视频一面-4月24日

(视频面试是在牛客网进行的)

  • 字符串分割与查找匹配算法
  • 一个文件预计每行有个int型整数,需要读取文件并查找是否含有目标整数
  • 线程池的功能与目的
  • python闭包
  • python生成器
  • 英文自我介绍与英文问答(口语差的让面试官目瞪口呆

拒信-5月10日

美丽联合(蘑菇街)

3月份内推,官网填写的简历

视频一面-4月21日

(视频面试是在牛客网进行)

  • 算法题1:二叉排序树的最近公共祖先,敲代码不运行
  • 算法题2:快速排序,敲代码不运行

视频二面-4月26日

  • 词法分析与语法分析的过程
  • 操作系统内核的划分
  • 无锁编程

hr电话三面-5月5日

三面通知的是视频面试,但最后hr打电话来说就电话面试吧。聊了聊我工作的意向以及offer情况。因为这时已经拿到腾讯offer,所以和hr商量后就没有接收这边的offer

其他经验

本来准备再写些刷题经验之类,但是时间比较紧张,所以就简要说下我的经验吧。

  • 基础知识类的小题非常推荐刷牛客网,有分类有真题有错题整理有答案讨论
  • 编程算法题比较推荐刷leetcode,但如果基础比较低,推荐看些数据结构和入门的算法书打基础,刚开始不推荐看算法导论这种
  • C ++方向推荐看C ++ Primer
  • 简历建议找有经验的学长把关,这个比较重要
  • 项目经验上,如果实验室没什么合适的项目往上写的话,一定要提前准备一些练手项目。这些项目并不一定要求多难多复杂,但是往简历上写的话一定要能把各个技术点说清楚
  • 实习经验很重要,不过没有也没关系,争取做些优质的练手项目
  • 面试时如果遇到算法题而且一下没想到好的算法时,可以先说出显而易见的复杂度较高的算法来拖延思考的时间,这个我觉得比较有效
  • 最后还有一点就是我觉得不管是投递什么方向,其他方向的知识都要学一点,这样给自己选择的空间就更多一些,同时学习各方向的知识会产生相互促进的作用
#阿里巴巴##腾讯##去哪儿##京东##蘑菇街##字节跳动##C++工程师#
全部评论
膜拜大神......感觉自己找不到工作
5 回复
分享
发布于 2017-06-05 19:58
30场。。。orz
点赞 回复
分享
发布于 2017-05-25 10:12
乐元素
校招火热招聘中
官网直投
突然感觉自己找不到工作了
点赞 回复
分享
发布于 2017-06-01 10:24
请问楼主选择去哪
点赞 回复
分享
发布于 2017-05-25 10:17
头条这个题:给定k个数组,每个数组都是有序的,且每个数组最大值-最小值<1000,1<k<1000,求所有数的中位数。可以问下 lz 怎么答的吗
点赞 回复
分享
发布于 2017-06-02 17:59
感谢分享。
点赞 回复
分享
发布于 2017-06-13 22:30
膜拜大佬
点赞 回复
分享
发布于 2017-05-25 09:50
膜拜
点赞 回复
分享
发布于 2017-05-25 10:10
太厉害了~膜拜
点赞 回复
分享
发布于 2017-05-25 10:21
本科还是研究生,太强了
点赞 回复
分享
发布于 2017-05-25 13:03
膜拜
点赞 回复
分享
发布于 2017-05-25 15:40
牛逼!
点赞 回复
分享
发布于 2017-05-26 11:09
大神啊 膜拜
点赞 回复
分享
发布于 2017-05-26 11:28
大神,你面试之前是不是看了很多的书,比如深度探索c++对象模型,STL 源码等之类的书,还是直接在牛客网刷题,我的基础比较差,能推荐一些书籍吗非常感谢!
点赞 回复
分享
发布于 2017-05-26 21:38
魔兽房间那个?如何01背包啊?想不通
点赞 回复
分享
发布于 2017-05-27 17:23
大神,能推荐一些优质的练手项目么,或者说在哪找啊
点赞 回复
分享
发布于 2017-05-31 09:22
dalao... 看着看着就感觉楼主是北邮的了,一看果然是
点赞 回复
分享
发布于 2017-05-31 11:32
先瞻仰一下大神的风采,为什么选择阿里呢???
点赞 回复
分享
发布于 2017-05-31 16:30
请教大佬,那个布隆过滤器的反转特性要怎么实现呐?
点赞 回复
分享
发布于 2017-06-01 10:11
面试高手,厉害了!!
点赞 回复
分享
发布于 2017-06-01 11:36

相关推荐

95 804 评论
分享
牛客网
牛客企业服务