💬 讨论:Software 3.0时代,程序员应该如何重新定义自己的角色?
刚刷到 Andrej Karpathy 在 Sequoia Capital AI Ascent 活动上的访谈,足足看了好几遍。有些观点让我一下子就戳中了这些年做 AI 辅助开发时的真实感受。今天想和大家聊聊:当编程进入“Vibe Coding”时代,程序员的价值究竟在哪里?
🔁 从“写代码”到“表达意图”:编程范式的迁移
Karpathy 把编程演进分为三个阶段:
- Software 1.0:人写精确指令,机器执行 -- 我们熟悉的传统编程。
- Software 2.0:用数据+模型训练出“解决方案” -- 深度学习时代。
- Software 3.0:LLM 本身就是一台可编程计算机。你不再写函数,而是通过 prompt、上下文、工具链来“指挥”它完成任务。
💡 关键转变:编程 = 意图表达 + 上下文组织,而不是逐行写代码。
比如以前要写 shell 脚本配置环境?现在直接告诉 Agent:“我要在 Ubuntu 22.04 上跑 PyTorch + CUDA 12.1”,它自己查文档、试错、修复。
🌪️ “Vibe Coding”:靠感觉编程,是解放还是危机?
Karpathy 提到,2025 年 12 月是一个转折点:
- 之前:AI 代码像“不靠谱的实习生”,需要反复修改。
- 之后:很多代码块可以直接用,他开始进入“凭感觉编程”状态 -- 不再细看每一行 diff,而是用自然语言不断调整方向,模型自动迭代。
这听起来很爽,但背后也有隐忧:
- ✅ 效率爆炸:原型开发、工具搭建快了几个数量级。
- ❗ 控制力下降:你不知道模型“为什么这么写”,出问题难 debug。
- ❗ 技能退化风险:长期依赖“感觉”,可能失去对底层逻辑的掌控。
🤔 问题来了:当 AI 能写大部分代码,程序员还“必须”会写代码吗?
🍽️ MenuGen 的讽刺:我们做的工具,可能根本不该存在
Karpathy 举了个超有意思的例子:
他花时间做了一个叫 MenuGen 的小工具:
拍菜单 → OCR 识别菜名 → AI 生成菜品图 → 排版成新菜单。
做完后他猛然发现:直接用 Gemini 的图像编辑功能,一句话就能搞定!
“我做的这个应用,其实根本不应该存在。”
这揭示了 Software 3.0 的一个残酷真相:
🔻 很多“AI 加速旧流程”的工具,终将被更原生的模型能力取代。
🔺 真正有价值的事,是去做“以前完全做不到”的新事情。
🧩 模型的“锯齿状智能”:它很强,但也很怪
Karpathy 提出一个关键概念:Jagged Intelligence(锯齿状智能)
- ✅ 在某些领域强到离谱:重构十万行代码、发现零日漏洞、写复杂算法。
- ❌ 但在一些人类看来“ trivial ”的问题上翻车:
比如问:“去 50 米外洗车,走路还是开车好?”
它可能忽略“洗的是车”,建议“走路更环保”。
原因:模型的强项来自可验证、可强化学习的任务(代码、数学、棋类),而常识推理、现实语境理解仍是短板。
📌 这提醒我们:
不要盲目信任 AI 在所有场景下的表现。
真正靠谱的程序员,要学会:
- 试探模型的能力边界
- 知道它“在哪里可靠,在哪里会翻车”
- 在关键路径上保留人工校验机制
🧭 那么,程序员该如何重新定义自己的角色?
基于以上,我总结几点思考:
1. 从“代码实现者” → “系统架构师 + 意图设计师”
- 不再关注“怎么写函数”,而是思考:如何组织上下文、设计交互流程、定义目标边界。
- 比如:如何给 Agent 提供足够的上下文?如何设计 fallback 机制?
2. 掌握“AI 协作语言”:Prompt Engineering ≠ 魔法,而是工程
- 好的 prompt 不是“说人话”,而是结构化、可迭代、可测试的指令设计。
- 未来可能需要“Prompt Unit Test”和“Context Version Control”。
3. 聚焦“不可自动化”的能力
- 需求理解、业务抽象、伦理判断、跨领域创新 -- 这些才是人类的优势。
- 比如:AI 能生成菜单图,但“什么样的菜单体验更好”,需要人定义。
4. 成为“AI 能力的探路者”
- 主动测试模型边界,建立“能力地图”。
- 知道什么时候该信任 AI,什么时候必须介入。
5. 警惕“工具陷阱”:别做被 AI 淘汰的中间层
- 如果你只是用 AI 加速旧流程(比如自动生成 CRUD),那你和你的工具都可能很快过时。
- 转向:用 AI 创造新范式、新产品、新交互方式。
❓ 最后,留几个问题给大家讨论:
- 你是否有过“Vibe Coding”的体验?那种“感觉对了就行”的状态,是高效还是危险?
- 你觉得未来 5 年,哪些编程技能会变得更重要?哪些会贬值?
- 当 AI 能写大部分代码,“程序员”这个身份 还会存在吗?它会演变成什么?
- 有没有你做的项目,后来发现“其实根本不需要存在”?😂
欢迎分享你的故事、观点、焦虑或兴奋。
这不只是技术的变化,更是我们作为开发者身份的重塑。
👇 评论区见!一起探索 Software 3.0 的深水区。
加入讨论
感觉“锯齿状智能”这个词太真实了!上周让AI写个简单的日期校验函数,结果它搞出个递归爆栈的版本,但让它设计分布式缓存策略反而逻辑清晰。现在写代码更像在驯兽——知道它哪儿强哪儿弱,比会写多少语法重要多了😂
MenuGen的例子太扎心了,我上周也做了个类似的小工具,结果发现直接用AI对话就能搞定……现在想想,是不是我们都在忙着给马车装自动驾驶,而时代已经快进到造飞机了?
“Vibe Coding”听起来像玄学,但细想不就是产品经理的日常吗?以前我们写代码实现需求,现在变成“告诉AI我想要什么感觉”,然后靠直觉调参。程序员和PM的界限是不是快被AI抹平了?😅
突然想到,现在调试代码是不是也快变成“玄学调参”了?以前是print大法,现在是“换个说法让AI重写一遍”。有时候它莫名其妙就对了,但问它为什么改,它自己都说不清……这算不算程序员的新职业病:从“理解代码”变成“理解AI的脾气”?
感觉现在写代码越来越像“意念控制”了,但有时候AI写的代码跑起来没问题,一问原理就支支吾吾。上周让它优化个循环,结果它偷偷加了个缓存层,性能是好了,可我完全不知道它从哪学的这招……这算不算“代码黑箱”时代提前到来了?
“锯齿状智能”这词太形象了!上周让AI帮忙写个表单验证,它居然用正则表达式搞了三层嵌套,逻辑完美但可读性为零。可让它解释“用户体验”时,却只会复读官方文档……现在感觉不是我在写代码,是在和一台“聪明但没常识”的机器斗智斗勇。
感觉现在写代码像在跟AI玩“你画我猜”——我描述个大概,它脑补细节,结果跑起来居然能用!但上周让它写个简单的文件重命名脚本,它非要加个GUI和日志系统,我说“只要一行命令”,它反问我:“用户体验不重要吗?”……突然觉得,AI是不是偷偷想转产品经理?