【译】AI会取代程序员吗?

“人工智能会取代我的工作吗?”

这是随着人工智能迅速发展,软件工程师们挥之不去的一个问题。这种担忧是可以理解的,甚至是合情合理的。毕竟,如果人工智能可以编写代码、调试错误,甚至设计系统,那么我们还剩下什么呢?

但作为一名开发人员,同时也是一位致力于为开发人员构建人工智能工具的首席执行官,我可以告诉你,不仅你的工作是安全的,它还将变得更加令人兴奋、具有影响力和价值。

历史的相似性:技术赋能而非取代

这种技术增强而不是取代熟练工人的模式,在历史上已经多次出现。让我们来看一些具体的例子:

“科技悲观主义的简短历史”时间轴,显示1979年VisiCalc推出,1980年代是计算机辅助设计(CAD),1990年代是数码摄影

会计师曾担心电子表格软件的崛起

当1979年VisiCalc(第一个电子表格程序)推出时,许多会计师担心他们的工作会不保。但实际上,电子表格彻底革新了这一领域:

  • 常规计算被自动化,解放了会计师的时间,使他们能够专注于分析和策略
  • 财务建模的普及推动了更为复杂的商业规划的兴起
  • 接受了这一技术的会计师变得更具价值,能够为客户提供更深入的见解

如今,会计仍是一个蓬勃发展的行业,专业人士利用先进的软件提供高水平的财务指导。

工作数据显示,在过去30年里,会计工作的数量一直在稳步增加

建筑师曾担心计算机辅助设计(CAD)的影响

1980年代CAD软件的引入改变了建筑领域:

  • 绘图桌被电脑屏幕取代
  • 结构完整性的复杂计算实现了自动化
  • 3D建模使得更为雄心勃勃和复杂的设计成为可能

事实上,CAD并没有淘汰建筑师,反而帮助他们:

  • 更快地迭代设计
  • 以新的方式可视化项目
  • 承担更复杂和宏大的项目
  • 更多地专注于创意设计,而不是技术绘图

工作数据显示,在过去30年里,建筑师的工作数量一直在稳步增加

摄影师曾担心数码相机的出现

从胶片到数码的转变本可以给专业摄影师带来灭顶之灾,但它实际上改变了整个行业:

  • 后期处理变得更为便捷,使创意得到释放
  • 拍摄更多照片的能力提高了抓拍精彩瞬间的机会
  • 分享和发布变得更加容易,创造了新的机遇

虽然一些传统岗位(如胶片冲印工)消失了,但新的岗位(如数码修图师、社交媒体摄影师)也应运而生。构图、光影以及抓拍瞬间的核心技能仍然是人类独有的。

为何软件工程不同

虽然技术进步确实取代了一些行业的工人,但软件工程仍然保持了强大的韧性。让我们来看几个工人被取代的案例,并将其与软件工程进行对比:

制造自动化

机器人和先进机械极大减少了制造业对人类工人的需求:

  • 在汽车制造中,装配线工人被机器人取代
  • 纺织生产大部分实现了自动化,导致许多工人失业
旅行社

在线预订平台几乎消除了传统旅行社的需求:

  • 消费者可以轻松比较价格,并在线预订航班和酒店
  • 目的地信息可以在互联网上轻松获取

工作数据显示,过去20年里,旅行社的工作数量一直在下降

电话接线员

自动化交换系统使得电话接线员成为历史:

  • 直接拨号消除了人工干预来连接电话
  • 自动化目录取代了人工帮助查询
为何软件工程不同


图表显示,被取代的行业通常具有有限的复杂性,工作是重复性的等,而软件工程却是无限复杂的,涉及创造性问题解决,并且在不断演变。

  • 无限复杂性:与实体商品或标准化服务不同,软件可以变得极其复杂,不断带来新的挑战。
  • 创造性与问题解决:软件开发需要持续的创造性投入和复杂问题解决,不像被取代行业的重复性或程序化任务。
  • 持续演变:软件领域随着新技术、平台和用户需求快速变化,要求不断适应和学习。
  • 定制化:软件通常需要为每个客户或用户提供独特的解决方案,与其他行业的标准化趋势形成对比。
  • 决策复杂性:软件架构涉及几乎无限的决策树,远超被取代角色中有限的选择集。

这些因素使得软件工程在自动化和人工智能面前更加具有韧性,它被定位为一个通过技术进步增强而不是被取代的领域。

AI作为加速器

人工智能工具,如GitHub Copilot和ChatGPT,不仅没有让开发人员多余,反而成为了倍增器——大幅提升了单个工程师的工作效率。通过处理常规的编码任务、捕捉错误和提供建议,AI使开发人员能够腾出时间应对更复杂的挑战,并专注于架构决策。

