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

相关推荐

36 299 评论
分享
牛客网
牛客企业服务