2024 届秋招 Golang 面经

纯面经帖,供后人参考,非经验贴,发完准备卸载牛客安心搞论文。

个人基本情况:

  • BG双非硕(非知名双非)
  • 混杂型开发:Go/Java + 前端(Vue) + 移动端 (Flutter/Swift) 都有真实项目(或开源项目)
  • Leetcode 500+ 题
  • 三段小厂实习,Github 700+ Star,博客访问量 100w+
  • 国际级、国家级、省级竞赛都有(特等、一等、二等、三等都有)

学校 BG 问题,进面的不多,大多能走完技术面,但是最后不一定能开出来(唉)

  • 部分工资会因为 BG 压薪资,也有不压的。开出来的薪资从 20- 到 50+ 的都有

主要整理一些知名厂。对于一些零零碎碎的中小厂,要么流程很奇怪,要么面试很简单,就不记录了

  • 比如:格力电器、海信、点点互动等

第一个中大厂 offer 是得物,大概在 11 月左右拿到(工资非常香),后面很多中小厂面试就拒了

最后去了百度

得物

岗位职责:

参与相关业务开发及维护工作,参与技术方案设计;参与容器化相关开发及维护工作;

参与Golang相关框架及中间件的开发及维护工作;

编写相关业务、技术文档等。

任职要求:

2024届毕业生,本科及以上学历,计算机类、软件类、通信类等相关专业;

扎实的编程基础,至少掌握一门开发语言,熟悉Golang优先;

CET4及以上,能够看懂技术相关的英文文档优先;

有扎实的计算机基础知识功底,掌握常见数据结构和算法;

有Docker、Kubernetes开发或使用经验者优先。

笔试 08-23

  • 试卷名称: golang开发工程师
  • 考试时长: 120 分钟
  • 开始时间: 2023-08-23 19:00 星期三
  • 结束时间: 2023-08-23 22:00 星期三
  • 20选择 + 2编程 + 1问答

编程题:100 + 81

一面 08-27

面试官人比较和善,每说几句话都会点头肯定,压力比较小

  • 自我介绍
  • 浏览器输入 URL 的一个过程
  • TCP 三次握手,四次握手的过程
  • TCP 释放连接为什么要等待 2MSL 时间
  • TCP 如何保证它的数据的顺序性
  • TCP 进行拥塞控制的手段有哪些
  • 进程、线程、协程的区别
  • Golang 的 GMP 调度
    • 说下 GMP 的整个过程
    • M 发生系统调用了 G 和 P 会怎么样
    • M 系统调用结束以后会怎么样
  • 介绍一下自己的项目
  • 介绍一下使用 JWT 进行鉴权的过程
  • 说一下 Gin 的拦截器的原理
  • 说一下 Gin 的路由怎么实现的
  • Gin 的路由使用的数据结构(字典树),介绍一下字典树

二面 09-16

一个女面试官,人比较和善 自我介绍 介绍一下项目中的亮点和难点

  • 任务调度器是如何实现的?
  • 流量控制是如何实现的?
  • 垃圾邮件的检测是如何做的?
  • 邮件发送失败会怎么样
  • 如果发送邮件的过程中突然项目宕机了,重新开始会重新走流程吗?优雅启动 + 优雅重启
  • .... (一大堆项目追问,具体忘了)

Nginx 的反向代理原理是什么?没答出来,说了下应用场景

Nginx 的负载均衡方案有哪些?

Docker 相比物理机进行部署有什么好处?

Redis 持久化有几种?

Redis 的主从架构有哪些?

和同事一起解决一个问题,有不同的解决方案会怎么办?

和同事一起完成一个任务,同事能力比较差怎么办?

对未来的职业规划是什么?

三面 09-17

主管应该是,压力较大 自我介绍 深挖项目

  • 亮点
  • 垃圾邮件如果是怎么做的?用的开源项目 rspamd
  • 有了解过这个开源项目的内部实现吗?无
  • 邮件任务调度器如何实现的?
  • 流量控制成怎么做的?超时重发怎么做?
  • 知道哪些邮件接收协议?
  • SMTP 细节,除了 SMTP 还知道哪些邮件传输协议?
  • 怎么判断是不是垃圾邮件?
  • 有具体的优化前后的数值指标吗?无
  • ...

