汇总篇-快手-C++工程师-广告+搜推面经
由于未能接受阿里云的C++拷打,那么手子的C++拷打便成了楼主秋招过程中最受拷打的经历。毕竟快手(或者说搜广推组)全线C++17(面试官说的),C++11那点新特性都看不上了,不问点模版元编程(SFINAE,类型擦除)都对不起C++这十多年的发展。
因为快手有无限复活机制,所以楼主投了两次,第一次被搜推组捞,第二次被广告组捞,不过这两应该在同一个大部门下。
面试汇总:
- 广告二面排序
- 搜推二面挂(秋招前期,K个一组刷的还不甚熟练,没一次性撕出来便落了下乘)
广告二面
手写跳表吗,有意思。
- 自我介绍
- 个人经历盘点
- 说说mysql索引类型(b+树,hash,bitset),知道索引压缩技术吗(不知道)
- 看过什么源码(leveldb,mysql),leveldb内存数据结构是啥(不知道,只会扯lsm tree)
- 看过leveldb是吧,来写个跳表吧(花20min写了个残废insert,中途被面试官问你刷过题没有,楼主顿觉毫无希望,直接嘴硬给楼主出hot100楼主早就写完了)
- ob大赛干嘛的
- 说点无锁数据结构(rcu、cow)
- 内存分配器了解吗(不了解,说了一下数据库buffer pool的prefetch和后台刷脏页的设计)
- 职业规划(楼主清楚自己对搜广推毫无了解,只能说想要成长性高一点的,顺便diss一下算法工程师和支付业务开发)
- 干嘛不做数据库开发(太菜了这话当然不能说啦,表明自己还是对上层应用更感兴趣一点,搜广推这种比纯业务开发偏鸡架,比鸡架偏业务的岗很合适楼主)
- 反问: 无fa可说,搜广推按最近面下来的感觉,大家干的活基本所差无几(用户点击与曝光log,特征持久化与更新,图算子编排巴拉巴拉,哪个公司都在搞这套)。 团队规模:30+人(哪个公司都这么多人)
凉了吗。
本来楼主觉得上次的快手二面部门(搜推架构)明明去年把主站的团队裁完了,按理说是缺人的,结果还是因为楼主的k个一组有瑕疵没撕出来挂了楼主而愤愤不平。与现在这个部门两相对比(搜推架构是1面反转链表2面k个一组,广告是1面合并k个链表2面跳表),看来还是想招人的,只是楼主莼菜,错失良机。
广告一面
面试官不喜欢楼主,嫌弃楼主C++水平和代码质量。
- 自我介绍
- 15445 简单询问,B+树、表级锁、行锁间隙锁实现原理、更简单的实现方法有没有,快照实现思想(mysql与pg对比),反正面试官也不太懂,就跑火车。
- C++拷打,unique_ptr的sizeof,加了删除器的sizeof
- lambda与伪函数与function与类型擦除(最后一个实在答不上来)
- 算法: 合并K个一组链表 优先级队列秒了,然后面试官说楼主代码质量不行。
- 反问: 部门:商业化广告 规模:4-5人,在扩张 作息:早十晚九
与b站二面面试官有相似的气息,在楼主面前吹自己团队的人都很厉害,那是什么意思呢?意思是楼主这么菜一个校招生就不要想进这么厉害的团队吗?
搜推二面
终于有八股文了。
- 自我介绍
- 个人经历盘点
- 虚拟内存的好处
- 内存为什么要有内核空间
- tcp连接断开的几种方式(拔网线,断电,杀进程),timeout不好,怎么解决(heartbeat)
- 锁类型相关(开始吟诵Java八股,C++锁其实没这么多八股) 参考:https://gg2002.github.io/2025/04/21/Program%20Language%20Design/os-and-pl-mutex/
- hashmap上锁用什么好(分段锁+读写锁,或者cow),读写锁一定好吗(当然不一定)?
- C++新特性吟诵(纯吟诵,move,function,thread,constexpr,import,coroutine)
- move vector底层会发生什么
- 为什么要有thread库(楼主还真不知道,说了为了程序员更好的封装使用,面试官不满)
- static_assert底层原理(更是不知道,只能口胡编译器能推断出来)
- 算法: k个一组反转链表,在最后一个循环一直segmentation fault,闹麻了,内存地址都打印出来了还显示segmentation fault,不知道是不是平台问题。
- 反问: 部门:负责主站与海外的推荐系统 工作作息:弹性工作制,互联网平均作息
楼主的C++八股答得不是很妙,感觉是不是快手的就爱出这种冷门八股,new怎么在栈上分配空间(答案是new本来可以指定内存区域分配内存,但是一般没人这么写,而且new还有另一个指定内存不足也不报错而是直接返回nullptr的写法,都很邪门,感觉是纯嵌入式写法)也是楼主在快手面经里看到的。最重要的k个一组希望不要挂楼主。
搜推一面
推荐系统的。又一次问到了DDD,饶了楼主。
- 面试官自我介绍
- 毕设做什么的(楼主做cv的),然后问了半小时
- 说说对DDD的理解(没准备好啊,只能拿从百度三面的分布式事务链条现学现卖,面试官不满)
- 反转链表(找不到反转后的head导致撕了快20min)
- 面试官说没时间就问点简单的,RAII思想
- 面试官说复杂的问题后面环节问
- 反问:
干嘛问毕设:回答人生选择重要性、员工做自己不爱的事情也要认真做巴拉巴拉(但是这不应该是hr或主管面才该问的吗
) 部门:推荐系统架构 作息:早十晚九 技术栈:python+C++
懵逼地开始,懵逼地结束。