2021社招4年golang 面经(已拿offer)

还愿贴,有些题记不清了,还望见谅~

本人由于个人原因,决定跳槽~先上一个面试日历吧:


面试公司:好未来,iheady,阿里,字节,知乎,伴鱼,探探,鳄梨科技,好大夫,图灵深视

按时间数序来说:

好未来一面(学而思网校):
自我介绍,项目介绍
1.数据库的隔离级别
2.题主用的pg,说说pg和mysql的区别
3.redis用过吧,说说常用数据结构
4.redis的zset 底层用的什么,为什么不用红黑树
5.说说redis的主从同步,哨兵的原理
6.说说7层网络,说说应用层和传输层都有什么协议
7.讲讲golang的调度模型
8.都有什么数据结构是查找O(logN)的
9.提问环节
*第二天说是初面过了,二面定到5天后,但是第4天告诉我说暂停二面,等通知,说是在线教育有政策出台,hc没了,WTF.....

iheady一面
自我介绍,项目介绍
1.为什么想离职
2.项目里用到队列,用的什么,kafka熟悉吗,讲讲
3.假如消息队列已经大量积压(千万以上积压),怎么解决
4.怎么避免队列再次大量积压
5.redis cluster讲讲架构
6.redis 有什么持久化方式,分别讲讲AOF和RDB的优劣
7.pg的索引都有什么,为什么用B+树不用AVL之类的平衡树
8.算法题:2数相加等于目标数,n数相加等于目标数
9.提问环节

阿里一面(淘宝事业部)
自我介绍
1.mysql的索引都有什么,说说区别(mysql不熟,说pg的)
2.用户在网页上输入一个url后发生了什么
3.讲讲https的过程
4.讲讲tcp 4次挥手过程
5.客户端4次挥手后处于什么状态,为什么是2msl
6.redis常用数据结构
7.java熟吗(不熟....)
8说说线程进程协程区别
9算法题:n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标
10.提问环节

滴滴一面(网约车底层架构部)
自我介绍,项目介绍
1.go用了几年了,说说常用的第三方库
2.go的GPM模型,详细说说
3.go 怎么实现func的自定义参数
4.讲讲go的GC
5.go调度中阻塞都有那些方式
6.mysql/pg 的的隔离级别
7.怎么避免幻读/脏读
8.算法题:接雨水问题(leetcode 42)先用双指针,还要求用个别的思路求解,复杂度可以高于双指针(dp完成)
9.提问环节


探探一面(牵手app)
笔试题:
1.机器人路径问题,n*m的矩阵,从[0,0]走到[n,m]有几种走法
2.实现一个有pop,push,max的队列数据结构,要求尽可能降低时间复杂度

自我介绍,项目介绍
1.了解go的GPM吗
2.GPM模型里如果本地队列满了,新增的g会怎么处理
3.go的channel内部实现原理
4.redis为什么会这么快
5.io多路复用讲讲,什么是异步io
6.pg的隔离级别
7.pg的整体架构(pg 由main函数启动,sql解析过程等)
8提问环节

iheady二面
自我介绍,项目介绍
1.项目里有什么整体架构,讲讲
2.怎么保证kafka消息不丢失
3.项目里的多借队列策略
4.为什么用pg不用mysql
5.nosql熟悉什么,讲讲你们用的aws的dynamo
6.还有什么项目里有挑战的东西
7.算法题:有一串数字,包含非零和0,把零都放到右边,数字有序的放在左边 如:103002305----> 132350000 要求时间O(n),空间O(1)
8.提问环节


鳄梨科技一面:
自我介绍,项目介绍
1讲讲项目整体架构
2.你负责项目的什么
3.mysql索引
4.怎么实现redis连接池
5.go你们用的什么版本,版本特性(????)
7.redis你们都用的什么场景
8.redis的数据持久化方式
9.提问环节
*感觉一面面试管没我大,不大敢问的样子,也没有算法题


字节一面(教育部门)
自我介绍,项目介绍
1.说说mysql的隔离级别
2.mysql的索引类型
3.项目里用了sqs,sns,有什么区别
4.mongo为什么不支持事务,mongo的速度,mongo的查询机制
5.redis的cluster内部是怎么高可用的,怎么选主
6.熟悉raft吗
7.算法题:有红黄蓝三种球,分别用123标识,每种颜色的球有n个,每种颜色的球数量相同,如122331213排列,要求123123123排列,要求时间O(n),空间O(1)

