AI 本应帮助初级员工发光发亮,为什么它主要让高级员工更强大?
本文信息来源:elma
“编程会完全被 AI 接管吗?” 这个问题已经被问烂了,人们还在不断尝试回答。我不确定是否还有什么真正新的观点,但我想分享一下自己的观察。
早期的说法是,公司会需要更少的高级员工,而初级员工配合 AI 就能产出高质量的代码。至少我当时看到的都是这样。但现在,部分原因是 AI 并没有完全兑现炒作中的承诺,看起来公司真正需要的并不是初级 + AI,而是高级 + AI。
为什么?
让我们看看 AI 在编程中擅长的地方以及不足之处。
它的优势在于:
- 快速生成样板代码和脚手架
- 自动化重复性流程
- 尝试不同的实现方式
- 得益于快速迭代,能够迅速验证事物
- 只要明确需求,就能快速上线功能
而谁从中获益最多?显然是资深人员。对于初级人员来说,这些工具更难转化为真正的价值。虽然仍有可能,但要困难得多。
它的反作用之处:
- 代码审查 :AI 并不能真正进行推理。审查可能有用,但一旦出现边缘情况(而在 AI 生成的代码中这种情况更多),你最终还是需要资深人员来处理。
- 糟糕的提示词 :谁能写出好的提示词?是那些真正理解自己在构建什么的人。如果有人缺乏相关知识,他们可能仍能得到“还算可以”的结果,但在没有适当检查的情况下,这只会导致漏洞和麻烦。
- 架构 :没有坚实的架构,软件很快就会失去价值。如今 AI 还不能真正设计出优秀的架构;它看起来好像可以,但这种推理仍然需要人类来完成。以薄弱架构起步的项目最终会淹没在技术债务中。
- 代码质量 :选择正确的抽象、正确应用设计模式、保持代码整洁且符合上下文。AI 在这方面依然存在困难。
- 安全性 :可以把它想象成一栋没有门或锁坏了的房子。初级开发者 + AI 的组合更容易出现安全漏洞。当然,安全漏洞无处不在,但至少有资深开发者时,会有一定的安全意识和谨慎态度。
- 错误学习 :如果一个人无法真正评估代码,他们可能意识不到 AI 生成的内容哪里有问题。在公司内部,这可能意味着带来损害而不是创造价值。
还有更多的例子,但重点是:AI 目前并不是真正威胁资深开发者的存在。甚至可能恰恰相反。而这并不是在批评初级开发者,而是不要在不切实际的期望下将他们推入高风险的境地。
我们应该在这些场景中使用 AI:
- 快速原型设计 :非常适合快速尝试一个想法。
- 加速日常流程 :最重要的用途。将你已经非常熟悉且经常重复的事情自动化。
- 多学科工作 :填补你知识中的空白,建议有用的方法或库,在多个领域交汇时帮助你理清思路。
- 功能测试 :简单、重复、低风险的代码,你可以轻松复查。
在我看来,这就是目前的状况。我们仍然必须阅读 AI 写的每一行代码。它远不完美。没有意识。推理是模仿。它是非确定性的,这就是为什么我们依赖像测试这样确定性的东西。但问题是,你真的会信任 AI 去编写验证自己代码的测试吗?
这让我想起我发过的一条推文:有一个提示让 AI 在不知道的时候说“我不知道”。我的看法是:“如果这样的 AI 说‘我不知道’,你也不能确定它真的知道自己不知道。”
当然,“初级 + AI”的组合很有吸引力。它看起来更便宜,也迎合了“AI 会取代我们的工作”的恐惧。但当你将软件行业与其他职业相比时,这个领域依然显得不够成熟。在建筑行业,建筑师负责设计;而在软件行业,即使是“架构师”也仍在通过写代码“砌砖”。我们的角色还不够专业化或基于能力分工,成本削减占据主导。这贬低了工作的价值,也让人们精疲力竭。
因此,AI 目前并没有实现编程的民主化,反而更多地将权力集中在专家手中。预期与现实并不完全一致。接下来会发生什么,我们拭目以待。我对 AI 的未来持乐观态度,但在短期内,我们可能需要先重置预期,避免它们进一步扭曲。