【已OC】字节tiktok后端架构——耐面王熬出来了

三四月份一直在准备保研和在校内做科研,当时顺便把BAT和一些其他大厂的算法岗也都投了个遍,但无一例外全简历全进垃圾桶了,也浪费了许多投递机会。可是当时不懂事,中小厂当时都不想投,感觉没必要。可是被挂太多简历了,于是又投了一些非互联网公司的算法,只有huawei机器学习接了我的简历,对接的HR一开始很热情,但机试过了之后就被晾在了一边,也不约面也不挂,后来自己调研了一下组的情况感觉也不是很想去,这一套下来对华子的印象也不太好,就懒得联系不了了之了。

结果就是金三银四直接过去了(当时还没这个概念),直到五月末忙校内后才抛弃幻想,想着还是做点先开发吧,毕竟算法是近一年才开始有产出,而且是AI安全方向的,感觉即使有顶会也不是很被认可。。。开发至少在校期间经验和产出都比较多了。可谁想这也一投一个不吱声,才发现各个厂的暑期hc基本都没了,虽然不少大厂的官网依然可以投递,但基本都是石沉大海,问了几个老学长要了内推,但最后都被告知应该没名额了,一份简历一天辗转几个部门都没过,后来我才知道什么是金三银四。。。到最后只有全年可投的宇宙厂有面试机会了,于是开启了长达一个半月的面试阶段。。。

06-04 字节后端Infra一面

问题:

  1. 操作系统的组成包括哪些部分,都能实现哪些功能?
  2. 操作系统中内存是怎么分配的,虚拟内存的原理是什么
  3. TCP和UDP的区别是什么
  4. 知道哪些应用层常用的状态码
  5. MySQL索引原理
  6. MySQL和Redis的区别是什么,如何选择使用哪个
  7. Redis能不能用来做持久化存储
  8. 学术经历与论文
  9. 项目背景,自己负责的部分是哪些
  10. 团队合作开发时有没有遇到过矛盾,是如何解决的
  11. 如何管理社团,作为社长需要做哪些工作

手撕:三数之和

反问:

  1. 团队主要业务是什么:内部提效
  2. 实习生能够接触到多核心的业务:看水平,无限制
  3. base在哪里:大钟寺

总结:

  • 第一次面确实比较紧张,对晓艳老师说的“尴尬地笑”有了更深的理解。。
  • 好在总体问的还是比较简单的,不出意外地过了

06-09 字节后端Infra二面

问题:

  1. 介绍项目的详细业务和功能
  2. Java多线程用在哪?
  3. 简历里提到的响应速度提效是怎么做的,以什么为标准,提升效果是理论值还是实际测试值
  4. Redis怎么缓存的,缓存了哪些数据
  5. 项目的缓存是怎么更新的
  6. Redis有哪些部署方式
  7. PostgreSQL和MySQL的区别
  8. 项目中的AI算法用在哪里了
  9. 问了一下科研经历

手撕:合并有序数组

反问:

  1. 做后端需要对算法了解吗:不怎么需要,算法团队会解决
  2. 需要提前学Go吗:可入职后现学
  3. 团队内部怎么分工的

总结:

  • 感觉对自己的项目不够熟悉,多线程没答好,不够其实没出大问题,感觉还是有过的可能的
  • 没有主动联系HR,泡了几天就应该联系一下的,结果泡了七天之后挂了
  • 觉得以后联系HR要主动点,说不定机会就给到了(谁想后来太主动了也出了意外)

06-20 飞书后端一面

项目:

  1. 项目中遇到最大的困难是什么,怎么解决的
  2. 了解网络分层模型吗,为什么要分层
  3. 知道哪些协议?HTTP是哪个层的协议
  4. 讲一下HTTP和TCP的关系,谁包裹谁?(答得太急差点答反了)
  5. 开发中有没有用过分层的概念?
  6. 数组和链表的区别?
  7. 访问一个数组时虚拟地址是怎么确定的,实际存储物理地址是又怎么确定的?
  8. 一个数组在物理内存中一定是连续的吗?
  9. 数组查找和删除最小值的复杂度是多少,说说能想到什么数据结构?
  10. 讲一下优先队列,了解底层实现吗?
  11. 讲一下知道的平衡二叉树
  12. Java中哪些集合类是红黑树实现的