好大夫一面(系统部)
自我介绍,项目介绍
1.好大夫这边是监控部门,先介绍了整体的情况
2.项目中监控报警怎么做的
3.熟悉logstash吗
4.熟悉es吗,es怎么建索引
5.对linux了解多吗,几个常用命令
6.大量出现CLOSE_WAIT是因为什么,怎么办,大量出现TIME_WAIT呢
7.海量日志文件里如何找到请求量最高的10个ip
8.算法题:一个数组长度n,里面是连续的数字,只有一个数字缺失,如1,2,3,4,5,6,8,9,10.....找到缺失的数字
(休息了5min,换了个大哥面试)
9.最快什么时候到岗
10.为什么离职
11.大学里做了什么项目
12.一般碰到技术难题怎么解决
13.提问环节

阿里二面
自我介绍,项目介绍
1.上来先说整体流程,前30min候选人主讲项目,面试官会有打断,后面时间是算法题和提问环节
2.先怼项目:
1)为什么要自研批处理程序,不用flink或spark streaming什么的
2)flink了解吗(不了解)
3)  你们这项目好多单点,为什么不做高可用考虑(我能说海外小公司,没时间搞吗)
4)  Raft协议的论文有看过吗,大体讲讲,还问了个什么细节记不清了,也没答上来
5)  Gossip协议了解吗,说说原理和使用场景,为什么不能用它做主从选举
3.redis整体架构说说
4.redis的主从切换流程
5.用redis实现分布式锁有什么潜在的问题
6算法已经没时间了,而且前面被怼的不行,题主当时处在一个懵逼的状态
7.提问环节

探探二面
自我介绍,项目介绍
1.花了40min都在讲项目,还有上上一家公司的项目
2.有什么职业规划
3.对牵手app的简单介绍
4.提问环节

图灵深视二面(题主因为有急事去医院,不面了,这里不写了哈)

滴滴二面
自我介绍,项目介绍
1.项目的整体架构
2.还做过推荐引擎,讲讲当时怎么搭建
3.排查过什么网络文通,大量出现CLOSE_WAIT怎么办
4.了解io吗,说说epoll,select区别
5.Unix socket了解吗
6.socket编程中如果是epoll,客户端在read和write后什么时候返回,返回什么
7.算法题:n个有序的单链表合并
8.职业规划
9.提问环节

滴滴三面
项目介绍
1.对底层感兴趣吗
2.最熟悉什么语言
3.能接受转C++吗,熟悉C++多态吗,常用设计模式
4.大学里成绩怎么样
5.提问环节
*这个也是一脸懵,最后可能部门不合适,最后给了fail~

知乎一面
自我介绍,项目介绍
1.先简单介绍了这个是知乎的什么部门
2.熟悉golang吧,讲讲GPM模型
3.讲讲go的启动过程
4.go的GC和Python的GC
5.go的值传递和引用传递
6.pg的索引类型,我们应该怎么建索引
7.pg的隔离级别
8.redis的数据结构
9.redis hash底层,zset底层,为什么用skiplist不用红黑树
10.微服务的通信方式,RPC常用框架
11.算法题:
1)单链表转至
2)n个有序的单链表合并
3)n个有序的单链表取交集
*算法题写的快了,就多问了几个


字节一面(今日头条,之前的挂了,简历被捞了)
自我介绍,项目介绍
1.mysql的隔离级别
2.redis的pipline
3.redis怎么实现事务
4.redis 的主从同步怎么实现,为什么是fork子进程不是用线程
5.redis6.0是怎么实现多线程的
6.进程为什么比线程切换的慢
7.说下3次握手,4次挥手
8.算法题:
1)给定一颗二叉树,如何判断是完全二叉树
2)微信的红包随机算法,要求每个人的数学期望一致
9.提问环节

鳄梨科技二面
自我介绍,项目介绍
1.如何用mysql实现队列,如kafka
2.怼项目怼了30min
3.提问环节
4.和面试管聊职业规划,上班工作效率,有的没的.....

鳄梨科技三面(CEO面)
没有技术相关的,都是聊职业规划,对行业的看法等


探探三面
自我介绍,项目介绍
1.怼项目
2.唯一ID生成服务设计
3.算法题:给定一个有重复数字的整形数组,实现全排列,不能包含重复数组

探探四面
自我介绍,项目介绍
1.怼项目
2.kafka怎么保证消息有序,kafka怎么保证不消费重复消息
3.带过人吗,讲讲项目管理
4.对现有的合作方式有什么建议(指pm和rd的关系),怎么更高效
5.怎么提高自己的技术水平

