链接: https://www.nowcoder.com/discuss/27739?type=2&order=0&pos=75&page=2
来源:牛客网
- 面试经验包括 阿里巴巴、今日头条、腾讯、360、网易游戏、人人网、美团点评、京东、网易、去哪儿网、PayPal、美丽联合 共12家企业
- 拿到的正式offer包括阿里巴巴、今日头条、腾讯、京东、去哪儿网,口头录用意向包括360、美丽联合
阿里巴巴
2月底内推,在官网填写了简历。选择的是阿里云的研发工程师C/C++实习岗位。
- 阿里校招官网 https://campus.alibaba.com/trainProcess.htm
- 阿里部门介绍 https://campus.alibaba.com/trems.htm
- 阿里岗位介绍 https://campus.alibaba.com/traineePositionList.htm
- 校招进度查询 https://campus.alibaba.com/myJobApply.htm
电话一面(团队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(网络媒体事业群)的“软件开发-后台开发方向”岗位
- 腾讯校招官网 http://join.qq.com/index.php
- 微软公众号“腾讯招聘”,流程进度以及面试通知都在这上面查看
电话一面-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日,我参加了第一场
- 2017年招聘官网:http://campus.chinahr.com/2017/360/internship.html
- 微信公众号:“360招聘”, 360招聘的流程进度都是在公众号查看
现场一面-3月31日
- STL map
- 多线程同步、线程池、无锁编程
- I/O模型, select, epoll
- MySQL存储引擎, B+树
- shell指令, grep参数
- 设计模式, 手写单例模式(设计模式中单例模式是热门问题)
- 算法题:平面上百万个点,设计数据结构求每个点最近的k个点(范围搜索问题)
- 判断二叉树是不是镜像,手写翻转二叉树
- memcache了解
- 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月底内推,官网填写的简历
- 实习生招聘官网:http://campus.meituan.com/?source=51job#/main/intern/post
- 微信公众号:美团点评招聘
现场一面-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
- 简历建议找有经验的学长把关,这个比较重要
- 项目经验上,如果实验室没什么合适的项目往上写的话,一定要提前准备一些练手项目。这些项目并不一定要求多难多复杂,但是往简历上写的话一定要能把各个技术点说清楚
- 实习经验很重要,不过没有也没关系,争取做些优质的练手项目
- 面试时如果遇到算法题而且一下没想到好的算法时,可以先说出显而易见的复杂度较高的算法来拖延思考的时间,这个我觉得比较有效
- 最后还有一点就是我觉得不管是投递什么方向,其他方向的知识都要学一点,这样给自己选择的空间就更多一些,同时学习各方向的知识会产生相互促进的作用