和大家分享一下我们 Go就业训练营 和 升职加薪星球 中战友们投稿的真实面经。
这是第一篇,计划还会再更新4篇最新Go面经,都是拿到Offer的那种!
欢迎大家关注我的账号,关注之后不迷路。
先秀战绩

虽然不同的公司考察的侧重点不一样,但是咱们还是可以有针对性做准备。大佬说到:
经过这么多场面试发现:如果面试官对项目感兴趣项目就拷打的比较深(我觉得还比较easy);如果面试官对项目没兴趣就深挖知识点,拷打算法。(墙裂建议大家写好项目介绍!)
b站外包
-  旋转数组 
-  mysql索引相关。 
- B+树有什么特点?
- 为什么不用B树(查询的速度差不多,因为b+树数据都在叶子节点)。
- 非聚簇索引和聚簇索引的区别。
- 索引为什么要用id不用字符
-  Linux相关命令和场景 
-  docker和k8s 
上海莹锴网络科技
-  Kafka怎么保证消息不丢失 
-  Kafka里面生产者给broker应答给生产者的时候网络断了该怎么处理? 
-  讲一下golang中的并发编程 
梭翱信息技术
-  go语言特性(channel、map考察) 
-  讲一下waitgroup的使用 
-  知道模块化缓存吗? 
-  知道分级缓存吗? 
主要是一些缓存的应用场景为主。对于一些技术(redis、mq)的应用场景这部分比较欠缺
矢安科技
-  哪些数据结构是线程不安全的 
-  Map为什么是线程不安全的 
-  Channel阻塞可以实现什么场景(计数,令牌桶) 
-  Mysql什么时候是行所什么时候是表锁 
-  Mysql有几种错误读(脏读、幻读等等) 
-  Mysql默认事务隔离级别是什么 
-  假如有个sql联了多个表还有字查询,改怎么优化 
-  你平常是怎么优化mysql的 
-  Kafka为什么快? 
-  Kafka怎么实现消息不丢失 
-  Kafka是顺序写还是随机写 
-  Go协程是怎么扩展内存的(找P要) 
-  讲一下你对docker和k8s的理解 
-  说一下某种集群的leader选举策略(举例了redis) 
-  Redis中什么是主管下线,什么是客观下线。 
-  聊一聊你对GRPC的理解。 
-  为什么gprc传输比JSON快 
-  少了json转为2进制 
-  protobuf文件中字段名用后面的数字代替,进一步减少数据量(学到了) 
场景题:
-  假如有大量定时任务需要在凌晨1点都准时开始执行,你会怎么做 
-  假如消息发送过多导致大量堆积怎么处理 
华苏科技(国家电网外包)
项目拷打(介绍项目+遇到的难题)
-  有缓冲channel和无缓冲channel的区别 
-  了解gin的中间件吗,讲一下你对他的了解 
-  select 满足多个case的时候怎么执行的。 
-  如果有一个全局变量怎么保证并发安全。 
-  CPU高问题如何解决? 
-  知道哪些设计模式? 
场景题:
我有一个方法,用来存储一些文件资源,有多种不同的存储方式,你会怎么设计这个方法(应该是要考察泛型的使用)
爱可生
面试官说是go开发,但是没有什么技术原理提问。
介绍简历中的项目。
- 遇到的项目场景难题。
(他不太想听那种用技术选型方案来解决的常规问题,吹了一下systemtap)
-  讲一个技术栈中随便一个技术遇到的难题。 
-  平时是怎么学习的。 
整个面试几乎就没有技术性提问,一直在让我介绍项目,和遇到的问题以及我是怎么解决的,解决的思路是什么。
特斯拉外包笔试
题1

题2


题3


最后一道sql没写出来。但是前两题自测都对
成都美大
项目拷打
-  讲一下mysql的索引是什么结构 
-  讲一下sql一般是怎么优化的 
-  Kafka消息堆积怎么处理 
-  写一个方法的时候是传值好还是结构体好 
场景题:
秒杀超卖怎么解决。(分布式锁+redis缓存)
矢安科技二面
一面的技术leader,没有聊太多的技术话题。主要是一些团队协作沟通上的问题
-  假如产品给你一个需求,你觉得不合适,和产品经理有冲突,你会怎么做? 
-  你平时是怎么学习的? 
-  假如给你一个活要求某个时间内快速完成,你又没学过,你会怎么做? 
试探你是不是愿意加班
七云网络
笔试
三道程序解答题:
题1
 
问1
先输出哪个?
题2
 
 问2
输出什么?
题3
 
 问3
