菜鸡的春招实习总结
楼主目前大二下,golang后端开发方向,今年行情太差了😭,目前的情况是
- 深信服后端(部门少部分go,需要学python)
- b站活动开发(go)
- 百度搜索架构(go)
- TDengine 时序逻辑数据库(要求转c,完全不愿意)
挂了的
- 字节飞书文档 最后一轮挂(压力面答得不算太好,碰到个没做过的题,挺可惜的吧)
春招到现在面了大概五家,最想去的字节挂了,人生无常,越是想要的越是会出意外,所以心态还是要随缘一些(也算是有所收获吧),自己也是因为这样太过于紧张了,希望其他同学能吸取我的教训吧😂
大大小小也投了好多家了,目前还有网易(约面结果又说暂时不招大二的,差评啊网易),腾讯(锁hc,泡了一个月池子),阿里研究型实习生(弹性分布式协议),pony.ai,旷视科技还没面试,估计不是挂了就是没hc了吧,有点累了,不想面了
b站一面 3.4(之前写的,比较详细😂)
- 讲讲channel(扯了下Goroutine不用共享内存,channel结构体,阻塞缓冲啥的)
- golang的select讲讲(我先提IO多路复用的select,再讲go的)
- mysql,讲讲聚簇非聚簇索引(自己延伸了B+树底层实现,对比B树,IO读取次数)
- redis了解什么数据结构,挑一个熟悉的讲讲(我讲了最简单的string编码int,embstr,sds(sds跟c字符串的区别))
- 分布式理论了解是吗?能讲讲Base吗?(我问能不能先从CAP开始,讲AP和CP的时候延申到Base)
- raft论文你看过了就不问流程了,raft工业那些地方用到你了解吗(只知道etcd有用到,面试官给我介绍了一下)
- 实现的raft跟工业的raft有什么区别吗(懵了,讲了个prevote机制,刚好看过)
- 问了项目的append操作是怎么做的,kv用什么存储
- 然后问了raft的分区容错,脑裂
- 讲讲kv系统的快照,持久化是怎么做的
- 问了数据库项目的checkpoint,持久化是怎么做的
- 事务的原子性你是怎么保证的?(项目Java写的,说了synchronized,赶紧说java不太了解)
- 问了checkpoint,主提交(这里刷盘面试官提了下Redis的AOF,我赶紧吹了一波AOF实现)
- 问了rpc的编码为什么用gob,还了解别的编码方式吗?(json)跟我讲了可以了解下grpc的编码方式
- rpc的超时机制,边界条件(channel阻塞)(问了好多。。。)
- rpc的注册中心你自己实现的吗?那server表怎么跟client同步?(心跳)那心跳有什么问题会出现?server挂了怎么检测和移除?(跟我讲了讲Redis哨兵的检测,我赶紧吹了一波哨兵机制)
- 其实你的项目很多可以参考一下CAP,或者工业实现,不过校招生已经完全足够了
- 算法题:回文链表,快慢指针反转,直接秒了,面试官说我很快,思路清晰
- 聊了聊我的校园生活
- 反问:面试官你觉得校招生准备什么项目好呢,那我的基础怎么样?(项目的话已经很好了,其实可以加上一些业务相关的,基础作为校招生很扎实)介绍了部门是做什么的?你打lol吗,我们做s赛还有B站的活动,拜年祭啥的
深信服一面 3.4
- golang的map了解吗?
- golang的逃逸分析,给了个代码让我判断
- 讲讲raft的脑裂,怎么解决的
- rpc是基于什么传输协议呢?http是怎么知道报文长度的?你是怎么设计的呢?
- http2.0跟http1.1的区别
- https加密方法
- 反问,我问为啥不问操作系统数据库啥的
- 然后给我整了个大数据排序topk
- 聊聊为什么这么快想实习
深信服二面 3.7
- 什么时候能来实习
- 可能要学py能接受吗(没offer肯定接受哈哈)
- 挑一个最熟悉的项目讲讲吧
- 吹了差不多20min的raft
- 红黑树跟avl的区别
- 反问
b站二面 3.11
- 聊聊raft,单点负荷你怎么解决呢
- 对于分布式的了解
- 场景题(花了很长时间),设计rbac权限管理的数据库表吧,然后根据要求写sql
- 加密方法你会用什么呢,MD5有什么不好的点,那你怎么解决呢
- 你刚提到https用的加密,那你讲讲https的连接过程
- 为什么要用两种加密方法
- golang的defer讲讲
- 有了解过grpc嘛
- 智力题 10个桶装球表示1~999(二进制)
- 算法:进制转换
字节一面 3.14(暂时字节ptsd了,没录音愣是回忆不起来了😂)
- 四道高频mid,半小时完成
- 分布式cap,ap跟cp用在什么地方呢
- 数据库,mysql的mvcc讲讲
- redis的缓存雪崩,缓存击穿,缓存穿透
- raft聊了一会
- 后面的忘了....
TDengine 3.21
- 你怎么知道我们公司的呀(知乎看到的)
- 先聊第一个项目吧
- 介绍一下raft特点,什么是强一致性,一致性有哪些
- raft选举过程,节点怎么判断落后的,分区问题
- 脑裂的读取你怎么办
- 行,那我们聊第二个项目,介绍下这个数据库故障与恢复
- 怎么存储到磁盘的,序列化讲讲,怎么恢复的等等
- 这个项目问了一大堆。。
- rpc是什么
- 注册中心怎么做的,单机的吗
- 客户端怎么获取服务列表的
- 操作系统线程通信方式
- 讲讲消息队列怎么同步的
- 信号量讲讲
- 来了个操作系统场景题(你可以去实操一下的,理解会加深)
- 反问:怎么能更好的参加开源,good first issue
百度一面 3.30
- 吹了一会水
- 讲讲学校的项目
- golang的gc讲讲,如果让你设计你会怎么做呢(增量并发,辅助标记)
- rpc讲了一下,是进程间rpc还是client跟server的?
- 那进程间rpc你会怎么做,并发控制呢?
- 项目数据库的事务是单机的还是分布式的?
- 分库分表有了解过吗?水平分库和垂直分库讲讲
- 那分布式事务是什么?讲了概念跟2PC
- 分布式事务rollback,那我想要强一致性怎么做呢
- 数据库分为几层,存储引擎层是干嘛的?那mysql优化有哪些?一般会选择优化语句吗还是存储引擎层?
- etcd了解过吗?
- 讲讲你的kv跟etcd有什么区别?
- 讲讲raft做了什么优化(prevote机制讲了好多次哈哈)
- redis缓存击穿,穿透,雪崩
- 算法:爬楼梯
- 反问:达到实习生要求,介绍部门情况,百度搜索核心部门打算转型,之前是c++,现在要招go的,入职了应该是我mentor
百度二面 4.1
- 一面面试官有给你介绍部门嘛
- 什么时候来实习呢
- 看你数据库挺了解的,问几个问题吧
- myisam跟innodb的区别
- 索引了解哪些类型呢
- mvcc能讲一下吗
- 来个场景题吧,也是设计数据库。。。(怎么leader这么喜欢这样考,b站也是)
- 筛素数写一下
- 聊了20min人生
- 最后帮我进系统,因为是部门直推的,不进系统就打小黑工了哈哈