2022年最新3月Go面经(凉)

2022年最新3月Go面经(凉)

首发公众号:《2022年最新3月Go面经(凉)》

又到了金三银四跳槽季,作者君最近也面了几家公司,特此分享一份Golang岗位的凉经,希望对大家有所帮助。

通过最近的一些面试,我发现一些规律:

  • 很多公司要等到3月份初才打开招聘窗口:遇到的如泛微,字节等等。
  • 很多公司内部系统技术栈转型升级,释放一批Go的岗位,如得物APP(Python->Go),人人视频(Java->Go)等等。

PS1:最近上海疫情严重,全市居家隔离得有一个多月嘞,希望一切顺利,尽快解封!
PS2:一面都是电话,二面需要去现场。

历程

  • 万向区块链,一面过,二面凉
  • 趋动科技,一面过,二面凉
  • 上海好说,一面过,二面过
  • 商米,一面+二面同时(2.21 10:30),没下文。可能薪资给不到,或其他原因。
  • 人人视频,一面+二面同时(3.4 14:00),一面过,二面凉
  • 字节跳动,一面(3.9)完成,算法没答出来也过了,二面(3.16)凉,各种系统设计没回答上来,最后一道代码写出来了但是有bug运行不正确😭
  • 英语流利说,一面凉(3.9,考验系统设计,场景题)
  • 微盟,一面(3.17)凉,和岗位不太匹配,对方关注cicd和k8s容器开发

微盟——高级容器工程师

2022.3.17 一面 40分钟

  1. 项目情况,项目的技术栈,链路追踪的技术栈,用到grpc的那些特性了(trace,metahead,promethus都支持)?
  2. CI/CD你知道原理吗?公司有这样的平台,大致是如何实现的?
  3. 有接触过除了mysql之外,非关系数据库比如mongodb这类的存储系统吗?
  4. 网关对内有哪些保护措施?如何识别一个陌生请求,并且过滤?通过remoteIP方式吗?

总结:和岗位要求不太匹配, 不到40分钟匆忙结束。

字节——飞书部署工程师

一面

2022.03.09 1小时左右

  1. 自我介绍 17:05 - 18:10
  2. GMP说一下
  3. channel的应用场景和原理
  4. go有哪几种内存分配方法?new和make有什么区别?
  5. go是如何实现面向对象的?
  6. interface原理说一下
  7. 熟悉那些中间件?
  8. redis持久化有哪几种?
  9. redis集群有哪几种?
  10. redis大key如何解决?
  11. 分布式
  • 限流有哪几种?
  • 分布式环境下如何排查问题?
  • 如何确保链路中都有traceId?通过技术手段log中间中
  1. 简单介绍下im 的架构
  2. 短链接和长链接的区别
  3. 说一下https 的认证,更换了tLs
  4. 最近遇到的最难的问题和解决办法
  5. kafka 丢失说一下,怎么解决
  6. kafka 调优你知道哪些
  7. 最后一道算法题:最长回文子串,说一下大概解题思路(马拉车和动态规划),答错了,用双指针解法一通乱说,也给过了。

二面

2022.03.16 50分钟左右

  1. 自我介绍
  2. 说一个你觉得最重要的项目?
  3. im未读技术如何设计?多少个人已读这种,如何设计呢?
  4. rpc你有在用,那么如果让你设计一个rpc框架,你如何设计?提示:怎么实现客户端远程调用服务端的代码呢?
  5. redis用了什么架构?分片集群的大概原理?部署了多台,怎么觉得如何存储呢?
  6. 一个有1亿url的文件,如何找出重复的url?
  7. 如果要做一个微博信息流系统,让你来设计,你如何设计?
  8. 写代码(10分钟内),比较2个字符串版本号,删除true/false,那个大
“0.1” > “1.0” : false
“1.1” > “0.0.0.100”  : true
 “2.1” > “1.0.0”: false

总结:凉,着重考验系统设计能力,总共有5轮左右。。。

英语流利说——高级go 工程师

2022.03.09 一面 硬挺了50分钟左右

  1. im 架构
  2. 一道算法题:找到只出现一次的元素。给一个数组,其他数字出现3次,只有一个出现一次,找到它。说你的思路。。。。升级:现在要设计rpc接口,有100万个数字,并发为1,你能怎么优化?……升级:多个并发,你如何设计?有哪些能优化?……升级:k8s 用过吗?如何规划内存?
  3. 一道redis题:以天为单位,记录登录用户id,统计连续登录的用户。redis 用什么数据结构?1k 的时候,接口如何设计?10k 的时候呢?
  4. 一道mysql题目:短链网址,如何设计表结构?key 怎么生成?
  5. 一道mysql题目:插入10条,删除8,9,10,插入一条,重启mysql id 是多少?主从如何同步?binlog 啥问题……undo/redo 用处
  6. 现场又出了一道:群里面未读计数 怎么做?假设500人的群。扩散写如何优化?没答出来。

