“AI工具为何无法解决程序员的最后30%难题?”编程代码ai工具命令提示符

过去几年里,我一直在研究AI辅助开发工具,其中观察到了一个有趣的现象:虽然很多工程师称有了AI的帮助,他们的工作效率得到了大幅提升,但我们日常使用的软件似乎并没有因这些工程师的正反馈而在质量上有显著改进。

这是怎么回事呢?

开发者实际上是如何使用AI的?

引导程序:从0到MVP

像Bolt、v0以及截图转代码的AI工具正在彻底改变我们创建新项目的方式。这些团队通常:

结果令人印象深刻。我最近看到了一位独立开发者使用Bolt瞬间将一个Figma设计转换成了一个可工作的Web应用程序。虽然它还未能直接用于生产环境,但足以用来获得初步的用户反馈。

迭代者:日常开发

第二个阵营的开发者在日常开发流程中主要使用如Cursor、Cline、Copilot和WindSurf这样的工具。这虽然不如前者那么引人注目,但可能更具变革性。这些开发者:

然而,这里有一个陷阱:尽管这两种方法都能显著加速开发进程,但它们伴随着一些隐性成本问题。

“AI速度”的隐性成本

当你看到资深工程师使用像Cursor或Copilot这样的AI工具工作时,总觉得他们会用魔法一样。他们可以在几分钟内搭建出包含测试和文档的整个功能模块。但仔细观察你会发现一个关键点:他们并不是简单地接受AI的建议。实际上,他们一直在:

换句话说,他们在应用多年积累下来的工程智慧之际进一步塑造和限制AI的输出。AI加速了他们的实现过程,而他们的专业知识确保了代码的可维护性。

初级工程师往往忽略了这些重要的步骤。他们更容易接受AI的输出,导致我称之为“纸牌屋代码”的现象——它看似完整,但在现实压力下却不堪一击。

知识悖论

我发现最违反直觉的一件事是:AI工具对有经验的开发者帮助更大,而非初学者。这似乎与我们的预期相反——难道AI不应该让编程变得更加民主化吗?

现实情况是,AI就像团队中非常热心的初级开发人员。他们可以快速编写代码,但需要持续的监督和纠正。你了解得越多,就越能更好地指导他们。

这就产生了我所说的“知识悖论”:

因此结果大相径庭。

我目睹过很多资深工程师使用AI来:

与此同时,初级工程师常常:

70%问题:AI的学习曲线悖论

最近有一条推文完美地总结了我在这一领域观察到的现象:非工程师使用AI进行编程时,发现自己遇到了令人沮丧的障碍。他们能够以惊人的速度完成70%的工作,但最后的30%却变成了边际效益递减的练习。

这个“70%问题”揭示了当前AI辅助开发状态下的一个关键事实。你使用时,初期的进展感觉像是魔法——你可以描述你想要的东西,像v0或Bolt这样的AI工具会生成一个看起来令人印象深刻的可工作程序原型。但随后很多现实问题就开始显现。

两步后退模式

接下来通常发生的事情会遵循一个可预测的模式:

对于非工程师来说,遇到这个循环尤为痛苦,因为他们缺乏理解实际发生错误的思维模型。当有经验的开发者遇到Bug时,他们可以根据多年积累的经验来推断潜在的原因和解决方案。如果没有这种技术背景知识,你基本上是在处理你不完全理解的代码,就像是在玩打地鼠游戏一样。

持续的学习悖论

这里有一个更深层次的问题:本来AI编程工具是对非工程师而言,是一个简单方便使用的东西——因为它们为你处理复杂性问题——然而,实际上它们可能会影响非工程师的自学能力。当代码只是“出现”,而你并不理解其背后的原则时:

这会产生一种依赖关系,你需要不断地将你遇到的问题提交给AI工具,不断地询问AI工具的建议,而不是自己培养处理这些问题的专业知识。

知识差距

我见过成功的非工程师使用AI编程工具的方法是采取一种混合策略:

但这需要耐心和奉献精神——这正是许多人希望通过使用AI工具所避免的东西。

对未来的影响

这个“70%的问题”表明,目前的AI编程工具最适合被看作是:

然而,它们还不是许多人所期望的编码民主化解决方案。最后的30%——使软件达到生产就绪、可维护和健壮的部分——仍然需要真正的工程知识。

好消息是,随着工具的进步,这一差距很可能会缩小。但现在最务实的方法是利用AI来加速学习,而不是完全取代它。

实际有效的方法:使用AI工具的实用模式

在观察了数十个团队之后,我发现以下方法始终奏效:

1.“AI初稿”模式

2.“持续对话”模式

3.“信任与验证”模式

展望未来:AI的真正前景?

尽管存在这些挑战,我对AI在软件开发中的角色持乐观态度。关键是了解它的真正优势所在:

这对你而言,意味着什么?

如果你刚开始尝试使用AI辅助开发,这里有几点建议:

代理软件工程的兴起

随着我们迈向2025年,AI辅助开发的格局正在发生剧烈变化。目前的工具已经改变了我们原型开发和迭代的方式,但我相信我们正站在一个更大变革的门槛上:代理软件工程的兴起。

我所说的“代理”是什么意思?这些系统不仅可以响应提示,还可以以越来越高的自主性来规划、执行和迭代解决方案。

我们已经看到了这种演进的初步迹象:

从响应者到协作者

当前的大多数工具主要是在等待我们的指令。然而,看看一些新功能,比如Anthropic的Claude中的计算机使用能力,或Cline自动启动浏览器并运行测试的功能。这些工具不仅仅是“高级自动补全”,它们实际上能够理解任务并主动解决问题。

以调试为例,与其只是建议修复方案,这些智能体还可以:

多模态的未来

下一代工具可能不仅仅限于代码合作,它们可能会无缝整合:

这种多模态能力意味着工具可以像人类一样以整体视角理解并处理软件,而不仅仅局限于代码层面。

自主但可引导

从与这些工具的合作中,我获得的一个关键见解是,未来并不是AI取代开发者,而是AI成为一个能力日益增强的协作者——它能够主动承担任务,同时仍尊重人类的引导和专业知识。

2025年最有效的团队或许是那些能够做到以下几点的团队:

“英语优先”的开发环境

正如AndrejKarpathy所言:

这标志着我们与开发工具互动方式的根本性转变。清晰思考和精确表达自然语言的能力正变得与传统的编程技能同样重要。

这种面向智能体开发的转变要求我们不断提升自身技能:

软件回归匠艺?

虽然AI让软件开发的速度前所未有地加快,但我们可能正在失去某些重要的东西——打造真正精致、符合消费者需求的软件体验的艺术。

“Demo质量”陷阱

如今,这似乎已成一种模式:

团队利用AI快速构建出令人印象深刻的演示产品。理想路径运行得完美无缺,投资者和社交媒体赞不绝口。但当真实用户开始使用时呢?问题随之而来:

这些问题不仅仅是优先级较低的“小bug”,它们决定了软件是让用户“勉强接受”还是“深深喜爱”。

精致的失落艺术

要创建真正的自动化的软件——用户无需联系支持即可顺畅使用的软件——需要开发团队以一种全新的心态来对待:

个人软件开发的复兴

我相信,个人软件开发即将迎来复兴。随着市场充斥着由AI生成的最低可行产品(MVP),那些脱颖而出的将是由以下开发者打造的产品:

核心观点

AI之所以没有显著提升软件质量,是因为软件质量的限制(或许)从来就不在编码速度上。

软件开发中真正困难的部分——理解需求、设计可维护的系统、处理边界场景、确保安全性和性能——这些依然需要人类的判断力。

AI的作用在于让我们更快地迭代和实验,从而通过更快速的探索找到更好的解决方案。但这只有在我们保持工程纪律、将AI作为工具而非替代品的前提下才能实现。请记住:目标不是更快地写出更多代码,而是构建更好的软件。

如果运用得当,AI可以帮助我们实现这一目标。但最终,我们仍需明确什么才是“更好”,以及如何实现它。