说说 Go 新特性 K8S 的架构?

360

工作职责

1、负责360搜索旗下多个重点业务的web服务端开发和维护工作

2、负责360搜索新业务方向的web服务端开发工作

3、持续对产出的代码进行优化和升级4、参与需求分析,方案设计,配合业务测试等工作

任职资格

1、计算机相关专业毕业

2、有使用过go或者php做过实际的开发项目经验

3、扎实的算法和数据结构,操作系统的基础知识

4、熟悉linux环境下的开发,熟悉常用的linux命令

5、优秀的学习能力和执行力

笔试 09-23

40 选择 + 2 编程(100 + 80)

一面 10-10

都是经典八股

说说 Linux 常用操作,ps 是干嘛的

Go map 为什么是无序的?

MySQL 索引分类,索引的优点和缺点

分库分表

Cookie 和 Session 的区别和应用,分布式 Session 的实现

TCP三次握手/四次挥手

Redis 的数据类型及其数据结构,Bitmap 是什么

Redis 的雪崩效应 ,是什么,怎么解决

线程,进程,协程区别

算法:用 Go 手撕快速排序

二面 10-16

挖掘项目

HR 面 11-02

15分钟左右

自我介绍

想从事的技术方向

介绍实习项目,有什么难点

觉得自己在哪些方面有不足

自己的性格和工作风格

哪里人,为什么投北京

目前的秋招进度

期望薪资多少

反问:

  • 工作作息:早9晚6,双休
  • 技术栈:全部是 Golang
  • 后续:等通知

闪送

【职位描述】

1、参与闪送运力业务线核心模块,如调度、生态等业务相关开发工作;

2、参与闪送运力业务线架构设计和规划,设计合理、扩展性强的系统模型,提升需求迭代速度与系统能力;

3、保障系统稳定性,通过系统设计、编码实现系统自我保护,提升系统可用性及可维护性;

4、确保自身编码能达到高质量交付,且可以协同QA共同改进测试流程,实时优化系统性能,排除线上故障,确保系统稳定;

5、积极主动协调团队成员完成项目,信守承诺,言出必行。

【任职资格】

1、全日制统招本科及以上学历,计算机相关专业;

2、具有扎实的数据结构、操作系统、算法、网络等计算机基础知识;

3、掌握Golang编程语言,掌握面向对象的编程思想,会使用常用的shell命令;

4、熟悉Mysql数据库的基本使用,熟练使用SQL语句,了解数据库索引结构、事务隔离机制、锁等;

5、优秀的逻辑思维能力,善于从复杂系统表象拆解分析问题,有较强解决问题能力;

6、善于交流,有良好的团队合作精神和协调沟通能力,有一定项目推动能力。

具备以下经验者优先:

1、有参加各种计算机竞赛并获奖的经历;

2、有原创的技术博客或者参与过知名的开源项目或者某开源项目作者;

3、有在知名公司核心部门实习经历且实习时间不少于6个月。

笔试 10-08

编程题2道:100 + 100

一面 10-13

50min,无手撕

项目挖掘 GO:

  • slice 和 array 的区别
  • map, slice 未初始化,操作会怎么样。发生 panic 应该怎么办
  • recover 怎么使用的,defer 相比普通的在函数最后执行操作,其优势是什么
  • channel 相关操作
  • map 有序无序,为什么?map 是否并发安全?如何保证并发安全?map 并发读写都是不安全的。
  • 如何控制 GMP 中 M 的数量?(???)
  • 如何控制 goroutine 的生命周期,channel 的作用,context 的作用
  • select 如何使用?
  • new 和 make 的区别?

MySQL 的事务隔离级别,可重复读解决什么,幻读是什么? MySQL 修改数据库某个表的字段用什么指令?

TCP 三次握手,两次握手会怎么样,TCP 和 UDP 的区别,什么时候用 UDP

Redis 的数据结构有哪些?GEO 怎么用的?

Redis 如何实现分布式锁?

CAP 理论,举个场景,为什么只满足一个就不能满足另外两个

Linux 的常用命令说说

git 创建分支的指令,git 合并分支的命令,git 如果提交了想撤回使用什么

