和大家分享一下我们 Go就业训练营升职加薪星球 中战友们投稿的真实面经。

这是第一篇,计划还会再更新4篇最新Go面经,都是拿到Offer的那种!

欢迎大家关注我的账号,关注之后不迷路。

先秀战绩

虽然不同的公司考察的侧重点不一样,但是咱们还是可以有针对性做准备。大佬说到:

经过这么多场面试发现:如果面试官对项目感兴趣项目就拷打的比较深(我觉得还比较easy);如果面试官对项目没兴趣就深挖知识点,拷打算法。(墙裂建议大家写好项目介绍!)

b站外包

  1. 旋转数组

  2. mysql索引相关。

  • B+树有什么特点?
  • 为什么不用B树(查询的速度差不多,因为b+树数据都在叶子节点)。
  • 非聚簇索引和聚簇索引的区别。
  • 索引为什么要用id不用字符
  1. Linux相关命令和场景

  2. docker和k8s

上海莹锴网络科技

  1. Kafka怎么保证消息不丢失

  2. Kafka里面生产者给broker应答给生产者的时候网络断了该怎么处理?

  3. 讲一下golang中的并发编程

梭翱信息技术

  1. go语言特性(channel、map考察)

  2. 讲一下waitgroup的使用

  3. 知道模块化缓存吗?

  4. 知道分级缓存吗?

主要是一些缓存的应用场景为主。对于一些技术(redis、mq)的应用场景这部分比较欠缺

矢安科技

  1. 哪些数据结构是线程不安全的

  2. Map为什么是线程不安全的

  3. Channel阻塞可以实现什么场景(计数,令牌桶)

  4. Mysql什么时候是行所什么时候是表锁

  5. Mysql有几种错误读(脏读、幻读等等)

  6. Mysql默认事务隔离级别是什么

  7. 假如有个sql联了多个表还有字查询,改怎么优化

  8. 你平常是怎么优化mysql的

  9. Kafka为什么快?

  10. Kafka怎么实现消息不丢失

  11. Kafka是顺序写还是随机写

  12. Go协程是怎么扩展内存的(找P要)

  13. 讲一下你对docker和k8s的理解

  14. 说一下某种集群的leader选举策略(举例了redis)

  15. Redis中什么是主管下线,什么是客观下线。

  16. 聊一聊你对GRPC的理解。

  17. 为什么gprc传输比JSON快

  • 少了json转为2进制

  • protobuf文件中字段名用后面的数字代替,进一步减少数据量(学到了)

场景题:

  1. 假如有大量定时任务需要在凌晨1点都准时开始执行,你会怎么做

  2. 假如消息发送过多导致大量堆积怎么处理

华苏科技(国家电网外包)

项目拷打(介绍项目+遇到的难题)

  1. 有缓冲channel和无缓冲channel的区别

  2. 了解gin的中间件吗,讲一下你对他的了解

  3. select 满足多个case的时候怎么执行的。

  4. 如果有一个全局变量怎么保证并发安全。

  5. CPU高问题如何解决?

  6. 知道哪些设计模式?

场景题:

我有一个方法,用来存储一些文件资源,有多种不同的存储方式,你会怎么设计这个方法(应该是要考察泛型的使用)

爱可生

面试官说是go开发,但是没有什么技术原理提问。

介绍简历中的项目。

  1. 遇到的项目场景难题。

(他不太想听那种用技术选型方案来解决的常规问题,吹了一下systemtap)

  1. 讲一个技术栈中随便一个技术遇到的难题。

  2. 平时是怎么学习的。

整个面试几乎就没有技术性提问,一直在让我介绍项目,和遇到的问题以及我是怎么解决的,解决的思路是什么。

特斯拉外包笔试

题1

题2

题3

最后一道sql没写出来。但是前两题自测都对

成都美大

项目拷打

  1. 讲一下mysql的索引是什么结构

  2. 讲一下sql一般是怎么优化的

  3. Kafka消息堆积怎么处理

  4. 写一个方法的时候是传值好还是结构体好

场景题:

秒杀超卖怎么解决。(分布式锁+redis缓存)

矢安科技二面

一面的技术leader,没有聊太多的技术话题。主要是一些团队协作沟通上的问题

  1. 假如产品给你一个需求,你觉得不合适,和产品经理有冲突,你会怎么做?

  2. 你平时是怎么学习的?

  3. 假如给你一个活要求某个时间内快速完成,你又没学过,你会怎么做?

试探你是不是愿意加班

七云网络

笔试

三道程序解答题:

题1

问1

先输出哪个?

题2



问2

输出什么?

题3



问3

这段代码有什么问题?

问答题:

  1. TCP和http的关系是什么?

  2. 伪代码描述一下乐观锁

  3. Linux怎么看磁盘占用?

  4. 描述一下GC的过程?

  5. SQL题:写出薪资第二高的薪资

