AI,我的得力助手:一位工程师的意外之旅

在旧金山阳光明媚的一天,Erik Schluntz骑着自行车前往Anthropic公司上班。谁能想到,一次意外摔倒竟然成为了他职业生涯的转折点。这位资深工程师右手骨折,不得不戴上石膏。然而,这个看似不幸的意外,却让他体验到了一个令人兴奋的未来——人工智能辅助编程的世界。

意外之喜:AI成为得力助手

“我再也不想回到过去了。”Schluntz在他的博客文章中这样写道。尽管右手无法使用,但他依然在一周内完成了超过3000行代码的编写。这个令人惊讶的成果背后,是人工智能的强大支持。

Schluntz巧妙地结合了语音转文字技术和Claude AI,创造了一个高效的编程环境。他将大块的代码库复制粘贴到Claude中,然后通过语音命令进行转换。”重构ABC函数以接受输入XYZ”或”为这些新函数ABC编写单元测试,并查看XYZ的示例测试”——这些指令让AI成为了他的得力助手。

“我感觉就像是和AI进行结对编程,而由另一个人操作键盘!”Schluntz兴奋地表示。这种体验让他深刻地意识到,我们正在步入一个人类几乎不再需要自己编写代码的未来。

调教AI:人机协作的艺术

然而,与AI协作并非一帆风顺。Schluntz很快发现,有效利用AI需要掌握一定的技巧。他总结了几点关键经验:

  1. 具体化指令:通用的请求往往会得到平庸的结果。Schluntz学会了给出非常明确的指令,详细说明期望的输入和输出,以及使用哪些库等。
  2. 提供上下文:将指令放在输入的开头和结尾,确保AI不会”遗忘”重要的上下文信息。
  3. 示例驱动:提供代码库示例供AI参考,特别是在编写单元测试和处理样板代码时。
  4. 迁移和重构:手动迁移一个实例,然后用它作为示例让Claude转换其余的输入。这种方法让Schluntz能够快速重构大约3,000行代码。
  5. 让AI掌舵:在某些情况下,给予AI更多自主权反而能获得更好的结果。Schluntz发现,如果能够给Claude正确的基础构建模块,它往往可以一次性完成整个任务。

机械同理心:理解AI的局限

随着时间推移,Schluntz逐渐建立起对AI能力的直觉。他学会了简化指令,例如将”我正在使用一个名为pygame的Python库”简化为”在pygame中”。他还发现,如果AI在两次尝试中无法修复一个错误,那么它很可能永远无法修复。

这种”机械同理心”让Schluntz能够更好地理解AI的优势和局限。正如三届F1世界冠军Jackie Stewart所说:”你不需要成为工程师才能成为赛车手,但你必须拥有机械同理心。”同样,与AI协作的工程师也需要培养这种洞察力。

AI的惊人之处:一次性工具的诞生

AI不仅能协助编写代码,还能快速创建特定任务的工具。当Schluntz需要分析机器人输出的GPS坐标时,他只是将CSV文件的前两行提供给Claude。令人惊讶的是,AI立即生成了一个网页应用,可以在卫星图像上渲染上传的GPS坐标CSV文件!

这种能力彻底改变了调试过程。Schluntz惊叹道:”拥有恰好符合我需求的完美调试工具,而不用依赖print语句或预先构建的可视化工具,这简直是革命性的变化。”

未来已来:软件工程的新纪元

Schluntz的经历让我们得以窥见软件工程的未来。他将AI编程的发展划分为三个阶段:

  1. 过去1-2年:AI主要用于IDE中的代码自动补全和知识查询。
  2. 现在(2024年):IDE深度整合大模型,能处理更大块的代码生成。一些AI工具已经开始取代传统的开发环境。
  3. 未来1-3年:真正的”AI工程师”将会出现,能够在自主模式和同步模式之间无缝切换。

在这个新世界中,每个工程师都将成为工程经理,配备一支由AI组成的”实习生大军”。工程师将更多地专注于高层次问题:理解需求、架构系统以及决定构建什么。

人类工程师的未来

尽管AI的能力令人惊叹,但Schluntz坚信人类工程师不会消失。就像计算器的发明并没有让会计师失业,而是提升了他们的工作效率一样,AI将使工程师能够在更高的抽象层次上进行思考。

“我们仍然需要在高层次上进行优先级排序,理解问题的整体架构和范围,并审查AI的工作,”Schluntz说,”不同的是,我们将会把更多的时间花在思考构建什么上,而不是重复性地考虑’如何’构建。”

软件工程的新时代

Cognition AI的总裁Russell Kaplan也对软件工程的未来持乐观态度。他预测,随着AI在编程方面的能力不断提升,我们将进入一个前所未有的软件繁荣时代。

Kaplan认为,编程有一个独特的优势:通过”自我对弈”实现超越人类的数据扩展潜力。AI模型可以编写代码,然后运行它;或者编写代码,编写测试,并检查一致性。这种自动监督在大多数领域是难以实现的。

在这个新世界中,软件的开发成本将大幅降低,”一次性软件”也将会大量涌现。未来的软件工程师将比现在多得多,只是工作方式会有很大不同:更多的自然语言交互,以及更少的样板代码编写。

二阶效应:产业链的变革

AI编程的普及还将带来一系列”二阶效应”:

  1. 面向开发者的公司将开始针对AI进行”营销”。
  2. 产品质量的门槛将提高,半成品或功能不完整的MVP将不再被接受。
  3. 测试基础设施将变得更加重要和普及。
  4. 代码迁移将变得更加容易,转换成本不再是科技公司的护城河。

结语:编程的黄金时代

无论具体情况如何,一个趋势是明确的:现在是成为开发者的最佳和最高效的时代。AI不仅没有取代人类工程师,反而为他们打开了一个充满可能性的新世界。

正如Schluntz所经历的那样,即使在最意想不到的情况下,AI也能成为我们的得力助手。在这个新时代,人类的创造力将成为唯一的瓶颈。我们期待着更多像Schluntz这样的先驱者,继续探索AI与人类协作的无限可能。

参考文献:

  1. Schluntz, E. (2024). Replacing my Right Hand with AI. Erik Schluntz’s Blog.
  2. Kaplan, R. (2024). The Future of Software Engineering. Twitter.

发表评论