腾讯,百度,京东,美团,VIVO,VIPKID面经和一些感想

一直在犹豫这个放面经到底好不好,但是犹豫最近发生的一些事,觉得有些话还是要现在说出来,给各位牛油们一些激励。

内推基本结束之后,由于妹子这边找工作困难比较多,目前就主要帮妹子投简历,总结编程题,总结测开面经,跑线下宣讲会。

有些话想给程序媛们说一下。不管怎么样,明年你都会变成一位职场女性,即是今天被diss的再惨,擦干眼泪,妈的!下一场!这两个月的辛苦,带给你的不仅是offer和技术上的成长,更有心态上的成熟和自控力的加强。

有些话想给暂时不如意的非科班兄弟们说一下。如果说基础,我们可能不如科班同学扎实,但是我们能做的就是调整好自己的心态,总有神仙在打架,咱管不着,他们在上面飞,我们走好自己的路,如果成功再接再厉,如果失败,没关系,老子又不是专门搞这个的,后面机会还多。
每一次失败之后,我总在自我调节,作为一个男人,这点压力,这点失败,只要不要了老子的命,老子就和你们刚到底!
只有这样,等自己到了上有老,下有小的时候,一大家子人压力都在你身上的时候,你才能更加从容的应对。


下面上干货:
求职方向:C++后台(非科班)
本人从今年三月份才开始打算找互联网公司,四月份确定后台方向。其实四月份的时候,我连socket,bind,listen是啥都不知道。但在找好方向之后,就是放手去搞。其中重点看的知识点,就是之前老牛油们的面试高频问题。

建议:如果面经已经看得差不多了,感觉没什么新鲜玩意了,但还没有如意offer的同学,就可以看看书,复习复习项目,刷刷题。如果现在看面经还觉得问题很多,那就抓紧看面经,牛客的面经真的很赞,加精的确实精。

书籍推荐:
linux方向:《鸟哥的Linux私房菜-基础篇》、《shell编程从入门到精通》
操作系统:《操作系统精髓与设计原理》
后台方向:《Linux多线程服务端编程:使用muduo》、《Linux高性能服务端编程》、《后台开发核心技术与应用》
数据库:《SQL必知必会》、《高性能MySQL》
网络方向:《TCPIP网络编程》、《TCP-IP详解:卷一》、《UNIX网络编程》、《图解HTTP》
C++语言:《Primer c++》、《Effective C++》、《STL源码》、《深度探索C++模型》

就这几个月的时间,书不可能都看完,但是看到面经上的问题,和自己面试过程中回答的不好的问题,我都会去百度找答案,发现很多博客也是在抄书,最后干脆自己直接从书上找答案吧。
但是APUE,UNP,TCP详解,STL源码这几本圣经还是要从头到尾看一下。如果现在觉得刷面经对自己提升慢了,可以回过头从书中找答案。

实习腾讯一面:
1、自我介绍
2、是否用过vector,map。vector和map的底层实现?vector填充元素满了之后怎么办?
3、TCP,UDP区别?TCP三次握手?time_wait发生在哪里?为什么需要等待两分钟?边界性什么意思?
4、描述一下快排,复杂度?最好复杂度?最差复杂度?分别对应什么情况。
5、epoll和poll 区别。epoll底层实现是什么?epoll一定比poll好么?epoll的两种工作模式?
6、平时怎么调试C++?linux 下常用命令?查看当前进程端口?gdb的常用命令,core dump怎么办?
7、你有什么问题要问的?(面试官嘱咐,对于问题需要仔细探究其原理。)

内推腾讯二面(一面当时忘记了):
1、介绍自己的项目。
2、Reactor怎么回事?那你为什么要用Reactor模式?
3、epoll函数怎么用的?
4、如果现在打开你的网站慢了,你觉得哪些地方会有问题?
5、如果给你一个数组,里面的数是0-N,你有哪些方法实现,空间复杂度和时间复杂度都是最低。

内推腾讯三面:
1、首先进行一个自我介绍吧。
2、C++网络库用在哪里?如何理解阻塞和非阻塞?同步和非同步?
3、了解堆排序的原理么?如何进行堆排序的?手写一个模板类的堆排序。
4、如果让你用线性空间,只知道头结点,如何存储一个key-value数据结构,让他时间复杂度都尽量低。
5、我有n个节点m个任务,每个任务可以访问若干个节点,每个节点有自己的上限流量,也有不同的价钱,
每个任务可以拆分成不同大小的任务,分给不同节点去完成。如何保证总价最低。
最后这个问题我是真的没懂,不知道题是不是这个意思,一般的贪心,动态规划都不行,大家大概看一下。

