面试官问'如果重新做你会怎么改'——反思能力怎么展示
先说结论
反思回答的黄金结构:'如果重新做我会改XX——当时那样做的原因是YY但现在回看有更好的方案ZZ。'关键是三部分都要有:① 改什么(具体不笼统);② 当时为什么(说明不是犯了低级错误而是有合理原因);③ 现在怎么改(展示你的认知成长)。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
'如果让你重新做这个项目你会有什么不同?'这是面试的高级问题——考的不是你做了什么而是你对自己做过的事有没有反思。很多人要么说'我觉得做得挺好没什么要改的'(面试官觉得你没有自省能力),要么说了一堆问题(面试官觉得你做得不好)。好的回答是:承认不足+给出改进方案+说明当时为什么那样做。
反思的三个方向
| 方向 | 含义 | 示范 |
|---|---|---|
| 技术债 | 当时为了赶进度留下的技术问题 | '迁移时保留了老RDD代码没改DataFrame后来花了1个月重构' |
| 架构演进 | 当时的方案随着业务增长需要升级 | 'DWD层没做缓慢变化维后来用户信息变更时历史数据对不上' |
| Trade-off回顾 | 当时的权衡现在看可以做不同选择 | '选了HashMap State Backend后来State变大改RocksDB本可以提前' |
示范:我的三个反思回答
反思一(技术债):
'EMR迁移时为了减少改动保留了20%的老RDD代码没改写成DataFrame。当时的考虑是迁移已经很复杂了不想同时做代码重构增加风险。但这些RDD代码Catalyst优化器无法优化性能比DataFrame差50%。如果重新做我会把RDD改写也纳入迁移计划——多花2周但一步到位避免后来单独花1个月重构。'
反思二(架构演进):
'广告数仓初期DWD层没有做缓慢变化维——用户信息(国家/设备等)直接用最新值JOIN。3个月后运营要做历史趋势分析发现用户换了国家后历史数据的国家也变了——无法按注册时的国家分析。如果重新做我会从一开始就在DWD用Type2拉链表保留用户信息的历史版本。当时没做是因为数据量小觉得不需要但业务增长后这个需求必然出现。'
反思三(Trade-off):
'实时数仓选了自建Flink+Doris而不是用云原生的实时分析服务。当时选自建是因为云服务刚出来不成熟。但2年后来看云服务已经很成熟了——如果重新做我会评估云服务的方案可能运维成本更低。自建的好处是完全可控但运维确实是长期负担。'
怎么把反思变成加分项而不是减分项
加分的反思:有具体改进方案+说明当时的合理理由+展示认知成长。
减分的反思:'我觉得做得挺好'(没有自省)/'全部推倒重来'(否定自己的工作)/'当时太忙了没时间做好'(找借口)。
| 减分回答 | 为什么减分 | 加分改法 |
|---|---|---|
| '我觉得没什么要改的' | 没有自省能力 | '整体方案是对的但XX细节可以优化' |
| '全部推倒重来用新技术' | 否定了自己的工作 | '核心架构保留但XX部分可以用新方案' |
| '时间太紧没做好' | 在找借口 | '当时为了赶进度做了XX权衡现在回看可以YY' |
| '这个是别人的决策我执行的' | 推卸责任 | '这是团队共同决定的但如果重新讨论我会建议XX' |
面试高频追问
追问一:你说的这个改进现在实施了吗?
如果实施了就讲效果:'是的RDD代码重构已经完成了执行时间减少了50%。'如果没实施就说原因:'还没有——目前排在下个季度的计划里因为有更高优先级的需求。但我已经写了改进方案和估算。'
追问二:你怎么判断什么时候该还技术债?
'两个信号:① 技术债开始影响业务——比如RDD代码太慢导致报表延迟影响运营;② 技术债的利息超过了还债成本——比如每周花2小时处理老代码的兼容问题不如花2周彻底重构。我在出海硬件品牌用了一个简单的公式:每周因为技术债花的时间 × 52周 > 重构的一次性时间就应该还债了。'
追问三:你怎么平衡'做完'和'做好'?
'先做完再做好——但'做完'的标准不能太低。我的底线是:数据正确+幂等+有监控告警。在这个底线之上的优化(性能调优/代码规范/文档完善)可以后续迭代。迁移项目我的策略是'先跑起来保证功能正确再逐步优化性能和代码质量'。'
总结
反思回答用三段式:① 改什么(具体的技术债/架构不足/trade-off);② 当时为什么(有合理理由不是低级错误);③ 现在怎么改(具体方案展示认知成长)。准备2-3个反思故事(技术债/架构演进/trade-off各一个)。好的反思展示的是成长型思维——你不只是做了工作还在持续反思和改进。
下一篇聊简历项目怎么排列:简历上写了5个项目面试只聊了1个——怎么让面试官聊到你想讲的?
你面试被问过'重新做会怎么改'吗?怎么回答的?评论区聊聊~
关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长
项目实战 面试通关手册
第16-20篇:简历策略与面试总结
Wood聊大数据
9年大数据老兵,聊技术、聊职场、聊成长