字节飞书后端日常实习面经
首先自我介绍下:哈工大深圳24届计算机专业学生。
进度:
2022.10.3投递 -> 2022.10.14 14:00 一面 -> 2022.10.19 15:00 二面 -> 2022.10.21 14:00 转岗,一面 -> 2022.10.25 19:00 二面 -> 2022.10.27 11:00 三面 -> 2022.10.28 hr面
一面(100min)
上来首先直接手撕算法,说代替笔试:
-
10亿个数据中筛选出最大的100个(小顶堆)
-
判断字符串x2是否包含x1(包含指x2的一个子串内容和长度和x1一样,但是顺序可变)
第一题开始思路错了,面试官提醒后完成了,第二题开始题目看错了,面试官提醒后改过来了(第一次面试有点紧张,😂)
接下来是八股:
-
tcp time_wait状态讲讲
-
如果一个服务器出现很多time_wait状态可能是什么情况
-
tcp如何实现可靠传输
-
线程同步的方式
-
堆排序稳定吗(这个忘记了,现推说不稳定)
-
cpp都有malloc了,为啥还要有new
-
cpp构造函数可以是虚函数吗(不知道,现推说不可以)
-
怎么实现智能搜索,例如输入ha,弹出哈工大,输入s,弹出深圳(我说哈希表,这题没有底)
-
如何检测垃圾文本,例如“啊啊啊啊啊啊,屁股屁股,没有没有”,就是很多重复的字词,没有意义(不太会,就说了查重,面试官也没有给我垃圾文本准确定义)
除了最后两题没有底,其他感觉都还好,面试官最后说这两题有很多实现方式,答案很主观
晚上6点多接到二面通知
二面(70min)
首先自我介绍,我就介绍我学习国外计算机网课和自己os竞赛的经历
接下来问一些开放性问题:
- 写了这么多项目,讲一个最有挑战性的(我说了下有很多,讲下最近的824的raft实现)
接下来是八股:
-
tcp和udp区别
-
如何基于udp实现可靠传输(刚好144是基于udp的用户态tcp协议栈,我详细的讲了下实现细节)
-
进程线程、协程区别(我很详细的说了,从os的底层实现到go的gmp模型)
问了30分钟,最后手撕算法
- 写一个解析csv文件的类(写了40分钟,面试官说超时了。主要是我java好几个api忘了,一般我都是查文档,可是面试不能查,只能一个个试了😢)
这里提一句,反问的时候,自己嘴贱了句,说对你们这个文本搜索岗位不是很感兴趣,结果面试完,直接给我转岗重新一面了,我其实完全不是这个意思,说完也马上改口了😢
面完第二天早上还没有通知,我看面试流程显示转岗了。又要重新一面
转岗后一面(60min)
上来首先自我介绍(和上面一样),然后写算法
- 最大子序和
然后开始八股:
-
进程和线程的区别
-
什么时候会从用户态陷入内核态,具体细节
-
io密集型和计算密集型分别适合多线程还是多进程(和上面的两个问题层层递进,好,这里给了点提示)
-
进程通信方式(我很详细的讲,最后讲到套接字的时候可能讲的太久了,面试官说不用说了,我们问其他的😂)
-
tcp为什么要三次握手(这里说我没有说出关键点)
-
tcp time_wait要等多久,为什么(有一个点没有说,面试官稍微提示后说出来了,这一点记得,但是一时脑抽忘了说)
-
线性一致性是什么
-
除了raft你还了解哪些分布式协议,paxos知道吗(听过,没有了解,我说raft就是为优化paxos而生)
晚上7点告诉我过了
二面(60min)
首先自我介绍(和上面一样)
算法题:
- 从长度为n的数组里找出最大的k个数(和一开始的一面那题很像,但是这个我是用快排)
然后问我说,看你os是用rust写的,然后技能树说自己擅长go,讲讲go和rust异同(内存管理,主要讲这个)
八股:
-
浏览器输入网址发生什么(从dhcp,到dns解析,到http,到tcp,到arp,到nat、到局域网,因特网,我很详细地说了)
-
tcp udp区别
-
time_wait和close_wait细讲下(tcp11状态机在写144时就滚瓜烂熟了)
-
epoll poll select讲讲(从底层linux源码机制到对比我都详细讲了)
-
红黑树会吗(刚刚epoll提到红黑树,我说完全不会,这个题目应该所有面试里是唯一一个完全不知道说的)
晚上面的,所以第二天9点多告诉我过了
三面
自我介绍(和上面一样)
开始问项目
-
介绍你的15445(从内存缓冲池、到extendible hashtable索引、到火山模型、到事务控制,面试官问了下哈希索引的并发控制,也细细地讲了下)
-
问我824是自学吗?go也是自学吗?
最后写智力题
- 变色龙问题,三种颜色变色龙,两只颜色不一样的遇到一起会变成另一种颜色,输入三种变色龙的数量,判断最终能否都是一个颜色(想了一分钟,写了思路给面试官看)
反问的时候,面试官说我对计算机底层探究很细,但是也要注意mysql、redis、linux的使用,我说这些都多多少少会,并且现在也在学哈哈
面完后马上半小时,吃午饭的时候告诉过了,约hr面
hr面(50min)
聊天似的面试,很轻松
-
自我介绍
-
os竞赛讲讲
-
还有什么团队协作经历
-
以后待在深圳发展吗,家哪里的
-
读研吗以后
-
如果发offer,什么时候到岗,能工作多久,一周能5天吗
-
哈深计算机是第一志愿吗
-
高考目标是哈深吗
-
自我评价下
-
之前三次面试自我感觉怎么样,还有没有可以做的更好的细节
-
为什么选择字节
-
为啥给你转岗了
面了50分钟,反问:
-
之前的三次面评可以透露吗(hr笑了笑说不方便透露,但是三位面试官都认为你计算机基础很扎实,可能业务经历方面稍加欠缺,但是在可接收范围内,入职可以学。我寻思我就是业务经历的少才来实习啊啊😂)
-
结果大概什么时候出呢(hr说3到5个工作日,今天周五,所以应该下周五前告诉我结果)
期待顺顺利利发offer给我,我很需要实习👀
------------------------------------------分割线--------------------------------------
11.2 上午hr打电话发offer了,艹真他妈爽!!!!!!!!!!!!!!!!!!!!!哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
#如何判断面试是否凉了#