双非大三春招实习C++面经

找实习告一段落了,不想再折腾了,总结一下给其他人一些参考。先说一下背景,不知名双非学校大三。之前打了将近两年算法竞赛,成绩不好。
从寒假开学开始投一些公司,岗位都是C 研发或者后台开发,现在的情况是:
阿里(三面挂),饿了么(offer),京东(offer),好未来(技术面过了拒了复试),美团(拒了面试,这里要吐槽一下,美团是我投的第一个公司,2月底内推成功就一直是待面试,今天才等到电话),网易(因为比赛时间冲突没能参加笔试)。

下面是我面试之后记下来的。。所以可能有点乱也有点啰嗦,不感兴趣的地方跳过就好。。轻喷


阿里:

2017/03/09下午17:04一面
简历投了很久没有电话,本来以为已经挂了猝不及防的来了电话,我让他给我5分钟时间去找个空教室。

开始做了非常简单的自我介绍。
愿不愿意转JAVA
既然你是计算机专业的应该学过数据结构,说说学过什么排序。
说说快排是怎么排序的。
平均复杂度,最坏复杂度,什么时候发生
给你一个表达式求出它的值
如果用二叉树实现呢
你对B树了解吗
B 树呢
Linux有多少种IO模型
你知道哪些阻塞IO
说说哪些非阻塞IO
epoll的特点是什么
TCP和UDP的区别
用什么保证TCP的安全性的
滑动窗口干什么的怎么做的
慢启动是什么 干什么的
TCP报文头都保存了哪些数据
数据库了解么
做过什么项目么
是自己用的还是做的卖钱的
你的优势在什么方面
JAVA是什么水平
参加过什么竞赛么 得了什么奖
在你们专业成绩怎么样
然后我问了一下对我的建议

全程17分钟。。。