这不是取代人类智慧,而是增强它。想象一下,你有一个不知疲倦的机器人助手团队,实施你的想法并处理繁琐的工作,而你则负责整体的规划与协调。这就是人工智能对软件工程的承诺。

例如,AI可以:

  • 自动化冗余任务,比如将Figma设计转化为代码
  • 快速原型化创意,从而加快迭代
  • 协助文档编写,简化知识共享
  • 通过让非开发团队成员处理开发人员常感繁琐或耗时的任务,促进更好的协作

这些能力并不会取代需要熟练开发人员的需求——它放大了开发人员在给定时间内可以实现的成果。

从逐行编码到更高层次的思考

随着AI接管更多的逐行编码,开发人员将自然转向更高层次的思考和问题解决。这不是角色的退化,而是它向着更具影响力和更具智力挑战的方向演变。

软件工程是一个无底的领域。当我们解决一层问题时,我们会在更高抽象层面发现新的挑战。AI将加速我们在这个阶梯上的进步,让开发人员能够处理越来越复杂且有意义的项目。

每迈向这个阶梯的一个新层次,都会让开发人员有机会构建更复杂、强大和用户友好的应用。

图表显示“战略和创新”位于价值链的顶端,而“代码语法和格式化”位于底端。

你不再手写汇编代码,对吧?你认为我们能够用JS编写高级代码,是否让公司想在代码上做更多事情而不是更少?

你不会手动格式化所有代码,对吧?你使用格式化工具如prettier,还是手动打磨每一行代码?

AI将继续这一趋势,推动开发人员专注于更高层次的问题,如系统架构、用户体验设计以及解决复杂的业务问题。
翻译:

拥抱AI

与其害怕AI,我鼓励开发者将它视为自己武器库中的一款强大工具。以下是一些建议:

  • 尝试使用AI编码助手,如GitHub Copilot。实时体验它们的优势和局限。
  • 使用ChatGPT或Claude来探索想法、调试问题或学习新概念。把它们当作随时可以咨询的导师。
  • 专注于提升自己的高层次问题解决和架构设计能力。这些领域仍然是人类创造力的天下。
  • 通过与大型语言模型(LLMs)合作构建副业项目,进一步探索它们在自动化工作中枯燥部分的潜力,从而让你专注于最喜欢的部分。
享受过程

归根结底,如果你在过程中感到乐趣,你将成为更好的开发者。我们都知道,大多数开发者喜欢花一周时间自动化一项手动完成只需一小时的任务。

有了LLMs,我们现在可以利用一种新的基本工具来增强我们自动化更多任务的能力。

所以,使用它!找到那些你不喜欢的工作,尝试使用LLM API来自动化这些任务。根据我的经验,这很有趣。如果你想更深入,可以尝试自己训练模型,玩得更高端一些。

CEO的视角

作为一家科技公司的CEO,我并不将AI视为减少开发团队的工具。恰恰相反,我认为它是一种能极大提升每个开发者对公司贡献的方式。有了AI处理常规任务,我们的人类工程师可以专注于创新、复杂问题解决和推动可能性的极限。

这种提高的生产力和专注于高价值工作的能力使得每个开发者变得比以往任何时候都更有价值。我们并不希望减少开发者,反而希望增加更多的开发人员,因为AI能够放大每个人的能力,尤其是在我们需要始终保持领先竞争对手的情况下。

CEO示意图:CEO指向肌肉强壮的小柴犬梗图,上面写着“我使用AI”,并说“我想要更多像这样的开发者”

考虑以下几点:

  • 更快速的原型开发带来更具创新性的产品
  • 开发者可以腾出更多时间去理解和解决核心业务问题
  • 更有能力承担更复杂、更雄心勃勃的项目
  • 一支由AI增强的开发者团队是击败竞争对手的竞争优势

在这种环境下,限制因素不是开发者的成本,而是如何充分利用他们增强的能力。

那么,AI会取代程序员吗?

不会。

图表显示,编程工作在过去十年中每年都在增长
软件开发中AI的崛起不是值得恐惧的事情,而是值得热情拥抱的事。通过自动化常规任务并增强人类的能力,AI工具正带来软件工程的又一个黄金时代。

那些适应并利用这些工具的开发者将变得更加高效、更具创造力,并且比以往更加有价值。软件工程的未来不是与AI竞争,而是通过协调它来构建惊人的事物。

所以,不要只是旁观AI革命——引领它。拥抱这些新工具,专注于提升你独有的人类技能,如创造力和复杂问题解决,准备构建下一代改变世界的软件。

毕竟,编码的目的不就是突破可能性的边界吗?AI只是我们武器库中最新且最强大的工具,用来实现这一目标。那些茁壮成长的开发者,将是那些将AI视为构建未来的强大盟友的人。

原文:https://www.builder.io/blog/ai-jobs-truth