字节后台go一二三面面经
一、Helo后端
问了好多操作系统的东西,可惜操作系统基本不会
1.聊项目
2.进程如何调度
3.对象是如何分配到内存的
4.go 逃逸分析(完全没听过)
5.redis rehash过程
6.https过程
7.编程题,给定一个数组,删除x时,会同时删掉所有的x-1和x+1,此时会得到x分,求能获得的最大分数
然后面试结束几分钟后就收到了拒信
二、被捞
一面:
全程脑子发蒙,还好下一个面试官在开会,就今天先到这了。
1.自我介绍
2.先来做题吧
(1)给定数组求最大值(优化时间复杂度)
(2)零钱兑换(LeetCode原题)
3.Go GPM模型
Go 管理依赖 gomod命令,gomod最后的版本号如果没有tag,是怎么生成的
4.三范式,反三范式?什么时候反三范式?反三范式有什么坏处
5.联合索引,给定一些情况问是否会用到索引
6.Redis,缓存击穿,缓存雪崩,原因,区别。
7.有一千万的请求,只有一千个缓存(基本都能命中),如何处理?优化思路
二面
好事多磨吧,中间因为面试官忙,给换了两次时间
1.疯狂怼项目
比如ES,现在千万的量级你聚合,现在还应付的来,那如果之后再大,要怎么处理。(我当时答的是加缓存,每天去缓存N久之前的,然后只需要聚合当前至N的量就没那么大了,面试官说,这样维护成本太高,而且如果出现数据偏差,需要回溯之前的数据,相当于给我留了个之后考虑的思考题)
总之,感觉面试官不太满意,感觉我有点拘泥于当前的数据量,当然面试官还是很不错的,最后建议我加强一下对项目的理解,加强一下对技术的理解深度。
2.算法题
(1)LRU
这个之前写过,倒不难,但是面试官让我优化,在高并发场景下要如何保证不出错,而且要效率高。
(2)给定数组,输出每个比当前位置大的第一个数。
比如给定 10, 2, 3, 5, 4, 8,20,7
应该返回 20,3, 5, 8, 8,20,-1,-1
三面
疯狂怼项目,大概怼了一个半小时
全程都是自己工程介绍,以及给你超级多的场景去设计
最后问了问最近在看什么技术,然后刚一提,就开始让我介绍。
大概快一个小时的时候,内心OS:快让我写到题吧,别问了……
还记得的几个场景设计:
1.每天几亿的送审量,如何保证送审安全,以及如何提升派单效率
2.DBProxy,为什么要用?他的好处是什么?是怎么提升管理?他还有什么好处?
3.有个场景:每篇任务都要经过多人审核,要怎么实现?(有本事去把功能给产品怼回去)(不要经过多次审核)
4.分库分表、读写分离
5.结果推送怎么做?MQ?
四面:
一堆场景设计(针对项目)
前端了解多少?模板啥啥啥知道么?(统一:不知道)
代码:合并区间
整体上大概时长是四五十分钟
然后就是超长的等待,HR小姐姐说流程审批已经走完了,但……就是一直没收到意向书。
终于收到了,来补一下面经,跟大家分享一下。