AI 时代,学习编程还有用吗?编程发展史和顶尖AI编程公司CEO给出了答案
2025年7月2日
时间来到 2027 年。你刚刚独自一人,仅用一周时间,为客户搭建了一个复杂的全新网站。
十年前,这样规模的项目,可能需要一个软件工程师团队耗费数月才能完成。但现在,借助最新的 AI 编程工具,你得以快速独立完成。
学习编程
"去学习编程。"几十年来,这几乎是所有进入职场或寻求职业转型的人的首选建议。
软件工程师的起薪高于平均水平,随着数字世界的爆炸式增长,对他们技能的需求似乎永无止境。关键在于,编程被宣传为,任何人都可以通过在线训练营在短短几个月内学会的技能。
现实却有些不同——并非所有人都适合编程所需的线性思维——但即便如此,在 21 世纪初,软件工程似乎仍是一个稳妥的职业选择,特别是对于那些有能力和冲劲,能在竞争中脱颖而出,获得梦寐以求的入门级职位的人来说。
然而,现在几乎任何人都可以编程:他们只需告诉 AI 想要构建什么——比如 Freethink 网站的新版本,AI 就会在几分钟内,将他们的指令转化为可运行的软件。
根据美国劳工统计局的数据,2023 年至 2033 年间,计算机程序员的就业预计将萎缩 10%,这意味着将减少超过 13,000 个工作岗位,而计算机科学专业应届毕业生的失业率已经开始上升。
那么,现在学习编程还有意义吗?
为了寻找这些问题的答案,本文回顾了编程的历史,并与全球最受欢迎的 AI 编程助手创世纪人进行了对话,以了解他是否认为"学习编程"仍然是值得采纳的建议。
编程发展历史
像许多变革性技术一样,计算机编程的根源可以追溯到美国军方。
炮兵在瞄准武器时需要考虑许多因素,包括距离、炮弹重量和风速。
为了节省他们在战场上的时间,美国陆军资助开发了电子数字积分计算机 (ENIAC),这是一种旨在生成图表的机器,士兵可以利用这些图表快速确定目标。
让 ENIAC 执行创建这些图表所需的计算是一个繁琐的过程。
数学家们首先必须在纸上计算出 ENIAC 的数百个开关和电缆需要如何配置才能运行所需的计算。
手动完成这些更改后,他们会使用穿孔卡片(带有精确孔洞的硬纸片),将数据输入 ENIAC。然后,它会执行计算并将结果作为新的穿孔卡片交付,供数学家分析。
整个过程可能需要数周时间,并且每次计算都必须重复,但在 1948 年,ENIAC 经过修改,可以在内部存储一个简单的程序,从而消除了每次计算都需要重新布线的麻烦。
这加快了过程,但仍然需要人工校准机器并处理穿孔卡片的输入和输出。
1946 年,数学家 Marlyn Wescoff(左)和 Ruth Lichterman(右)正在重新编程 ENIAC。
到 20 世纪 50 年代末,第一批高级计算机编程语言问世。现在,人们不再使用穿孔卡片与计算机通信,而是可以通过电传打字机输入命令。
计算机的结果几乎可以立即打印出来,但一个错误可能意味着需要重新输入整行代码——这仍然是一个耗时的过程。
随后,70 年代视频显示器兴起。这是一个巨大的转折点,它意味着程序员可以直接在屏幕上编辑代码,移动光标修复错误,而无需重新输入程序的整个部分。
80 年代个人电脑的出现使计算机编程变得大众化。
它不再仅仅是大学、政府机构和其他大型机构相关人员才能接触到的技术,任何拥有个人电脑的人都可以在家中舒适地进行编程。
这催生了对新编程工具的需求,例如集成开发环境 (IDE)——将编辑、调试和编译整合到一个界面中的平台,帮助程序员更高效地工作。
Turbo Pascal 软件开发系统在 20 世纪 80 年代和 90 年代初深受程序员欢迎。
互联网随后让所有这些新程序员,能够接触到一个由其他程序员组成的完整网络,以便学习和协作。
它还催生了大量新的编程需求:人们想要网站、游戏、电子商务平台和新的通信系统。
许多新的编程语言也在 20 世纪末诞生。有些专门用于特定应用,如网页开发,而另一些则旨在让编程对初学者更易于上手。
在世纪之交之前,许多编程工具已经提供了基本的自动编码功能,为程序员建议代码行。
到 2010 年代,其中一些自动完成系统已经足够先进,它们可以利用上下文(代码周围的代码)来提出更智能的建议。
我们将走向何方(也许)
我们现在正进入编程的新时代:通过在庞大的代码数据库上,训练生成式 AI 模型,开发人员已经创建了"AI编程助手",它们可以根据用户的提示编写整个代码块。
微软子公司 GitHub,一个拥有超过 1.5 亿开发人员和 400 万组织使用的平台,一直走在发现生成式 AI 在软件工程中变革潜力的前沿。
"我们从 2020 年年中开始探索这个话题,"GitHub 首席执行官 Thomas Dohmke 告诉 Freethink。
"OpenAI 当时最先进的模型 GPT-3 刚刚进入早期预览阶段。我们获得了访问权限并开始使用该模型,在一次像这样的 Zoom 通话中,我们要求它用不同的编程语言,编写小的代码片段、方法或函数。"
他继续说道:"它能够编写出正确的代码,将括号、冒号等放在正确的位置,并且可以区分不同的编程语言。当被要求用 Python 编写方法或用 JavaScript 编写函数时,它没有犯错。"
预览之后,GitHub 开始基于 OpenAI 专门为编程微调的 AI 模型 Codex 构建一个编程助手,现在被称为 Copilot。
"从 2020 年 6 月到 2021 年 6 月,我们发布了 Copilot 的第一个预览版,一年后,我们向超过一百万用户推出了正式版,"Dohmke 说。"到 2022 年 11 月,ChatGPT 问世并改变了人们对 AI 系统的看法,但 Copilot 已经上市了。"
次年,GitHub 为 Copilot 添加了聊天功能,使用户能够像与同事协作项目时一样,使用对话语言与 AI 进行交流。
随后,在 2025 年 2 月,它推出了 Copilot 代理模式。用户不再需要一次给 Copilot 分配一个任务,而是可以给它一个更广泛的目标。
Copilot 会将该目标分解为子任务,独立处理它们,并在无需逐步指导的情况下完成工作。
你可以将其想象成,告诉某人将鸡蛋打入碗中,与告诉他们烘焙蛋糕之间的区别。
在代理模式下,Copilot 甚至会检查自己的工作并解决发现的任何问题——这就像那个人品尝面糊,然后意识到需要添加更多香草。
这项能力,极大地增加了开发人员可以委托给 Copilot 的代码量。
"在早期预览版中,Copilot 编写了大约 25% 的代码——一年后,这一比例超过了 40%,"Dohmke 说。"今天,根据你使用 Copilot 和代理的方式,它可以在某些场景下编写所有代码。"
GitHub Copilot 迅速在编程社区中获得关注,上市第一年就以四倍的速度增长,并在 2025 年用户数量突破 1500 万。
加上所有其他可用的 AI 编程工具,现在有大量原本由人工编写的代码正在由 AI 生成——2024 年,谷歌CEO表示,该公司约 25% 的新代码是 AI 生成的。
许多专家预测这个数字会迅速上升。微软首席技术官凯文·斯科特在 4 月份告诉 20VC 播客主持人哈里·斯特宾斯,他预计到 2030 年微软将达到 95%。
AI 初创公司 Anthropic 的首席执行官 Dario Amodei 预计转型会更快。
"我们发现,距离 AI 编写 90% 的代码的世界只剩下三到六个月,而在 12 个月内,我们可能会进入一个 AI 基本上编写所有代码的世界,"Amodei 在 2025 年 3 月预测。
学编程是否过时了?
无论速度如何,趋势都很明确:越来越多的代码将由 AI 编写——那么,"学习编程"是否正式成为一个糟糕的职业建议呢?
"我们正朝着,专为个人定制的个性化应用程序迈进。"
Dohmke 认为,根本不是这样,我们只需要调整对专业水平上"懂编程"的理解。
八十年前,这意味着知道如何调整一台 30 吨机器上的电线和开关——这是一种只有少数人掌握的技能。
四十年后,程序员是那些知道如何在个人电脑上输入函数的人——成千上万的人以此为生,同时还有无数人进行业余编程。
现在,编程几乎只需要将你的软件想法输入或甚至说给 AI 即可。
这意味着数百万人现在拥有成为程序员的基本技能,Dohmke 预测他们将利用这些技能来创建各种问题的软件解决方案。
个人定制运用时代来临
"我们正朝着专为个人定制的个性化应用程序迈进,比如你可能会为这次面试或计划巴黎之旅而构建的应用程序,这些是公司永远不会为个人构建的东西,但 AI 使我们能够做到。"
本质上,"学习编程"将意味着"学习如何提示",如果运用得当,Dohmke 认为我们应该从小学生开始就教授这项技能。
"孩子们已经很自然地通过提问来学习,他们会像 Z 世代伴随智能手机成长一样,伴随 Copilot 这样的 AI 代理成长。我从小通过书籍和杂志学习编程……提示将成为一种自然技能。"
"开发人员将承担更大、更复杂的挑战。"
Dohmke 表示,我们仍然需要专业的软件工程师,他们了解编写代码的来龙去脉,但就像软件工程的以往进步一样,他们的工作性质将会改变。
我们一直在抽象阶梯上不断攀升,从穿孔卡片到 BASIC,再到 Turbo Pascal,再到互联网协作和开源项目。
AI 是下一个层次:将自然语言转化为代码,将问题分解成更小的模块,并与现有代码库集成。
每次我们登上那个阶梯,较低层级的人都不得不适应。例如,穿孔卡片程序员要么学习更高级的计算机编程语言,要么寻找其他工作。
然而,在过去的转型中,程序员有几年甚至几十年的时间来重新学习技能——有些公司直到 20 世纪 80 年代仍在继续使用穿孔卡片。
向 AI 生成代码的过渡正在以更短的时间线发生,而且它也更加广泛,AI 不仅仅改变了我们编写代码的方式,它还在自动化整个软件开发流程,从生成到部署甚至维护。
最终,随着 AI 接管越来越多通常由初级程序员处理的工作,进入该领域将变得越来越具有挑战性。
但随着门槛的提高,单个开发人员所能达到的上限也会随之提高。
"用 AI 容易解决的问题将不具备商业价值,因为任何人都可以做到,但开发人员将承担更大、更复杂的挑战,"Dohmke 预测道。"我们不是在取代自己;我们正在进化。"