docker 容器之间无法访问可能是什么原因

项目中遇到的问题

反问:

  • 语言:Go 和 Java 都有,你面的部门的业务线是 Go
  • 技术栈:web 框架是自研的

二面 10-25

面试官人很好很诚恳,也给出了很多有用的建议

语言层面:

  • Go 和 Java 对比
  • Go 的并发模型
  • Go 的错误处理和 Java 的异常处理对比
  • 设计模式,写开源项目有没有特地用过设计模式

数据库:

  • 跳表的实现原理
  • Redis 跳表 和 MySQL B+ 树的对比
  • MySQL 的 MVCC 机制
  • Redis 的分布式锁
  • Redis 的分布式锁和 Zookeeper 的分布式锁的区别?(???)

其他:

  • 用过哪些消息队列?
  • 为什么需要消息队列?
  • 一个完整的链路中,因为消息队列异步的业务,如何做链路追踪?(???)

未来的职业规划?

对哪个方面的技术比较感兴趣?

反问:

  • 常用技术栈?
  • 对应届生的要求?1、耐心 2、保持好奇

HR面 10-31

基本就是HR面常见问题,聊了40分钟左右,记录几个还有印象的

学业情况都完成了吗?

是哪里人?为什么选择投北京的?

对闪送公司本身和业务的理解?

竞赛经历,挑了个最大的问在其中做了什么,收获了什么?

实习经历?每段实习做什么,收货了什么?

说一说有没有通过自己的逻辑能力来解决某些复杂的系统问题?

认为国内技术最好的互联网公司是哪家?面过吗?自己分析下是为什么挂了?

职业规划?

反问:

  • 闪送就一个业务部门,只是可能会做不同的事情
  • 闪送的作息相比其他互联网会比较轻松

中国移动信息技术中心

任职要求:

1.熟悉掌握Java、Go其中至少一种开发语言,熟练掌握Linux系统;

2.有良好的研究背景和成果,对云计算领域兴趣浓厚;

3.具备创造性思维,对工作充满热情,具备良好的团队合作精神和沟通能力,有良好的文档和PPT撰写能力;

4.熟练使用主流数据库及中间件(Mysql、Redis、Rabbitmq、Kafka、Zookeeper等);

5.有Kubernetes、Docker、Container等技术相关经验者优先;

工作职责:

1、负责云计算PaaS平台相关模块的研发工作,参与平台架构设计、方案编写等工作;

2、跟踪云计算领域技术发展趋势,推动平台整体架构规划持续演进;参与开源组件架构、源码解读,跟进开 源技术,参与开源组件的定制化开发、改造及优化

3、参与项目管理,协助推进项目设计、建设,确保项目的顺利上线,参与需求分析和沟通工作,协助形成需求设计文档

4、负责平台部分模块的代码修改、设计、研发、持续迭代等自主研发工作;

5、开发技术栈包括但不限于Java、Golang、前端相关语言等;

6、参与DevOps、云原生开发、K8s等关领域的前沿技术研究;

笔试 10-28

一面 10-19

自我介绍

介绍开源,项目

会参与开源项目吗,一般是个人项目,还是团队项目

PaaS 是什么?

用过哪些 CI/CD 的工具

  • Jekins 的部署流程
  • 镜像仓库是推送到哪里

用过哪些 NoSQL

MySQL 和 MongoDB 应用场景

【绝杀】如果大厂和我们同时给你发 Offer,会怎么选?

  • 应届生应该会优先选大厂吧【注意以后回这种问题要尽量挖掘该公司,该岗位的优势】

二面 11-01

2个面试官轮流问,还有1个应该是HR小姐姐

自我介绍

问开源项目,Star数量,写的哪些项目,为什么写,具体如何实现(拷打项目细节)

问竞赛细节,参加哪些竞赛,有哪些是自发参加的

问实习情况,除了个人项目还有哪些项目,学校里和导师做过科研项目吗

问对 K8S 的了解,有哪些概念和组件,如何编写自动化部署脚本(没研究过,让我说自己的理解)

问是哪里人,为什么选择投北京的

未来三到五年的职业规划

对于团队合作和个人做项目更偏向于哪个

会想要担当团队中的领导人吗