表emp

id int

salary int

算法:

力扣 : 20. 有效的括号(纸上纯手写)

面试

挨个问笔试的问题。。。

口述了两个方法for循环里操作channel之类的,但是他语言组织的我实在没听懂。。。

  1. 假如有一个高并发的场景,我怎么处理(不能借住其他组件,纯go程序)

然后mq问了两个迷一样的问题。

  1. 他提到了Kafka然后问我用的什么MQ,我说Kafka就是一种mq啊。感觉面试官不是很熟悉Kafka

  2. 接着他问我Kafka里的分组是怎么设置的,我以为他问的是消费者分组。结果他说是topic里的。结果他问的分组是Topic分区。。。

这家就别去了。面试流程很不合理,面试官沟通起来比较费劲,也不是很专业。

杉岩数据

项目拷打

其中问了为什么不用普罗米修斯去监控

  1. 假如你用于通知的Kafka挂了怎么办?有没有对Kafka进行监控?

  2. channel的使用场景?

  3. chaneel关闭之后再读和再关闭会发生什么?

  4. map中的数据delete之后内存会回收吗?

  5. 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)
}
}
  1. c最后是怎么样的?

func main() {
values := []int{1,2,3,4,5,6,7,8,9}
for _,v := range values {
go func(){
println(v)
}()
}
}
  1. 求输出

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")
}
  1. 求输出

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")
}
  1. 求输出

  1. 改造他让他变得有序
func main() {
values := []int{1,2,3,4,5,6,7,8,9}
for _,v := range values {
go func(){
println(v)
}()
}
}

杉岩二面

项目拷打15分钟

  1. Kafka的消息丢失和消息重复消费。

  2. Kafka和Rabbitmq的区别在哪?(架构、推和拉)

  3. 拉的模式有什么好处(控制消费速度)

  4. 使用分布式锁的过程中应用挂了?

  5. 优雅启停+defer

  6. 使用过期时间+自动续期

  7. 对象存储和文件存储的主要区别是什么?

  8. 分片上传是怎么实现的(文件合并hash一致性校验,引出文件秒传)

  9. 邮箱验证码功能怎么实现的。(redis+邮箱组件)

  10. jwt的格式。加密算法、内容、过期时间

  11. 讲一下defer的原理

  12. 讲一下map的底层结构

  13. map中hash冲突怎么解决(链表、红黑树)

  14. 讲一下go性能调优的案例(pprof,线程日志)

  15. 通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待?

  16. 线程日志上面会有标记。

  17. 讲一下mysql的事务隔离级别?

  18. 解释一下什么是可重复读?

  19. 事务实现的底层原理?

  20. Redis持久化机制(RDB,AOF)

  21. 为什么持久化的时候是fork子进程处理

  22. 讲一下docker实现容器的基本原理

  23. 用过其他容器运行时吗

  24. K8s有哪些组件?

  25. 你们是用什么control去构建deployment的?(没听懂)

欢迎交流

面经先分享到这里,如果你也有最新Go面经欢迎向我投稿:有偿的哦!

也欢迎你了解一下我们的就业训练营,辅导到你找到工作为止的那种

我们又出成绩啦!大厂Offer集锦!遥遥领先!

这些朋友赢麻了!

这是一个专注程序员升职加薪の知识星球

答疑解惑

需要「简历优化」、「就业辅导」、「职业规划」的朋友可以联系我。

一对一辅导的那种呦!

面试真题共享群

对了,我们准备搞一个金三银四面试真题共享群,互通有无,一起刷题进步,没准能让你能刷到自己意向公司的最新面试题呢。

感兴趣的朋友们可以在社区私信我。

或者加我微信:wangzhongyang1993

关注我的同名公众号:王中阳Go

