博主大三在读,投的是字节 Data 的后端开发实习生,base 杭州。
时间线:
- 4.12 投递
- 4.13 安排简历筛选
- 4.14 安排面试
- 4.19 16:00 一面
- 4.22 16:00 二面
- 4.23 8:00 三面
- 4.23 16:00 HR 面
- 4.23 16:30 Offer
一面
-
先做了自我介绍
-
问论文情况(简历写了)
- 做的是什么
- 主要负责了哪些工作
- 数据集是哪里来的
- 带来的提升是以什么为基线去比较
-
来做个题吧:有向图判断是否有环
- 写了个 DFS,写完示意面试官还剩建图的部分,面试官说建图可以不写
- 提问代码细节
- 我的代码是用邻接矩阵存的图,提问还可以用什么结构存?(邻接表)
-
再来做个题吧,面试官挑了一会儿以后说感觉这个题你应该也能写出来,就不做了。
-
多线程相关:
- 有遇到过多线程的情况吧,假设 A 线程和 B 线程都想访问一个资源,如何保证线程安全?(答:加锁)
- 有些线程只想读资源不想写资源,如果简单粗暴地加互斥锁的话性能不太好,有什么办法优化一下?(答:只对写操作加锁,读操作不受限制)
- 多个线程,部分是写,部分是读(举例:A 线程写、B 线程读、C 线程写),他们的执行顺序应该是怎么样的?(这一块一直没有抓住面试官想问什么,感觉答的不好)
-
挑一个项目来介绍一下
- 讲到了项目中做的一个改进,跟缓存有关。
- Redis 的表结构有了解吗?(dict 存各项数据,expires 存过期时间)
- 爬数据这个环节是怎么定期更新的?是定期自动执行还是需要你手动去操作?
- 一台服务器的话,会有负载压力吗?如果要承受更大的 QPS,你还有什么想法去优化吗?
- 讲到了项目中做的一个改进,跟缓存有关。