反问:

  • 业务
  • 技术栈
  • 流程:就两面,后续等通知

金山

笔试 09-24

15基础选择题 + 5Go选择题 + 3编程题(100 + 100 + 100)

一面 10-18

时长:45 min,项目占一大半时间,八股比较少

自我介绍

项目:

  • 简历上三个项目都问了,还出了很多场景题
  • 文件存储用的什么?用的 key 是什么?有考虑过相同文件重复的问题吗?
  • 你的开源项目的出发点是什么?怎么想到这个思路的?项目存在的问题?屏幕共享进行演示和代码讲解

八股:

  • Go GMP 调度机制
  • Go string 和 []byte 的区别
  • 操作系统中零拷贝
  • MySQL InnoDB 的存储结构,B+树
  • K8S 的金丝雀部署

其他:

  • 实习时项目开发的流程是什么?

反问:

  • 服务端技术栈:主要就是 Go
  • 流程:两轮面试 + HR

二面 10-27

聊项目

每日互动

一面 10-19

时长:1 小时,无手撕,基本全程项目

自我介绍 屏幕共享,讲解开源项目,讲解博客

  • 开源组件库的实现思路,有没有什么参考
  • 博客开源项目,有没有什么参考
  • 权限模块是怎么实现的

用户发现访问速度比较慢,有哪些排查思路(前后端)

负载均衡有哪几种?

Web 开发需要考虑的安全性有哪些方面

mkdir /a/b/c 爆错,怎么解决?加 -p

对函数式编程有所了解吗

Java 和 Go 的区别

说说你认识的设计模式

说说知道的排序算法

介绍一下 Docker 和 K8S 相关

栈和队列的区别

CSS 垂直居中

Node 了解多少

个人优势和缺点

推荐两本书籍(技术 + 非技术)

一块砖的作用(1分钟)

未来的职业发展方向

反问:

  • 技术栈:后端 Java/Go/Node,前端 Vue
  • 业务:面向政企

二面 10-23

有点偏 HR,都是比较宽泛的技术问题

  • 学校、竞赛问了下
  • Java 和 Go 的区别
  • 对全栈的理解,以及为什么当全栈
  • 用过的语言
  • 个人性格怎么样,优缺点
  • 后续职业规划

反问:

  • 公司业务:手机推送 SDK(个推)+ 面向政企提供信息化服务
  • 公司技术栈:Nodejs 为主,Java
  • 公司位置:杭州市西湖区

HR面 10-25

聊天

百度

一面 12-07

二面 12-13

三面 12-14

字节跳动

一战 timeline

一面 09-04

1、自我介绍

2、聊项目

3、项目聊的很深,甚至面试官理解业务后还出了针对原项目的场景题

  • 怎么保证发送并发情况下发送多个邮件导致的邮件攻击问题
  • 如果因为网络问题导致邮件发送失败会怎么处理?(如何知道邮件发送失败了)

4、聊到 Redis,问了些分布式锁相关的问题

  • SETNX 和 SET NX 区别
  • 如何使用分布式锁解决前面项目中某个问题
  • 自旋锁的本质是什么?(如何实现的?)

5、聊着聊着聊到 MySQL 慢 SQL 的查询

  • 索引有哪些分类
  • 聚簇索引和非聚簇索引
  • 回表是什么
  • 如何减少回表次数来优化
  • 如何排查慢 SQL
  • 如何最直观的查看慢 SQL
  • EXPLAIN 执行计划要关注的字段
  • 如果设置了索引速度还是很慢怎么办

6、聊到 MySQL 数据量大的问题

  • MySQL 数据量非常大了以后要怎么做
  • 分库分表有几种思路
  • 说说适合你的业务的分库分表方案

算法题:删除链表的倒数第 K 个元素(要求一次遍历,不能使用快慢指针)

  • 递归写完后,还加问了一句,堆和栈的区别是什么?

二面 09-18

体验不好

面试官要求手撕一道竞赛题,撕完直接结束了

可以看之前发的动态

二战 timeline

一面 11-07

二面 11-10

三面 11-28

四面 12-01

好未来

09-09 一天三面(二面挂)

