百度提前批后端一面 —— 亚历山大,特批拿下

这几篇志颜学长想聊聊当时百度一面的感受。25 届校招,加了总监面一共四场技术面,没有 HR 面,因为是双非,非目标院校。最终是走了特批流程才拿下的 offer。第一面强度直接拉满。说实话,当时压力挺大,毕竟是提前批的第一批,准备还没特别充分,上来就围绕我做的素材推送系统深挖,特别是 "如何保证不重发、不多发、不漏发" 这个问题,前后追问了两轮。后面还问了很多 Go 底层的东西,比如 map 的实现、sync.Map 的锁机制、go run 的编译流程…… 问得特别细。 我面完开玩笑说:"大佬,您太强了,压力有点大。" 面试官也笑着回我:"没有啦,就是想多了解一下候选人,后面定级也要参考嘛。" 整体氛围还算轻松,但内容真的不轻。这场面试也让我意识到:你以为准备得差不多了,其实还有很多盲区;你以为理解得还行,其实被一追问就原形毕露了。真正有深度的项目,是你能从设计、性能、异常、底层各个角度都讲得明明白白。面试结束不是终点,而是暴露问题、快速成长的起点。这次我虽然答得不完美,但收获很大。后续能拿下 offer,也算是幸运+积累的双重结果。感恩那位面试官,也感谢当时没放弃的自己。下面是一面的面经。 🧱 一、项目与工程实践相关问题滴广重1、请挑一个你认为最有技术深度的项目讲讲。2、为什么要重构?原系统哪里"难用"?分析老系统时是如何排查问题的?3、新架构中对 "下载素材重复"、"并发控制"、"diff任务积压" 等问题具体做了哪些优化?4、并发控制是怎么做的?如何动态调整任务数量与资源负载?5、diff任务的 "重复推送" 是怎么出现的?你怎么设计逻辑防止这种情况?6、你提到 "推送效率提升20倍",请问这个收益是如何统计出来的?是精确对比还是估算?7、系统一小时内最大推送吞吐量是多少?是否能支撑 100 万消息/小时?8、推送视频时是否为推二进制?为啥不用 CDN 地址?9、多媒体渠道(百度、腾讯等)上传素材时,如何保证不重发、不多发、不漏发?10、单次 API 调用时如何规避漏发(网络异常、DNS失败、连接超时)?RPC 层面能做什么?🧠 二、分布式系统与中间件机制1、Redis 使用中提到了 SET NX,请问你如何管理这个锁的生命周期?2、如果锁过期了还在执行推送,会不会出现 "重复推送"?下游如何处理这种重推?3、Redis 中用过 Hash 吗?了解常用命令吗?(如 HSET、HGET)4、Redis 的 Hash 底层结构是怎样的?5、Redis 的淘汰策略(如 LRU)你了解哪些? 🧩 三、可观测性与告警处理逻辑(夜莺监控相关)侧重探讨你做的告警分发机1、你在夜莺监控中参与了哪些功能?2、告警如何保证 "不多发"?是否存在 "同一事件多个实例重复告警" 的问题?3、多实例部署时,如何确保内存中的事件处理不重复触发告警?🧬 四、Go语言底层知识与实现原理1、你说看过 Go 源码,请描述从 go run main.go 开始,程序启动都经历了哪些阶段?2、哪些逻辑是编译期完成的?哪些是在运行时执行?3、Go 中的 map 底层结构是什么?如何解决哈希冲突?topHash 的作用是什么?4、Go 的 sync.Map 和普通 map 有什么区别?适用什么场景?5、sync.Map 的锁粒度是什么?锁的是整个 map 还是某个部分?6、sync.Map 中的 readMap / dirtyMap 是如何切换的?"misses" 指标怎么用?🧮 五、算法题与代码能力1、请用 Go 写一个合并两个有序链表的函数。2、请用 Go 写一个求二叉树左视图的函数。写完后问:还有更优解吗?是否可以用 DFS 前序遍历? 六、反问环节问了两个问题:1、这个岗位后续的面试流程是怎样的?2、团队主要做哪方面的内容?

