实习之路-字节跳动后端开发实习生 面经 已口头offer
楼主是非科班,真的是一点和计算机相关的都没有,然后自学了半年,一度担心找不到实习,晚上经常失眠,好在字节霸霸最终收了我。
一直逛牛客的面经,这次来回馈下牛客。
时间线----------------------------------------
3月初,没准备好,但也投了各大厂的实习,其中
百度(emm,笔试挂,选择填空都不会)
阿里(一面挂,面试官又听我说是非科班之后就直接和我谈人生,一个问题也不问我。。。。)
腾讯(一面挂,只问了几个基础问题,当时连字节对齐都不知道。。。然后出了个大数相乘的算法题。。。。不会)
网易(笔试挂)
害,深深的感到了自己的菜,然后就继续好好准备,苦刷算法题,还有复习基础等等
5月末,感觉准备的差不多了,此时lc刷了270,剑指刷完了,然后投实习。
收到面试的深信服、字节跳动
深信服:疯狂怼c++基础知识。。。。。。。把我怼郁闷了,我简历上写了那么多其他知识,还有项目,居然都不问,只盯着c++怼我
一面:(当时已经过了字节的一面,所以对深信服就很佛系,没准备)
1.堆和栈的区别
2.虚函数
3.纯虚函数,以及怎么声明纯虚函数,纯虚函数的继承类必须实现这个纯虚函数吗
4.如何判断链表有环、说了快慢指针一次走两步,又反问,可不可以走三步???????(what?)
5.介绍下vector,如何扩容的,为什么
6.链表的复杂度,以及和数组的区别
7.两个队列实现一共栈(估计他说错了,一个队列就行)
8.emmm问了好多,基本都是c++的知识,我都记不清了
感想:一共面了我四十多分钟,问了好多c++的基础知识,害,我记不清了,感觉如果只看primer顶不住深信服的考察;而且每次回答完,人都会反问我,你确定吗? 把我反问郁闷了,问的问题也是,感觉基本上都问到我的盲点了(因为c++我都几个月没怎么看了),不过也还好,毕竟我都不想做纯c的开发,还是想做后端的那些技术,所以挂了也蛮佛系。
字节跳动:(面试体验极好)
一面:(55分钟)
没问项目,直接怼简历上的基础知识。
c++:
1.虚函数、虚函数表
2.平时用什么工具查看内存泄露
3.出了个题,问有没有内存泄露(不会)
4.static_cast了解吗(不了解)
5.private、protect、public区别
操作系统:
1.用户态、内核态
2.进程线程区别
3.线程的通讯
4.进程的通讯
5.进程怎么共享内存的(不了解)
6.进程线程切换的代价
网络:
1.三次握手、为什么多了第三次
2.四次挥手、多了哪一次、为什么
3.http协议了解吗?(不是很了解)
4.常见的http的状态码
5.http和https的区别
6.tcp怎么保证可靠传输
7.什么是粘包,怎么设计避免粘包
8.get、post了解吗(不了解)
数据结构:
1.二叉树的性质,以及满二叉树多少个节点
2.avl树和红黑树
mysql:
1.b树和b+树
2.什么是联合索引
3.聚簇索引和非聚簇索引
4.mysql的锁
5.innodb和myisam两种引擎的区别
6.悲观锁和乐观锁
7.数据库联合查询
8.出了个索引的题(我说只熟悉理论,实操不会)
设计模式:
1.单例模式
2.介绍单例模式里两种模式的区别
linux命令:
1.linux查看进程所占内存命令
2.怎么查看cpu占有率
算法题:lc112 验证二叉树路径和
二面:(50分钟)
全程怼项目。
1.介绍epoll和select区别
2.为什么用LT模式
3.ET模式为什么比LT模式效率高
4.线程池的作用
5.项目是怎么同步互斥的
6.介绍下互斥量
7.如何保证互斥量只有一个的(这个不会)
8.linux关闭终端窗口的过程发生了什么
9.fork创建子进程的过程;
10.下面这段代码最终打印什么
main () {
printf("xxx");
fork();
}
11.什么是守护进程
12.怎么创建守护进程、守护进程的区别
13.线程池的线程数怎么确定
14.怎么设计线程池的
场景题:海量日志数据,提取出某日访问百度次数最多的那个IP,以及怎么优化
算法题:合并m个链表,怎么合并,时间复杂度多少(时间复杂度我说错了)
写这个代码
三面:(40分钟)
又是全程怼项目。
1.自我介绍
2.详细说下项目
3.进程线程区别
4.为什么考虑多线程,不考虑多进程
5.flood攻击是怎么检测的
6.介绍下心跳包
7.进程的通讯、线程的通讯
8.你这项目是单机的吧,如果是分布式多机,怎么设计你的flood检测(直接表示对分布式不熟,不会)
场景题:
.你有一个日志,里面有用户的登入登出时间,用户id,找到某个用户登录的峰值(直接说了思路)
.好,那么你来写下这个代码
(OMG,当场我就懵逼了,让我写场景题的代码,我想了半天不知道输入的接口参数怎么设置,面试官和我说是三维的,OMG又蒙圈了,明明是一个很简单的的算法,但是不知道接口,迟迟动不了笔,后来面试官就没让我写了)
9.我向一个文件里面写入内容,发生了什么过程。
hr面:(15分钟)
1.介绍自己
2.平常的学习方式
3.学这个多久了
4.打算怎么弥补自己的不足
5.以后打算在哪工作以及目标公司
6.你有什么想问的
7.介绍了我面试的部门的团队,沟通了实习时间,到岗时间,薪资等
感想:
一面面试官是个好看的小姐姐,声音也很温柔,几个因为没了解过答不出来,面试官也说没了解过没关系;
二面面试官,蛮温柔,场景题的时候会引导我。
二面结束之后,我想着,一面问基础,二面问项目,三面应该是基础+项目吧,然后准备了好多天基础,结果全场怼项目,好在我项目也复习了,答得很溜。
三面面试官也挺专业,感觉对我期望很高的样子。
后记:
三面的时候,让我写场景题代码,把我整的整个人都不好,我好歹准备了几百道算法题,结果让我手撕场景题代码,我有种面社招的感觉,但是社招也没怎么考这种啊,然后我没写出来,瞬间感觉凉意,面试完,我整个人都不好了,我以为自己挂了,结果5分钟不到,hr打电话告诉我通过了!!!!!!
真的是开心,然后我琢磨着,整场面试,我答得都非常好,拓展了很多知识,然后那个场景题代码,其实也蛮简单的,我想面试官应该也就打算让我直接过,只不过我不知道接口写不出来,面试官应该感觉到了,然后直接给我出了个简单的问答题,好在,我答得也很好,然后面试官就给了过。感谢ing~
总之:
字节跳动面试下来,发挥的不错,除了个别超出知识边界的问题,其他都答上来了,也拓展了很多。
面试官也很专业,面试体验极好,效率高,都是面试完hr立马电话通知通过了。