手撕:滑动窗口找最小值,秒了

总结:

  • 虽然过了,但感觉面试的时候被狠狠拷打,应该不算优秀过,只是勉强过
  • 数据结构与算法的基础有待加强
  • 操作系统内存的理解有待加强

06-23 飞书后端二面

问题:

  1. 介绍项目的业务
  2. 系统服务了哪几种用户,分别有什么功能
  3. 有没有考虑过用飞书实现类似的功能,或者说有什么功能飞书不能实现
  4. 系统分为哪几个模块
  5. 数据库表怎么设计的,为什么这么设计
  6. 数据库的范式?
  7. 项目遇到的困难有哪些:节流
  8. 节流怎么做的
  9. 如果换成在分布式场景下,上面的节流问题,怎么解决多个消费者最大同时消费数量的同步问题

手撕:求三角形最上层到最下层的最小权值

总结:

  • 数据库基础不够扎实
  • 高并发业务能力不足
  • 又挂了,被狠狠拷打,最后业务情景题感觉需求比较奇怪(分布式但要总体节流,而不是各个),也没答好
  • 有个小插曲,就是我问HR下一轮时间有点太急了,面完第二天我就问了,HR直接不回我,第二天就挂了,估计有可能是原因,虽然我也没法确认就是了。唉。。。问也不是不问也不是。。。不过这些都化作了经验。。。

06-27 tiktok一面

问题:

  1. 项目用的是MySQL吗
  2. 项目的Redis主要用在哪了
  3. 为什么用Redis,和其他数据库的区别是什么
  4. 详细讲一下项目中缓存的流程
  5. 缓存有没有遇到过数据一致性的问题,怎么解决
  6. 线程A读数据是1,B后写数据为2;但是写缓存时A比B后写cache,导致缓存又覆盖为1,这种缓存冲突怎么解决的
  7. 讲一下PostgreSQL默认的隔离界别是什么
  8. PostgreSQL在RR隔离界别下会遇到什么问题,怎么解决
  9. 你刚才提到MySQL中使用MVCC解决可重复读的,可以详细讲一下吗
  10. 详细讲一下一次网络请求的全流程,从输入URL到获取网页,越细越好
  11. DNS是哪一层的,基于什么
  12. 为什么DNS基于UDP
  13. 讲一下操作系统内存管理

手撕:判断回文链表,要求空间复杂度为O(1),时间复杂度O(n)。

反问:

  • 部门业务主要有哪些:其实架构没有具体的业务,都是对上层业务做具体支持,巴拉巴拉(会议室进人了听不清)
  • 实习生主要会负责哪一块:简单需求上手,做做优化吧,巴拉巴拉(也是听不清,当时应该提醒面试官换个位置的,唉)
  • 比较有挑战的点是什么:主要是性能上的挑战,具体的又没听清。。

总结:

  • Redis缓存一致性不够熟
  • 一开始以为面的是北京岗,结果面试官人在深圳,可能因为简历写了家在深圳,老广口音触发了我的思乡之情。。。
  • 面试官比较热情,反问给的回答很充分,感觉问一句会答我五分钟,可惜环境比较嘈杂,我也没好意思说换位置,最后过了

07-02 tiktok二面

项目:

  1. 学的AI有哪些实践?
  2. 中的顶会具体做什么内容
  3. Transformer多头注意力
  4. 多头注意力具体是怎么work的
  5. Transformer掩码是必须的吗
  6. 怎么扩大模型的Context

手撕:寻找rotate之前数组的第K个数(被吐槽代码写得不咋地,但复杂度看着没问题呀,感觉是被调侃了哈哈哈)

被追问:

  1. 平时怎么学习的
  2. 有什么爱好吗

无反问环节,直接被感谢时间了

总结:

  • 面试官开局迟到半小时,经典
  • Transformer的细节不太熟了,可以复习一下
  • 感觉一直在聊天,虽然面试官吐槽我代码写的不咋地,但最后还是愉快的过了

小插曲

面完第二天就说约技术三面,结果过一会又联系说跳过了技术三面直通HR面,这是运气来了还是二面面试官发力了。。。

