疫情过后的一波Golang社招面经(度小满,知乎,快手)
lz19年毕业,出来看看机会,给写go的朋友们分享一下面经~
最右APP 2技术1hr 已offer
- 一面
- 工作项目
- 比较有成就感的产出
- redis相关,网络模型,存储模型,常用数据结构等
- 缓存穿透解决方案
- 分布式系统 CAP
- 工作项目中以及其他共识算法
- raft算法细节(选主 复制 脑裂 balabala)
- mysql索引相关,数据结构,优化,优缺点等
- 主键需要保证的特性以及为什么这样做
- 二面
- 场景题: 某个下游服务的接口并发量大应该如何解决?
- 给出了一个复用资源(池)的思路,
- 追问:引入池后会出现哪些问题,如何预防?
- 聊工作项目,很多问题基于项目问的
- 场景题: 某个下游服务的接口并发量大应该如何解决?
- hr
1.聊人生
- 一面
知乎 2技术1hr 已offer
一面
- 分布式系统一致性说一下
- raft算法细节
- 锁问题,cas,锁的实践?
- go标准库的 mutex介绍
- bitcask存储模型细节,既然是追加写,那么如何做旧数据gc?重启后索引怎么恢复?
- LSM tree介绍一下,相比b+ tree如何?
- 给TIDB代码贡献介绍一下,TIDB里query大概流程?
- 项目里的map并发怎么做? 为啥用分段锁不用sync.map? 分段锁拆了几个分片?
- 内存对其了解吗?
- 简单介绍一下go的内存分配机制? 有mcentral为啥要mcache?
答了 mcentral是服务所有系统线程,mcache为系统线程独享,mcache缺少span时去mcentral->mheap 中取
二面
- 聊了聊开源贡献
- redis连环炮,数据结构+哨兵+同步
- 聊工作项目
- innodb 连环炮 index redo undo mvcc
- 闲聊技术 人生 问了问组里的工作
hr
- 聊人生 聊发展
快手: 4轮技术1hr 口头offer 备胎
- 一面: (欢乐局
- 看你简历大学有竞赛经历,算法都懂吧?
我:了解
面试官:嗯,了解就不问了 - raft算法懂不?
我: 懂
面试官:嗯,懂就不问了 - 讲讲tidb
- 讲讲newsql
- 项目吞吐量,怎么优化的性能?
- 工作有啥亮点?产出? 共识怎么做的?
- 看你简历大学有竞赛经历,算法都懂吧?
- 二面:(组长人超级nice!!! 还帮忙问进度!!!
- mmap操作原理
答: 1.内存映射 2.逻辑/物理地址转换 3. 程序访问触发缺页中断 4. 调页 - 追问:mmap的问题?
答了内存过大时会出现频繁的页面置换 影响效率 - tidb项目介绍 sql parser做了啥? planner做了啥?
- 讲 epoll
- 进程线程区别(刨根问底式
- 各种OS问题
- 虚拟内存, 缺页置换? MMU?
- 写个代码 (忘了问啥了
- mmap操作原理
- 三面:
- 项目介绍
- 设计一个kv存储
- 说一下你理解的共识算法
- 说一下多路复用
- 四面:
- 项目介绍
- 直接io与mmap区别?
- 分布式系统保证数据一致性?
- redis主从怎么做的数据一致?
- redis哨兵?
- 讲讲排序算法 优缺点
- http连环问题 tcp连环问题 长链接短链接
- http header 干啥用的?
- 写个代码 dijkstra模版题(用go写可真费劲
- hr
- 大学做过自豪的事
- 一堆小问题
- 一面: (欢乐局
度小满 二面挂
- 一面:
- linux命令
- go性能调优怎么做的?
- sql注入怎么防?
- redis zset使用场景?
- zset底层实现
- 跳表的细节?
- go 中 sync.map
答: cas + dirty map + read map - 打乱一个数组,不用rand
- 两个队列模拟栈
- 二面:
- 聊项目
- 没了
- 一面:
头条
- 一面:
- 写代码
- 如何做服务发现
- 微服务乱七八糟
- 写代码
- 二面:
- 写代码
- 没了
- 一面:
- 总结: 知乎面试体验最好,真的是在和求职者认真的沟通交流,发offer也是飞快,快手的技术面体验也不错,面试官会根据你擅长的方向来提出问题,不会张口闭口的微服务云原生,但是快手的hr真的一言难尽,给了口头offer提了工资流水以后发消息不回复,面试时间也给我排错了,人家面试官主动给我打的电话... 头条面试体验最差
最后感谢一下帮忙内推的朋友,疫情期间求职不易,万分感谢!!
#社招面经##快手##社招##面经##知乎##度小满##golang工程师#