总结:视频面试,上来发了一个在线word,里面有4道题,让你现场解,说思路和实现。现在回想都感觉还很紧张,也确实没思路,凉的很厉害,被虐的体无完肤,只想赶紧结束。

人人视频——高级Golang工程师

一面

2022.03.04 50分钟

  1. 一道笔试题,找至少3处漏洞(找了9个)
    在这里插入图片描述
  2. gmp简单说一下每个代表什么
  3. 如果要你实现一个线程安全的sync.map,你有哪些思路?
  4. 未读计数有哪些难点?
  5. gorm框架让你设计,从使用层面,你会怎么做?
  6. 支付和交易或者抽奖有接触过吗?现在有个场景:抽盲盒,假设一个人连续抽8发就成为霸主,这个订单只有他能支付。但是他可能会分几次抽。如果这个时候,有个人直接付款下单了,霸主就很不爽,你有什么好的思路?
  7. restful有了解过吗?如果现在要修改一个用户昵称,如何设计url以及使用http的那个方法?
  8. http 3.0有了解过吗?
  9. redis持久化机制和刷盘时,还有部分在内存中,redir会怎么办?
  10. linux启动后台进程,有哪些方式?说了3种
  11. 看log的命理你?在文件中如何查找,/,如果内容太大,内存放不下怎么办?grep和awk
  12. 你会主动了解周边的业务吗?
  13. 有自己负责的开源项目或者参与过哪些开源项目?

二面

2022.03.04 40分钟

  1. 自我介绍
  2. 听你说k8s了解过,说一下都有哪些组件?svc server都是干啥的?pod和容器什么关系?
  3. redir几种基础数据结构都是如何实现的?他们基于什么?说一下你怎么的高级数据结构?
  4. 布隆过滤器的原理和应用场景。
  5. 你说缓存击穿和穿透,说一下。
  6. 限流算法有哪些?go包自带的是基于啥?滑动窗口和一般的限流有什么区别?
  7. 知道熔断的原理吗?
  8. 微服务治理说说你的理解?提了链路追踪和监控。
  9. mysql如果你看执行计划,你一般会关注哪些?提了耗时,sql和索引……
  10. kafka中消费失败了怎么办?重新消费,一直失败呢?wtf?
  11. kafka消息丢失有哪几种方式处理?说了3种,有个至少一次,ack,其他没答上来
  12. kafka集群,分区之间如何rebanlace?……

总结:一面面试官很友好,诚恳,把岗位的背景介绍了一下,他们想要找有电商支付、抽奖经验的人,所以知道二面会尬聊,后悔为啥没直接撤退,浪费大家时间,事实证明被虐之后狂补Kafka作业,意外的有收获。

商米——Golang后台开发

第一个面试官

2022.02.21 (一面,1小时03分钟,2人同时)
开场白,自我介绍,聊项目,问Golang问题,MySQL问题,对微服务怎么看,其他问题等等。

  1. 你刚刚说到使用了Gin框架,说一下它为什么那么快?
  2. Goroutine你怎么理解?
  3. Goroutine为什么占用那么小内存?
  4. 刚刚提到GMP调度,简单说一下?
  5. 逃逸分析知道吗?什么情况下会逃逸分析?
  6. slice和数组的区别?slice动态扩容说一下?
  7. map的实现原理能简单说一下吗?
  8. 如何实现线程安全的map?使用互斥锁和Sync.Map,为什么那么快?
  9. 遇到过内存泄漏吗?举例说一下?说了goroutine泄漏和channel泄漏
  10. context包的主要作用是?超时,通信,级连取消。
  11. 如何取消多个goroutine的执行?
  12. Golang的最佳实践会总结吗?
  13. Go反射有了解过吗?说说原理和作用?

第二个面试官

  1. 过去的项目中,那个你成长最快,挑战最大,成就感最高?
  2. 在技术层面可以说说?
  3. 刚刚又说到管理TCP,那么说一下你们是怎么管理TCP的?
  4. 现在有一个场景,服务器负载2万TCP链接再也上不去,你怎么分析?
  5. mysql现在有一个sql执行比较慢,说一下你知道的所有可能导致慢的原因?
  6. 会到TCP,你们可客户端通信使用的协议是?TLS(TCP)+Protobuf
  7. tcp粘包问题怎么解决?协议头+Length,根据Length拆Body即可
  8. TLS是保障云的安全还是端的安全?
  9. 对于微服务怎么看?什么是微服务?
  10. 一般会遇到哪些问题,或者微服务要注意什么(有点忘了原问题)?
  11. 你在xxx呆了有小三年,说说你的加入给团队带来的改变或者新技术?
  12. 你的职业规划?
  13. 你刚刚说忘技术专家方向发展,那未来1-3年,你希望哪些方面有提示?
  14. 你的下一份工作,你希望公司具备哪些特质,比如创业公司、传统公司、经济基础?
  15. 你们一般项目的开发流程是什么样的?
  16. 持续发布是xx+jenkins那一套?
  17. 你从xxx离职的原因?
  18. 还有什么想要了解的?
  19. 说一下你负责模块的业务价值?
  20. 你目前的薪资?