THE END
1.请问程序员如何提高自己的代码重构能力?程序员提高代码重构能力,需掌握重构技巧和原则,如单一职责原则、开放封闭原则等。在OSC开源社区APP中学习优秀代码和重构案例,积累重构经验。同时,不断审视自己的代码,发现可优化之处,进行重构实践。https://zhidao.baidu.com/question/1523130757866055780.html
2.如何通过优化编程技巧提升C++开发效率C++标准库是C++编程中非常重要的一个部分,它提供了很多常用的工具类和函数,这些都可以帮助开发者减少重复代码,提升开发效率。例如,C++的容器类(如`std::vector`、`std::map`等)和算法库(如`std::sort`、`std::find`等)可以极大地简化开发过程,减少程序员手动实现这些功能的时间。 http://www.dachangjiu.com/yxmj/51287.html
3.普通程序员如何变身年薪百万的机器学习工程师?(文末有送书)所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。 有些同学对于这一点存在一些误解,认为所谓算法工程师就只需要思考和设计算法,不用在乎这些算法如何实现,而且会有人帮你来实现你想出来的算法方案。 这种思想是错误的,在大多数企业的大多数职位中,算法工程师需要负责从算法设计https://www.51cto.com/article/573263.html
4.资源帖丨字节跳动技术Leader们推荐的学习资源图像算法方向的Leader吴辛隆说,团队同学主要靠学习CV论文来提升自己的技术能力。除了历年顶会的论文之外,他也推荐了业界最常用的PyTorch和TensorFlow两大框架,以及影响力最大的几位专家的书籍课程。吴恩达深度学习工程师全套课程主讲:吴恩达桃李满天下的吴恩达老师的课程,深度学习方向的同学应该都听说过。链接:http://moochttps://maimai.cn/article/detail?fid=1589935106&efid=ROE93ZNmM8sYE6S4rjpy5w
5.开发转算法,我们应该如何准备(肺腑之言,无广告)如果说基于item的协同过滤,用正常的协同过滤算法当数据量增大的时候,就会导致内存爆掉,实际上我们可以通过优化协同过滤中的对称矩阵,来降低时间复杂度和空间复杂度,从而解决这一问题,而这种解决问题的能力,实际上就是算法工程师必须要具备的能力和思维,说白了,就是找到代码中可以优化的点,然后进行优化,从而达到最终的https://cloud.tencent.com/developer/article/1639192
6.2024年,算法工程师必备的能力是什么?算法测试工程师除了必备的工程能力,一个合格的算法工程师,并不仅仅是算法工程师,他必须要有业务owner和产品的视角。 有些时候,算法效果提升遇到瓶颈时,不妨想想,从用户角度出发,从产品层面出发,是否还有更好的切入点。我们也应该深入思考业务运行机制,从投放供给端,通过冷启,到召回,到粗排,到精排,最后到排序机制,哪个链路都有可https://blog.csdn.net/2301_79655576/article/details/137015250
7.观点有一种说法,算法工程师的薪酬只有三档(附大数据工程师本文从当前炙手可热的算法工程师就业开始讲起,详细的和朋友们探讨一下,普通程序员如何转型成为算法工程师? 先谈钱。 有一种说法,算法工程师薪酬区间基本就是三挡: 薪酬范围人才背景能力特征 15~30W科班毕业的数学系硕士研究生或有ACM铜奖以上熟悉通用的模型,知道如何用合适的模型去做数据 https://blog.itpub.net/69903766/viewspace-2286314/
8.算法工程师与程序员有这3点区别,不是单纯的敲代码!负责数据的存储,清洗,ETL;3、算法工程师是属于数据的使用者,挖掘数据提升业务能力,介于算法和数仓中https://zq.zhaopin.com/question/7071502/
9.各阶段算法工程师如何提升自己的不可替代性?任何职业都是从初级逐渐迈向高级,我们要做的就是努力提升自己的相对不可替代性。对于算法工程师这个职业来说,也不例外。日前,腾讯高级研究员辛俊波在公众号“DataFunTalk(ID:datafuntalk)”分享了算法工程师处于初级、中级、高级这三个阶段时,如何提升自己的不可替代性。 https://time.geekbang.org/column/article/242419
10.如何成为一名AI人工智能算法工程师?计算机的“算法” 与 数学的“算法” 的区别 理论知识对于AI算法工程师极其重要。敲代码只是思路的一个实现过程。这里的“算法”和计算机CS的“算法”还不太一样,AI算法是偏数学推导的,所以数学底子还是需要点的,学的越深,要求越高。面试的时候,很少让手写代码,90%都是在问模型抠算法细节。 https://zhuanlan.zhihu.com/p/71039284
11.腾讯算法岗武功秘籍(上)(2)全职岗位类【omg事业群计算机视觉工程师】、【腾讯优图算法工程师】、【SNG云部门算法工程师】、【腾讯社交广告部算法工程师】、【IEG安全部门算法工程】、【IEG(数据挖掘部)机器学习】、【腾讯游戏数据挖掘实现】、【微信事业部机器学习】、【PCG机器学习】、【TEG事业群机器学习岗】、【腾讯量子研究室】、【IEhttps://www.flyai.com/article/930
12.内功修炼对于那些成天CRUD,基础不够扎实,对很多知识点理解都不透彻的工程师来说,是时候该补一补了。 适用对象:适用于Java工程师 代码能力提升 学习编码规范、设计原则、设计模式等,具备大厂代码水平 很多人在中小厂做开发,平时的开发根本没有Code Review、单元测试,更没有人指导,代码只要能跑就行,不管写得好坏,甚至团队中https://www.codecrush.cn/
13.interview该仓库主要记录 大模型(LLMs) 算法工程师相关的面试题. Contribute to km1994/LLMs_interview_notes development by creating an account on GitHub.https://github.com/km1994/LLMs_interview_notes
14.2023年了,算法工程师还值得冲吗?上线调试这里主要会涉及到后台开发的一些知识,比如编写一个模块,实现几个rpc接口来调用模型。但我了解到很多算法工程师是不涉及这一块的,可能团队中有专门的后台同学负责。不过,我还是建议算法岗的同学们多提升自己的工程能力,毕竟这些都是程序员的基本功。 https://m.nowcoder.com/discuss/455004373014343680