Vibe Coding 会取代程序员吗?
需要注意的是,本文是根据个人经验得出的一些思考,并没有数据支撑,仅供参考。
1. 回到原点
随着大语言模型的出现,Vibe Coding 成了最火的概念之一,未曾系统性地学过软件工程知识的人们跃跃欲试,编程这个曾经看着如此困难的事情,如今显得触手可及。似乎下一秒自己也能创造出非凡的软件,但事实真的如此吗?
让我们回到原点,为了解决人类在现实生活中遇到的各式各样的问题,工程师们设计并实现了不同的软件或程序,给人们的生活和生产带来了福祉。从需求的挖掘、分析、方案设计、技术实现、再到交付,这些流程共同构建了软件工程。可能很多人会认为软件工程中最难的部分是编程,而 Vibe Coding 又恰好降低了编程的门槛,这给很多有想法但却缺乏编程能力的人带来了福音。但我认为,软件工程中最重要的应该是需求的挖掘,也就是我们常说的提出一个问题比解决一个问题更重要。
总之,如果你有一个或很多个很好的想法,配合 Vibe Coding 来实现,那无疑是如鱼得水;但如果你没有一个很好的想法,那使用 Vibe Coding 可能只是一厢情愿。
2. AI 的边界
从 0 到 1 实现一个软件,最重要的可能不是这个软件用的什么架构或者技术,而是这个软件能解决了人们的什么问题。淘宝满足了人们线上购物的需求,微信满足了人们线上与人沟通的需求,以现在 AI 的能力,复刻一个淘宝或微信(表层上)应该完全有这个能力,只是时间和成本的问题,但这不意味着人人都能挖掘出人们迫切需要解决的问题和需求。那为什么 AI 不能代替我们挖掘需求呢?
从根本上讲 AI 不是人类,没有人类对世界的感知和社会的联结,AI 的认知来源于已有的知识,并不来源于感受。我们可以把 AI 想象为汇集世界上已知的知识的一个博学家,它无所不知,无所不晓,个人的知识在 AI 面前显得如此贫瘠。人类出生时并未携带任何知识,似乎一开始就输在了起跑线上,但这个弱点反而是人类最了不起的出场设定。AI 擅长从已知的知识中检索结论,人类则擅长从未知中探索已知。
3. AI 对软件工程的冲击
作为一名后端开发工程师,我认为就软件工程的后端开发阶段,最难的不是编码,而是技术方案设计与架构治理。就像盖一件大楼,最难的部分不是砌砖,而在于大楼的结构设计。
就现阶段的 Vibe Coding 能力而言,如果能够提供准确的需求背景和技术方案,它完全有能力胜任工作,但实际情况往往是产品经理需求文档中写的需求和期待的情况会有一定的差距,开发人员写的技术方案也不一定是百分百满足需求。因为这种信息同步带来的问题很难消除,所以 Vibe Coding 给出的结果会不尽如人意。但如果能在上下文中消除这种信息差,理想情况下 Vibe Coding 应该是能够完全满足我们的需求的。Vibe Coding 给出的结果是不是我们想要的,很大程度取决于我们有没有把自己想要的明明白白地告诉给 AI。
所以回到标题,Vibe Coding 能取代程序员吗?从行业的角度,我认为:
产品:需要更多优秀的产品经理,提出更多更好的想法。
UI/UX:大部分工作被 AI 取代,仅保留极少部分人员进行标准制定和统筹。
前端:大部分编码工作会被 AI 取代,保留部分人员进行标准制定、复杂交互实现、代码审核。
后端:大部分编码工作会被 AI 取代,保留部分人员进行标准制定、技术方案编写、代码审核。
测试:会需要更多的测试人员来进行质量保障。
最后,工种概念可能会被弱化掉,会演变成多数全栈工程师配合少数细分领域工程师的工种结构。
4. 拥抱 AI
AI 时代,信息的获取变得更方便,知识似乎变得廉价,这时保持个人的自主思考反而是更重要的,而不是人云亦云,把握 AI 的边界才能更好地利用 AI,拥抱 AI 但不信仰 AI。
