字节跳动后端面经
C++技术栈,投了基础架构。不得不说,字节的面试体验是面过最好的,投完简历三小时内hr电话就过来了,一下午三面就能结束。只是我后面加了交叉面,又等了半周。
一面(60 min):
自我介绍。
介绍第一个项目,面试官说他也不懂,不问了。
介绍第四个项目;reactor 和 proactor 的区别,知道哪些项目是基于 proactor 的吗; epoll 相关;给我看看代码。
内存分配原理。
三次握手和四次挥手。
僵尸进程,孤儿进程。
fork 原理。
线程同步的方法;进程通信七种方法。
Python 生成器和迭代器;Python 代码是怎么执行的。
C++11 新特性。
mysql,B+ 树。
算法题:删除注释。
二面(50 min):
二面面试官人很nice,好多地方我没说好的都会补充半天,最后还给了我一些建议,说不能只顾广度,到最后啥都不精。
自我介绍。
来我们先写几个代码吧(言外之意:你代码写不出来,我们没得聊):
- 找只出现一次的数字,其他都出现两次;
- 忘了是啥了,反正是一个二维dp,但是可以优化到一维,我只出了二维。
孤儿进程;僵尸进程,怎么预防,怎么解决。
进程间通信方式。
阻塞 IO 和非阻塞 IO;异步 IO。
一些开放性题目。
职业规划。
三面(30 min):
自我介绍,前两面聊的怎么样。
实验室做啥的;跟着做过啥项目;上过啥课,编译原理数据库学过吗。
网络说一下,七层模型,四层;应用层找一个熟悉的详细说一下。
操作系统说一下,把你了解的说来听听;虚拟内存,页表,TLB;进程调度,CFS。
了解哪些开源项目。
你觉得软件工程和计算机科学有啥区别。
职业规划,毕业要直接工作吗(那不然嘞)。
为什么不做算法(我觉得做算法得博士了,我太菜了)。
为什么不读个博士(不了不了)。
为什么转专业,我觉得你本科这专业可以直接做算法(大佬饶了我吧)。
城市意向。
介绍部门。
交叉面(1 h):
自我介绍。
介绍几个项目,都是自己说了一下,没详细问。
毕业时间,实习情况,实习时间之类的。
算法题:给一个数组,四个数和加减乘除组成表达式,求所有值为给定值的表达式。
进程和线程的区别,应用场景。
长连接和短链接区别,应用场景。
三四个场景题。
意向,兴趣。