字节后端开发面经

    作者:牛客444506407号
    链接:https://www.nowcoder.com/discuss/589565?source_id=discuss_experience_nctrack&channel=-1
    来源:牛客网

    广州某理工大学大四在读,考完研想找个实习,通过hr内推了简历,也是本人第一次工作面试,忘了录音,凭记忆写一下面经(2021.1.18)
    从2点开始面试,三轮面试一个下午面试完
    一面:(50min)
    1 先做了自我介绍,大概讲了一下本科参与过校内acm比赛,一些数模奖学金等一般般的奖项,以及本科跟的实验室做的智能计算方面的研究
    2 中间面试官看我提到acm就问了我算法相关的问题,因为我本身没有专门培训过acm,只是参与过校内的比赛,我就大概讲了一下从链表到图到dp和字符串的算法,面试官问了我kmp算法的实现,之前手写过这个代码,直接讲一遍next数组的实现
    3 然后面试官开始问项目,我大概讲了一下简历上的项目,unix文件系统,网上商城,智能计算研究的交通流问题,主要聊了我最近在做的交通流问题,面试官问了项目分为哪几个部分, 本身我做项目没有分这么清楚,大概 分为路网设计及可视化,差分进化算法得最优解,基因编程算法得到的代理模型三个部分,他最后问了最后有没有什么直观的结果,当时我没有get到他的意思,后来三面面试官又问了差不多的问题,我才讲了我这个项目最终的结果和结论
    4 ”那我们来做道题吧“,一道比较简单的dp问题,空间复杂度O(1),时间复杂度O(n),给定一个数组,求子数组的最大和(子数组连续,数组内有正有负),我本身牛客网上刷的题比较少再加上第一次面试有点紧张,开始愣了一会,然后想到思路就直接写出来了,面试官很nice,中间没有催促我,最后还提醒了一遍最大值变量初始化不应该为0
    5 下面一些套路问题,socket编程的select和epoll函数;数据库三大范式,隔离级别;进程和线程的区别;tcp的拥塞机制;等等吧 牛客网上的面经都有
    二面:(50min)
    1 仍旧是自我介绍,讲到acm的时候,面试官问我当时比赛做了哪写题目,我确实是记不到了,都是大二参加的,他有些质疑我是否参加过acm…额,质疑有理吧,确实本科不算搞过acm,团体奖主要也是靠队友带飞
    2 这次项目讲的比较细,感觉应该有半个小时都在聊项目,因为交通流优化的问题是我一个人在做,我把三块内容都详细讲了一下,可能面试官对我我后面两个部分不是很感兴趣,着重介绍了路网的设计与实现,中间提到了od对和迪杰特斯拉算法,面试官就问了我迪杰特斯拉算法的实现过程;unix文件系统让我介绍了一遍,大概就是超级块、i-node区、数据区,空闲块成组链表法,文件分配直接索引,一级索引,二级索引…,磁盘高速缓存等等
    3 仍旧是做题部分,一道链表的题目,奇数位升序,偶数位降序,最终得到一个升序链表,我先写了一个反转链表的函数,然后两个指针分别指向两个升序链表,依次比较得到最终链表
    leader面:(30min)
    1 还是自我介绍
    2 开始问了我数学建模中做的项目,这个确实也是不大记得了,我就说我可以详细介绍近期做的项目,也就是上面那个交通流问题,balabala一堆
    3 算法题:做了一个括号匹配的问题,开始用的c++库里的vector,面试官要求自己实现一个栈,然后就手写了一个stack类
    最后说等hr通知,过了一个小时不到hr就打电话通知面试成功
    经验教训:简历里写的获奖项目一定要重点看啊,还有就是字节对算法的要求比较多吧,中间还有一些套路问题我答的不好,好像最后也没有影响太大,像tcp三次握手,四次挥手,http都没问,说明字节比较注重coding能力,也可能是只是实习岗位,要求没有这么多