那位拿了多个Offer的大佬分享了最新Go面经的更多相关文章

  1. 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!|JavaGuide|Guide哥

    这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯.京东.百度等大厂 offer 的经历.文章内容很全面.真实,相信可以对正在准备面试的小伙伴有帮助! 看到公众 ...

  2. 逍遥大佬分享mysql知识

    设计表规则: 0),数据库名字以db_开始,编码UTF8 1),表名都以tb_开始 2),字段都是用小写,比如是否删除is_delete 3),表都是innodb,utf8格式的 4),最重要的,表名 ...

  3. 从Java小白到收获BAT等offer,分享我这两年的经验和感悟

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  4. 靠这些秋招秘笈,齐姐的学妹今年已经拿到了 8 个offer!

    小齐说: 现在秋招进行时,正在找工作的小伙伴进度都怎么样了呀? 今天这篇文章是我武大的学妹今年秋招的经验分享,庆妹去年才决定转行,现在已手握 N+ 个 offer - 这篇文章干货满满,庆妹对每一块面 ...

  5. Photoshop零基础教程集锦,助你快速进阶为大佬,轻松、任性!!!

    现今,对于Web或App UI设计师而言,除了不断学习专业知识,提升设计技能.掌握一款得心应手的设计工具(例如设计师们常用的图像处理工具PhotoShop,矢量图绘制工具AI, 图形视频处理工具AE, ...

  6. 阿里大佬教你,如何写好 Java 代码!

    点击上方蓝色链接,关注并"设为星标" Java干货,每天及时推送 阿里大佬分享的一篇很不错的文章,推荐收藏! 导读 明代王阳明先生在<传习录>谈为学之道时说: 私欲日生 ...

  7. 大厂面试过程复盘(微信/阿里/头条均拿offer,附答案篇)

    背景 本人前端,3年经验,由于个人的原因,决定跳槽,于是大概3月开始找工作,总历时大概2个月,面试了微信/阿里/头条,三家都拿到了offer,来分享一下面经. 问题比较多,而且很多面试题都是跟个人项目 ...

  8. 对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考

    一:背景 1. 讲故事 这段时间项目延期,加班比较厉害,博客就稍微停了停,不过还是得持续的技术输出呀! 园子里最近挺热闹的,精致码农大佬分享了三篇文章: 为什么要小心使用 Task.Run [http ...

  9. 我的秋招经验分享(已拿BAT头条网易滴滴)

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  10. 摸索出来的chrom调试前后台数据(Java&&Ajax)交互的方法分享一下咯!!!

    1:开始没想分享的,后来看到有大佬分享如何使用Chrom的工具进行调试,哈哈哈哼,我就借着他的博客写一下我摸索的如何进行前后台数据交互吧(注:反正是自己瞎 捣鼓出来的,也许适合我,and我脑补一下吧, ...

随机推荐

  1. C# 12 中新增的八大功能你都知道吗?

    前言 转眼之间C#都已经更新到了12了,那么C# 12 中新增的八大功能你都了解过吗?今天我们来简单介绍一下C# 12 中新增的八大功能. C#/.NET该如何自学入门?:https://www.cn ...

  2. DS12C887时钟模块, STC89和STC12的代码实现

    DS12C887是时钟芯片DS12C885集成了电池和晶振的版本. 如果拆掉DS12C887的外壳, 能看到里面就是DS12C885. 功能特性 能输出世纪.年.月.日.时.分.秒等时间信息 集成电池 ...

  3. Js将字符串转数字的方式

    Js将字符串转数字的方式 Js字符串转换数字方方式主要有三类:转换函数.强制类型转换.弱类型隐式类型转换,利用这三类转换的方式可以有5种转换的方法. parseInt() parseInt()和Num ...

  4. Java I/O 教程(二) 介绍OutputStream 和 InputStream

    OutputStream vs InputStream 我们来看一下两者的工作图: OutputStream 输出流 Java应用程序使用输出流将数据写入到某个目的地,可以是一个文件,数组,外围设备或 ...

  5. 硬件开发笔记(三):硬件开发基本流程,制作一个USB转RS232的模块(二):设计原理图库

    前言   上一篇了解了基本的过程,选型了相关的芯片,本篇描述原理图的设计过程,在原理图设计之前或者过程中需要不断新增原理图元器件.   Allegro.OrCad   Cadence公司针对PCB方面 ...

  6. 数据分析day01

    数据分析三剑客 numpy pandas(重点) matplotlib numpy模块 NumPy(Numerical Python)是Python语言中做科学计算的基础库.重在于数值计算,也是大部分 ...

  7. 在矩池云安装使用PaddleHub 和 PaddlePaddle

    之前在安装 PaddleHub 导入的时候遇到各种错误,不是这个包没这个模块,就是哪个包没这个属性 ...很头痛,网上也没有 PaddleHub 和 PaddlePaddle 对应的版本,只能自己慢慢 ...

  8. 【Azure 容器应用】在中国区Azure上创建的容器服务默认应用域名不全

    问题描述 在中国区Azure上,创建Container App服务,发现默认的应用程序URL只有前半段,并不是一个完整的域名.这是什么情况呢? 正常的Container App的URL格式为:< ...

  9. 【Azure 应用服务】Python3.7项目在引用pandas 模块后,部署报错 

    问题描述 参考"快速入门:在 Linux 上的 Azure 应用服务中创建 Python 应用" 文档,在App Service For Linux环境中部署Python应用,在添 ...

  10. 【Azure 环境】Azure Key Vault 采用自签名证书,是否需要CA provider

    关于 Azure Key Vault 证书,密钥保管库证书支持适用于 x509 证书管理,它提供以下行为: 允许证书所有者通过密钥保管库创建过程或通过导入现有证书来创建证书. 包括自签名证书和证书颁发 ...