Foreword
最近看了几篇东西,一篇Bob大叔的对谈,一篇李飞飞访谈,还有Linus用AI修内核的commit。有点意思,记录一下。
关键点还是写在前面:AI会的东西,不是你会的。AI成长了,不代表你成长了。你把活丢给它,它越来越强,你的见识和能力并没有跟着涨。
一年前写Cursor的时候就说过,新手用Cursor可以快速拉到熟手水平,再往上走还是得自己深入代码和设计。现在更明显了,很多人已经把“会用AI”当成自己会了。
AI未来
Who
Bob大叔就是写《代码整洁之道》那个Robert C. Martin,敏捷宣言签字人之一。12岁开始写程序,干到现在60多年了,还在写。最近跟Agent结对,放了句很冲的话:Agent写的代码他完全不看。
Matt Pocock是TypeScript圈子里挺有名的教育者,这场对谈是他请来的。
李飞飞不用多介绍,ImageNet就是她搞出来的,现在大家叫她AI教母。斯坦福教授,前两年去办World Labs,押空间智能,不跟着卷大语言模型。访谈里翻来覆去就一件事:AI是工具,主动权得拿在人手里。
一个在代码里,一个在智能本身上,说的完全不是一件事,但最后收尾挺像。
语言只是第一层
李飞飞觉得现在大家说的AI,基本就是语言智能。写代码、写文案、做推理,标准化执行这块已经挺能打了。但人可不只是语言,空间、身体、情感、创造力,这些它都还没补完。你没法靠读文字学会开车,也学不会投篮。
所以她很反感“智能成本趋近于零”这种说法。听着很爽,信了以后人就懒得主动了。她觉得最大的风险不是AI失控,而是把人的主动思考拿走,学习成长的能力也一起废了。
下一站她押空间智能:理解、推理、生成、交互。语言模型只是1.0,三维世界才是缺的那块。这个对不对以后再说。对普通人更实际的是另一半:职场会往两头走,一头是真顶尖的专家,一头是主动性很强、什么都能上手的通才,中间那种还凑合、只会机械执行的,空间会越来越薄。
Agent很能打
Bob大叔更极端,Agent写的代码他完全不看。这句话很容易被当成Vibe Coding的背书,其实正好相反。
他不看,是因为前面套了一层又一层硬约束:单元测试、Gherkin、QA、变异测试、覆盖率、复杂度分数。Prompt对模型来说跟《加勒比海盗》里的海盗法典差不多,听着是规则,执行起来是建议。真能卡住Agent的是测试和工具,不是你在agents.md里写的第80条。
还有个很现实的点:Agent留下的烂代码不清理,它自己也会越写越慢。改A坏B,修B坏C,原地打转,最后直接跟你说处理不了了。烂代码拖的不只是人,Agent一样撞墙。
Linus上周修Intel Xe显卡驱动,就是这个现场。Battlemage上GDM反复崩、黑屏,他加了24个调试补丁,内核重启了18次,最后只改了一行,round_up()改成round_down()。AI帮了不少忙,加调试、看结果,Commit说明都是它写的。但它好几次直接说这不可能、无解了、写个报告得了。Linus不让停,还吐槽:训练这玩意儿的人,大概没我这么倔。
AI想放弃,人硬推着查,才找到那一行。要是信了它说的做不到,这问题就停在报告里了。你能看出来它在瞎忙、知道该往哪推,靠的不是AI变强了,是你自己见过这种调试,你坚信这是能解决,可以查的问题。
所以Bob的分工变了:Agent干战术,人管战略。模块怎么切、依赖能不能乱指、最后对不对,还是人说了算。前期规划写得越完美,越容易掉进70年代瀑布流那个坑。Agent特别爱写计划,计划写得越华丽,执行时崩得越干脆。他还是敏捷那套:先做一点,看看架构歪没歪,歪了人上手掰回来,再继续。
基础没有过时
两个人最后踩在同一个点上。
Bob说:现在有些人觉得软件基础已经不重要了,他们会吃苦头,而且不会等太久。软件是人做过最复杂的东西,基础就是把这种复杂性组织起来,让人能懂,让模型也能懂。你今天扔掉的规则,一年后大概率还得从地上捡起来,掸掉灰,重新想起来当初为啥需要它们。
李飞飞那边是:提问才是核心技能,成长和思辨才是竞争力。AI是工具不是替代品。被甩下去还是被托起来,不取决于技术本身,取决于你有没有主动去用、去理解、去驾驭。
你该怎么做
先分清谁在成长
用AI最容易产生的幻觉就是:产出变多了,就以为自己变强了。
Agent十分钟给你一个能跑的模块,你复制、提交、上线。活是交出去了,但你并不懂。过两周再看这段代码,还是看不懂它为啥这么写,出了问题也看不出它在挣扎。Bob能看出来Agent什么时候开始瞎忙,是因为他自己经历过同样的挣扎。刚入行的人,可能根本识别不出来。
这才是最危险的地方。AI会的,不是你会的。它下次还是会,你下次还是不会。模型三个月迭代一次,你的脑子可没有跟着迭代。时间一长,你就变成一个会喊AI的人,而不是会做东西的人。
所以别光想着多用AI。每次让它干活之后,问自己一句:这件事我能不能讲清楚?讲不清楚,就自己做一遍,至少把关键路径走通。产出可以给它,判断必须留在自己身上。
新手怎么提高
新手现在最大的问题不是不会用AI,而是太会用了。代码手感还没建立起来,就已经习惯了描述需求、生成、能跑就行。短期看起来进步飞快,实际上该摔的跤全跳过了。
Bob给新生代的路径很土,但我觉得是对的:
- 先自己写代码,写到你知道Agent在处理什么。大学也好,自学也好,这一步不能省。他甚至把老话又拿出来:没写过汇编,就花一个周末写写,否则你活在幻觉里,底层全是魔法。
- 入职之后,先被当成一个Agent来用。给你和Agent一样的任务,套一样的测试和工具约束。产出会很低,但能学到非常多。过了这关,才谈得上自己去跑Agent。
- 战术会被AI吞掉一大块,所以你要尽快碰到战略:模块怎么切、接口为什么这样、需求哪里是错的。这些东西反馈周期本来很长,现在Agent把执行加速了,你反而能更早看到自己设计错了。别拿这个加速去逃避思考,拿它来试错。
落到习惯上大概就这几条:
- 先问这个问题到底是什么,再问怎么让AI写。提问的质量就是你的水平
- 生成的代码至少把关键路径读一遍,跑测试,改到你能解释。解释不了就当自己不会
- 基础还是得补:数据结构、网络、操作系统、编译链接、测试、设计。不是为了面试,是为了你能看懂Agent什么时候在胡说
- 读点老书。《代码整洁之道》《程序员修炼之道》,以及更早的DeMarco、Yourdon。过时的工具滤掉,留下组织复杂性的那部分,今天反而更值钱
- 找一个真实问题做完,别停在Demo。能跑,和能维护、能在烂需求里活下来,是两件事
李飞飞把主动性几乎等同于创业精神,不是让你去注册公司,而是你得自己拿起工具。中间那层还凑合的会被压缩掉,专家和通才都还在,前提是你真有手艺,或者真能跨领域做判断。平庸的执行,人比不过AI的,注定要被淘汰,而这样的人最大的问题就是平庸,后期就会陷入恶性循环,因为平庸比不过AI没人要,所以没经验。同理现在的新人、找不到工作的都会面临这样的难题,至少在我这里这个问题有点无解,需要新一代的人去探索他们的路。
Summary
程序员之外,逻辑是一样的。
别把AI讨论做成神或者魔鬼。就是一把很锋利的刀,你得学会用,也得知道它切到哪里会出事。
李飞飞给普通人的起步挺土:找个已经在用的年轻人,让他带着你做一次。可怕的不是不会,是逃避。逃避的人,差距会越拉越大。
用起来之后,把主动权拿回来。跟它对话、让它写、让它查,都可以。最后做决定的是你,最后能讲清楚的也应该是你。
Quote
https://mp.weixin.qq.com/s/VGLla6Oj2vwX_FEEIFFqjw