字节跳动基础架构后端开发面经(春招实习-已转正)
字节跳动基础架构后端实习一二三面
基础架构后端实习一面(36min / 3.18日)
自我介绍
面试问题
-
STL中的容器的底层实现,简单讲几个(简单讲了vector,array,unordered_map)
-
unordered_map与map的底层实现的区别
-
Linux中的哪些troubleshooting工具?
-
GDB用法?如何用GDB dump一块内存下来查看
-
TCP DUMP用法?
-
计算机视觉主要是在做哪几块?
-
介绍一下RESNet
-
个人获奖细节
问了17分钟,然后开始做题
算法题:台阶跳跃题,一个题干,三个子题目。
题目大概描述:从起点开始,起点后面N个台阶,最后一个台阶为终点。青蛙从第一个台阶之前开始跳,只能向前跳,可以向前跳任意台阶数目,每个台阶上有可以获得能量的蘑菇,也有减能量的毒蘑菇。青蛙初始能量为0,能量可以为负数,到终点时候能量为负数表示失败。求青蛙跳到终点时的最大可获得能量。如果到终点时候能量为负数,返回-1。
-
问题1:求青蛙跳到终点时的最大可获得能量。
-
问题2:加条件:青蛙每跳一次,消耗能量等于所跳的距离的平方
-
问题3:加条件:青蛙每跳一次,消耗能量等于所跳的距离的平方,且每一跳会奖励一个能量
反问:对我们应届生实习有什么建议,部门主要做什么的
-
希望实习时间长一点。
-
这个部门主要研究Kernel Driver,芯片架构,主要是虚拟化,容器场景,异构计算,涉及到比较底层的东西。
基础架构后端实习二面(65min / 3.24日)
自我介绍
面试问题
- 项目做的什么
- 我做的什么
- 追问整个软件项目各个模块
- 有什么原创的算法(有哪些难点)
- 追着里面的某两个算法细问细节,深入到代码实现
- 线程与进程区别
- 僵尸进程怎么处理
- 使用信号量的场景线程/进程同步用什么东西
- PV操作
- C/C++中的进程同步用什么
然后就开始写代码……
做题:没做算法题,而是让我写了一个生产者消费者模型。我先写了一个基础版本(单消费者单生产者),面试官马上提出了这个版本在多生产者的时候就不行了,让我马上改,然后我改为多消费者多生产者。
反问:对我的评价或者建议
基础架构后端实习三面(60min / 3.28日)
自我介绍
面试问题
先随便聊了会儿学校里的情况
再大概聊了聊我个人的优点
然后开始聊计算机体系架构和一些比较底层的东西:
-
操作系统开机时候的实模式和保护模式的区别
-
内存分配算法有哪些,伙伴系统和slab内存分配机制
-
linux中的各种管理工具
-
perf
-
eBPF
-
进程调度算法有哪些
-
CSF
然后开始做题。
做题:最长回文子串**********
在飞书上,要自己写输入输出和测试用例,不用本地IDE,直接用飞书编码
反问:对我学习底层知识的建议
一般第二或者第三个工作日就出结果。
base:成都