总结:没下文,可能薪资给不到,或其他原因。BOSS上问原因也不回,感觉是刷KPI的。。

万向区块——高级工程师

一面

2022.02.16 50分钟
开场白,自我介绍,了解我的基本情况。

  1. go
  • channel有哪些应用场景,有哪些要注意的坑?
  • map有什么要注意的?说了线程安全、ok访问、遍历不能动态扩容的问题
  • 很复杂的对象如何初始化?比如map的value 是一个结构体,里面又有map,以次类推。回答提供一个New 函数实现。估计是想问反射
  • slice切片和数组有什么区别或者用法上有什么要注意的?
  • slice扩容的规则是什么?原来的数据会怎么样?
  • context有什么用?context包源码看过吗?有哪些方法证明给我看,withValue有什么用?
  • 精度问题有遇到过吗?
  1. mysql调优
  • where a=int and b=int and c=int order by d,怎么建索引?可以同时使用2个索引吗?
  • innodb存储引擎有什么特性?
  • 问我不关注调优,只关注高可用。问了几个高可用问题。怎么搭建主从?
  • 我前面说了分库分表,问你是如何分库分表?在这种情况下,多个表的聚合查询要怎么做,有什么思路(不能借助其他组件,就在mysql上实现)?
  • 事物隔离了解吗(有4种)?
  • mvcc听过吗(想问幻影读)?
  1. redis
  • 现在有个场景,一个key内容很大(几十M),一个key是热点,你如何优化?
  • 如何优雅的删除这个大key?
  1. kafka
  • 消费者和消费组的区别?
  • kafka接收消息和rabbitmq有什么区别?
  • 消费者从kafka接收消息是主动拉pull,还是kafka推送?
  1. docker
  • 用在哪些地方?怎么用的?
  • add和copy指令有什么区别?说本质没有区别
  1. k8s(一个没答上来)
  • api server有什么用?
  • master节点包含哪些组件
  1. grpc
  • grpc用过吗?如果要新增一个接口,说一下你通常的流程?
  • grpc是基于什么协议?
  1. 离职原因?
  2. 目前薪资和期望薪资?
  3. 目前公司加班吗?

二面

2022.02.22 50分钟

  1. go做题20道,大部分凉。在这里可找到:《105道Go语言面试题》https://www.topgoer.cn/docs/gomianshiti/mianshiti
  2. 手写一道mysql题,一张user表,一张签到表,每个人签到一次,有一条记录。手写SQL,把所有用户最早的签到时间打出来。

总结:凉。面试官拿笔记本打开一个Word,给了一张纸,一题一题过,每一题再白纸上写一下答案或者思路,被虐的很惨,撤退的心不在焉,幸好带了口罩,哈哈。。

趋动科技——Golang

一面

2022.02.07 30分钟
开场白,自我介绍,问一下项目情况

  1. 项目中遇到最有挑战的问题是什么?
  2. grpc有用到嘛?你们一般是怎么用的?相比http,性能有改进吗?
  3. 服务发现,你们是怎么做的?我回避了这个问题,说还是人工配置的。
  4. 听完你的项目描述,你更多是做一些运维和性能调优的工作,没有业务功能的开发吗?
  5. go
  • channel的场景和作用?读close的channel会怎样?write呢?
  • 除了channel,你能列举一下其他会引发panic的情况吗,比如map?回答了线程安全问题
  • 实际项目中,您能列举一下要主动抛出panic的场景吗?回答说比如初始化mysql连接失败,http中严重的逻辑错误,给前端返回错误提示
  • context包能简单说说吗,有哪些作用?回答了超时控制和多个routine取消
  1. mysql
  • 如果你遇到一个sql查询很慢,你会怎么去做?回答看解释器,再分析慢再那里。然后优化sql(比如不要使用联合查询),分库分表。建立索引等等
  • 联合索引你能介绍一下吗,还有它们的执行顺序?
  • datetime和timestamp有什么区别?timestamp有什么限制?什么时候到期?怎么解决?
  1. docker一般是项目中怎么用的?说用来做编译环境,写dockerfile,然后通过docker compose单机编排,快速启动调试环境。
  2. k8s了解吗?回避了,对方就没怎么问
  3. 你还有什么想了解的吗?问了团队主要做什么产品以及是否会有Code Review和技术分享,面试总共有几轮。
  4. 你的职业规划是什么?说继续从事微服务分布式开发,如果有机会接触到k8s就更好,对这一块感兴趣。

二面

2022.02.22 1小时
1.聊项目,聊产品,吹牛逼,40分钟。
2.目前薪资,期望薪资。凉!

总结:凉,2人面试,总体面试难度简单,面试官给我的感觉可能不是搞技术的,问的不深。同时,公司相关基础设施都有了。最近又有一轮融资,资金方面不用担心。主要的业务是为AI开发做基础设置,加速AI训练,To B行业,995工作制。

关于作者

如果觉得文章写得还不错,欢迎关注公众号:《Go和分布式IM》
在这里插入图片描述

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值