布鲁克斯在软件工程的“圣经”《人月神话》中提到,不存在一种单一技术,能够轻易消除软件开发中的全部复杂度,带来数量级的生产率提升。其中关键就在于本质复杂度,如理解现实问题、处理需求矛盾等等。但解决本质复杂度的可以是人类,是否也可以是Agent?
人类程序员会被取代吗?
对于这个问题,有很多人悲观地赞成AI将取代软件工程中的人类,也有很多人提出反驳的意见,不过那些乐观的人提出的观点也并非无懈可击。比如:
| 反驳意见 | 但是... |
|---|---|
| 大模型消耗的Token也是需要大量成本的 | Token的单价会随着技术发展持续下降 |
| 经验丰富的人类程序员能快速定位问题所在 | 完全可以让Agent多跑一会把问题找出来 |
| 纯Vibe Coding出来的项目容易跑偏方向或难以维护 | 跑偏方向之后还可以让Agent来进行快速重构 |
| 纯Vibe Coding没有手搓的快感 | ...好吧,这点我反驳不了 |
假设未来大模型和Agent的能力足够强,成本足够低,那人类程序员相对于Agent来说就完全没有任何优势了。所以问题不应该是“人类程序员会不会被取代”,而是“人类程序员应该何去何从”。AI影响下造成的岗位结构变革必然导致一批人被淘汰,而留下的人也未必继续从事现在所说的传统开发工作。
那一批被淘汰的人之所以被淘汰,很大程度是因为AI极大降低了代码产出的成本,提高了代码产出的效率。现在企业表面上是为“软件开发能力”买单,但实际上他们真正要的是开发出来的软件所带来的收益,等到“软件开发能力”贬值的时候,企业就应该会直接为软件开发带来的收益而买单。照这么说,未来的人类程序员就不应该再称为“程序员”,而是掌握了Vibe Coding能力和具体领域能力的工程师。
在短期内,大模型和智能体的能力还不足以支撑上面说的这种模式,所以当前做软件开发的人还是需要具备一定的“古法”能力,但这一天总会到的。
前AI时代的人应该怎么办?
虽然前AI时代积累的“宝贵经验”来之不易,但是“古法保守派”肯定是会被AI完爆的。所谓古法手搓的快感,其实不全部来自于写代码,而是写“有趣的代码”,而那些“无聊的代码”就应该交给Agent来完成。这样一来思路就清晰了:
你可以亲自:
- 手搓关键逻辑(虽然没必要,但是有意思)
- 设计接口
- 设计产品
- 定义和澄清边界
- 审查代码
- 协调多Agent
- ...
然后,把这些交给Agent:
- CRUD
- 样板代码
- 编译错误
- Lint错误
- 测试编写
- 查文档
- ...
尽管在未来,软件开发不再要求必须具备软件开发能力,但短时间内这些能力仍有价值,使用Agent搭配自己的能力才能将效率和乐趣最大化。
后AI时代的人应该怎么办?
有很多人开始担忧,有了AI的加持,那些后AI时代的新手相较于前AI时代的人是否会出现“能力断层”?如果这里的“能力”指的是代码能力,那我认为这种断层是很有可能的;但未来做软件开发所需要的能力并不能完全等同于代码能力,甚至如上文所说,在未来将可以完全不需要手写代码的能力,所以在这个维度上的“能力断层”就要打个问号了。
不过AI Native也可以成为学习代码的优势。前AI时代的人写代码碰到问题只能去Google、Stack Overflow和各路网站翻资料,即使是复制粘贴也只能解决一部分问题;而后AI时代的人遇到问题就可以直接让AI成为导师,不懂就问,还可以让AI根据项目的实际情况给出解决方案。这样一来可以很大地提升学习的速度,而不用将大把时间浪费在找资料的路上。

















