订阅更新

面试官问'你怎么带新人、做代码Review'——展示团队影响力是晋升的关键

项目追问手册 第 14 题 约 9 分钟读完

本文目录
  1. 先说结论
  2. 代码Review:不只是找bug
  3. 我建立的SQL编码规范
  4. 带新人的方法论:30天从入门到独立
  5. Onboarding文档:我怎么写的
  6. 面试高频追问
  7. 实战踩坑
  8. 总结

先说结论

团队影响力分三个层次:写文档(知识沉淀)→ 建规范(标准化)→ 带人(人才培养)。按这个顺序准备面试素材,从低到高展示你的团队贡献。

代码Review不是找bug,是统一工程标准。面试时不要说'我Review代码帮同事找bug'——这太低级了。要说'我通过代码Review统一了团队的SQL编码规范,把核心作业的代码质量提升到了一个可维护的水平'。

带新人要有方法论,不是'有问题来找我'。好的带人方式是:给一份Onboarding文档 → 安排入门任务 → 第一周每天Check进度 → 第一个月独立完成一个小项目 → 三个月后能独当一面。有这个框架,面试官会觉得你真的思考过怎么高效带人。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

3年以上经验的面试,技术能力只是门槛,面试官更想看你的团队影响力——你有没有让团队变得更好。'带新人''代码Review''建立规范'这些事情看起来不如'性能优化'那么硬核,但面试官问这些是因为:技术再好的人,如果只能自己干活不能影响团队,就只能是高级工程师;能带团队、建规范、提升整体效率的人,才是tech lead的候选人。我在三家公司都做过这些事情,今天把怎么讲才能加分的方法分享出来。

代码Review:不只是找bug

我在某知名出海硬件品牌负责团队的SQL代码Review。一开始大家觉得Review就是'看看有没有bug',但我推动Review的目的其实是三个:

Review目标具体检查什么为什么重要我发现的高频问题
正确性逻辑是否正确、边界条件是否处理避免数据错误JOIN条件缺失导致笛卡尔积、NULL值未处理
性能是否有SELECT *、不必要的Shuffle、数据倾斜风险避免资源浪费和作业超时SELECT *遍地都是、大表JOIN没用Broadcast
可维护性命名规范、注释完整、逻辑清晰让别人能看懂和修改你的代码变量名用a/b/c、没有注释、一个SQL嵌套5层

我建立的SQL编码规范

在某出海硬件品牌,我发现团队的SQL代码风格差异很大——有人喜欢全大写,有人全小写;有人一行写100个字符,有人每个关键字换行。更严重的是,有人习惯性地用SELECT *,有人的JOIN没有注释说明关联逻辑。

我花了两天写了一份SQL编码规范,核心规则只有10条:

-- Wood的SQL编码规范(10条核心规则)
 
-- 规则1:禁止SELECT *,必须列出具体字段
-- ❌ SELECT * FROM orders
-- ✅ SELECT order_id, user_id, amount FROM orders
 
-- 规则2:每个JOIN必须有注释说明关联逻辑
-- ✅
SELECT o.order_id, p.product_name
FROM orders o
-- 关联产品维度表,获取商品名称
JOIN dim_product p ON o.product_id = p.product_id
 
-- 规则3:WHERE条件尽量提前过滤,减少JOIN数据量
-- 规则4:字段命名用snake_case,表名有分层前缀(ods_/dwd_/dws_)
-- 规则5:分区字段(dt)必须出现在WHERE中
-- 规则6:超过3个JOIN的SQL必须加CTE拆分
-- 规则7:聚合字段必须有别名
-- 规则8:CASE WHEN超过4个分支必须加注释
-- 规则9:INSERT前必须检查目标表分区是否存在
-- 规则10:新建表必须有表注释和核心字段注释

推行这份规范后,代码Review的效率大幅提升——以前Review一个SQL要在各种风格问题上来回沟通,现在直接引用规范条款就行。而且新人入职时,先读这10条规则,写出来的SQL至少是'合格'的。

带新人的方法论:30天从入门到独立

我在某出海硬件品牌带过2个新人(一个校招一个社招),在某短剧出海公司也负责新人的Onboarding。总结出一套30天带人方法:

阶段时间安排目标
熟悉环境第1-3天读架构文档、熟悉代码仓库、了解数仓分层、配置开发环境知道东西在哪里
入门任务第4-7天独立完成一个简单的DWD表开发(有模板参考)能跑通一个完整的ETL流程
进阶任务第8-14天独立完成一个DWS表开发,需要JOIN多张表、处理业务逻辑能处理中等复杂度的SQL
独立项目第15-30天承担一个小型报表需求,从需求理解到上线全流程能独立交付一个完整需求

关键细节:每天下午花15-20分钟和新人对一下进度、解答问题。不要等到新人卡住三天了才来问你——主动Check比被动等更高效。第一周密集一点(每天Check),后面逐渐放手(每周Check两次)。

Onboarding文档:我怎么写的

很多团队没有Onboarding文档,新人来了就'看代码'。这效率极低。我在每家公司都会写一份Onboarding文档:

// Onboarding文档大纲
 
