开发者已死。开发者万岁。
AI 时代开发者的七个哀伤阶段
为什么这么问?因为我认识的每一位开发者此刻都在经历某种东西。每个人的经历不尽相同,却彼此呼应。
有人愤怒,有人沉默得让我担忧。有人装作什么都没变,还有少数人已经走到另一头,忍不住告诉你这有多好。
关键在于:他们描述的其实是同一件事。这件事就是——你花了多年学会的本领,现在机器能完成其中很大一部分。不是全部,但已经多到让「我是写代码的人」不再能完整回答「你是做什么的」这个问题。
我观察过这一幕在众多团队中上演,它遵循的模式足够清晰,以至于可以预测。我称之为「开发者面对 AI 的七个哀伤阶段」。不是临床意义上的阶段,而是职业意义上的。你多半能在这里找到自己——而认清自己处于哪个阶段很重要,因为整个行业不会等你哀伤完毕。
阶段一:否认——「它只是个花哨的自动补全。」
否认是最舒服的阶段。相信它的输出是垃圾,比去正视它们的含义要容易得多。于是你不去尝试,扫几眼糟糕的例子,就把整个品类归入「玩具」。
破绽在于:你对一个从没在真实工作中运行过的工具持有强烈看法。你不是在评估它,而是在捍卫一个立场。
否认不付出代价,直到代价变得巨大。第一个真正用顺这些工具的团队会变得更快,而你会察觉。那就是否认崩塌的时刻——不是因为你被说服了,而是因为证据响亮到无法忽视。
阶段二:愤怒——「这是一场逐底竞赛。」
愤怒往往是有道理的,而这正是它危险的地方。
你对工具感到愤怒,因为它擅长了错误的事情;对厂商愤怒,因为他们过度吹嘘;对领导层愤怒,因为他们相信那些演示;对那个粘贴自己都解释不了的代码的初级同事愤怒;还有一点,对自己愤怒,因为感到自己正在过时。
其中有些愤怒是正当的委屈。这些工具确实被过度宣传,演示确实经过精心挑选。你所做的确有真正的技艺,而营销从不承认。这些都没错。
陷阱在于:愤怒让人感觉很有成效,实则不然。这是开发者在网上大声、在工作里沉默的阶段。也是学习停止的阶段——于是你与工具之间的差距开始朝错误的方向复利累积。
阶段三:讨价还价——「我只会用它做无聊的部分。」
这是谈判阶段。
我只会用它写样板代码;我绝不会让它碰核心系统;我会把真正的工作留在离线;如果我学会提示工程,我就会是幸存者之一。
这场讨价还价总是以同样的原因失败:工具不尊重你的边界,市场也一样。你划下的那条线——「这里可以,那里不行」——除了你自己,没人看得见。你的团队看不见,你的经理看不见,工具更看不见。
讨价还价不算错。大多数人就是这么开始使用它的,而开始总归是好事。它只是不算一种策略。它是一种一边让工具进来、一边告诉自己仍然掌控的方式。终有一天,这个分别会失效。
阶段四:沮丧——「二十年学习到底为了什么?」
这是没人写过的阶段,也是大多数开发者实际身处的阶段。
不是临床上的抑郁,而是职业性的哀伤。你的身份建立在「我是个写代码的人」之上。如果代码可以被生成,问题就变成了:你到底是谁?而这个问题在最初一个月里没有让人舒服的答案。
这正是开发者卡住的地方。他们停止交付,停止学习,安静地抽离。而一段时间里没人察觉,因为他们本会写的代码仍然被写了出来——由工具写得糟糕透顶,却不再有他们的参与。
从外面看像是懒惰,从里面感觉像哀伤。如果你管理团队,这正是你该警惕的,因为它是让你失去最优秀人才的阶段。
还有一点:打鸡血在这里没有用。对这个阶段的人说「AI 只是工具」,技术上正确,情感上毫无用处。那是把第五阶段的药,开给第四阶段的人。
阶段五:接受——「好吧,它是个工具,其中有些确实不错。」
接受不是投降。它是你第一次与现实合作、而非对抗现实的阶段。
你会找到它真正帮得上忙的地方,而那几乎总是你从不爱写的代码:胶水代码、测试、迁移、重构——那八成从来都只是别人眼中的乐趣的工作。
你也会找到它成为隐患的地方:架构、不变量、生产环境的判断——任何「自信地犯错」代价高昂之处。问题通常不在于工具写了糟糕的代码,而在于它写了自信的代码——而自信不等于正确。
接受是让你诚实面对自己整天到底在做什么的阶段。令人意外的是,诚实的答案从来不是「敲代码」,而一直是「确保该做的东西被做出来并持续运行」。敲代码只是交付手段。
阶段六:重塑——从「我写代码」到「我决定构建什么、如何验证」。
这才是开发者真正进化的地方。
工作的单位不再是代码行数,而是被做出并被验证的决策。你成为那个阐明意图、审查机器输出、抓住「自信地错」的人。你成为那个知道系统应当做什么、并据此要求它的人。
这个阶段让人不舒服是出于另一个原因:旧的度量不再适用。代码行数、提交、拉取请求——所有这些衡量的东西刚刚变得廉价。新工作的衡量标准是结果——正常运行时间、正确性、业务能多快行动——而结果更难在站会上炫耀。
有些开发者永远到不了这里。他们继续用旧的工作单位定义自己,并在实时中感受到其中的价值流失殆尽。
阶段七:新技艺——「这份工作没有消亡,它向上移动了。」
最后一个阶段不是接受,而是一种新的身份。
一个拥有良好判断力与得力工具的工程师,现在就能完成过去需要整个团队的工作。这听起来像威胁,实则正是「杠杆」的定义——而杠杆一直是这个职业真正的职业策略。
稀缺的资源不再是敲代码,而是品味、上下文与判断力。知道什么值得构建,知道什么可能出问题,知道什么时候那个自信的答案是错的。这些是模型所不具备的,也正是你多年来一直在积累、却没意识到它们才是重点的东西。
软件开发正在转变为软件托管。代码的生产正在变成一种商品。而「确定性」的生产——决定构建什么、验证它、为出错时发生的事负责——正在成为这份工作本身。
走完此前全部六个阶段的开发者,才有资格定义这个职业的未来;没走完的,则被它所定义。
行业不会等待
每个月边界都在移动。我不会告诉你这是好消息,因为其中的哀伤是真实的,假装不是,是对每一个正在经历的人的不尊重。
但我观察到的现象是:那些蓬勃发展的开发者并没有跳过这些阶段。他们经历了它们——有时按顺序,有时比预期更快。他们让旧身份死去,并建立起一个不再依赖「我是敲代码的人」的新身份。
你正在哀伤的那部分,是曾经依附于旧职业定义的那部分。那不是软弱,而是你曾在乎这门技艺所付出的代价。
这份工作的新定义更好。它报酬更高、更难被自动化,而且需要你整个职业生涯一直在积累的判断力——那从来都不是关于代码本身的判断力。
放下旧的吧,还有工作要做。