对于开发人员和 IT 专业人员来说,AI 既可以是秘密武器,也可以是定时炸弹
快速阅读: 《ZDNet》消息,本文讨论AI在编程中的应用,指出其虽能提升效率,但也存在误导和错误。作者分享个人经历,并引用研究显示AI可能降低开发者的效率。强调AI需谨慎使用,尤其在关键系统中应保持警惕。
Erikona/Getty Images 我们的故事,像许多故事一样,始于一个男人和他的AI。这个男人,和许多男人一样,是个有点技术宅的程序员。他还需要理发。这个AI是数千年人类智慧的结晶,所有这些都被用来让这个男人的生活变得更轻松一些。当然,这个男人就是我。我就是我。另外:2025年最好的编程AI(以及不要使用什么)不幸的是,虽然AI可以非常聪明,但它也有容易撒谎的倾向,误导人,并做出令人震惊的愚蠢错误。我们将在本文中讨论的就是这部分“愚蠢”的部分。个人经历确实有价值。我对如何用AI快速解决一些问题的报告是真实的。我用AI编写的程序仍在使用。我曾用AI来帮助加快我的编程流程,尤其是在我效率较低而AI非常擅长的领域,比如调用公开API的功能。另外:我是AI工具专家,这是我只付费使用的两个工具,以及三个我正在考虑的。你知道我们是怎么走到这一步的。生成式AI在2023年初期崭露头角,并自那时起一直不断进入知识型工作领域。根据说法,AI真正发光发热的领域之一是它编写代码和帮助管理IT系统的能力。这些说法并非毫无根据。我曾多次展示过AI如何解决了我亲身经历的编码和系统工程问题。现实中的AI编程:科学揭示了什么?根据说法,AI真正发光发热的领域之一是它编写代码和帮助管理IT系统的能力。这些说法并非毫无根据。我曾多次展示过AI如何解决了我亲身经历的编码和系统工程问题。新工具总是伴随着巨大的承诺。但它们在现实世界中真的能实现吗?我大多数关于编程效率的报道都基于个人经历:我自己使用AI的编程经验。但我只是一个人。我用于编程的时间有限,就像每个程序员一样,我有特定的领域花费大部分的编码时间。另外:我测试了10个AI内容检测器——这5个能准确识别所有AI文本。然而,最近一家名为METR的非营利研究机构对AI编程生产力进行了更深入的研究。他们的方法似乎合理。他们与16名经验丰富的开源开发者合作,这些开发者曾积极为大型流行仓库做出贡献。METR分析师向这些开发者提供了246个需要修复的问题。这些程序员被分配了一半的问题自己处理,另一半则可以使用AI来协助。结果令人惊讶且出人意料。尽管开发者自己估计AI辅助使他们的生产力平均提高了24%,但METR的分析却显示AI辅助实际上使他们的效率平均下降了19%。这有点让人困惑。METR列出了可能解释这种减速的因素,包括对AI有用性的过于乐观、开发人员对其仓库非常熟悉(而对AI的知识较少)、大型仓库的复杂性、AI的不可靠性,以及AI拒绝使用“隐性知识和上下文”的持续问题。结果令人惊讶且出人意料。尽管开发者自己估计AI辅助使他们的生产力平均提高了24%,但METR的分析却显示AI辅助实际上使他们的效率平均下降了19%。另外:AI编程代理可能会摧毁开源软件我认为另外两个因素可能限制了效果:问题选择:开发人员被告知哪些问题需要使用AI帮助,哪些不需要。根据我的经验,有经验的开发人员必须根据需要解决的问题来决定在哪里使用AI。例如,在我看来,让AI编写正则表达式(这是我不喜欢做而且不太擅长的)会比让AI修改我已编写并经常使用和深入了解的独特代码节省更多时间。AI选择:根据报告,开发人员使用的是Cursor,这是一个以AI为中心的VS Code分支,当时使用的是Claude 3.5/3.7 Sonnet。当我测试3.5 Sonnet时,结果很糟糕,Sonnet在四次测试中有三次失败。随后,我对Claude 4 Sonnet的测试结果要好得多。METR报告称,开发人员拒绝了超过65% AI生成的代码。这将耗费时间。当ChatGPT建议我摧毁我的系统时METR的结果很有趣。显然,AI在编程帮助方面是一把双刃剑。但毫无疑问,AI可以为程序员提供相当大的价值。如果有什么的话,我认为这次测试再次证明了AI对于有经验的程序员来说是一个很好的工具,但对于新手来说却是一个高风险资源。另外:为什么我要转用VS Code。提示:这与AI工具的集成有关让我们看一个具体的例子,如果我听从ChatGPT的建议,这可能会给我带来很多时间和麻烦。我在家里实验室使用Portainer设置Docker容器(一个帮助管理Docker容器的工具)。不知为何,Portainer无法启用“部署”按钮来创建容器。那天已经很累了,所以我没有看到明显的问题。相反,我问了ChatGPT。我把配置的截图以及我的Docker配置文件都给了ChatGPT。ChatGPT建议我卸载并重新安装Portainer。它还建议我从Linux系统中删除Docker,并使用包管理器重新安装。这些操作会导致所有容器被删除。值得注意的是,ChatGPT没有建议或询问我是否备份了容器。它只是给了我它推荐的命令行序列,让我剪切并粘贴来删除和重建Portainer和Docker。这是一个极具破坏性且不负责任的建议。ChatGPT建议我卸载并重新安装Portainer。它还建议我从Linux系统中删除Docker,并使用包管理器重新安装。这些操作会导致所有容器被删除。有趣的是,ChatGPT从未弄清楚为什么Portainer不允许我部署新的容器,但我做到了。原来是我没有填写容器的名称字段。就是这样。另外:什么是AI vibe 编程?它很受欢迎,但并不适合每个人——这就是原因因为我的经验比较丰富,所以当ChatGPT告诉我摧毁我的安装时,我犹豫了一下。但是,依赖AI建议的人可能会因为忘记输入容器名称而导致整个服务器崩溃。“大锤”解决方案:AI失误的隐喻为了说明AI逻辑可能带来的荒谬情况,这里有一个我经过一次特别沮丧的会议后写下的类比。在这个小故事中,我想象自己使用ChatGPT来帮助安装卧室窗户,而不是IT系统。你好,ChatGPT。我遇到了问题,无法将我的新卧室窗户对齐到窗框中。你能帮忙吗?当然,我会尽力帮你将窗户对齐到窗框中。你有大锤吗?大锤?是的,如果你用大锤轻敲窗框的一角,它会将力量分散到整个窗框,并将窗户固定在窗框中。但是大锤不是很容易打碎窗户吗?是的,如果你用大锤轻敲窗框的一角,它会将力量分散到整个窗框,并将窗户固定在窗框中。不,大锤的接触面积更大,这将使你能够正确地将窗户对齐到窗框中。只需轻轻敲击一下。是的,如果你用大锤轻敲窗框的一角,它会将力量分散到整个窗框,并将窗户固定在窗框中。要轻到什么程度?我应该敲哪里?“要轻到什么程度?应该敲哪里?” “只需用锤头轻轻敲击窗框未对齐的位置。” “那样会比用锤子敲击窗框角落更麻烦。” “只需用锤头轻轻敲击窗框未对齐的位置。” “只要轻轻敲一下就可以了,这样你就不用花时间把窗框拆下来再装回去。” “只需用锤头轻轻敲击窗框未对齐的位置。” “你可以的。” “啊,整个窗框都碎了。我早就告诉过你用锤子是个坏主意。” “我重新考虑了你的问题,你说得对。” “我建议你小心地将窗框拆下并重新安装。” “但现在我做不到,因为你建议我用锤子,现在窗框已经碎了。” “我非常抱歉。需要我推荐一些窗框供应商吗?” 这就是用ChatGPT解决一些编程和IT问题时的感受。它有时能找到解决方案,但并不是总是以正确的方式。自大又缺乏信息的AI:危险的组合我也经历过AI完全失控的情况。我曾遇到它给出的建议不仅毫无用处,还表现得像个专家一样自信。另外:谷歌的Jules AI编码代理在我喝咖啡的时候构建了一个我可以实际发布的新功能如果你打算使用AI工具来支持你的开发或IT工作,以下建议可能会帮你避免麻烦:如果公开信息不多,AI就帮不上忙。但AI会根据它掌握的有限信息编造内容,却不会承认自己缺乏经验。就像我的狗一样,一旦AI专注于某件事,它通常会拒绝考虑其他可能。如果AI固执于一种方法,不要错误地认为它关于新方法的礼貌建议是真实的。它仍然会走进同一个死胡同。开启一个新的会话。如果你对某件事了解不多,不要依赖AI。继续学习。有经验的开发者能分辨哪些有效,哪些无效。但如果你试图将所有编码工作都交给AI,你将不知道它何时出错,也不知道如何修复。程序员经常为特定任务使用特定的工具。一个网站可能使用Python、CSS、HTML、JavaScript、Flask和Jinja构建。你选择每个工具是因为你知道它们各自的优势。同样地选择你的AI工具。例如,我不用AI处理业务逻辑,但我用AI编写API调用和公共知识,这能帮我节省很多时间。测试AI生成的每一个内容。逐行测试。AI可以节省大量时间,但它也可能犯巨大的错误。是的,花时间和精力手动测试有助于防止错误。如果AI提出要写单元测试,让它去做吧。但也要测试这些测试。根据你的经验水平,我建议你这样思考AI辅助:如果你对某个主题或技能一无所知:AI可以帮助你假装懂,但它可能会非常错误,而你可能察觉不到。如果你是某个主题或技能的专家:AI可以帮忙,但它会让你很恼火。你的专业知识不仅用于辨别AI的无用和有用之处,还要精心设计一条AI能真正帮助的路径。如果你处于中间状态:AI是一把双刃剑。它可以帮到你,也可能让你陷入麻烦。不要将技能提升的任务交给AI,否则它可能会让你落后。另外:我如何用ChatGPT从零开始分析、调试和重写一个损坏的插件——在一小时内完成生成式AI对于有经验的开发人员和IT专业人士来说是一个很好的助手,尤其是在针对明确且理解良好的任务时。但它的自信可能会具有欺骗性和危险性。AI可能很有用,但始终要仔细检查它的成果。你是否使用过像ChatGPT或Claude这样的AI工具来帮助你的开发或IT工作?它们加快了你的工作进度,还是几乎毁掉了你的工作?在关键系统上使用AI时,你是否更加自信或更加谨慎?你是否发现某些特定的使用场景中AI真的表现出色,或者在某些情况下失败得很可笑?欢迎在下面的评论中告诉我们。你可以在社交媒体上关注我的日常项目更新。务必订阅我的每周更新通讯,并在Twitter/X上关注我@DavidGewirtz,在Facebook上关注Facebook.com/DavidGewirtz,在Instagram上关注Instagram.com/DavidGewirtz,在Bluesky上关注@DavidGewirtz.com,并在YouTube上关注YouTube.com/DavidGewirtzTV。
(以上内容均由Ai生成)