导读
每天疯狂搬砖,加班加点地完成一个又一个任务;提交的代码行数在团队中名列前茅,遇到不懂的逻辑也绝不废话,闷头硬啃。
你的工作状态是不是也是这样?在潜意识里,甚至把这种“高度配合”的踏实与勤奋,等同于自身价值的护城河。
然而,这往往是一种一厢情愿的认知错位。
前阵子,软件工程领域的泰斗、极限编程创始人Kent Beck撰写了一篇火爆全网的犀利长文:《嘿,菜鸟,我们雇你来不是为了完成任务的》。前端领域的一代宗师、ESLint 创始人Nicholas C. Zakas也在其职业生涯回顾中,留下了 7 条字字珠玑的自省建议。
把这两位顶级大佬的思考放在一起交叉比对,你会惊出一身冷汗:那些在系统演进和职场博弈中走得最远的人,从来不靠“计件”取胜;而那些每天闷头刷任务、追求高频交付的人,可能正在一步步滑向边缘。
今天,我们就来拆解一下两位大佬眼中,高阶工程师的成长与变现逻辑究竟是什么。
公司的底层逻辑:我们雇你,是在买一份“未来期权”
很多职场新人(甚至是工作了几年的熟手)都有一个这样的认知:“公司付我薪水,我帮公司干活,一手交钱一手交货,天经地义。”
但这只是表象。Kent Beck 直接戳破了这个幻象:如果单纯为了“完成当下的任务”,一个复杂的功能,熟手自己动手可能只需要 20 分钟;而交由一个新人去做,往往需要经历数天的试错,以及在代码审查中的反复拉锯。
如果仅仅关注眼前的绝对生产力,公司为什么要花更高的综合成本雇你?
“我们现在支付你的薪水,其实是为你未来将成为的工程师购买‘期权费’。”—— Kent Beck
优秀团队真正的账本是这样的:他们愿意支付当下的薪水,并投入资深人员的带教时间(这些在短期内都是高昂的成本),去对赌你未来能成长为独当一面的核心骨干(这是长期的复利收益)。
因此,在团队的考察中,证明自己具备“升值空间”,远比证明自己“是个便宜好用的工具人”重要得多。
拒绝当 C 类,做稳 B 类,如何向 A 类跃迁?
在团队里,每个人其实都在被管理层和资深人员打上隐形的标签:你是能带来生产力爆棚的 A 类博弈者,还是表现稳健的 B 类执行者,亦或是正在悄悄增加团队熵值的 C 类高危人员?
对照以下两张清单,我们可以清晰地厘清技术人员的价值分水岭。
安全防线:从 C 类到 B 类的“及格线”
作为执行层,想要不掉队,核心不是立功,而是不添乱:
- 在合理时间内完成并交付:不要闭门造车,如果快到初始预估时间还没搞定,要提前暴露风险,而不是等截止日期到了才摊手说“我没搞定”。
- 低级错误绝不犯第二次:犯错是新人的特权,但同样的低级错误(如引入明显的格式或语法问题)犯两次,你的团队信任度会呈断崖式下跌。
- 零容忍的底线:虚报进度、谎称做了没做过的工作,这种“作弊”行为会被一票否决,归入 C 类。
打破天花板:从 B 类向 A 类跃迁的“高光信号”
区分 A 类和 B 类的标准,不是你完成了多少任务,而是你从每个任务中沉淀了多少价值,以及给团队带来了多大的正向杠杆。
以下是 Kent Beck 列举的一些典型 A 类信号:
- 逆向思考:你能有力地论证这个任务根本没有做的必要。
- ROI 意识:你通过数据分析,找出了能产生 90% 收益的那 10% 核心工作。
- 多维探索:你用多种技术方案实现了任务,并做出了清晰的架构对比。
- 修路而非赶路:你发现了一个更好的设计,不仅完成了任务,还顺手简化了系统的其他部分。
- 工程素养:你提交的是一系列小而清晰的变更,而不是一个包含成百上千行变更的“大炸弹”。
- 杠杆效应:你编写了一个内部通用工具来简化同类任务。
- 跨域贡献:你在与自己团队不直接相关的领域提交了有用的基础设施代码,且没有耽误你的正职工作。
- 沉淀输出:你以有趣、有用且有说服力的方式,写下了在此次任务中的所学所悟。
- 团队贡献:你是一个有洞察力且响应及时的优秀代码审查者。
- 工程底线:你编写了高质量、高覆盖率的单元测试(Kent 吐槽道:我倒希望这只是 B 类的及格线,但现实中很多团队把它当成了 A 类信号……)。
所有的 A 类信号都有一个共同点——它们比单纯完成任务所需的时间更长。但这不代表你可以永远沉迷于旁枝末节。一定要在合理的时间内把任务搞定,只是别为了追求那个“绝对最短时间”,而放弃了长期的工程投资。
然后把高效交付省下来的时间,投资在那些能让他人受益的自我提升上。
A类之上:硬核技术之外的两道分水岭
Zakas 在其职业生涯回顾中指出:当一个工程师在专业领域深耕到一定阶段,给出高质量的交付产出已经不再是问题时,往往会迎头撞上一面隐形的墙,很多技术人终其一生都在这面墙下打转。
因为当个人技术能力过关后,下一步的实质性提升,不再是堆砌熟练度,而是越过自己难以认同的“思维转变”:
1. 从“被动接受”到“主动推进”
Zakas 在他的 7 条职业自省建议中,特别提到了工程师中后期的瓶颈:主人翁意识的缺失,导致其无法完成从被动接受到主动推进的跃迁。
大部分普通工程师,一辈子都在解决 “How(怎么做)” 的问题——架构师定好了技术方案,产品经理写好了业务逻辑,你负责用代码把它们堆叠出来。在这种状态下,你只是一个昂贵的“代码翻译器”。
而真正拉开身价差距的,是那些开始思考 “What(做什么)” 和 “Why(为什么)” 的人:
- 为什么这个高并发业务场景要采用这种弱一致性方案?
- 这个链路经常出故障,我们是不是可以设计一个自动化工具,一劳永逸地解决这个上下游的偶发性 Bug?
当你不再是坐在会议室角落里被动接受指令的听众,而是成为了整个系统演进的驱动者时,你才真正构筑起了属于自己的工程壁垒。
2. 从“孤军奋战”到“学会协作与带领团队”
在技术进阶的早期,单兵作战能力决定了一切。但个体的精力和时间是有物理极限的,一个人就算不吃不喝,一天也只能产出 24 小时。
Zakas 在向主管请教如何获得进一步提升时,得到了一个极其深刻的反馈:“当你的技术能力过关以后,就要考验你与他人相处、带领团队协同工作的能力了。”
很多硬核工程师对“管理”和“带人”抱有本能的排斥,认为那是务虚。但在真正的复杂系统中,“学会与他人相处”是一种更高级的能力放大器。
- 你能否清晰地向非技术人员推销自己的架构理念,并达成共识?
- 你能否克制住“不如我自己写来得快”的冲动,去辅导、带领周围的人,让整个团队的生产力爆棚?
高级工程师的最终形态,往往自带一种“不依赖头衔的领导力”。正如 Zakas 所强调的:哪怕你现在还不是主管,也要开始学着承担责任,成为那个“提出解决方案的人”,而不只是“提出问题的人”。
写在最后:拿省下来的时间,投资给自己
回到核心论点:在高级工程师和管理者的眼中,单纯的任务关闭数量无法提供足够的评判信息,他们关心的是你的工程潜力。
- 如果你只做被分配的任务,且缺乏思考,那就是 C。
- 如果你高质量地完成任务、及时沟通且不添乱,那就是 B。
- 如果你能在任务中主动承担责任、优化系统设计、沉淀工具让团队受益,那你就是 A。
看到这里,你可能会产生焦虑:“我已经忙得不可开交了,天天加班,哪有时间去想什么架构、工具和技术沉淀?”
这正是两位大佬给技术人开出的药方:
1. 别放弃“动脑的机会”
疯狂刷任务很多时候并不是因为你无可替代,而是因为待在“只要堆代码就能看到产出”的舒适区里最安全。试着去优化你的时间管理、单测策略和提交习惯,在合理的时间内解决战斗;但不要为了追求“绝对最短的交差时间”,而放弃代码背后的复盘机会。
2. 生活不全是工作
正如 Zakas 所说,“生活才是最重要的”,把工作和生活分开,真正重要的事情往往发生在工作以外。工作环境中的历史债务、扯皮的流程,并不值得你投入无限情绪,把它当作"工作问题"看待,保持心平气和。
把你在高效工作中省下来的时间,投资给自己——去阅读、去重构、去跟更高段位的人交流探讨。
记住:拉开工程师差距的,并不是你在电脑前敲击键盘的绝对时长,而是你在每一个任务背后的思考深度与价值发掘。