这段代码有什么问题?
问答题:
-  TCP和http的关系是什么? 
-  伪代码描述一下乐观锁 
-  Linux怎么看磁盘占用? 
-  描述一下GC的过程? 
-  SQL题:写出薪资第二高的薪资 
表emp
id int
salary int
算法:
力扣 : 20. 有效的括号(纸上纯手写)
面试
挨个问笔试的问题。。。
口述了两个方法for循环里操作channel之类的,但是他语言组织的我实在没听懂。。。
- 假如有一个高并发的场景,我怎么处理(不能借住其他组件,纯go程序)
然后mq问了两个迷一样的问题。
他提到了Kafka然后问我用的什么MQ,我说Kafka就是一种mq啊。感觉面试官不是很熟悉Kafka
接着他问我Kafka里的分组是怎么设置的,我以为他问的是消费者分组。结果他说是topic里的。结果他问的分组是Topic分区。。。
这家就别去了。面试流程很不合理,面试官沟通起来比较费劲,也不是很专业。
杉岩数据
项目拷打
其中问了为什么不用普罗米修斯去监控
-  假如你用于通知的Kafka挂了怎么办?有没有对Kafka进行监控? 
-  channel的使用场景? 
-  chaneel关闭之后再读和再关闭会发生什么? 
-  map中的数据delete之后内存会回收吗? 
-  GRPC请求和http请求有什么区别 
腾娱
四道基础语法题
c := []int{11, 12, 13}
test(c)
log.Info("c=%v", c)
func test(s []int) {
	for i := 0; i < 10; i++ {
		s = append(s, i)
	}
}
- c最后是怎么样的?
func main() {
        values := []int{1,2,3,4,5,6,7,8,9}
        for _,v := range values {
                go func(){
                        println(v)
                }()
        }
}
- 求输出
func main() {
    wg := sync.WaitGroup{}
    for i := 0; i < 5; i++ {
        go func(wg sync.WaitGroup, i int) {
            wg.Add(1)
            fmt.Printf("i:%d\n", i)
            wg.Done()
        }(wg, i) 
    }
    wg.Wait()
	println("exit")
}
- 求输出
func testDefer() (err error) {
	defer func() {
		if err != nil {
			log.Error("defer: %s", err)
		}
	}()
	log.Info("testDefer: %s", "test")
	return handle()
}
func handle()error{
	return fmt.Errorf("normal:test")
}
- 求输出
- 改造他让他变得有序
func main() {
        values := []int{1,2,3,4,5,6,7,8,9}
        for _,v := range values {
                go func(){
                        println(v)
                }()
        }
}
杉岩二面
项目拷打15分钟
-  Kafka的消息丢失和消息重复消费。 
-  Kafka和Rabbitmq的区别在哪?(架构、推和拉) 
-  拉的模式有什么好处(控制消费速度) 
-  使用分布式锁的过程中应用挂了? 
-  优雅启停+defer 
-  使用过期时间+自动续期 
-  对象存储和文件存储的主要区别是什么? 
-  分片上传是怎么实现的(文件合并hash一致性校验,引出文件秒传) 
-  邮箱验证码功能怎么实现的。(redis+邮箱组件) 
-  jwt的格式。加密算法、内容、过期时间 
-  讲一下defer的原理 
-  讲一下map的底层结构 
-  map中hash冲突怎么解决(链表、红黑树) 
-  讲一下go性能调优的案例(pprof,线程日志) 
-  通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待? 
-  线程日志上面会有标记。 
-  讲一下mysql的事务隔离级别? 
-  解释一下什么是可重复读? 
-  事务实现的底层原理? 
-  Redis持久化机制(RDB,AOF) 
-  为什么持久化的时候是fork子进程处理 
-  讲一下docker实现容器的基本原理 
-  用过其他容器运行时吗 
-  K8s有哪些组件? 
-  你们是用什么control去构建deployment的?(没听懂) 
欢迎交流
面经先分享到这里,如果你也有最新Go面经欢迎向我投稿:有偿的哦!
也欢迎你了解一下我们的就业训练营,辅导到你找到工作为止的那种:
我们又出成绩啦!大厂Offer集锦!遥遥领先!
这些朋友赢麻了!
这是一个专注程序员升职加薪の知识星球
答疑解惑
需要「简历优化」、「就业辅导」、「职业规划」的朋友可以联系我。
一对一辅导的那种呦!
面试真题共享群
对了,我们准备搞一个金三银四面试真题共享群,互通有无,一起刷题进步,没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以在社区私信我。
或者加我微信:wangzhongyang1993
关注我的同名公众号:王中阳Go
















![[Linux]知识整理(持续更新)](https://img-blog.csdnimg.cn/direct/fc5a359788374055b92ef8ddfe7dc782.png)


