字节跳动,系统架构 三次面经+HR面
备注:2.28日投递简历,3.1日约一面,次日电话告知通过,3.7日二面,一小时内电话通过,3.9日三面,面试官有事推到了3.11日,一小时内电话通过,3.14日HR面,字节的效率真的特别快,也有可能是投递系统架构这个方向的投递比较少。春招只投了字节和shopee,后者还在笔试的池子里泡着...
我的简历写的很普通,是考研失败后就准备了一周的,所以面试官问的大多是大学里的基础,第一次面试就通过还是很幸运的,下面是一些我印象深刻的问题的简单记录
一面
一面上来是一个算法题,两个数组 A 和 B ,A 和 B中任意各取一个元素相加,返回所有可能得到的和中最大的 k 个,这个我是暴力方法,A 和 B 取出排序后前 k 个,然后组合出 k^2 个后再排序取前 k 个,面试官问能不能优化,想不出来
然后是一些基础知识
- cache 映射方式
- 有没办法写一个 benchmark 测试CPU cache 的相联度
- 虚拟地址到物理地址转换过程,page fault 处理过程
- 编译原理相关的毕设项目的介绍
- cond. 编译优化算法,简述原理和如何实现
这些如果简历上不写编译器肯定不会问
然后是反问,问了面试官主要做什么领域,工作主要做什么
总共大概是 15 min 的算法和 20 min 的问答,写代码是字节自己的一个白板,面试官推荐用 C++ 但是我用 python 也让,而且可以问一些 python 内置函数的名字和参数,总之三次面试的面试官都是非常nice的
二面
二面个人感觉难度增大很多,会一直问 follow up 的问题直到我回答不出来为止,面试完自我感觉稀烂,没回答出来的比如
- 读过 linux scheduler 的代码吗
- 编译原理课,读过这个东西在 LLVM 的实现吗
- 有没有想过 page size 太大太小会怎么样,为什么是 4KB
- 体系结构相关,问到了不了解 GPU
然后是两个算法题
- 链表倒数第 k 个节点
- 二叉树转双向链表,把二叉树转变为 prev 指向中序遍历的前一个元素,next 指向中序遍历的后一个元素的链表。要求直接用 TreeNode 的 left 和 right。
第2题我花了很久,一直在想怎么得到某个 TreeNode 的直接前驱和后继,花了15分钟写出来之后面试官提示能不能递归,然后又花了几分钟写了递归之后,就进入反问环节了
三面
三面可能算是最轻松的,只有不到 20 min,问了两个之前面试问过的问题,就让我去做一个题:64匹马,8个赛道,至少比赛多少次可以找出跑得最快的4匹。问题回答之后没有编程题直接进入反问环节,问他怎么提升自己,他看了之前面评,说我技术面太窄,他认为应该先拓宽,再深入某个领域巴拉巴拉
HR面
首先是问期望 base 在哪,我投递的是成都的,一面HR把我改到了杭州,这个HR直接问mentor在北京,能不能接受。然后是自己遇到的问题,怎么解决,我说一般是查文档,会跟同学交流。之后自己工作之后的目标,期待自己几年后是怎么样的人,我说是搞技术的吧。最后问期望薪资加了微信。
第二天通知也通过了,但是直到现在还没发 offer,所以我就在准备 shopee 的后端开发的,但是 shopee 这个笔试完都快一周了,还没任何动静,真的是太折磨人了。