2017/03/16晚上19:50二面电话
我正一个人在泉城***思考人生顺便找地方吃烧烤,突然二面的电话就打来了。
然后我说我在外面不方便就让约了第二天的面试,不过听说阿里很能鸽一直担心再也想不起来我
2017/03/17晚上19:00二面
我正吃着饭突然来电话了我就赶紧插上耳机接电话跑去705了
刚开始没让自我介绍就直接问我acm得了什么奖。。。
问我省级的怎么样区域赛怎么样,排名大约在什么位置
acm训练大约占用你多长时间,什么驱动着你打acm,和队友经常交流吗
让你实现一个set你底层会用什么数据结构
除了红黑树还能用什么
说说红黑树和hash分别插入和查询的复杂度
快速排序和归并排序分别是怎么实现的(可能是我表述不清楚归并讲了很久)
快排和归并的算法复杂度是怎么样的,哪个是稳定的
怎么不用递归实现二叉树中序遍历
怎么在n^2复杂度下求最小生成树。。。
32位的系统能开拓的内存最多有多大
进程有哪些状态,不同状态相互之间是怎么切换的
操作系统怎么通知就绪的进程运行
管道的定义
举个例子说说管道有什么用
线程和进程的区别
怎么查看你现在运行的进程
怎么查看你现在运行的线程
怎么查看当前一个存满IP的文件的某个IP的出现次数
(我直接说grep处理ip然后管道wc -l什么的面试官说我解决的好详细)
你这两个小玩具是学校作业还是自己想做的
你写过http服务器,应该对网络比较熟悉吧
说说OSI七层协议都有哪些
mac地址、IP地址、端口分别在哪层
以太网中一个IP发给另一个要经过什么过程
说一下三次握手的过程
如果客户的最后一个ack丢失了客户端和服务端分别会做出什么动作
服务端超时重发syn的时间是多少
对HTTP2.0有什么看法(我第一次知道原来已经出2.0了,哇很难受
http的状态码都有哪些,从3开头的到5开头的都说一下
说说C 面向对象的三大特性
你刚才一直提到虚函数,说说虚函数吧
C 的模板是怎么实现的
你打算就业还是读研?为什么不选择读个研
你想去的城市是什么?为什么
你有女朋友么
平时都喜欢看些什么技术类的书籍
没让我问问题我强行问了两个
问了一个对我的建议
你们部门都是java我是C 的你对这个有什么看法

一共40分钟,面试官说基础不错,一般在校都没有项目以后要多接触一些。
开始漫无止境的等三面,加强一下网络。。。

2017/03/27中午12:14三面
突然来电话我就赶紧接了一下听到是男声觉得应该是技术面就跑出去找空教室了,705进不去,跑到七楼西头楼梯口面试官说回声太大让我再找个地方= =
跑到八楼发现教室也都被用了,最后跑到九楼的茶几上面试了。。。
面试官先是说了一下自己的花名然后让我自我介绍,喘着说了几句自我介绍。。
先是问学校这些专业课的成绩都是多少
你都知道哪些数据结构
他们的底层是怎么实现的
Vector是怎么实现的
Vector是怎么扩张的
Vector和List分别适合在什么场景下用
Set是怎么实现的
红黑树的五个性质和操作复杂度
平衡二叉树的性质,怎么编程判断是不是
常用排序有哪些,哪些是nlogn的
堆排序是怎么操作的
怎么从100W个数里找出最大的100个
给你一个很多单词的字典,做一些查询单词是否存在的操作
如果这个字典文件有10T怎么查询
如果让你用多线程优化你会在哪里优化
怎么从n-1个数的乱序数组中找出不存在的那个数
(说了一个hash和一个交换下标,面试官说完有数学方法才突然想到O(1)的方法。。。
怎么从n-2个数的乱序数组中找出不存在的两个数
(因为有了上一问数学方法的铺垫这题直接就想到完全平方公式啦
一个数乘以7怎么操作计算机运行最快
(我***的说了个(1<<2) (1<<1) 1,面试官懵逼了问我你知道移位为什么不直接(1<<3)-1。。.
C 里面常用的多线程的函数,读写文件的函数
线程池懂吗
你刚才说到了生产者消费者,你说说你都知道那些模型。。会写单例模式吗
(设计模式根本不了解。。。而且是自己主动做死,了解少的东西一定不要主动提起
进程和线程的区别
死锁的条件和解决方法
给资源加锁的常用方法
在浏览器输入菜鸟网络的地址会发生什么
平时对开源软件和框架有关注吗
是读源码还是看书,都是看的什么书
你看了源码觉得Nginx到底好在哪里
平时在哪里了解和学习新的技术
以后想从事的方向是什么
然后我问了一下建议
问了一下后面还有没有技术面,面试官说还要和其他面试官讨论之后决定

算上中间跑路的时间一共37分钟,这一面算法题目问的挺多的,那几个题我都是给了好几种做法并且分析了他们的优劣,感觉这么做还不错,因为这样面试官可以从里面找到他想要的答案甚至他没想到的更好的答案,而且如果一下没想到最优解的话面试官可能还会给一些优化的提示。最后面试官给我建议说我算法基础比较好让我多学习了解课外知识拓宽知识面
不知道下一面还是不是技术面,继续撸STL吧。。。抽空看一下C 并发编程实战那本书

2017/04/14下午去京东面试的高铁上,看到群里发了第一批offer,我看了一下我的状态,已回绝
一个半月的阿里面试结束了,还是不合适吧。面试官人都很好,给了我这么多机会。不用再担惊受怕的等电话了。。。

饿了么:

2017/03/14下午15:43一面
先是说
自我介绍中说到了最近正在看Nginx源码
Nginx为什么性能比较好?
算法题:从一堆重复的数中找出不重复的两个数
ACM得到的最高的奖是什么
进程间通信都有哪些,区别和特点
讲讲他们分别适用于哪些环境
(换了一个面试官)
ACM是什么类型的比赛(尴尬,刚才那个面试官帮我解释了一下
把机器A的文件传到机器B你用什么传
如果机器B有1W台呢你那个方法有什么缺点
断点续传你怎么弄
(面试官换回来)
什么restful的问题,我表示不了解
经常用GitHub么,说说常用操作
对GitHub的实现机制有多少了解
Python水平怎么样
auto_ptr和shared_ptr的区别
分别适用于什么情况
给你一个任务你怎么开始写
要是流程图都画好了只让你负责一个小模块呢
说说你对面向对象三大特性的理解
多态是怎么样的
入职之后要现学现用很多东西你愿意么
你Codeforces多少分。。。BC什么颜色
有什么想问的么

一面27分钟,感觉挺稳的。
面试官人很好,在我回答结束问题之后还会帮我补充给我讲
在问我没接触到的东西的时候都是说不了解没关系

紧接着16:57就打来了二面电话
我还以为是HR,没想到直接就开始问了
你GitHub上的项目都是你自己做的么
这个Web服务器代码都是你写的么
说说你的线程池的实现
说说你这个服务器主要的过程
你的Python什么水平
你的Python爬虫在GitHub上么我看看
操作系统在执行过一些程序之后想回滚到之前的状态怎么办
如果不让你用现成的自己设计呢
不要求一定要用什么数据结构。。实现就行
然后我说了像数据库undo那样设计
他说你说的是用xxx方法吗,那样也行但是是指数级的有什么更好的办法么
没听懂他说的xxx是什么就说嗯是是,最后憋出来一个打日志的方案他好像满意了
你知道哪些和GitHub相似的东西么
本地的版本控制系统你知道哪些呢
你想从事什么岗位,运维还是开发还是什么什么的记不清了
你用的什么操作系统,linux大约用了几年了
为什么用linux
问了我一个文件是干嘛的,两遍我都没听清什么文件就放弃了(后来猜是/etc/resolv.conf)
查看网络ip这些用什么命令
除了Ubuntu还用过什么发行版本
redhat下怎么查看安装程序,Ubuntu呢
劝你以后用linux不要再用图形界面了(尴尬。。。
你入职要学一些新语言,愿意么
打算什么时候入职,可以实习到什么时候,现在大几。。。(???
你觉得你算法和数据结构不错,基础不是很好。。等通知吧

二面20分钟,回答的很差。。。特别是后半段我一直怀疑我是不是把开发说成了运维
面试官全程比较冷,后面说了几次基础不好搞得我比较懵,面完赶紧把简历上的编程环境linux删掉了
我正在感叹到手的offer飞走了,帮我内推的人告诉我他得到消息我过了,等HR电话就行了
拿到了offer,但是我不想这么快就决定去哪而且岗位有点偏运维,纠结很久之后放弃了offer。

京东

京东效率很高,笔试之后紧接着没过几天就出结果了。决定去刚一波现场。
12号HR打电话,地点被改成了京东公司,然后我问了一下流程,他说连着面完两面不用在北京等着
于是订了高铁票跑到Airbnb上订了一个附近的房间。
14号傍晚到,找入住的地方找了很久,不过环境还是挺好的。
房主老公晚上十点多才回来,我就想不会是程序员吧= =然后去Airbnb上看了一下职业信息是headhunter(紧张
当了一晚上的朝阳群众第二天打了个车就过去面试地点了,员工休息室人很多,好几个桌子都在同时面试,我在旁边偷听了一会貌似都是JAVA的,C 的是在办公室面试
到了11点左右小哥喊我去一面了,结果前一个人还没结束= =我就去了另一个休息室等了一下顺便参观了一下他们的工作环境
面试开始之后感觉面试官比我还紧张,貌似手机上有个提纲,问题都是对着那上面问的,时不时的就看一下
没有自我介绍,把简历扫了一遍就开始问了:
1.有过socket编程经历么(简历项目第一个不就是HTTP服务器么= =
2.说说C 虚函数多态实现的机制
3.析构函数要用虚函数修饰么,为什么
4.拷贝构造函数在什么时候会被调用
5.了解内存对齐么,然后写了一个struct让画内存布局,补齐的地方也画上
6.为什么要内存对齐,提高效率的原理是什么
7.三次握手四次挥手的过程和状态在纸上画一下
8.TCP和HTTP协议的keep-alive都懂么
8.为什么二叉搜索树效率高,描述一下怎么搜索一个数据的(我想直接写代码都不让我写= =
9.平时都写什么排序,让你给100W的名字你用什么排序(没听懂是什么意思,就说快排,因为好写。。他说实际堆不用递归比较好
10.哈希是怎么寻址的(这个还是没大懂什么意思,一直说内存映射什么的,后来说了挺久才明白问的是怎么写哈希函数
11.问了两个简单的shell命令,可能是觉得问这个没意思= =就不问了
12.写多线程程序要考虑什么,线程不安全是什么意思,两个给i自增5000次的线程并行为什么结果小于10000
13.让你实现map你会用什么数据结构
然后就让我去休息室等二面了,后来说让我先去吃饭吧,下午再接着面。

中午回来去休息室等了半小时左右,被小哥带到了二面的地方,面试官比较和善,进去就主动握手。
上来就问项目,让我把HTTP服务器的流程说一下,具体的静态动态执行过程和方法讲一下
这个是你自己写的么,有参考别的什么么,我只能说参考了CSAPP= =
问我做过什么工程没有,跟着导师什么的,我说没有,不过这个STL库写完会是个不小的项目
问我出于什么目的要写这个,我就说通过牺牲一点空间的方法让STL更快,然后加上一些std没有的常用的数据结构算法什么的
然后就问我矩阵运算是自己写吗还是参考别的我说是自己写,问我字符串处理是什么,我说KMP,字典树,AC自动机,后缀数组这些。
后来没得聊了就说起比赛来了
让我说一个去年省赛的最难的题目,我哪里还记得就说了那个最短路的铜牌题,然后问4C最难实现的题,因为最后一题没看我就说了倒数第二题(还是最短路= =
他问我最短路怎么优化,我就把优先队列优化的dijkstra写在纸上给他讲了一遍(其实我平时都是用SPFA,然而没办法证明复杂度就没敢说)。讲了挺久的他都听明白了。
面试官好像挺开心的,问了一下实习时间什么的,问了一下Python水平,我说写过一些爬虫什么的,他好像记在简历上了。
我问他能过么,他说后面还要面很多人才能决定,然后他比较耐心的给我介绍了一下这些部门都是做什么的
我说想做并发编程网络这块,他有点惊讶= =说感觉我更适合做算法优化什么的。。。最后说我还会有一轮人事的面试。。咦难道这是透露什么么。。
让我逛一下鸟巢水立方什么的再走,让我赶紧买回去的高铁票什么的,送到电梯才回去,人真的很好啊!

17号上午看状态还是待安排复试,下午变成了复试中,再过一会变成了待安排HR面试。

19号上午九点半HR面试,这次的地点变成那个酒店了,然后在酒店等待室和一个NEU的研究生聊了一会,问了一些读研的情况和我之前认识的两个他们学校的本科生,他说他们的导师挺好的可以学习自己喜欢的东西,我之前见过的他们学校的学生都很厉害。后来大约10点左右我就被叫出去了。
HR说我的简历写得太简单了,给我三分钟自我介绍一下。。然后我还是往常一样就简单说了几句,HR姐姐就笑了,然后我说还是你来问吧
问题都是比较常规的,为什么不考研,我说是因为无心科研就早点出来了(其实是我成绩太差考不上2333
对什么岗位感兴趣,兴趣爱好是什么,我说篮球和打游戏,问我喜欢玩什么游戏,我脑中迅速过了一遍游戏圈的鄙视链,最后说网游单机什么都玩= =
和室友关系怎么样,他们都是什么打算,关系最好的人是谁,对京东的了解,对云的看法,家在哪,打算在哪发展,还有其他offer么,京东挂了你会怎么办。
讲道理感觉面HR比技术面累。。虽然面试全程HR都是笑着的,但是总是感觉每句话都有套路。。最后问问题的时候我问了一句HR面还刷人么,HR姐姐说不刷人还要我们这个职业干嘛(瑟瑟发抖
面试结束之后状态一直没有变成HR面试结束我还以为GG了,20号晚上十点多看了一下状态更新了。也许这个HR也是面向deadline工作的吧。。。

25号晚上收到offer,云计算部门研发工程师

好未来

好未来4月20号约面试,说是因为ACM经历所以免笔试了,约到了25号上午十点。
25号上午10:00,HR准时给我打电话让我上线视频面试,上线看到了面试官,大约三四十的中年人吧,看起来就是搞技术的。
先是自我介绍。
介绍一下这个STL和SGI相比有什么亮点。
说一下Vector是怎么实现的
介绍一下这个WebServer。
说是要问一下算法和数据结构
介绍一下基础的数据结构有哪些
队列和栈的区别,链表和数组的区别
在尾部删除一个数,用链表还是数组
怎么实现一个二叉搜索树
怎么让二叉搜索树效率尽可能的高
map底层是什么,写过红黑树么
初始有1e7个字符串,查询时输入一个字符串输出最相似的K个(相似指编辑距离最小
我给的做法是对每个字符串hash,hash函数能让相似的字符串差值尽量小,然后查询字符串的时候求abs最小的K个,面完之后查了一下发现了一个叫simhash的东西
Python什么水平
还有什么问题要问么

第一次视频面试,旁边有编辑器的界面但是没有让我写代码,问了一下工作职责什么的,然后问了一下那个场景题还有什么更好的做法么,他说目前没有他们就这么做的。。。因为都是算法数据结构感觉挺稳的,然后他说下一面的话就会是人事了。


因为我是本科生,所以很多问题可能比研究生问的要简单一些,相对来说基础更重要。我从去年12月份左右开始把《C primer》读了一遍,课后题都做了,仔细读了一遍《深入理解计算机系统》,lab做了几个,《TCP/IP协议簇》选了一些章节细读
《Effective C 》《Effective Modern C 》《深入探索C 对象模型》粗略看了一遍,《STL源码剖析》就不说了因为正在写,《UNP》和《APUE》随便翻了一遍,牛客网上剑指Offer的66题做完了,算法竞赛题型和面试题还是挺不一样的,切完这66题感觉姿势水平得到了很大的提高。
我觉得我这段时间主要的学习是靠大家的面经补知识点,看到有什么不熟悉的就去找资料深入一下,感觉这样还是进步挺快的。总之安心的提升自己的水平就好了,找工作这种事还是挺随缘的。面试的时候要会带节奏,比如问到一些不擅长的地方不要尬聊,往自己擅长的地方引一下,不会的就直说没了解,别乱猜答案,面试官不会因为一个地方没接触过就挂人的。
因为想早点定下来找个地方好好补充学习一下,所以春招实习就这样结束了,厉害的人有很多,我只希望这篇能给正在面试的同学提供一点参考,给下一届情况相似的学弟学妹一些建议。

#阿里巴巴##京东##C++工程师#
全部评论
写的很用心,感谢楼主~
1 回复
分享
发布于 2017-04-26 16:59
写得很棒,赞! 楼主好厉害
点赞 回复
分享
发布于 2017-04-26 17:27
阿里巴巴
校招火热招聘中
官网直投
谢谢楼主
点赞 回复
分享
发布于 2017-04-26 23:56
生无可恋
点赞 回复
分享
发布于 2017-04-27 09:38
跪着看完
点赞 回复
分享
发布于 2017-04-28 18:20
强呀。
点赞 回复
分享
发布于 2017-04-28 19:29
膜拜
点赞 回复
分享
发布于 2017-05-01 16:14
很强
点赞 回复
分享
发布于 2017-05-09 19:44
楼主济南大学的?
点赞 回复
分享
发布于 2017-05-21 21:55
楼主很厉害呀,我现在也是你这个模式,一边实习一边在看一些面经,然后查漏补缺。
点赞 回复
分享
发布于 2017-06-05 08:43
算法竞赛拿过啥奖?
点赞 回复
分享
发布于 2018-10-16 03:07

相关推荐

44 223 评论
分享
牛客网
牛客企业服务