一面:

  • 说下四次挥手的过程
  • 为什么需要 2MSL?2MSL 会产生什么问题?
  • 使用 gorm 遇到过哪些坑
    • _更新时用结构体更新,不会更新零值,需要用 map 数组
    • _time.Time日期格式默认是 ISO 8601 格式,想要更改格式需要自定义时间结构体
  • MySQL 的事务隔离级别说一下
    • 默认隔离级别是什么,解决了幻读吗
    • 为什么没有完全解决幻读?说个 case
  • 说一下 Redis 和 Memcached 的区别?
  • Redis 的 的数据可能会丢失吗?(操作系统层面)
    • 生成 RDB 文件期间,如果 Redis 奔溃,数据会丢失
    • RDB 后台进程刷盘,操作系统层面可能会丢失
    • AOF 默认每秒同步一次文件,这秒内 Reids 奔溃,数据会丢失
  • Redis 两种持久化方式
  • Redis 实现排行榜使用什么数据结构?
  • 说一下对 MySQL 的 事务的理解
  • 为什么 MySQL 使用 B+ Tree,Redis 使用跳表?
  • 虚拟内存的作用?
  • Swap 机制是什么?作用是什么?
  • 通过 Swap 交换的内存比一般磁盘 IO 更快吗?
  • 线程、进程、协程的区别?
  • 协程为什么是 2~4kb?

算法题:

  • 顺时针打印矩阵

二面:(挂了?)

  • 自我介绍
  • 说说个人项目中的亮点和技术
  • 说说从新考虑架构和设计项目会怎么设计

平安金服

一面 11-02

二面 忘了

当时晚上 8点左右在跑步,突然接到通知面试,回去随便面了面

帷幄匠心

09-25 一天三面(二面挂)

一面:

  • 八股 + 简单叙述项目
  • 跳表的实现原理?查询和新增?
  • Java 中非线程安全的数据结构
  • 算法:有效的括号 + 最长回文子串

二面:(挂了)

  • 八股
  • 算法:无重复的最长子串 + 某个改编题(树相关)

peropero

小公司,当场表示面试通过,愿意来就发 offer

小厂面试很轻松,聊天局:

  • Go 的垃圾回收和 Java 的 垃圾回收的区别?Java的没背
  • Go 的 CSP 并发编程介绍一下?
  • Go 中的内存逃逸现象是什么?
  • Nginx 的四层负载均衡和七层负载均衡
  • Redis 的常用数据结构有哪些?
  • Redis 实现一个同分数按时间戳的功能?
  • 游戏开发和常规开发的区别?
  • 未来的职业规划?

下面完全就是聊天了。。。。

公司技术,加班情况 ,业务分布,团队人手

中金所

一面 10-17

自我介绍

实习项目:

  • 点赞功能如何实现
  • 监听在线用户如何实现
  • 实习中负责哪些功能模块
  • 为什么不留在实习公司

Restful 和 RPC 的区别?

哈夫曼树是如何实现的?(??早忘了)

用栈如何实现队列?

MySQL 新增一列字段的语句?(具体忘了,只答了用 Alter)

家在哪里?怎么知道我们公司的?

反问:

  • 语言技术栈
  • 业务是什么

最后:"感谢你参与今天的面试"

二面 11-7(拒了)

#晒一晒我的offer#
全部评论
佬太强了,可以发下博客地址吗
6 回复 分享
发布于 01-05 13:37 陕西
太成功啦
1 回复 分享
发布于 2023-12-29 21:03 江苏
100w猛
1 回复 分享
发布于 2023-12-30 18:21 海南
感谢分享
点赞 回复 分享
发布于 2023-12-29 11:40 河南
大佬请问可以私信下拒了的得物offer开了多少嘛,想做一个参考
点赞 回复 分享
发布于 2023-12-29 18:11 北京
有什么项目可以推荐一下吗
点赞 回复 分享
发布于 01-16 19:10 四川
大佬,海信面试是什么情况?
点赞 回复 分享
发布于 06-06 10:07 上海

相关推荐

11-05 21:28
已编辑
电子科技大学 测试工程师
没脑子的我:哈哈兄弟,我知道你是谁了,跟你一块上去的😉
点赞 评论 收藏
分享
76 366 评论
分享
牛客网
牛客企业服务