NiceOffer

面试面经 · 百度

【百度】Go后端二面(Go内存模型+取球博弈+千万级排行榜设计)

百度Go后端校招面经二面

【百度】Go后端二面

基本信息

项目内容
公司百度
岗位Golang 后端开发(秋招)
轮次技术二面
时间2025年8月
面型体感难度明显高于一面,有场景设计和智力题
结果通过

面试题目(按提问顺序)

  1. 自我介绍,详细介绍项目
  2. 项目深挖:整体架构、核心模块、遇到的最大技术挑战
  3. Golang 内存模型:多协程/多线程对一个数据修改后,其余 CPU 对其的可见性如何保证?
  4. Go 的 sync 包有哪些同步原语?Mutex 和 RWMutex 的区别?
  5. Go 的 channel 底层实现原理?有缓冲和无缓冲的区别?
  6. 场景设计题:千万级用户排行榜——需要实时展示积分前 100 名用户,100 名之外需要能查到自己的大概排名,怎么设计?
  7. 智力题/博弈题:取球游戏,一共 99 个球,每次取 1-4 个,第一个玩家第一次取多少个必胜?
  8. 一致性 Hash 的原理?怎么解决数据倾斜问题?
  9. 负载均衡有哪些算法?哪个比较好?
  10. 手撕代码:递归实现反转链表
  11. 手撕代码:非递归实现反转链表
  12. 手撕代码:二进制字符串对 5 取模(不能直接转换成十进制)

面试感受 / 反馈

  • 二面时长约 60 分钟,难度比一面高很多
  • Go 内存模型问得很深,不是背八股能搞定的,需要真正理解 Go 的 happens-before 原则
  • 场景设计题(排行榜)考察系统设计能力,要能给出完整方案
  • 智力题/博弈题是百度特色,需要平时多练逻辑思维
  • 手撕给了 3 道题,代码量较大

准备建议

  • 二面会深挖项目,要准备好"架构选型理由"和"技术难点解决方案"
  • Go 方向要理解内存模型、goroutine 调度、GC 底层
  • 场景设计题要训练:排行榜(Sorted Set)、短链接、秒杀、消息推送等经典场景
  • 智力题/博弈题多练:巴什博弈、 Nim 游戏等
  • 手撕代码不仅要写对,还要能分析时间/空间复杂度

反问示例

  • 团队目前在做的核心项目是什么?
  • 新人入职后的培养机制?