惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
T
Tor Project blog
G
GRAHAM CLULEY
S
Security Affairs
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
aimingoo的专栏
aimingoo的专栏
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
Cloudbric
Cloudbric
Cyberwarzone
Cyberwarzone
A
About on SuperTechFans
Microsoft Azure Blog
Microsoft Azure Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CERT Recently Published Vulnerability Notes
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Check Point Blog
宝玉的分享
宝玉的分享
Forbes - Security
Forbes - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Microsoft Security Blog
Microsoft Security Blog
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
H
Heimdal Security Blog
Recorded Future
Recorded Future
L
LangChain Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
B
Blog
H
Help Net Security
T
Tailwind CSS Blog
The Hacker News
The Hacker News
雷峰网
雷峰网
P
Proofpoint News Feed
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
有赞技术团队
有赞技术团队
S
Schneier on Security
T
Troy Hunt's Blog
云风的 BLOG
云风的 BLOG
Hacker News - Newest:
Hacker News - Newest: "LLM"
Blog — PlanetScale
Blog — PlanetScale
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed

Shadow Walker 松烟阁

AI Hasn’t Rebuilt the Organization Yet. Anxiety Rebuilt Management First AI 还没重构组织,焦虑先重构了管理 为什么偏偏是“左耳进,右耳出” 拆解 kimi-cli:Coding Agent 的能力上限,为什么在“模型之外”? 我为 Memos 做了一个图片渲染服务 终端属于 Agent,但人类需要“仪表盘” A Deep Dive of LangGraph Mechanisms & Agent Design Patterns LangGraph 机制深度解析与Agent模式设计 The Physics of Inference – A Deep Dive into KV and Prompt Caching 从KV Cache到Prompt Cache的应用 Before Making AI Agent Systems Smarter, First Make Them Trustworthy 让Agent系统更聪明之前,先让它能被信任 在乌龟追上来之前 我的笔触在高维空间独一无二 大厂生存实录:从老板的“屎”论,谈谈如何去除内容的“AI味” 大厂生存实录之为什么是我做 Cursor与Vibe Coding 日本游记 —— 大阪京都 AI的一些思考和总结
AI改变我们的编程方式
edony · 2025-07-06 · via Shadow Walker 松烟阁

延续上一篇关于AI的思考,作为程序员最关心的编程范式的变化,我打算看一下业界有哪些思考和趋势。

这篇文章主要是围绕Tesla前AI总监Andrej Karpathy关于软件3.0的观点展开的。

什么是软件3.0

Andrej Karpathy提出软件开发的演进过程可以被划分为三个主要阶段,即Software 1.0、Software 2.0和Software 3.0,它们代表了编程思想和实现方式的根本性转变。

特性 Software 1.0 (传统软件) Software 2.0 (AI 软件) Software 3.0 (LLM 驱动的软件)
核心思想 明确的指令 (Explicit Instructions) 从数据中学习 (Learning from Data) 与通用模型对话 (Interacting with a General Model)
“代码”是什么? 人类编写的源代码 (C++, Python) 神经网络的权重 (Weights) 自然语言提示 (Prompts)
如何“编程”? 程序员在开发环境中编写代码 工程师用海量数据训练模型 用户通过对话、提问、下指令来引导模型
开发者角色 软件工程师、程序员 机器学习工程师、数据科学家 所有人、提示工程师、AI 应用开发者
典型例子 计算器、操作系统、数据库 图像识别、语音识别、推荐系统 ChatGPT、Copilot (代码助手)、Midjourney (AI绘画)
优点 精确、可靠、行为可预测 擅长处理模糊、复杂的模式识别问题 开发速度极快、门槛极低、知识广博
缺点 僵化、无法处理模糊问题 “黑箱”,需要海量数据,可能产生偏见 可能会“幻觉”(一本正经胡说八道)、依赖大公司、有安全风险

Software 1.0:传统编程

这是我们最熟悉的软件开发模式。程序员使用Python、C++等形式化的编程语言,一行一行地编写明确的指令来告诉计算机如何执行任务。例如,特斯拉自动驾驶系统中就包含大量的C++代码。这种模式的特点是逻辑精确、行为可预测。

Software 2.0:神经网络编程

Software 2.0的“代码”不再是人类编写的指令,而是神经网络的权重。开发者通过收集和标注海量数据,使用梯度下降等优化算法来“训练”一个神经网络模型。模型从数据中自动学习规律和特征,例如用于图像识别的AlexNet。在特斯拉自动驾驶系统中,神经网络就逐渐取代了传统的C++代码。

Software 3.0:自然语言编程