知乎二面
自我介绍,项目介绍
1.怼项目怼了30min
2.项目里怎么保证两个微服务的数据一致的(分布式事务)
3.讲讲常用的分布式事务的解决方案
4.redis底层架构讲讲,客户端,服务端
5.redis的cluster内部是怎么高可用的
6.讲讲kafka的架构
7.kafka多个partition怎么对应多个consumer group的consumer,rebanlance机制
8.提问环节

知乎三面
说是有总监面,最后没面,直接HR面了,这里不说了哈~

好大夫二面(CTO面)
自我介绍,项目介绍
1.怼项目怼了30min
2.如何解决下游服务挂了,对上游服务的通知和维护
3.监控报警设计
4.介绍好大夫
5.有什么爱好,为什么从python转golang
6.提问环节

伴鱼一面
自我介绍,根本不提项目
0.先问算法题:复杂链表的复制([138] 复制带随机指针的链表)

1.redis为什么会这么快
2.redis常用数据结构
3.redis的主从备份
4.mysql的索引都有什么,说说区别(mysql不熟,说pg的)
5.给了mysql具体的sql语句能不能命中索引
6.mysql的索引构建的建议
7.kafka怎么保证不丢消息
8.kafka pull出来消息后要开多个goroutine消费,怎么保证最后数据提交offset后数据不丢
9.go的 slice扩容机制,slice 在for一遍会改变内容吗
10.go的值传递和引用传递
11.用什么编译器
12.提问环节


总结:
题主已经获得offer:好大夫,探探,知乎,鳄梨科技

面试中:一面算法题很重要,二面算法题也很重要,但是架构能力在二面中也很重要
就到这里吧,保持终身学习真的很重要!

欢迎和题主多交流,共同探讨技术或者职场问题哦~


#面经##社招##滴滴##字节跳动##好未来##知乎##golang工程师#
全部评论
3 回复 分享
发布于 2021-07-07 10:18
到知乎来吧,做同事
2 回复 分享
发布于 2021-07-10 13:41
楼主还是很厉害的😄
1 回复 分享
发布于 2022-01-12 23:57
牛!学习了
点赞 回复 分享
发布于 2021-07-15 00:02
go 怎么实现func的自定义参数 这个怎么回答啊
点赞 回复 分享
发布于 2021-07-20 14:53
go不是只有值传递么
点赞 回复 分享
发布于 2021-10-28 07:27
🆘,好大夫HR在这里,目前还在招Go,感兴趣可以私聊
点赞 回复 分享
发布于 2021-11-05 16:09
60% - 70% 的问题大概能说出个 一二三,但是感觉答题不会很全怎么办
点赞 回复 分享
发布于 2022-01-21 03:00
知乎办公环境怎么样,加班严重不
点赞 回复 分享
发布于 2022-03-11 14:10

相关推荐

11-22 18:44
四川大学 golang
这家公司效率还挺高的,BOSS上找到我秒发笔试,笔试完当晚就发了面试,一面完当晚就发了二面,非常迅速,所以单独拿出来说一下,我是C++技术栈,我没有UE经历,base地成都。笔试用的好像是他们自己的平台,具体的题和别的人发的差不多,大体是有三道大题,每道大题有三个小题,第一小题的输出作为第二小题的输入,以此类推,相当于有九道题,不过其实只有三四道算法题,另外的都是很基础的倒来倒去的操作,只有一道hard是lc233数字1的个数,数位dp,然后还有个带手续费的买卖股票,反正很简单。一面(回忆版、50min左右)飞书平台自我介绍这里我还提了一下我的steam时长,因为他们boss页面上写着要求Steam时长5000+。介绍一下指针、左引用、右引用这里我着重讲的右引用,大致从历史意义、设计思路、完美转发、引起的改动(比如c++11因此有了更好的智能指针、有了emplace、默认做了RVO等等)这些角度讲的。发了段代码让我说输出,大致内容是AB两个类(无继承关系)直接用B指针去指A然后去强转,再解引用做拷贝构造,我一眼就看出这个是UB,告诉他他这个代码是存在问题的,大概就是这个c style cast会转化为reinterpret_cast,然后在实际上不代表适当类型的对象的泛左值上进行代表非静态数据成员函数的成员访问将导致未定义行为。不过我还是大概猜到他想表达什么,大概就是内存布局差不多的两个类指针直接cast过去是算偏移而不是符号(再次声明这个操作其实是UB)。有哪些种类的锁,都有什么用讲一下LRU-k介绍一下xv6里的锁设计介绍一下你写的tcp的内容反问环节二面(25min左右)就简单聊了一下以前的项目经历,没问八股。
查看7道真题和解析
点赞 评论 收藏
分享
评论
36
299
分享
牛客网
牛客企业服务