Transcription
哪家公司拥有最好的开发者,亚马逊、谷歌还是其他地方?你意外泄露了那份贬低 Google+ 的内部备忘录。那真的是意外,还是你职业生涯中最好的举动?你是什么时候真正意识到谷歌迷失了方向的?你声称人工智能能让你至少提高 30% 的生产力?为什么工程师们还在像 2010 年那样写代码?你是在说大多数程序员都是恐龙吗?你花了近 25 年的时间开发自己的游戏 Wyvern。它会完成吗?他于 1998 年加入亚马逊,当时亚马逊只有 250 名员工。杰夫·贝索斯恳求他留下,但他还是离开了,在谷歌工作了 13 年,为代码智能构建系统。在担任 Grab 的首席技术官后,他短暂退休,直到人工智能将他重新拉回。史蒂夫·八木(Steve Yagi)是那位意外写下 3700 字的谷歌咆哮文而成为硅谷传奇的工程师,他现在声称每天能使用人工智能代理编写 12000 行生产代码。他说,如今大多数程序员都是使用石器时代工具的恐龙。那个光标和你的 IDE 已经过时了,而且在 5 年内,传统编码将彻底消失。这就是那位刚刚写了一本名为《Vibe Coding》的书的人,因为他认为人工智能让编程变得如此令人上瘾,以至于他真的停不下来。这是我和史蒂夫·八木(Steve Yagi)的谈话。谢谢史蒂夫来工作室。我感觉当我加入亚马逊的时候,你离开了亚马逊,所以我一直在我的职业生涯中看到和感受到你工作的回响。>> 哦,我很高兴来到这里。谢谢你邀请我。>> 当然。不,这有点奇怪,就是那种,也许在你的博客上看到某人的咆哮,但最终能在现实生活中进行对话。所以我很感激你抽出时间。>> 嘿,我很乐意。>> 那么,让我们谈谈你的职业生涯。我认为我的观众对非线性职业道路非常感兴趣。所以,嗯,你知道,从外面看,有线性的部分。所以在亚马逊工作,去谷歌,在那里担任高级职位,去 Grab 担任首席技术官,这看起来是一条相当笔直的道路。嗯,但你的起源故事是什么?你知道,我……我有点非线性,就是在……我 14 岁高中毕业。我去了社区大学一段时间,然后我参军,成为一名核反应堆操作员,在那里,我去了华盛顿大学,最终找到了 GeoWorks 这家公司,它在……在湾区,当时是为……你知道,手持电话、手持设备编写汇编语言。嗯,是的,我的意思是,在那之前,它相当非线性,然后它变得非常线性。它只是超级基础。我是一名工程师,然后我是一名工程主管,然后我去了亚马逊,我是一名技术项目经理,对吧?所以那可能是第一次非线性跳跃,就是亚马逊说服我去了一个我申请的以外的角色。他们在我的面试过程中实际上是争论过的,对吧?因为我显然在第四次尝试用一份他们关心的简历申请时做得足够好,因为我不是第一次申请亚马逊就得到了他们。部分原因是我自己的错。我称之为我的……我曾经称之为我的百万美元错误。现在它更像是十亿美元的错误。但我提交给亚马逊的第一份简历顶部写着,而且非常清楚地与简历的其他部分分开:目标是获得 IBM 的职位。所以,是的,我……我没收到他们的回复,这很奇怪。嗯,总之,我最终进去了,我最终在那里担任了技术项目经理。但那……嗯……在我开始写博客之前,那都是我职业生涯的黑暗时代。你知道,我正在学习如何成为一名团队领导,并学习……你知道,那里的困难是什么,你知道……所有那种传统的标准东西。嗯,嗯,我认为关于我的起源故事,唯一真正非常非线性的事情是,我在领导和个人贡献者角色之间来回跳跃了很多。>> 你是怎么做到的?嗯,实际上,让我们退一步。亚马逊是一家初创公司,你知道,在上市前,上市后,就在那个边界区域。是什么让你想去那里申请,也许在你的简历上写上 IBM,但又是什么让你想申请西雅图这家小书店?你从外面看到了别人没看到的东西吗?嗯,我的一个朋友,罗恩·布朗斯坦(Ron Bronstein),他当时和我们一起在 GeoWorks 工作,有一天突然消失了。他说,“再见,伙计们,我要去亚马逊了。”我们当时想,“你知道吗?”所以,他是个真正的早鸟。而且很有趣,因为当时西雅图办公室大约有 20 到 30 人。而且我们谁也不知道,在六个月内,大约 26 到 30 人会去亚马逊。对吧?亚马逊转过身来,像我和罗恩以及其他几个跳槽的人一样,他们去雇佣了其他所有 26 个人,作为交易的一部分购买了大量 GeoWorks 股票,GeoWorks 股票大幅上涨,两三个人赚了很多钱。嗯,其他人则是一场眼泪的河流,对于所有持有该公司股票的人来说。>> usual。嗯,是的,那相当非线性。谈谈超现实,就像走在新雇主的走廊里,看到你所有的老同事也在走廊里。我的意思是,那种认知上的脱节。你会感到惊讶,对吧?它有多重。但是的,就像亚马逊正在变成一种引力黑洞。你可以分辨出什么时候会发生。我们现在身边有一些人,有些人就在我们身边。Anthropic 是一个引力黑洞,对吧?每个人都想去那里。每个人都去那里,对吧?就像现在去那里非常有名望。>> 谷歌就是这样,这就是我离开谷歌的原因,我离开亚马逊的原因。亚马逊正在崛起,我也在崛起。我为杰夫·贝索斯做秘密项目。就像我和他共进午餐,嗯……我的意思是,我向他汇报我正在做的工作,我当时想,我离开了,因为我们有很多实习生,而我就是那个让实习生留在公司的人。我就是那个能达成协议让他们选择我们而不是任何人的人。我有一个很棒的完美记录。然后有一天,实习生开始去谷歌,我想,为什么,为什么?然后我深入研究了一下,一旦你深入研究,你就会意识到……有一个事件视界。你……你会……一旦你意识到他们为什么要去,你就会去。>> 嗯。因为那就像,那是……那是全国最好的学校里的终身教授的朝圣目的地,以及精英……你知道,顶尖的……你知道,人工智能研究人员和其他各种各样的人……你知道,在那里出现,他们彻底重新定义了如何……你知道,照顾他们的员工,并通过……你知道,激励措施而不是……你知道,……惩罚措施来鼓励创新。嗯,是的,那真是……那是一段神奇的时光。那显然是一段黄金时代。90 年代微软的工具部门也发生了类似的黄金时代。爆炸式的增长。我去谷歌的那一年,所有那些人都去了谷歌。我就是这样知道的。留意那些。就像你职业生涯中需要知道的第一件事就是……你知道,你要去哪家公司,并把自己和什么角色联系起来,对吧?就像,如果你现在能在 Anthropic 工作,在他们的马戏团里扫大象粪便,那将比去……你知道,现在大多数大型科技公司都要好,因为你会得到那些 IPO 前的股票,而 Anthropic 将会是……你知道,巨大的。>> 当然。我对从 TPM 的转变非常感兴趣。所以 TPM 是技术项目经理,项目经理,我甚至不知道 P 代表什么。嗯,到工程,你知道,它们都是技术角色,但一个是建造者,另一个我认为更多的是协调者。所以你能够爬上工程和技术阶梯,基本上达到最高级别,但起源故事是 TPM,那个横向移动对你来说是如何实现的?>> 好的,你问了一个我可能要花五个小时才能回答的问题,所以我必须小心并有所选择。好吧,因为那是一个非常有趣的角色。我做了一年。其中一些亮点是,我接触到了公司里的所有领导者,因为我负责像牧羊犬一样地对他们吠叫,让他们都朝着一个方向前进,对吧?因为这是亚马逊在“两个披萨团队”出现之前的解决方案,这是一个更好的解决方案。但亚马逊为跨职能协调提出的通用解决方案是,也就是说,把大量新工作塞进那些……你知道,已经非常忙于你之前给他们的工作的人的喉咙里,对吧?维护那些承受巨大压力和压力的系统,让他们做新的事情,对吧?那很难,大多数公司在这方面都很难。而亚马逊的解决方案是找到非常有技术能力的人,他们有一些领导技能,可以进来,然后……你知道,对那些说“不,我们做不到,因为 XYZ”的团队说“胡说”。而 TPM 会看着它,然后说,“嗯,实际上,如果我想的话,我今晚就可以做到。”然后他们就会说,“对。”所以,嗯,所以那就是我的角色。我实际上引导亚马逊从一个两层架构,如果你听说过的话,在那里他们有工具直接编写和读取 Oracle 数据库,到一个 N 层架构,在那里我和……你知道,Shell 和 Eric Benson 以及那里的所有原则团队一起……你知道,迁移到 N 层架构。那意味着什么?我不得不四处奔波,你知道,修复 400 台……你知道,400 个客户服务命令行工具,它们正在进行……你知道,连接到正在……你知道,离开的表。再见。它们会去其他实例,而我们不会做两阶段命令,对吧?你……亚马逊就是追求速度。所以那是一次非常糟糕的……你知道,非常糟糕的迁移,如果我不成功,圣诞老人就不会来了。所以他们有很多东西寄托在这个上面,他们信任……你知道,他们委托我来做。是的。我告诉你,哇,那次经历,对吧?它让你为项目管理和人际交往做好了准备,以及……你知道,为……你知道,交付……你知道,平滑前进的道路。嗯,作为 TPM 学习如何交付东西。而且,嗯,我推荐给人们。我的一个朋友,凯林(Kaylin)在 Source Graph。他……他刚刚在 Source Graph 完成了为期一年半的技术项目经理的任期,因为我看到他有这方面的天赋。>> 他很喜欢,他学到了所有这些技能,等等,现在他又回到了工程领域,但他是一名戴着 TPM 帽子的工程师。这有点像我哥哥戴夫过去送披萨,他说,作为……你知道,作为那次经历的结果,他发展了他所谓的“忍者披萨技能”,那就是他惊人的驾驶技能,你可以把车停在任何地方,因为你必须把披萨送到这些人那里,而且没有地方停车,所以你可能会在草坪上或者其他地方。所以……你知道,这项技能后来在生活中派上了用场,就像一个披萨送货员一样开车,对吧?而 TPM 大致就是这样,在公司里疯狂地开车,试图在不撞车的情况下完成工作。>> 我想起了,我不知道是不是帕金森定律,之类的,就是完成一项任务的时间会增长到你分配给它的时间。但我真的认为……你知道,创造力……你知道,创造力的一个很好的输入是约束。有时这种约束是时间。所以,你知道,我给你一个难以置信的截止日期,这个截止日期有点令人难以置信,看起来不可能。就像,让它发生,我认为,真的能激发创造力。>> 你知道吗?这是亚马逊和谷歌之间的一个巨大区别,因为你问了。亚马逊会设定非常紧迫、不合理的截止日期,然后让他们完成。嗯,发布,发布,发布,把它交给客户,开始迭代,因为我们稍微构建错了东西。让我们修复它。那个东西,对吧?而谷歌则是,“如果你交付了真正有影响力的东西,我们会给你比你实际知道的更多的钱。”他们会……>> 对吧?我的意思是,很多钱。嗯,我们会给你很多机会来产生影响。我们会有一个……你知道,这个系统允许你无限扩展,只要你使用我们的……你知道,正确的……你知道,主板配置,等等。他们给了你建造伟大东西所需的所有基础设施。然后埃里克·施密特(Eric Schmidt)试图让一千朵花绽放,因为他们不知道该做什么。他们不知道该建什么。他们有搜索和广告,他们有一个很好的东西在那里锁定了,他们知道他们会继续扩展它,他们需要新的渠道,比如 YouTube 和 Chrome,等等。无论你的目光在哪里,他们都需要在那里,对吧?但他们不知道该做什么。他们所有很酷的东西都是收购来的。地图是收购来的。哎呀。Gmail 是收购来的。哎呀。Google Docs。G Suite 是收购来的。我当时在那里。它叫做 Rightly。它用 C 语言编写的。他们把它移植到了……你知道,Java。>> Android,>> 对吧?Android 是收购来的,对吧?Chrome 是他们自己开发的,值得称赞。虽然他们是通过窃取……你知道,首先是 WebKit 浏览器。嗯,所以,所以,是的,我的意思是,他们没有品味,这非常重要,我之所以谈论它,是因为在未来,在不久的将来,就像未来几年,世界将发生翻天覆地的变化,有品味的人将是那些……你知道,知道该做什么的人,那些脑子里有想法的人,人们会喜欢……你知道,你会飞速前进,因为生产它的难度将大大降低。>> 这就是亚马逊和谷歌的区别,亚马逊有远见,这一切都来自贝索斯,你知道,人们可以给他带来远见并说服他一些事情,但并非所有事情都来自他。但他会综合他想要的东西,然后选择并去做。而谷歌则像是漫无目的。我刚到的时候,他们很……你知道,很虚弱。嗯,他们偶尔会推出一些很酷的东西,但大多数都是一个巨大的墓地。对吧?>> 所以,你意外泄露了那份贬低 Google+ 的内部备忘录。那真的是意外,还是你职业生涯中最好的举动?>> 为什么不是两者兼有呢?嗯,我认为其中有足够的证据表明我无意让外部人士看到,特别是关于我谈论 Stubby 的那段。>> 你不知道 Stubby 是什么。嗯,没人知道 Stubby 是什么。它是谷歌的内部服务。但我的论点的一个基石是,谷歌著名的 Stubby 服务实际上并不是……>> 某种锁定机制,还是……>> 那是 Chubby。Stubby,Stubby,Stubby 实际上是机构化的 gRPC,对吧?>> 好的,太棒了。嗯,有点像……你知道,是我们的 RPC。嗯,而且它……它还可以,它很好,但它不是……你知道,你需要的。所以,嗯,是的。所以,嗯,它是一次伟大的职业举动吗?嗯,就像,你知道,一开始确实非常可怕和可怕。嗯,我……我有点……你知道,我一度成为所有新闻周期的中心,等等,我只是试图……你知道,低调地生存下来。很多人开始对我产生浓厚的兴趣,开始……你知道,名人开始飞过来只是为了见我,认识我,和我谈话,这很有趣,他们都失望而归,因为我实际上在人前相当无聊。嗯,嗯,我当时写那个平台咆哮文的时候,我真是……>> 哦,好的。>> 是的。是的。是的。是的。嗯,但是的,不,那完全是意外,以及我后来发现它是意外的故事,以及……你知道,一切都相当传奇。我认为我在这里和那里都讲过,但那相当可怕。现在,奇怪的是,对吧?在接下来的 10 年里,它变成了……你知道,传奇和神话的东西,对吧?人们对我的看法被放大了,远远超出了我应该有的程度,对吧?远远超出。而且我可以……你知道,我引用证据,你知道,我……我去了……你知道,比如 Grab。我去了 Grab,他们就认为我能挥挥魔杖,自己解决他们所有的问题,对吧?嗯,你知道,这相当 remarkable。嗯,人们……你知道,人们认为我是一个巨人,对吧?嗯,所以……这对我来说成了一个非常困难的职业问题,对吧?当我不得不去,我说,“嗯,实际上,我什么都不擅长,所以我们可以谈谈吗?”嗯,所以,是的,但总之,这是一次好的职业举动,因为最终它打开了很多门。在我们继续之前,我想谈谈我认为对任何开发工作流程都具有颠覆性的东西。老实说,这是最合乎逻辑的集成之一。如果你使用 Linear 进行项目管理,并使用 Cursor 进行编码,让我们说实话,我们中的很多人现在都在这样做,Linear 刚刚推出了一个集成,可以让你将 Linear 问题直接分配给 Cursor 代理。它是这样工作的。你在 Linear 中有一个问题。可能是一个 bug 修复或一个小功能。而不是将其分配给队友,你现在可以将其直接分配给 Cursor。一个后台代理会自动启动并开始处理它,拉入你 Linear 问题中的所有上下文,所以它确切地知道你在要求什么。你可以直接从 Linear 跟踪问题的进度。无需在工具之间切换,无需手动更新。代理在工作时会将进度反馈到 Linear。当它完成时,它会自动更新问题并附带拉取请求。我对许多 AI 编码工具持怀疑态度,但这种类型的项目管理和 AI 编码助手之间的集成,它实际上减少了摩擦而不是增加了摩擦。特别是对于那些坐在你的待办事项列表中的小任务,那些 P2 和 P3 任务,你知道你需要完成但又不够紧急而无法切换上下文的任务。如果你同时使用这两个工具,绝对值得一试。访问 linear.app/al 了解更多信息。我也会在描述中留下链接。好的,让我们回到我们的谈话。所以,让我们谈谈……你知道,增长的速度,对吧?所以,我的意思是,我认为两到两年前半,三年前,当第一个 ChatGPT 出来的时候,我认为整个世界的意识……你知道,我们对人工智能能做什么的看法完全被打破了。嗯,变化的速率是天文数字……你知道,随着每个版本的增加,而且我确实认为,总的来说,它看起来有点对数,对吧?如果你……如果你去年调查了我关于……你知道,LLM 的能力,然后你告诉我 2025 年 7 月会发生什么,而我们现在恰好在那里,我不会像第一次 GPT 出来时那样感到震惊。>> 嗯,你知道,我认为我们看到的许多……你知道,进步是因为这些大公司实际上让他们的开发人员专注于……你知道,不是通用智能,而是专门针对那些能让软件开发越来越快的事情。>> 我的意思是,这取决于你谈论的是哪个前沿模型提供商,对吧?Anthropic 非常专注于编码,这就是为什么他们在这方面做得很好。嗯,OpenAI 非常努力地想让个人助理起步,对吧?所以你可以有一个真正的机器人助理来帮助你。我祝他们好运,对吧?我想要一个。嗯,你知道,实际上能工作的。所以,你知道,我看到增长速度的方式,嗯,我的意思是,他们告诉我们……你知道,比如,Jason Clinton,他是 Anthropic 的 CSO,嗯,你知道,他将其描述为,但我认为马斯克也说过,对吧?就像,我们……架构不需要改变。架构没问题。你可以从中获得更多,通过更好的数据。而那……那是什么,或者……你知道,甚至更好地利用相同的数据,对吧?而这正是目前所有创新发生的地方。它正在从……你知道,预训练转向……你知道,推理时间以及其他各种……你知道,他们正在做的技巧。但我的意思是,从根本上说,一切都受限于上下文。它……你提到了之前的定律。我认为你说过可能是帕金森定律,但我不确定,就是创新会扩展到填满你给它的容器。>> 时间至少是这样。>> 你知道,这也会发生在上下文窗口上,当你进行代理编码时,这就是为什么你必须……你知道,我们书中的一个非常重要的关键主题是,你必须将任务分解成你能做的最小概念性前进步骤,因为该任务会填满整个上下文窗口,因为它会尽力而为。所以,如果你给它太多,它会在第一个任务上非常努力地工作,然后没有剩余空间,然后开始做出恐慌的决定,对吧?对于剩下的……你知道,会话,它最终会得到一堆 hack,对吧?所以,嗯,所以,总之,关于这种增长,我们确实认为还有两个周期可以……你知道,在……你知道,在四倍的翻倍中。所以,考虑到我们知道可用的数据量,我们将看到 LLM 的智能提高 16 倍。在那之后,我们不知道会发生什么。它实际上可能会大大减慢,届时我们就到了,我们到了,人工智能就是它本身,我们现在需要学会如何利用它,就像电力和蒸汽在刚发明时并不那么友好,但你最终会围绕它们建立东西来……你知道,让电力……你知道,对,可用。我们将对人工智能做同样的事情。另一个选择……你知道,我认为可能更多人相信的是,人工智能本身将开始更多地帮助其发展,届时它将加速。>> 我确实认为,在培训方面,任何现有的东西都已经被收割了,你知道,从某种意义上说,对吧?就像有公开可用的数据,受版权保护的作品以及互联网上的其他东西。>> 任何现有的东西都被收割了,除了那些私人数据集,每个人都有,而那才是今天的黄金。那才是今天的石油。>> 是的,没错。我正要说这一点。>> 这些东西还没有被收割,但每个人都在努力得到它们。而且将会有很多……你知道,很多数据销售,幕后交易,盗窃,盗版,你知道,你懂的,对吧?嗯,模型蒸馏。每个人都在试图得到别人的数据,因为一旦你拥有了所有数据,你就拥有了世界上最聪明的人工智能。>> 当然。我认为……嗯,至少你可以看到一些我们过去从培训方面看到的增长。但我认为,归根结底,是的,会有幕后交易。你知道,所有这些数据都将被汇总和销售,但除非你……>> 我听说规模差不多。>> 好的。据估计,隐藏在外面的数据量与我们公开找到的数据量大致相同。>> 我可能错了,但这是我听说的。>> 嗯,我的意思是,翻倍并不一定意味着……>> 质量更好,对吧?它不只是一堆随机的互联网巨魔。它就像实际的……你知道,客户使用数据和编程数据等等。>> 或者趋势评论,>> 对吧?这是一堆来自公司的日志,这些公司一直在跟踪……你知道,有用的东西。>> 当然。嗯,然后我认为在推理方面,或者测试时间……你知道,测试……你知道,测试时间方面,推理和注意力就像……你知道,这是一项非常昂贵的运算,所以你是在为计算付费,而计算来自于电力。所以,你知道,你可以说,“哦,我们受计算能力的限制,”或者“我们受电力限制,”或者“我们受任何你想要的限制。”据我所知,你知道,这些每月 200 美元的云代码,每月 200 美元的……你知道,OpenAI 的 03 或 30 号推理模型,300 美元的 Gro,据我所知,它们都是亏本销售。所以,这个前沿的价格非常昂贵。也许我收回了我之前对价格的质疑。嗯,所以这些公司能以这种亏本销售的方式持续多久,当他们所有的竞争对手每次有新客户出现时都在亏钱时?>> 我的意思是,你之前提到过,对吧?Anthropic 专注于编码,因为他们看到了其中的投资回报。它就在那里。而除了现在用它写所有文章的 Business Insider,并解雇了他们的大量记者,以及……你知道,客户服务部门可能会因此赚大钱,我猜,但除此之外,还有什么用例改变了世界呢?而且是因为它仍然不可靠,对吧?嗯,所以……嗯,也许它不会发生,我的意思是,所以每个人都在期待它是一个会破裂的泡沫。实际上,每个人都认为,哦,因为人工智能还没有取得任何进展,而且感觉像是对数增长,很明显它永远不会达到人们所说的程度,对吧?而且,你知道,我们看到过类似的论点,就像……你知道,关于编译器,当年。编译器永远不会像人类一样擅长编写汇编语言。你知道,很快编译器就比人类好得多,因为并行架构和人类……>> 他们可以展开一个循环,他们做了一堆疯狂的事情。>> 是的。各种疯狂的事情,对吧?而且,嗯,你……这只是否认。人们只是否认。他们害怕,等等。但它正在发生。电力消耗将是一个问题。我希望他们能很快实现核……你知道,聚变。对吧?>> 嗯,你想给它一个日期,你知道。>> 嗯,一切都会呈指数级加速。一切,不仅仅是计算,对吧?所有……你知道,技术构建都将开始呈指数级加速。但我的意思是,这里的要点是,正在构建正确的东西,这意味着有工作,这意味着有机会,这意味着你可以出去找到其中一个东西并真正做到,对吧?但你必须认识到并接受,现在,并且吞下它,那就是你将从现在开始与人工智能合作来完成你的工作,而人工智能将在你的工作中做得非常好,但你将是那个给它品味、大局和它需要的一切来保持它朝着正确方向前进的人类后盾。对吧?这就是现在知识工作的生命。>> 我完全同意。你知道,也许我……我从否认主义开始。你知道,我肯定会承认。但我确实认为,如果你……如果你不拥抱人工智能,你将相当于……你知道,数字阿米什人。>> 是的。我的意思是,你是对的。你是领导者。有趣的是,我直到今年一月份还在否认。是的。今年一月份。所以六个月前。>> 六个月前。当我听到 Anthropic 出来的时候,这个……不,不是来自 Anthropic。它只是在 Anthropic 内部。在 Anthropic,工程师们正在使用某种命令行工具来编写代码,他们不再使用 IDE 了。我的回应是,我引用,“不”,对吧?我的意思是,不。直截了当地说,不。我的意思是,还能有多么强调的否认?而且,你知道,一旦我……你知道,一旦我开始使用它,我就说,“好吧,我将取消删除我的 IDE 以腾出一些空间,然后删除我的 IDE。”我的意思是……>> 不,当然。所以,让我们……让我们谈谈你关于……你知道,Vibe Coding 的书。当然。>> 嗯,所以,当 LLM 第一次……你知道,进入公众意识时,有一种想法认为提示工程可能是一种新的艺术。>> 而我们意识到的是,这些模型在能力方面,以及……你知道,什么类型的输入会产生什么类型的输出方面都在发生巨大的变化,我们真的无法……你知道,这是一个不断变化的沙子。我不认为提示工程是……你知道,任何人对它的描述。但当你谈论 Vibe Coding 时……你知道,300 页的 Vibe Coding 与……你知道,一个光荣的提示工程师有什么区别?有什么区别?>> 嗯,我的意思是,我的想法是……你知道,我根据 O'Reilly AI Engineering 书中的 Chip 的定义,这本书非常好。嗯,提示工程就是关于构建静态的、长期的提示,这些提示将……你知道,在模型变化和版本变化等方面具有弹性,对吧?那些……你知道,将人工智能嵌入你的应用程序,人工智能能力,对吧?所以提示可能是……你知道,教它成为你公司的优秀客服代表,或者其他什么,那就是提示工程,你需要评估套件,所有那些东西。嗯,而 Vibe Coding 则完全是关于动态的、即时的、精心制作的提示,你可能会花 15 分钟甚至 45 分钟来为第一个项目、工作流或……你知道,其他东西精心制作提示,但最终你是在进行对话,对吧?而且你……你知道,你会在过程中进行纠正。>> 所以,这真的很不一样。>> 明白了。所以,它不像……你知道,它不像试图瓶装的特定交互,而更像是进行对话,并……你知道,希望达到一个有用的终点。>> 对,对。>> 所以,仅仅是页数就让我惊叹……所以 300 页的关于如何与 LLM 对话以实现……你知道,某种……你知道,编码目标,有什么基础元素在那里?对吧?就像核心原子是什么?>> 是的,嗯,我的意思是,你知道……我的博客通常是关于 200 页的,我无法把它写进博客里,我尽力了。我写了好几篇 30 页的博客,我做不到。它甚至没有触及表面。所以,有很多东西可以谈论,而且是因为事情真的不一样了。你知道,比如,Cursor,现在非常火。好的,非常火,这真的很有趣,因为 Cursor 只是……你知道,Cursor,我付了钱买了 Cursor,安装了它,用了一段时间,它真的很酷。然后到了二月,对吧?>> 今年二月。你否认后的那个月。>> 我否认后的那个月,二月来了,一切都变了,Cursor 突然从一个非常聪明、聪明的商业模式变成了一个我有很多担忧的商业模式,对吧?因为他们负担不起给你提供完全自主的代理编码……你知道,无限的令牌,对吧?我的意思是,那是他们的……我不想深入探讨,但我担心他们。嗯,我……我必须说,如果你现在正在使用 Cursor,你可能会喜欢它,对吧?你正在使用……你知道,去年的技术。而且你应该使用……你知道,Cloud Code,或者我个人最喜欢的 Sourcegraph AMP,它正在迅速普及,而且它……你知道,出于很多原因都很棒,或者 OpenAI Codex,对吧?或者我听说过 Amazon Q Developer,但我还没看过。>> 嗯,他们刚刚推出了 Cairo。>> 或者 Cairo,也许是 Cairo,是的,是的。嗯,但每个人都在推出……你知道,真正的代理。当我……你知道,我说真正的,我特指它们是基于命令行的,而且没有 IDE,这真的……你知道,让很多人非常反感,原因显而易见。>> 嗯,我的意思是,你是一个 Emacs 用户。我是……我是一个 Vim 用户。嗯,而且……>> 所以我们都很酷。>> 是的,但只是命令行……你知道,那就是我的……你知道,我的体温水,我漂浮在里面。>> 这可能解释了为什么这么多人用人工智能的东西,用代理编码,从退休中走出来,对吧?因为……你知道,他们都习惯于命令行,对吧?命令行对我们这些在 80 年代和 90 年代编程的人来说非常自然。对今天的人来说非常不自然。而且,看,看,技能已经改变了。为什么书有 300 页?看,要点是什么?真的,真的,有几个。好的,也许……你知道,高阶位是……你知道,你不再是程序员了。你是一个……你知道,团队领导。好的。>> 是的。>> 你不再写代码了。你实际上是……你知道,一群程序员的团队领导,他们能做惊人的事情,或者做非常愚蠢的事情。嗯,他们以相等的比例做这些事情,而你作为团队领导,你的工作是确保正确的事情得到完成并通过,对吧?这是一个完全不同的工作。它涉及不同的技能。它甚至涉及……你知道,不同的 Git 技能。你将使用更多的 Git 分支和合并,而更少使用它,因为人工智能会为你做所有的事情,对吧?但……你知道,你正在走一条非常微妙的界线。另外,看,你知道,另一个高阶位是……你知道,这最终是一个工具。它是一个合作者,你需要……你知道,你需要把它当作一个合作者来对待,并像……你知道,像一个配对程序员一样与它合作,但最终它是工具,你对结果负责,你永远不能因为……你知道,任何事情而责怪人工智能,就像责怪锤子没有把钉子钉进去一样,对吧?好的。然后,你知道,另一个是……你知道,模块化。我的意思是,如果你是一家公司,比如我们的第四部分是关于公司以及如何构建……你知道,AI 适应性强的团队、组织和系统,而模块化是其中的核心,对吧?因为它们……你知道,认知触角只有那么长,而且……你知道,它们的上下文窗口也只有那么长,而且为了容纳它们需要的信息,以便它们能够进行宏大思考并就你的系统做出正确的决定。如果它是一个太大的整体,即使是那个信息也已经填满了上下文窗口,所以它根本无法进行任何思考。所以,那些拥抱整体的公司,或者多年来未能分解成微服务公司,因为这从来都不值得,你们都将破产。不是要太辣,还是别的。所以你谈到了人工智能如何不是取代开发者,而是创造一种新的团队,而程序员现在是团队领导。这对初级开发者来说是如何运作的,他们从未……所以,你不能只是成为一名团队领导。我认为,今天至少需要一些经验才能拥有那种品味,才能理解项目是如何脱轨的,才能理解做事情的正确方式,或者至少是正确方式之一,并做出关于代码将走向何方的重大选择。所以,似乎在……你知道,从学校毕业,你知道,拥有计算机科学学位,然后成为一名团队领导之间存在一个空白,也许是 5 到 10 年的经验,就像……你知道,这是一个空白。>> 不,我听到了。我听到了。看,我认为从根本上说,人们在大学里接受教育的方式,你知道,接受计算机科学教育的方式将从……你知道,从高度专注于教授人们编码转变为专注于教授人们工程。>> 是的。>> 好的。因为最终……你知道,你谈论的是……你知道,是拿出……你知道,你需要的判断力,能够说,这些系统是否足够模块化,足够解耦,它们是否足够有弹性,以及所有这些东西,这些东西通常是在晚年作为高级工程师学到的,你现在必须立即学到。好的?所以,如果你现在是一名大学生,或者你刚刚毕业,或者……你知道,开始学习那些东西,对吧?利用人工智能开始学习那些东西,因为……你知道,最终这就是你作为团队领导必须做的。现在,看,你不必学习……你知道,这不是你领导一个……你知道,人类团队。这意味着你作为团队领导必须处理的 50% 的废话,你知道,根本不是问题,对吧?例如,你可以让他们工作到死,他们永远不会死。嗯,对吧?人工智能,不是人类,等等,对吧?我的意思是,就像,你可以……你知道,你可以给他们同样的任务 500 次,如果你不喜欢,他们会继续做,对吧?所以,这有点……而且他们不会抱怨……你知道,他们的……你知道,他们的宠物保姆……你知道,今天不在,或者……你知道,其他事情,但……但你会遇到所有与团队相关的……你知道,事情,而不是人际关系。你会遇到……你知道,你之前提到的关于有时你的系统可能设置得重叠,人们互相踩踏。如果你这样组织,你的人工智能……你知道,你的代理人也会互相踩踏。你将不得不处理合并,对吧?我的意思是,你将会有相互依赖的代理人,因为它们是序列化问题。我昨晚有一个。我想,“好吧,我想让你做这个改变,但我需要让另一个代理完成它的事情。所以,你现在就闲着吧。”这些都是你可以在高中或更早的时候开始学习的技能。它们都与历史上编程的工作方式非常不同,那就是单线程的。你一次选择一个项目,深入研究它,然后……你知道,自己解决它,对吧?>> 是的。>> 所以,是的,它将是……你知道,它将是不同的,但我的意思是,那就是……你知道,事情的发展方向。所以,如果你看到新的初级工程师随着时间的推移需要当今高级工程师的技能……你知道,但你也预测未来会有更多的软件开发者,那么初级工程师在做什么?是的。所以,一个很好的问题。嗯,嗯,初级工程师将不再是初级工程师。现在有一个更低级别的工程师类别,或者几个低于初级工程师的类别,他们也在进行 Vibe Coding。好的。产品经理,用户体验设计师,嗯,销售,营销,财务,分析师,嗯,他们都在编写……你知道,软件,他们需要一个训练有素的工程师。那就是你,初级工程师。是的。来审查他们的东西。所以有一个新的生态系统。就像……你知道,我几次把它比作零工经济。我认为可能是 Gerge,但……你知道,我认为更像是一种按需……你知道,租用一名工程师进行审查之类的。租用一名 PM 进行审查。>> 在你的项目上,你多久真正需要一名产品经理?你需要在特定时间需要它,比如审查 PRD,然后也许在发布前进行审查,等等,对吧?但……你知道,但最终我认为人们将能够通过这种模式分享更多,而初级工程师将在那里拥有一个充满活力和蓬勃发展的角色,因为你是一名训练有素的工程师,他们……你知道,他们会来,然后说,“我们尝试了 Python,因为我们在网上读到 Python 很酷,”你知道,“你能看看我们的服务,看看它是否需要的一切吗?”而作为一名初级工程师,你会说,“嗯,它可能需要……你知道,任何数据库或配置文件或安全性或……你知道,它缺少什么。”它会缺少一些东西,而你将成为英雄。是的,这就是我看到它如何展开的方式。>> 绝对疯狂。太棒了。你想谈谈……你知道,抱歉,是 Sourcegraph 吗?>> 哦,我们的……你知道,AMP……你知道,CLI 产品。是的,看,我的意思是,看,嗯,命令行界面……你知道,它们对你来说看起来都差不多,因为……你知道,GUI 可能在视觉上非常独特,但如果你只是看文本,你知道,你的终端中只有这么多种布局方式,对吧?你为什么要用终端编码?我认为很多人仍然不……你知道,从根本上理解这一点,对吧?嗯,这是一种技能,对吧?它需要一些练习。它可能需要一些培训。我的意思是,就像,我们写了一本 300 页的书来介绍它。这……你知道,这并不容易。而且我们不想写,你知道,我们的出版商……你知道,告诉我们不能超过 250 页。所以,已经……你知道,我们……你知道,这是一个艰难的新领域,你知道,但你必须进入它,对吧?你必须……你知道,你必须进去并选择一个。而我的感觉是,AMP 对团队更友好。AMP 就像超级超级……你知道,它使所有线程公开,所以你可以看到你的朋友在做什么,它有所有这些排行榜,比如今天谁烧掉了最多的令牌,谁的对话最长,谁最喜欢他们的 LLM,所有这些东西……你知道,谁争论最多,无论什么,你可以有任意的排行榜,这突然让它变得超级有趣,因为现在每个人都可以看到你在做什么,对吧?就像……你知道,编码的 Strava,如果这有什么意义的话。是的。嗯,而且……你知道,这是一个意想不到的……你知道,AMP 的一个意想不到的好处。AMP 在子代理方面也做得非常好。所以,它通过达到一个点并说,“哦,我们将不得不查看 45 个不同的测试文件来查找此模式,”来避免填满上下文窗口。我将启动一个子代理,它将完成所有这些工作,将结果报告给我,我们将丢弃所有这些上下文,而我们只消耗了……你知道,1% 的上下文,而不是……>> 哦,所以你……你知道,你为子代理分配了预算。>> 它只是获得了自己的上下文窗口。所以,它是一个代理管理代理,对吧?明白了。>> 而这就像是……你知道,朝着有一天你将不再直接与这些编码代理一起工作方向迈出的第一步,你将与一个代理的代理一起工作,而且……你知道,这只是……你知道,这是必要的,因为今天它的工作方式是,你坐下来和一个人一起工作,这个人从来都不完全正确,他们非常聪明,对吧?我很抱歉我现在坐立不安,但就像,Vibe Coding 是如此令人上瘾。它比上瘾更甚。如果我坐下来,我想,“好吧,我来看看我的代理。”我知道时钟会……你知道,我会抬头,已经是晚上 9 点了,我会……
就像,“发生了什么?” 这是因为你只是,你和他们进行这些对话,他们非常聪明,但他们仍然需要你的指导,好吗?因为他们只会走错路,他们会完成很多事情,但又显得很少,因为你的野心会大大提高。这是其他 A 中的一个,野心和远见,好吗?所以,这就像一个全新的世界,但你不能,你不能停止这样做,对吧?就像肯特·贝克几个月前告诉我的那样,他说这就像坐着雪橇从滑雪坡上滑下来。它不像滑雪板,好吗?它是雪橇。你可以稍微控制一下方向,但你永远无法真正控制它,对吧?而你不能,对吧?你真的不能。你无法控制人工智能会做什么。你只能告诉它你想让它做什么,对吧?而克服这个障碍将影响,我不知道,世界上有多少千万程序员,他们都将不得不学习这种新的做事方式,就像我们正在放弃的这种控制。我们基本上,如果你想到命令式编程和“如果-那么”语句,这就是很多非技术人员对人工智能的看法。他们认为里面有人,或者有一个巨大的决策树,正在吐出所有这些东西,而实际上我们并不知道发生了什么,对吧?我们用所有这些东西训练了它,并奖励了我们喜欢的输出,然后惩罚了我们不喜欢的。但没有人可以进去说,你不能进去找到那个“如果”语句,它会给你你不想要的输出,然后进行调整。所以我们已经,我们已经放弃了这种控制,换取了我们还无法以正确的方式使用的力量。嗯。嗯。我也觉得,很难向人们解释,比如终端界面。它感觉就像实际的,它感觉有点生物力学,当你,当你用终端编码时,与一个非常好的 IDE 相比,你知道,用 JavaScript 编写的,你知道,它有所有这些内置的东西。这是错误的模式。就像我真的觉得自己是一个程序员,你知道,在一台电脑上,我脑子里有一个想法,我想施放的咒语。就像咒语本身一样,它通过终端这个媒介,对吧?而那正是我感觉自己最像一个巫师程序员的地方。我是说,从这个角度来想。我是说,绝对说得好,对吧?我也有同感。你看,我最近才意识到,我绝对受够了在我的电脑上编程。好吗?现在,谁能想到会发生这种情况,对吧?但我需要我的代理工作流迁移到云端,迁移到专用虚拟机或一次性虚拟机,或者其他什么,但我需要我的环境,包括代理和我的存储库以及其他所有东西都在那里。因为我想在公共汽车上用我的该死的手机工作。而你实际上可以通过这种编码方式做到这一点。是的。你可以随时编码。而且它非常有趣。它有趣得离谱。你就是不懂。就像那些抵制它的人,他们实际上就是还不懂。听起来像是一个令人惊叹的,崭新的世界。嗯,老兄,我只是,就像,而不是在 Reddit 上滚动,我就可以在那里,你知道,只是构建东西。我是说,我今天早上和一位代理进行了一次谈话,我早上进来,它就像,“好的,我完成了,我添加了一些文本处理的东西。你必须寻找这些小东西。它告诉你它所做的一切。它通常不会谎称它做了什么,对吧?但它严重夸大了它所做事情的影响,对吧?而且,而且,而且它经常会做一些非常糟糕的事情,它会随意告诉你,哦,是的,顺便说一句,我也删除了你的数据库,只是为了好玩,你知道吗?然后你就说,什么?所以你必须,你必须非常小心。这就是我为什么说你必须快速阅读的原因,因为你必须真正阅读它说的每一个字,尤其是在摘要中,这样你才能发现它何时做了坏事。我今天早上进行了一次谈话,我有一个非常简单的架构。在我的 Emacs Genie 中,你只能在客户端执行一件事。它是 eval。好吗?不要看我的查询,看看我说没说“俳句”这个词,或者你在这里做什么黑客行为,对吧?它通过自己尝试找出答案来进行完成检测。我当时想,克劳德,你为什么不问克劳德呢?它就像,哦,是的,我可以做到,对吧?你知道,所以我不得不,我不得不与它进行了一次非常成熟的讨论,关于它在工程问题上采取的方法,即决定我的任务何时由代理完成,对吧?这很有趣。很有回报。我认为能够告诉 AI,让它理解,哦,是的,我当时在做一件非常愚蠢的事情。这样更好。然后让它去制定一个计划。这一切都不容易。而且我很生气,我让它朝着错误的方向走了四天。如果我稍微多注意一下那个代理,它就不会构建所有那些愚蠢的黑客东西了,对吧?我告诉你,就像,这只是,这是永无止境的乐趣和故事的来源。这就像把头伸出车窗外。我经常这么说。狗,它们可以闻东西,对吧?它们喜欢闻。当你把它们放进车里,把头伸出窗外时,气味会以极快的速度扑面而来,它们会说,“啊,这就是和这些代理一起进行的氛围编码的感觉。”这就像为它们准备的《黑客帝国》。太酷了。嗯,所以,我想问你,但我认为我的一些问题已经得到了回答,那就是你完全可以退休了。你就可以把脚放在桌子上,你知道,做任何你想做的事情。是什么让你重新投入?哦,我。是的。哦,是的。是的,我决定我想活着。我是说,就像,可以这样说,对吧?很多人在我这个年纪就放弃了,对吧?我受够了。我要去钓鱼什么的。对一些人来说,那就是生活,但很多人不知道他们想做什么。我有很多我喜欢做的事情,但突然,就像,比如我是一个音乐家,对吧?但突然,你知道,人工智能彻底重新点燃了我对一切的雄心壮志,对吧?因为现在突然,你知道,你问我一些棘手的问题,Wyvern 会完成吗?Wyvern,多亏了杰洛特,我学会了如何正确发音。它会完成吗?不,游戏永远不会完成。你的粉丝群会立即告诉你。他们总是想要更多功能。它会再次启动吗?这是个问题。答案是肯定的。我基本上已经把它关闭了,因为我就是无法满足玩家想要的东西。我无法跟上。我编码速度很快,但他们每天都想要一切,对吧?但现在这一切都摆在了桌面上,你知道吗?而且就像,哦,哇,我可以完成很多事情。我的贡献者,我的志愿者,我的团队,你知道,和我一起工作了十年的他们,他们现在也可以使用人工智能了。所以,我们都非常快。所以,现在我们可以坐下来玩游戏,说,“哇,哇,如果我用现代的术语重新构想它呢?就像,我会如何用我创建的游戏引擎来构建一个像《星露谷物语》那样的体验,对吧?”是的。所以,这就是我为什么要从退休中走出来,因为我可以问这样的问题,然后说,“我可以在这个基础上完成很多很酷的事情。”我用 IDE 输入代码是做不到的。你不知道你可以变得多么有野心。最终,你不在乎代码。你以为你在乎,对吧?但当我从事计算机图形学时,在 1991 年、1992 年,我非常关心多边形。你不在乎多边形。我向你保证,你关心面部表情。你关心战斗系统。你关心体验、冒险和任务。你不在乎 Z 缓冲。好吧,30 年后显而易见了,但在当时,每个人都说,他们无法放下他们学到的所有图形图元,对吧?但说真的,我们正在构建体验。我们不是在构建代码。所以现在就从你的脑子里去掉那个愚蠢的想法,开始思考如何作为一名工程师利用人工智能构建体验。是的。所以,在我看来,你之所以回来,是因为菜单上的东西比你考虑挂起键盘时要多得多。绝对。我是说,编程,我是说我们在书中谈论过。我们花了很大一部分第一部分来谈论这个。编程变得太痛苦了。我是说,我在 80 年代和 90 年代编程。是的,我们现在可以完成比以前更多的事情,对吧?你知道,很多很多很多数量级,但今天完成基本事情所需的工作量要高得多,对吧?而且,想想看,要设置一个典型的现代 Web 应用程序需要做什么,以及你必须引入多少框架,以及有多少相互竞争的依赖项,以及所有这些东西,对吧?我们在书中谈论过。这,这,这太糟糕了。为什么编程会逐渐变得更糟?因为对我来说,这真的感觉就像,我是说,即使我们变得越来越强大,有这么多库,这么多框架,这么多实践,这么多这个,这么多那个,你甚至无法从中理清头绪,对吧?存在碎片化。我认为人工智能将使这一切变得顺畅。它将减少我们拥有的专家数量。它将增加我们拥有的通才数量。我认为,我认为它将使我们所有的软件都变得更好,仅仅是因为市场效应。我确实认为我们仍在努力解决人体工程学问题。是的。对吧?而且这是一种奇怪的事情,人们只是朝着奇怪的方向发展,然后他们会说,“哦,嗯,实际上,那真的很笨拙。我们要回到这边。”而且人体工程学,它可能是一扇单向门,对吧?如果你选择使用 IDE,你可能已经将自己束缚在一个 IDE 上,它是一个锚,一个船锚。你知道,如果你把自己束缚在一个特定的模型上,你必须非常小心你束缚到哪个模型上,对吧?嗯,你可能会做出很多看似很好的决定,然后 6 个月后一切都会颠倒过来。是的。所以,在 Sourcegraph,保持精干和进取是我们非常成功的一个方面,对吧?那就是随波逐流,因为天哪,事情变化得太快了。感觉就像亚马逊的早期。是吗?让我想想。是的。好的。对。就像亚马逊的早期。当然,空气中有一种噼啪声,对吧?对吧?你感觉到一种电的,有什么很酷的事情即将发生,对吧?我认为人工智能更像是一个响屁。你闻到空气中的什么东西,然后你说有什么事情要发生了,对吧?它一点也不像互联网那样干净。互联网非常明显。在我看来,人工智能有点不是。好的,我们来快速问答吧。我们来吧。嗯,有什么事情是你希望人们停止谈论的,而且被严重高估了?我认为,我认为人们需要停止谈论代码是瓶颈,打字从来都不是瓶颈,对吧?因为他们正在将对话引向一个非常愚蠢的方向。所以他们处于错误的抽象级别。他们在谈论错误的事情。这就像说,“嘿,我们有一个机器人足球队,他们都在场上。他们换衣服换得超级快,然后他们就上场了,然后他们说,“穿短裤从来都不是瓶颈,对吧?”然后你就说,“嗯,这是一个有趣的对话,但我们能不谈论它吗?”是的。我们在谈论比赛。是的。把球踢进网窝。是的。有趣。嗯,你认为什么东西被严重低估了,没人谈论?嗯,调试。我们刚才谈论过。我们喜欢调试器,但新一代人,他们不使用调试器。他们使用打印语句。使用打印语句非常流行。嗯,我是说,如果你来自,我是说,如果你是通过学习 JavaScript 教程而来的,然后你只是做一些像 console.log 之类的事情。是的。对。但调试器有时效果更好。但不是,总的来说,我是说,嗯,是的。不,我认为那就是我的。是的。我是说,我认为可能在你值班的时候,然后出现了一些问题,你已经追踪了好几天、几周或几个月,然后你终于取得了突破。是的。我是说,有些人拥有这种技能。他们就像代码侦探,他们可以看代码,他们可以在脑子里进行运行时模拟。我有一个朋友多米尼克·库尼,他可以做到这一点,然后找到那个 bug,对吧?这是一种技能,对吧?随着你越来越脱离代码,你将不得不越来越好地掌握三角测量技能来找出 bug 的位置等等。是的。哦,有趣。好的。所以,它不像建造,而更像是这种不受限制的,如何找到问题。所以,舒缓可能比调试更好。是的。不,这非常有趣,因为每个人都如此专注于生成和创造。没错。我相信将会出现一个新的软件角色,叫做“修复者”。当你的公司用人工智能把一个项目或系统搞得一团糟,以至于你无法摆脱时,他们就会进来。你就会花巨额的钱请人进来,他们可能会把它搞得更糟,但希望能够修复它。嗯,我觉得修复者几乎总是比创造者赚更多的钱。我认为是的。嗯。是的。就像《低俗小说》里的那个场景。我是说,你可能真的想把这作为你的职业选择之一。只是去和系统集成商谈谈,阅读一下,和人工智能谈谈,教自己当公司都采用人工智能时会发生哪些火车失事,这样你就可以准备好成为他们的专家,对吧?因为你将能够采取一系列补救措施。