内推腾讯四面:
1、介绍自己的项目。
2、你都考虑过哪些模式?Preactor和Reactor模式区别?
3、进行过测试么?能达到一个什么样的性能?
4、性能的瓶颈是在哪里?top命令中三个值含义是什么?CPU负载是什么?单核可能超过1么?
5、怎么用你这个库,几个基本的调用API是什么?
6、软件语言上写的问题?硬件资源的问题?
7、最高多少的QPS?有么有看过别人的网络库?他们是怎么写的?
8、局域网监控项目是什么?用在哪里?
9、实验室项目做什么?简单的讲一下?
10、你有什么要问的?
部门大佬最后给的建议:
1、看看自己服务器瓶颈是在软件那个部分?
2、将最终错误落实在硬件上。
3、多看看别人网络库是怎么写的。

内推百度SRE一面:
1、首先自我介绍
2、说一下从输入www.baidu.com到响应,到底经过了什么。每一个协议分别是什么。
3、DNS怎么回事,如何查找对应的IP地址。DNS用什么协议。广播是怎么回事?
4、如果手机查看网页,响应变慢了,原因会有哪些。
5、Linux时间系统到底怎么回事,如何确定。网络库中定时机制怎么回事。Linux时间精度多少?如何统一很多机器之间的时间。
6、你了解什么网络攻击方式?
7、进程,线程对于CPU负载来说,区别是什么。
8、12个core,多少进程和线程可以让core达到90以上?
9、排序算法中,熟悉哪一个?什么时候适合用冒泡?什么时候适合用快排?快排和堆排区别?STL中排序用的哪一个?
10、给你64G int类型数据,32G内存,12个core,如何快速高性能对这64G数据进行排序?

内推百度SRE二面:
1、首先自我介绍?
2、你觉得那个项目有难度,我问你?
a、什么是reactor模式?
b、你觉得你的网络库有什么作用?可以用来干什么?
c、多线程有什么优势?多线程怎么实现通信?多线程的声明周期是什么?
d、锁是怎么回事?底层是什么?读写锁怎么回事?
e、还是昨天的问题?十二core的计算机,和线程有什么关系?你怎么发挥它这个性能?
f、C++11新特性?你用到了哪些?干什么用?
3、四次挥手是什么?HTTP服务器是谁先断开连接?CLOSE_WAIT是怎么回事?如何解决该问题?TCP拥塞控制怎么回事?
4、ping是怎么回事?ICMP是什么?介绍一下ICMP?哪一层的协议?
5、怎么进行路由器探活,寻址?路由器下一跳如果断了,怎么知道?让你自己设计一个路由器协议,怎么设计?哪一层?探活周期?
6、了解操作系统么?虚拟内存是什么?地址映射怎么回事?如果内存都是无限大的可以不用虚拟内存么?
7、给你一个树,不知道每个节点相关的子节点,父节点,可以知道左子树,和兄弟节点。将他们存储在文本中,如何从文本恢复这个树的整个结构?
8、你有什么要问我的么?

内推百度系统部一面:
1、首先自我介绍。
2、能说一下什么是Reactor模式么?那和Preactor有什么区别呢?
3、网站压测为什么会有错误呢?错误在哪里?如何改进呢?如何查看IO,如何查看netstat。如何查看负载。
4、如果你的内存不用,但是常用的数据结构不能存储你当前的数据,怎么办?LRU
5、vector<int>的迭代器什么情况下会失效。
6、map和list有什么区别?底层数据结构是什么?
7、红黑树和B+树的区别?分别有什么优点,各自操作的复杂度?
8、tcp和udp有什么特点?tcp和udp适用哪些场景?调用的API分别是哪些?
9、tcp状态机了解哪些?close_wait和time_wait分别怎么回事?
10、HTTP首部,你知道哪些内容?cookie和fashion分别是什么?expire分别是什么?
11、epoll函数和select比有哪些优点?epoll底层实现是怎么回事?ET和LT工作模式?优缺点?
12、C++语言虚函数?用处?缺点?哪些应该用,哪些不能用?
13、四种转换模式分别是什么?inline函数的优缺点?
14、new和malloc的区别?new的重载用在哪些情况?
15、数据库用在哪里?如何优化?索引怎么回事?
16、再问两个数据结构题:最大连续子数组和?100亿数据,找最大的N个数据?

