我在知乎上回答[1]了一个问题,关于 AI 之后,是否还要学习编程。下面是我的回答。
在我写下这个回答的 2025 年初,答案是需要。
unsetunset当下,世界还需要程序员unsetunset
使用 AI 进行开发经过了一个快速演化的过程,从 AI 的聊天窗口,到 Github Copilot 类的插件在 IDE 中聊天/补全,再到 Cursor/Windsurf/Trae/Cline 直接让 AI 写代码。配合上大模型的快速进化,现在用 AI 写代码已经越来越方便。这确实会给人一种错觉,有了 AI 工具,人人都能写代码。
但实际情况是,现在 AI 的能力还很有限。AI 擅长的完成一段功能,但前提条件是,你能够把需求描述得非常清晰。但只要干过开发,你就知道,大部分人是没有办法把需求一下子描述清楚的。我们看到的各种一键生成的应用,其实都是非常简单的。至于复杂的逻辑, 让人把描述清楚都很困难,何况是让 AI 写出来。
还有一个实际的问题是,这些 AI 工具并不能完整地掌握整个代码仓库,所以,我们提出的需求,AI 很可能不能完整地修改整个代码仓库里相应的代码,代码仓库规模只要稍微大一点,就有可能出现遗漏。如果你是一个程序员,你可能会想到“高内聚、低耦合“之类的设计原则,减少模块之间的依赖,但不幸的是,这不是 AI 的强项,一个不懂开发的人更不会想到这个问题。
你看到了,即便我们用上了目前最好的工具,很多时候,AI 写出来的代码还是会有很多的问题。我们能怎么办?AI 写的代码出了问题,还是需要程序员来改好,至少当下,世界还是需要程序员的。
unsetunset程序员,与 AI 协作unsetunset
有了 AI,程序员的工作模式会发生很大的转变。如果还把主要的时间花在敲代码上,肯定是落伍的。有了 AI,程序员的工作模式应该转成:
在这里,重点是学会告诉 AI 怎么写。显然,在这种工作模式下,学会把需求描述清楚就非常重要了,这就要求程序员好好学学提示词怎么写,以及提升一下自己的语言表达能力。
基于目前的 AI 自身的能力以及我们与 AI 协作的能力,最好让 AI 一次写一个小需求。这就非常考验程序员的任务分解能力。任务分解本就应该是程序员的必备能力,在 AI 时代,这个能力的价值更加凸显出来。
与 AI 协作,另外一个应该受到重视的能力是编写测试的习惯。一旦 AI 改的代码比较多,它改的代码是否影响了已有代码,我们只能通过测试来判断修改的正确性。好消息是,我们可以让 AI 帮助我们写单元测试。
unsetunset近未来,写代码还有价值unsetunset
随着 AI 的发展,AI 工具能力的增强,写代码会变得越来越容易,这个趋势是确定的。这也就意味着,开发同样多的功能,所需的程序员会减少。但也同样意味着,用同样多的程序员,会完成更多的功能。
在可见的未来,程序员群体会经历一个洗牌的过程,不会使用 AI 的程序员会逐渐被时代淘汰,会使用 AI 的程序员效率大幅度提升。
只要世界上还有要自动化的东西,就依然需要程序员。指望一个完全不懂编程的人用 AI 写出一个小工具,这是可能的,写出有复杂逻辑的系统,基本不可能。所以,老板还是缺一个写代码的。
如果你是一个已经具备编程技能的程序员,要做的是学会与 AI 协作;如果你是一个普通人,完全可以借助 AI 工具,上手开发一个小工具,过一把创造的瘾(这是程序员最大的乐趣),大概率,你也不会以此为职业。
如果你有一个孩子,要不要培养他写代码呢?这取决于孩子的兴趣,毕竟不是所有人都适合学编程,但只要孩子是那块料,学编程还是值得的,编程还是很能锻炼一个人的思维。以后,即便 AI 再发展,还需要有人让 AI 更强大。
至于通用人工智能实现以后,还要不要编程,谁知道呢!也许还是需要编程,只不过,已经不是今天这种方式的编程了。
[1] AI普及后,还需要学习编程开发吗? - 郑晔的回答: https://www.zhihu.com/question/1888313455360049571/answer/1889421961991545908