// 一、业务背景(1页)
// 公司做什么业务?数据团队在公司中的角色是什么?
// 核心报表有哪些?谁在看?
 
// 二、技术架构(1页+架构图)
// 数仓分层结构、主要技术栈、调度流程
// 关键:标注出新人最先会接触的模块
 
// 三、开发环境搭建(Step by step)
// 账号申请、工具安装、代码仓库克隆、连接数仓
// 关键:每一步都有截图和命令,不需要额外求助
 
// 四、编码规范(链接到SQL规范文档)
 
// 五、常用SQL模板(3-5个典型的ETL SQL模板)
// 新人的第一个任务可以直接参考模板改
 
// 六、常见问题FAQ(持续更新)
// 每次新人问我的问题,我都加到这个FAQ里
// 这样后面的新人可以自己查
 
// 七、负责人和沟通渠道
// 技术问题找谁、需求问题找谁、权限问题找谁

这份文档的ROI非常高:写一次大约花2天,但每个新人入职时能节省至少3天的口头讲解时间。我在某出海硬件品牌写的Onboarding文档用了2年,带了4个新人,每次都是新人自己先读文档,90%的基础问题文档里都有答案。

面试高频追问

追问一:代码Review时遇到分歧怎么办?

这考的是你的沟通方式。'我遇到过几次分歧。最常见的是关于SQL写法的争论——比如有人觉得子查询比CTE更直观,我坚持用CTE。我的处理方式是:先说理由而不是结论。我会解释'CTE的可读性更好,特别是需求变更时改CTE比改嵌套子查询容易得多',给出具体的对比例子。如果对方的理由也合理,我会把两种写法都加到规范中作为'推荐'和'可接受',而不是强制。重点是:Review的目的是提升代码质量,不是证明谁对谁错。'

追问二:带的新人成长慢怎么办?

'我遇到过一个成长比较慢的校招新人。前两周的入门任务完成得还行,但进阶任务就卡住了——不是技术不行,而是不敢动手。他总是想把问题完全想清楚再写代码,但大数据开发很多时候需要先写个初版跑起来看效果。我的调整是:把任务拆得更细——不是给一个完整的DWS表让他做,而是先让他写查询SQL确认逻辑,再让他改成INSERT脚本,再让他配调度。每一步完成后Review,给正向反馈。一个月后他的信心上来了,效率也跟上了。核心是:降低每一步的难度,增加反馈频率。'

追问三:你建立的规范怎么确保团队遵守?

'规范如果只是一份文档放在Wiki里,没人会看。我做了三件事确保执行:第一,代码Review时严格按规范检查,不符合的打回修改。第二,在CI流程中加了自动化检查——比如检测SELECT *、检测没有分区条件的SQL。第三,新人Onboarding时第一天就读规范,第一个任务就必须按规范来。'三管齐下'后遵守率很高。偶尔有紧急需求来不及完全遵守,我允许先上线后补——但必须在下一个迭代补齐,我会跟踪。'

实战踩坑

我在某短剧出海公司做SQL代码质量治理时踩了一个'好心办坏事'的坑。为了推动代码规范化,我一次性列了30条Review规则发给团队,要求所有新提交的SQL都必须遵守。

结果是什么呢?团队的开发效率断崖式下降。每个SQL都要检查30条规则,开发时间翻倍不说,Review沟通的时间也大幅增加。有同事直接跟我说:'这些规则我都理解,但一次推30条太多了,我写个SQL比写论文还累。'

// 推规范的踩坑教训
 
// ❌ 错误做法:一次推30条规则
// 结果:开发效率下降、团队抵触情绪大
 
// ✅ 改进做法:分三批推,每批10条
// 第1批(第1周):最核心的10条(禁止SELECT *、必须有分区条件等)
// 第2批(第3周):进阶规则(CTE拆分、命名规范等)
// 第3批(第5周):优化建议(Broadcast Hint、分区裁剪等)
 
// 每批之间留2周适应期
// 先让团队习惯前一批规则,再引入下一批
 
// 效果:最终30条规则都落地了,但过程平滑得多
// 团队没有抵触情绪,反而觉得规范确实提升了效率

教训:推动任何变革都要渐进式。技术人最容易犯的错是'一步到位'——觉得方案是对的就一次全推完。但人不是机器,需要适应时间。分批推、每批控制量、留适应期,效果远好于一步到位。面试时讲这个教训也是加分的——它展示了你从'个人贡献者'到'团队影响者'的成长过程。

总结

团队影响力从三个维度展示:写Onboarding文档(知识沉淀)、建SQL编码规范(标准化)、带新人有方法论(30天框架)。面试时讲清楚你做了什么规范、怎么确保执行、带新人的具体方法和效果。最关键的是展示'系统性思维'——不是遇到一个问题解决一个问题,而是建立机制防止问题反复出现。代码Review的目的是统一标准而不是找bug,带新人的关键是主动Check而不是被动等问。能做好这些事的人,就是团队里不可替代的那个人。

下一篇是项目经验系列的收官篇:面试官问'你未来的技术规划是什么'——怎么展示你的成长性和技术视野?

你带过新人吗?有什么好的经验或踩过什么坑?评论区聊聊~

关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长

刷题进度保存在当前浏览器