内推百度系统部二面:
1、首先自我介绍。
2、介绍一下自己的项目。每个项目里,每个人都负责什么内容?
3、如何理解阻塞和非阻塞?同步和异步?
4、HTTP服务器,完成了哪些功能?POST,GET。
5、有过什么方式改进自己的HTTP服务器?如何进行测试的?
6、HTTP服务器头部你了解哪些关键字?200,206,302,404分别是什么意思?
6、TCP协议和IP协议的区别?
7、TCP如何进行拥塞控制?RTT怎么回事?
8、如果让你重新设计一个TCP协议,你该怎么设计?针对无线卫星链路,带宽资源丰富,但是经常丢帧。

内推百度系统部三面:
1、首先自我介绍,主要想听到你本科和研究生期间做了些什么?让自己分别在哪些方面有所成长。
2、为什么要做这里两个项目呢?
3、介绍一下你这个网络库吧。最终有没有使用在什么地方?硬件的配置是什么样子?
4、有没有进行过测试?webbench里面的错误代表什么呢?503是如何返回的?
5、错误概率是怎么回事?你觉得是哪些方面引起你这个错误的?
6、实验室的项目都在做什么?用普通的语言组织一下,给我讲清楚。
7、你有什么要问我的么?

内推京东云一面:
1、首先自我介绍
2、介绍一下项目?局域网监控?
3、UDP和TCP区别?陈硕网络库怎么实现?TCP为什么需要三次握手,四次挥手?
4、TCP状态机,timewait和closewait是怎么回事?为什么是2MSL?
5、你怎么理解非阻塞?怎么设置?errno线程安全么?C++重载函数const可以作为重载依据么。
6、epoll函数理解?两种工作模式区别?
7、线程和进程的区别?线程共享哪些内存?
8、进程间通信方式?PIPE怎么回事?
9、两种信号不能屏蔽?子进程继承父进程的什么?fork,vfork?COW?
10、孤儿进程?僵尸进程?
11、进程sigaction和signal区别?
12、多线程编程,静态管理,读写锁的实现?compare_swap函数?CAS?
13、死锁的四个必要条件?
14、TCP的拥塞控制?
15、编程题,求两个链表的差别。

内推京东云二面:
1、首先自我介绍。
2、如何设计一个hash表?你会考虑哪些因素?哈希函数怎么选择?
3、hash表的容量你怎么设计,负载因子怎么考虑?
4、如果有一个数据库,大量的读和和少量的写,你会怎么处理?考虑哪些因素?
5、如果要加锁是在数据库加锁好一些,还是在服务端直接加锁?
6、数据库联合索引的命中问题?如何查看是否命中。
7、B+数和红黑树的区别?Redis移植性怎么做?
8、C++怎么由代码转换成二进制数据?动态链接是怎么回事?每个过程都有些什么工作?
9、出了一道链表两两反转的问题。现场写代码。

内推美团一面:
1、首先自我介绍
2、了解Web层开发?数据库索引了解么?聚簇索引,非聚簇索引?索引分类?
3、了解数据库都由哪些引擎?分别有什么区别和使用场景?
4、了解分布式?高可用?如何保证节点集群的同步?Nginx了解过么?
5、对象的重写和重载?
6、设计模式里面,单例模式?实现单例模式的双重校验。
7、epoll函数怎么理解?epoll函数在别的哪些地方有用到?
8、手撕:两个链表的重合第一个节点。

内推美团二面:
1、首先自我介绍
2、数据库基本操作?如何建立索引?还有一些数据库基本问题。
3、手撕:有时间区间,判断昨天送外卖的峰值。(这个题做了快三十分钟,主要是外卖订单可能是前天的,昨天的或者今天的)。
4、平时都怎么学习?
5、自己的博客和个人网站有么?
6、你有什么要问我的?

内推美团三面:
1、首先自我介绍一下。
2、介绍一下自己的项目。(疯狂怼项目了,连实验室的都问了,楼主搞通信的,面试官让我用白话给面试官讲了一些技术点。)
3、web方面的应用多么,问了问HTTP?
4、智力题:一天24小时,时针和分针会重合几次?
5、类似于百度地图,如何求A地到B地的路径,刚开始被面试官套路了,用各种分类讨论了半天,最后才发觉面试官想问的是有向图求最短路径?说了一下方法是什么?迪杰斯特拉算法作用,复杂度?
6、你有什么问题要问我的?


内推VIPKID一面:
1、介绍一下自己的项目。
2、自己选择方向问题。
3、说一下三次握手?
4、说一下什么是TIME_WAIT,什么是CLOSE_WAIT,CLOSE_WAIT会遇到什么问题?
5、说一下创建socket时候,如何创建阻塞和非阻塞的,几种方法?listen函数怎么调用,参数的含义。
6、说一下epoll和select是什么?相比优缺点是什么?epoll两种工作模式?效率对比。
7、问一下C++的知识?static特性?const特性?引用和指针区别?
8、说一下什么事override和overload?virtual什么意思?virtual =0什么意思?
9、你知道哪些排序?说出复杂度?哪些是稳定,哪些不是稳定?
10、你有什么要问我的?


