说到 AI 是否会取代程序员,我的答案是会,但又不完全会。

在我看来,所谓的取代,其实是要求程序员提升自身能力,向更高层次发展,将比如某个通用函数的封装、代码漏洞检查这类已熟练掌握的工作交给 AI,自己则转变为发布和验收的角色,也就是按照自己的想法下达任务,然后验收任务,形成一个闭环。

AI 在实际应用中确实面临一些问题,以下是我想到的几点:

  1. 怎样确保 AI 能完全依照你的想法,实现你想要的效果?
  2. 如何判断 AI 生成的内容是否正确?
  3. 何时该使用 AI,何时不该用?

就第一个问题而言,未来很可能会演变成面向 AI 编程。你看,现在都已经有 “Prompt 工程师” 这个职位了,他们的职责就是做好与 AI 的沟通工作,思考如何用精准的描述告诉 AI 该做什么。

回顾人与计算器的交互历史,从最初使用 0 和 1 二进制进行沟通,到后来发展出 C/C++/Java 等高级语言,这些都是对 0 和 1 的上层封装。如今与 AI 交互也是同理,只不过现在我们是用现实中的自然语言与它交流。

至于第二个问题,关键在于你自己得懂,也就是说不可能完全依赖 AI 而不学习新知识。不然,你怎么判断 AI 生成的内容是否正确呢?

对于第三个问题,何时使用 AI 就需要进行评估判断了。有些事情看似用 AI 能很快完成,但实际使用时,因输入指令不够具体准确,产出结果可能天差地别,常需多次调整才能满意,自己动手做或许更快,还免得在与 AI 的磨合中浪费时间、徒增郁闷。

除此之外,很多人都提到,既然 AI 能生成一整个项目的代码,那还要程序员干什么呢?

其实,AI 生成的只是项目第一版需求的代码,可项目又不是一锤子买卖,后续还需要不断迭代和更新。这时候该怎么办?全都交给 AI 处理吗?

理论上似乎是可行的,但就我使用 dev0、豆包和阿里云 AI 等工具开发网页的体验来看,效率实在不高。每次修改一点点内容,AI 都要重新生成全部代码,这个过程极其漫长,项目越大,等待的时间就越久。而且,如果输入的指令不够详细具体,得到的结果相差甚远,还得不断调整到满意为止。有这时间,我自己早就把代码改好了。所以在这种情况下,除非你的 prompt 能力特别强,否则真的是对 AI 又爱又恨。不过话说回来,人与人之间沟通都可能出现信息失真,更何况是与机器沟通呢?面对全是 AI 生成的代码,你真的有足够的信心直接部署到生产环境吗?

要是让 AI 生成第一版需求代码,后续的迭代和维护交给程序员呢?

这同样存在问题,因为 AI 生成的代码大概率不符合团队的代码规范,程序员得花时间去熟悉。而且团队可能已经有封装好的组件库,AI 生成的代码却无法复用这些组件,而是自行实现相同功能,这在迭代和维护时反而重复造轮子了。只是一个项目还好,要是所有项目都是如此,那组件库就形同虚设了。就像 A、B、C 三个由 AI 生成的项目,在迭代过程中又得抽取复用的组件和工具类,绕了一圈又回到组件库这里,仿佛回到了原点。

所以现阶段,无论是想完全依靠 AI 生成项目代码并直接发布到生产环境,还是仅让 AI 生成第一版代码,后续由程序员接手迭代和维护,都不太现实。

不过,现阶段 AI 在演示项目、UI 原型设计方面的表现还是不错的。比如我要实现一个大屏,把需求整理好后让 AI 生成效果图,虽仍需调整,但可作为参考,提高了工作效率。

智慧工厂大屏需求:

  1. 实时数据可视化:设备状态、产能、良率、能耗等核心指标实时展示,10 秒刷新
  2. 异常预警:设备故障、指标超标等异常即时报警
  3. 灵活查看:支持按车间 / 产线切换视图,适配大屏显示

而且,AI 还降低了学习某种技术的门槛。以前学习知识点遇到问题,在网上搜了又搜,到处请教,都不一定能得到有效的解释。现在不同了,虽说不能保证 AI 给出的答案一定准确,但你可以要求它提供答案的依据,比如它是从哪篇文章总结出这个答案的,这样你只需进一步甄别就行。在这种情况下,只要你想学,学习任何技术都不是难事。

除了在项目开发和学习方面,AI 还有一些有趣的设想。在 AI 智能体出现之前,我就琢磨过,以后能不能有个 AI 智能体当我的 “替身”。把我所有的信息都喂给它,让它替我完成一些工作,比如写文章。我自己写文章时,对话题的看法、行文风格是怎样的,就希望 AI 智能体写出来的文章也符合这个风格。等把这个 AI 智能体训练到一定程度,说不定都能替我去公司上班。

但这个想法存在不少问题,目前能想到的就有两个。一个是责任承担的问题,这和当下的自动驾驶类似,如果出了事,责任该由谁承担呢?这个责任归属不明确,就阻碍了这种设想的推进;二是温度的问题,人是有温度的,可 AI 有吗?现实中的很多事,对错并非像 1 + 1 = 2 那么绝对,对不一定全对,错也不一定全错,遇到这种情况,AI 真的能解决吗?

所以,综合 AI 在实际应用中的各种表现,AI 真的可以取代程序员吗?有这种想法固然很好,但想法需要生长的土壤,任何激进的想法,没有因地制宜,只能是失败的。

事实上,并不是 AI 取代了程序员,而是掌握了 AI 技能或者更有能力的人,淘汰了其他能力差的程序员。因此,在当前形势下,我们该如何增强自己的核心竞争力呢?

我认为,一方面,要做到知己知彼,既然想用好 AI,就得学习 AI 相关知识。另一方面,借助 AI 快速掌握更多技能,最重要的是提升解决问题的能力。

这里我说的是技能,而非单纯的技术。因为**技术好固然重要,但如果不能为业务增长提供帮助,那技术再好也没太大价值,现实就是如此,现在都在说降本增效,公司只想看到盈利。**所以追求技术无可厚非,但最好是在清楚认识到这一点的前提下进行。