07-04 tiktok HR面

问题:

  1. 自我介绍
  2. 了解部门业务吗
  3. 介绍自己的优点和缺点
  4. 你觉得你的能力是天赋吗
  5. 知道前几次面试被别的部门挂的原因吗
  6. 实习6个月能保证吗
  7. 什么时候能到岗

反问:

  1. 具体介绍部门业务
  2. 有什么需要提前知道的吗
  3. 实习生入职有培训吗

总结:

  • 有几点回答没思考清楚就出口了,差点翻车;HR面本身就没那么多问题,可以慢慢答
  • 反问的问题有点少,感觉可以再多问一点,当时也不太清醒,问完HR一脸“就问完了?”的表情
  • 好在总体聊的还是比较愉快,感觉应该稳了,最后泡池子泡了十天,估计是在排位

07-14 offer call

没啥内容,就是确认了一下入职时间,然后就愉快地发offer了。

后记

从五月末到七月中一直都在面字节,心态也从一开始的紧张到逐渐平和。第一个岗其实是被转岗的,我本来投递的是Dev AI,但被转到Infra了,对业务不是很了解,而且两次面试问业务得到的回复都是比较形式化的,就是部门的使命之类的,感觉不是很明白,不过当时我才第二次面试没啥感觉,主要还是自己的问题吧,也是不出意料地挂了。

第二个部门是我后来补投的,一投就约面了,一面其实还是挺愉快的,虽然回顾的时候发现面试官多次尝试引导我给出错误的答案,但好在没被牵着走,最后面试官说他过的人进来之后一般干活都没问题,后来就过了,我还挺开心的;结果二面感觉就被压力了,面试官感觉是部门大leader,看着很严肃,问的问题也比较难,就一直往难的方向引导,在我最后感觉快要熬到通关的时候硬是出了一道比较刁钻的业务题,给我问懵了;不过面试官最后又问我人在哪,我说在北京,他说ok,我还以为有机会,结果可能又因为我联系HR的操作又挂了。。。第二次挂二面的时候,正好在牛客看到了一篇“字节耐面王”的文章,作者总共面了字节11次,最后以放弃告终。当时我本来觉得二面是个坎,估计自己过不去了,但看了耐面王的故事之后感觉还是得继续面,于是反手就投了两个本地生活的后端,决定把所有部门面完了才罢休。

但好巧不巧,没等本地生活约面,tiktok就给我先打电话来了,这次真是白月光了。tiktok其实是我五月末就投了的,算是最想去的部门了,不过之前一直没约面,结果现在来了,经历了前两次的失败,感觉出什么意外也不奇怪了,反而心态平和了,后面面试也出奇地顺利。现在回顾起来,其实前几次的失败也并非毫无用处,与其说失败不如说是探索,至少之前出过问题的回答在后面都没再犯第二次,对自己的理解也相对而言更客观了,感觉就是能从面试官的角度去看自己的简历,从而做出相应的准备。

当然感觉最重要的还是运气,自己毕竟没有相应的实习,主要都是校内经历,第一次就直接冲大厂确实有不小的压力,而且因为自己一开始总是拿做科研麻痹自己,让自己很忙,就不想准备太多面试的东西,还把时间拖到了六月份,可以说是把自己很多机会都堵死了。好在耐面王遇到了伯乐,tiktok二面的时候一直在聊AI和科研,难得地表现了一下自己的长处,感觉也很受面试官待见,而且估计是真的缺人了,于是一手烂牌打出了好结果,这除了运气也不知道怎么评了,难道我真的比自己想的要强吗?hhh

#耐面王##面经##字节#
全部评论
佬的LLM的内容是自己拓展演绎还是面试官问的,佬是研✌吗
点赞 回复 分享
发布于 今天 19:11 四川
耐面王
点赞 回复 分享
发布于 今天 10:15 北京
我的三面结果快一周了还没通知,第五天的时候问了hr,hr可能下班的原因,也没有给我明确的回复,还在等,看了佬的帖子 我也不敢经常去问hr下一轮结果了好折磨
点赞 回复 分享
发布于 今天 21:33 四川
接好运
点赞 回复 分享
发布于 今天 21:32 四川

相关推荐

评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务