内推VIPKID二面:
1、首先自我介绍。
2、C++默认构造函数怎么回事?什么时候会用到默认构造函数?
3、C++的继承是怎么回事?
4、shell常用么?awk使用方法?如何读取第一百行到第二百行数据?
5、说一下select和epoll的区别?epoll的两种工作模式?
6、select和epoll底层实现,数据结构有什么区别呢?
7、如何根据前序遍历和中序遍历恢复二叉树?必要条件是什么?如果值重复,那怎么处理?
8、了解LRU算法么?叙述一下?LRU怎么实现?按照时间来实现?
9、如果是在LRU加入频次这个影响因素怎么解决这个问题呢?
内推OPPO一面:
1、自我介绍
2、介绍一下你做的和后端有关的项目。
3、介绍一下Reactor网络库。线程池怎么实现?怎么用?用过的和没有用过的怎么区分?
4、多线程和多进程区别?用的什么锁?怎么解决共享变量问题?你会怎么选择用多线程还是多进程?
进程间通信方式,你知道几个?
5、C++语言虚函数?纯虚函数?栈和堆的区别?哪些变量在堆,哪些变量在栈?
6、了解单例模式么?一般会在什么情形下用到?
7、一千瓶药,只有一个毒药,若干小白鼠,小白鼠吃了毒药第二天才回死亡,问你至少需要多少只小白鼠?
8、100万集合数据,怎么找第二个,怎么找第k个?
9、利用shell写一个文字处理脚本,如何只获取第三行数据?shell和pthyon用的多不多?分布式有什么理解?
10、你有什么问题?

内推VIVO一面:
1、首先自我介绍一下。
2、学过哪些和计算机有关的课程。操作系统?网络?汇编?
3、挑一个你觉得难度大的项目,讲一下?为什么做这个项目?
4、说一下你项目中对于多线程的控制方法?如何解决竟态问题?
5、讲一下你对网络编程的理解。
6、讲一下,你对C++面向对象的理解?C++内存分布是怎么分布?
7、讲一下资源泄露控制?你对智能指针底层实现?
8、页面置换?虚拟内存?
9、你还有什么要问的么?

内推VIVOHR面:
1、首先自我介绍。
2、为什么想做软件开发?什么时候确定的这个目标?
3、一般通过那种方式学习效率高?
4、你觉得你和计算机专业相比有什么优势呢?
5、你做过这些项目,哪些对自己的提升比较高?为什么?
6、你最近都在看什么书?
7、可以说一下你的本科成绩和研究生成绩么?四六级通过了么?
8、你还有什么问题么?

其他的HR面我没写,感觉参考意义不大。华为感觉就是讲项目,没什么实际问题。
不过最后想和大家分享一下华为优招总监面的一个问题。
总监:如果我今天不让你通过,你会花多长时间调整自己。
我:没关系,我失败的次数已经很多了,如果这次失败的话,我会用一天时间调整自己的心态,总结失败经验,然后继续准备,避免以后继续犯同样的错误。























最最后再说一句,牛客的面经真的很重要,大家可以多刷刷。
最最最后再问一句,牛客管理员们,大佬们,能给小弟加个鸡腿么。

#腾讯##百度##京东##面经##C++工程师##秋招##VIPKID#
全部评论
学习能力爆表,我去年10月开始学的,比你差远了
点赞 回复 分享
发布于 2018-09-14 10:26
写的好极了!!给加鸡腿了!🍖🍖🍖
点赞 回复 分享
发布于 2018-09-14 10:37
棒,你的妹子好幸福
点赞 回复 分享
发布于 2018-09-14 11:21
手动点赞
点赞 回复 分享
发布于 2018-09-14 11:40
收藏加赞
点赞 回复 分享
发布于 2018-09-14 23:39
大佬,是研究生才问这么多难问题吗。。。
点赞 回复 分享
发布于 2018-09-15 00:08
今天下午面百度,又去送死一波。。。说实话,并不想去。。。
点赞 回复 分享
发布于 2018-09-15 09:20
学习能力暴强啊老哥,这才几个月,这么多书全看了,佩服
点赞 回复 分享
发布于 2018-09-19 23:44

相关推荐

评论
30
257
分享
牛客网
牛客企业服务