字节一开始是笔试,牛客网上的,老生常谈了,ac了两题就过了,过了大概一个星期,hr打电话来参加面试。依然是牛客网上的远程面试。虽然面的是golang开发,但是实际上完全没有问golang的问题,当然这也和我不会golang有关。面试官上来让我做了个介绍,就开始了面试。先是看了下简历,发现我有安全方面的经历,于是问了我知道的几个安全相关的问题,比如我所熟知的安全漏洞及攻击方式,这个回答起来也不难,我看面试官也不太了解,我就大致说了几个静态分析的漏洞和硬件漏洞的攻击方式。之后还是问简历上的问题,我有compiler的开发经历,于是他问了几个compiler的原理,比如解释器和编译器的不同体现在compiler开发的架构设计上的区别,以及使用的算法。基板上也是些老生常谈的事情,比如SLR算法和自定向下的算法实现。问完简历开始问了一些操作系统,计算机网络和数据库的相关知识,因为前面简历问的时间比较长,所以没问很深,就问了下ip协议栈,拥塞控制算法,多线程中的缓冲区问题和几种类型的互斥锁,信号量如何实现,基本上操作系统复习了的都会。在面到40分钟的时候,面试官开始考算法了,印象里是出了两道leetcode上的medium题让我做,ac一道做下一道,可以直接写也可以边写边说思路,第一题我很快做出来了,是个二叉树的中后序遍历转先序。第二题判断链表是否回文,要求O(N)时间复杂度O(1)空间复杂度,都不难就是写代码的时候有点紧张hh。总的来说不是很难,对算法的考查也没有网传那么深。