这是最新的范式,其核心是大型语言模型(LLMs)。开发者不再编写传统代码或训练专门的模型,而是通过自然语言(如英语)编写提示词(Prompts)来与一个强大的、预先训练好的通用LLM进行交互,引导它生成所需的功能或代码。例如,要完成一个情感分类任务,开发者可能只需向LLM提供几句话的描述和几个示例即可。

编程范式的演进

Software的三个阶段是演进关系而非完全取代。Software 1.0是基础,提供精确控制;Software 2.0解决了1.0难以处理的模糊和感知问题;而Software 3.0则建立在2.0的成果(LLMs)之上,将编程的接口从形式化语言转变为自然语言,极大地降低了门槛。它们之间的核心区别在于“代码”的形态和“编程”的方式:从人类编写指令,到用数据优化权重,再到用语言引导模型。

这个变化最酷的地方在于,开发工作的核心,从“告诉电脑怎么做”变成了“告诉AI我想要什么”。在AI的加持下,开发者不用再苦哈哈地抠每一行代码逻辑了,只需要写出清晰、全面的目标说明(Specifications)和提示(Prompts),告诉AI我们期望软件能实现什么功能。然后,AI代理就会像个得力助手,把这些想法转化成我们能读懂、能运行的代码。

所以你看,开发者的角色也变了!程序员不再是单纯的“码农”,而更像是“AI协调员”或者“模型训练师”。最重要的技能也变成了如何拆解复杂问题、做好系统设计,以及一门新学科提示工程(Prompt Engineering)。这不只是简单地提问,而是要学会如何像一个精准的指挥家一样,用最恰当的指令、上下文和约束,引导AI产出我们想要的结果。

当下的AI Coding Assistant的身影现在几乎无处不在,贯穿了整个软件开发的生命周期:

  • 规划阶段:脑子里只有一个模糊的想法?没关系,AI能帮你把它变成明确的需求和用户故事。
  • 开发阶段:像GitHub Copilot这样的AI编程神器,可以实时帮你写代码、补全函数,据说能把开发效率拉高整整45%!简直太神了!
  • 测试阶段:AI还能自动写测试用例、跑测试,帮你揪出代码里的bug和安全漏洞。
  • 部署和维护:AI也能优化发布流程,甚至能预测系统可能会在什么时候出问题,让运维工作省心不少。

不过目前AI Coding也不是完美的,存在很多问题:

  • 安全问题:现在最头疼的就是“提示注入”(Prompt Injection)。坏人可能会用一些刁钻的问法来“忽悠”AI,让它绕过安全限制,干点坏事,比如泄露你的数据。
  • 可信度与可靠性问题:LLM有时候像个“黑箱”,我们搞不清它为什么会做出某个决定。而且它还时不时会一本正经地“胡说八道”(也就是“幻觉”),这对于要求绝对精准的软件来说,可是个大麻烦。

所以目前为止Software 3.0目前更适合作为工具箱中的辅助工具,而非完全取代传统的代码编程。

软件范式的更新

Andrej Karpathy关于软件3.0的讨论中提到它不仅仅是一个技术更新,更是一场深刻的范式革命。

编程的民主化与角色的转变

社区普遍认为,Software 3.0最大的意义在于“编程民主化”。由于编程语言变成了自然语言,非程序员也能参与到软件创建中,极大地拓宽了创新的来源。X平台(原Twitter)上的讨论热烈,用户强调“English is coding”(英语即编程)的理念。对于程序员而言,工作重心从手写代码转向了设计高效的提示(Prompt Engineering)、验证和审计AI生成的代码以及管理整个AI系统。

LLM作为新的“操作系统”

Andrej Karpathy将LLMs比作1960年代的早期计算机或是一种新型的操作系统。这一观点在社区中获得了广泛认同。LLMs成为了一个可编程、可组合的基础平台,开发者可以围绕它来构建各种应用,而不是一切从零开始。

人机协作而非完全取代

目前大家普遍的共识是,Software 3.0强调的是人机协作,即“部分自动化”(Partial Autonomy)。Karpathy提出的“Autonomy Slider”(自主性滑块)概念被反复提及,即用户可以根据任务需求调整AI的介入程度。AI负责生成,人类负责验证,形成高效的“生成-验证”循环。

总而言之,软件3.0不仅仅是工具上的更新换代,它更像是一场关于思维、流程和团队协作方式的革命。公司需要赶紧建立起新的管理规则,培养团队和AI打交道的能力,还得花钱投资一些能管好AI风险的技术。说到底,未来的赢家,不是那些拥有最强AI的人,而是那些最懂得如何与AI共舞、能建立起高效、安全、负责任的人机协作体系的团队和个人。这,才是这场变革中最激动人心的部分!

References

  1. 人工智能对软件开发过程的战略影响
  2. Andrej Karpathy: Software Is Changing (Again)