#面试问题记录##提前批第一面##牛客创作赏金赛##秋招##百度#
全部评论
一面的面经,关注我后续会逐渐更新几十次大厂面试的面经!!!
1 回复 分享
发布于 07-22 10:56 贵州
真遇到大佬了
1 回复 分享
发布于 07-22 11:50 河南
学长 百度提前批已经挂了
点赞 回复 分享
发布于 07-23 03:54 北京
分享一个自己做的GitHub面试题整理项目 0voice/Campus_recruitment_interview_questions,积德积德,已经200stars了,许愿自己和大家都能秋招过面,一起加油!
点赞 回复 分享
发布于 07-22 15:36 湖南
百度哪儿来的目标院校
点赞 回复 分享
发布于 07-22 14:58 北京
哥们,你真是耐面王
点赞 回复 分享
发布于 07-22 11:49 陕西

相关推荐

07-23 19:31
武汉大学 Java
1. 自我介绍2. 两段开源经历拷打,主要聊开发过程遇到的事,技术涉及较少,虽然也没什么技术,估计就是确认一下是楼主干的。3. 面试官介绍自己部门不是搞数据库内核的,询问楼主真想来吗。楼主当然不会告诉面试官楼主快star一面挂,给予了肯定的回答。4. 开发习惯闲聊,看不看火焰图,跨语言的benchmark怎么测的巴拉巴拉。5. 正式开始拷打,汗流浃背了。楼主项目就是常规15445+tinykv,遇到一个也都做过的面试官相当正常。6. 15445 lru-k算法、crabbing 协议(还包括读写锁细节,楼主都快记不得了,头一次有面试官问这个)。7. ACID 含义(楼主顺便聊了一下CAP的C跟ACID的C区别,问就是牛客面经,直接预判面试官)8. 15445 三种隔离级别(RU, RC, RR,这块楼主早忘记了,所以回答的是mysql和pg的实现细节,参考:https://gg2002.github.io/2025/03/16/mysql-latch,顺便扯了几嘴mysql为啥会有表级锁和binlog,因为mysql是一个分离式的架构巴拉巴拉)9. tinykv拷打,multi raft必要性,项目思想。10. 分布式事务Percolator跟寻常单体数据库事务的差别(楼主大败而归,说到3列,但是忘记怎么具体地写这3列)11. raft全流程介绍(leader election+log replication,楼主顺便加了点行业现状试图展示知识面)12. raft脑裂问题,prevote优化介绍13. raft的Leader Lease和ReadIndex优化(更是大败而归,头一次有面试官问这个,早就忘记了,扯了几嘴思想草草而过)14. 面试官询问tinysql,楼主没做过,但楼主打过ob数据库比赛,说那个比赛sql写的多,再次跟面试官闲聊一阵15. 广告场景题,感觉面试官也没想好,反正说了好几分钟背景,然后问楼主广告曝光log和点击log哪个存kv好些,楼主说点击log少些,存点击,面试官说错,然后解释,然后楼主顺着扯了几嘴,然后就过了16. 算法题,线程安全的LRU,允许使用cppreference和大模型,面试官也是被楼主思想精通但是stl操作几乎全忘的操作惊到了,不过这次面试官很有耐心,楼主磕磕绊绊地还是写出来了差不多的东西(不过因为ide只有gcc8,楼主的一堆写法还是没过编译)17. 此时面了1h20min了,面试官说问点简单的c++八股。18. 构造函数、析构函数和虚函数,使用场景(顺便提一嘴shared_ptr包裹的base指针就算析构函数不是虚函数也会调用相应的析构函数,原理是deleter)19. static 用法(楼主又忘了,扯了一通const、数据区巴拉巴拉的)20. 反问环节:业务:广告取数,职能在db内核开发与大数据开发之间的一个岗位前后耗时1h40min,要面虚脱了。许愿三面吧。快star面试官说楼主经历做rds就够了,干内核还是差点硬核经历。楼主其实也这么觉得,所以很多很硬核的成员变更、分布式事务细节都没太看(结果就被拷打了,马上开补),rds也挺好的,这个岗看上去也比较合楼主口味,楼主早就不强求内核开发了。
面试问题记录
点赞 评论 收藏
分享
评论
6
28
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务