字节-商业变现-后端面经
一个凑数的标题
首先容我吐槽一下牛客网的面试系统,视频和通话质量太不稳定了,几乎没有办法完整的交流,间接导致了面试官都不想和我说话(大雾(明明是你能力不行
一面
一面由于通话质量的的原因没有聊很多。
- 介绍自己
- 登陆状态如何保持?
- Session和Cookie的区别
- 编译型代码和解释型代码的区别
- linux 命令: 找出文件里的match的一行 (cat | grep 感觉不太好)
代码: quicksort (好像没对)
二面
切换到了微信电话之后聊的很舒服,这里表扬一下微信。
面试官感觉是技术大牛,出的题目也比较有水平,聊得非常愉快。
- 介绍自己
- Go slice 底层数据结构; len & cap
- Go的协程模型 GMP / CSP
- 研究项目
- TCP 三次握手 四次挥手
- B+树的结构, B+树如何select range
- SQL
LIMIT M, N
M / N 分别是什么 (真是太为难我这个只用ORM的孩子了) - MySQL的四个事务隔离级别, 怎么实现的
- 金额找零 $M, N种不同面值的硬币, 找零怎么实现 (口头说下) (dfs, 这里本来只是想说类似树形结构的调用的)
- 如何优化子问题? (记忆化 -> dp)
- 两个人A->B跨系统转账的流程如何保证原子性?
- 用过消息队列吗? 是什么作用?
- 你有什么问题吗?
- 平时如何开展项目? (需求,实现,测试,上线)
- 内部文档开放情况怎么样?可以看到别的组的设计吗?(不行,不过会有内部session讲实现,也可以去要权限;然后讲了一下OKR,我商业吹了一波字节的内部系统公开OKR,十分愉快)
三面
三面应该是boss面;周日面的,提前熟悉了一下大小周。
面试官坚持用牛客;由于完全不能通话,只能通过打字来提问题和交流;讲了35分钟左右就潦草结束(估计也是我表现不太好的原因)
- 介绍自己
- 项目
- 你觉得你哪个方面的知识掌握的比较好?(注意:别给自己挖坑)(我说计算机网络)
- 描述一下向socket传值的流程?
- 网络or文件系统socket(网络)
- protocol选择 (Raw / TCP / UDP)
- 发送之后发生了什么 (放进了buffer)
- 哪里的buffer (socket描述符自带read / recv buffer)
- Send buffer满了怎么办? (阻塞)
- 异步通知?(信号signal)
- 你会怎么设计操作系统的信号?(直接说了不懂,没有追问)
- 算法:给定一个升序数组arr, 一个数字a,找出比a小的最大的那个数字。(直接上二分, 找到最右边)(太久没写二分了,写出了点小错误,不过面试官没有追究, 不知道底下怎么评价 #捂脸)
- 最近在看什么技术书籍嘛?问了一个书籍里的核心概念。(没有总结过,糊弄过去了)
总结
- 字节的面试果然相对比较难一些,需要好好准备一番。
- 面试官们都是大牛。
- 面试过程中遇到不懂的问题就直接跳过了,而不是尝试引导面试者答出来(在时间充足的情况下),让我感觉像考试一样,而不是互相评估的过程。
- 说了这么多,还是希望能有offer。