第 461 期·中文精读

ThePrimeagen:编程、AI、ADHD、效率、成瘾与上帝

ThePrimeagen: Programming, AI, ADHD, Productivity, Addiction, and God

程序员主播聊编程职业与 AI 对写代码的冲击,也谈注意力缺陷、成瘾和效率的自我管理。

官方音频00:00 / --:--
中文精读由 AI 基于原始访谈改写,非官方翻译,可能存在偏差或错误;表述以原音频与官方文稿为准。说明

Michael Paulson 白天在 Netflix 上班,写代码。Twitch 上几万人在看。他没在做演示,也没在讲课,就是正常干活。摄像头开着,他敲键盘,遇到卡住的地方会骂一句,跑通了笑一下,接着敲下一行。

这种状态维持了很多年。白天他是大厂工程师,晚上他是直播间里那个语速极快、剪辑风格被观众叫作“zoomer 式”的 ThePrimeagen。两个身份共用同一副身体、同一套肌肉记忆、同一份 Neovim 配置。

Lex Fridman 问他,把日常工作摊开给几万人看,会不会拖慢效率。他的回答很干脆:有人在看的时候,你没法摸鱼。直播成了外部约束,逼着他把每一分钟都用得像样。

这期两个多小时的对话,话题早就越出了编程的边界。注意力、成瘾、效率、信仰、死亡,这些词在节目里挨个出现。它们看起来是一串并列的清单,实际上指向同一个问题:一个人怎么把自己有限的时间和注意力,放到真正重要的事情上。ThePrimeagen 给出的答案带着很强的工程师气质,他不相信意志力和决心,他相信系统和环境。

阿拉斯加,一个普通学生,和一堆弯路

他在阿拉斯加长大。这地方在他的叙述里有一种朴素的质地:冬天长,人少,娱乐靠自己想。他在节目里没有把童年讲成传奇,讲的都是些平常事,雪、学校、游戏、家里。

学生时代的他一点也称不上天赋异禀。成绩一般,对课堂提不起兴趣,玩游戏的时间远远超过读书的时间。大学读得也不顺,专业换过,路走得弯弯绕绕,中间还有过一段不知道自己该干什么的日子。

这些经历决定了这个人后来在节目里说话的方式。他很少把成功讲成某次神秘的开窍,也很少用“天赋”这个词形容自己。他后来能进 Netflix,靠的东西非常朴素:写代码的小时数比大多数人多得多。

人们总想找到一个秘密,一个别人不知道的窍门。没有。就是时间。你在一件事上待的年头,最后会变成别人眼里的天赋。(ThePrimeagen)

这句话从他嘴里说出来有具体的重量,因为他自己就是那个在看不见回报的阶段没有退出的人。这一点后面会反复出现,它几乎是他所有观点的底层逻辑。

学 Vim 的前两周,效率是负的

他讲自己学 Vim motions 的那段经历,值得单独拎出来说。前两周,他的效率是负的。写代码比用鼠标还慢,改一个变量位置要停顿两秒去回忆该按什么,改错了还得撤销重来。

绝大多数人死在这两周。人的直觉会告诉你,这个方法不划算,我原来的方式明明更快,我用鼠标选词一秒就完了。没人能看见十几天之后会发生什么,只能看见眼前变慢的自己。

他熬过去了。这套肌肉记忆跟了他十几年,每天替他省下几百次“想一下”的成本。十几年乘以每天几百次,这就是复利在技能上的形状:前期看起来极其愚蠢的投入,回报在很久以后才出现,出现之后再也不消失。

这也解释了他为什么对“快速上手”这类宣传始终兴趣不大。快速上手意味着低门槛,低门槛意味着竞争者多,也意味着这项技能本身没有护城河。他更愿意挑那些起步痛苦、一旦学会就能用一辈子的东西。这类技能的共同点是:前两周像受罪,第十年像超能力。

ADHD:一次迟到的诊断

他公开讲过自己有 ADHD,而且是很晚才知道的。在那之前,他只是觉得自己“有点怪”。

怪在什么地方?他能对着一个 bug 连续坐八个小时不吃饭、不上厕所、不回消息,直到把它干掉。但填一张报销单,他能拖三个月。他能记住三千行代码里的逻辑走向,却记不住别人三秒前说过的一个名字。

这跟懒没关系,也跟意志力没关系。他描述的那种状态,专业上叫 hyperfocus,通俗讲就是注意力的开关只有两档,全开和全关,没有中间挡位。感兴趣的输入会触发全开,大脑自动屏蔽掉饥饿、疲惫、时间流逝;不感兴趣的输入连启动都启动不了,哪怕这件事只要五分钟。

这个认知对他来说是解放性的。在知道自己有 ADHD 之前,他把自己所有做不到的事都归因于品格缺陷,觉得自己懒、散、不上进。知道自己有 ADHD 之后,他发现这是硬件规格的差异,而规格是可以绕开的。

给大脑装外挂,别指望它自己变好

他处理这件事的方式很务实:不去纠正大脑的形态,转而给它设计外部结构。

  • 把大任务切成能在二十分钟内看到结果的小块。他的奖励系统只对即时反馈有反应,那就把任务改造成能提供即时反馈的形状。
  • 把直播当成开工仪式。摄像机一开,任务就开始了,启动成本被外部事件承担掉了,不需要靠自制力从沙发上爬起来。
  • 把不感兴趣但必须做的事(邮件、行政、税务、报销)批量打包成固定时间块。这些事永远不可能靠兴趣驱动,只能靠流程压缩,让它们占用的时间尽量少。

Lex 在这段里也聊了自己在注意力上的挣扎。两个人有一个共识:注意力属于资源,需要被工程化管理,跟道德品质没关系。你骂自己没用,改环境才有用。骂自己一次,你会短暂地感觉良好,觉得自己已经反省过了,然后什么都没改变。

他有一句话大概意思是:ADHD 是他的操作系统。这套系统跑不了别人写的软件,但他可以自己写软件。这个说法听着像玩笑,其实相当准确。他后来做的很多事情,无论是直播、切小任务,还是挑选能瞬间进入心流的工作类型,都在为自己这套系统写兼容层。

顺着这个思路往下想,会发现他讲的其实是一种通用的能力:先看清自己的硬件限制,再设计能绕开限制的流程。多数人卡在前面一步,他们从没认真观察过自己什么时候效率最高、什么时候必然崩掉。

Neovim 解决的问题,从来不是速度

他出名很大程度是因为 Vim 和 Neovim。访谈里他花了不少时间解释,为什么这件事值得。

核心论点跟速度没什么关系。他说,高手用鼠标也能很快。真正的问题出在操作之前的那一瞬:这个函数名要从哪儿选到哪儿,用哪个快捷键,菜单在哪一层,光标怎么移过去。

这些决策单独看微不足道,一秒钟都用不了。累积起来会吃掉大量的工作记忆。而工作记忆恰恰是写代码时最稀缺的东西。你在脑子里维持的那个抽象模型,那个数据结构的形状,那段并发逻辑的时序,才是真正的生产力所在。一旦被“怎么选中这个词”挤占,那个模型就散了,你得重新建一次。

Vim motions 把这层操作变成了条件反射。想删掉一个函数,手已经做完了,意识根本没参与。省下来的并非时间,而是心智带宽。

有人质疑学习曲线太陡,投入产出不划算。他的回答是:一次性成本换十几年的日常收益。他不理解为什么人们愿意花几百小时在游戏里刷装备刷等级,却不愿意花两周学一个每天都要用到的东西。

Harpoon:只解决自己每天疼一次的地方

他自己写过 Neovim 插件,最有名的是 Harpoon。这个工具解决的问题具体到有点寒酸:在几个核心文件之间快速来回跳转。

写代码的人都知道那种痛。你在改一个功能,需要在控制器、模型、测试三个文件之间来回切,每次都要重新找一遍,每次都要打断当前的思路。

Harpoon 的气质很能说明他的风格。他不追求宏大的工具哲学,他只解决自己每天都会疼一次的地方。工具的意义在于贴合自己的手感,在于你知道它每一步为什么这么设计,而不在于它是否被社区公认为最佳实践。

这一点和他对效率工具的态度是自洽的。一个人如果不停地在找“最好的配置”,他实际上在消费配置的过程中获得满足,而不是在解决自己的问题。他反过来:先感知痛,再动手削掉它,削完就往下走,不留恋,不再优化。

Copilot 他在用,但他对“人人都会编程”很不客气

谈到 AI 编程工具,他的态度比很多人预期的务实。他用 Copilot,也承认它在写样板代码、补全重复结构的时候确实省时间。他不是那种逢 AI 必反的老派工程师。

他反对的是两件事。

第一件,把 AI 当成学习的替代品。他打了个比方:计算器没让人更懂数学,它只是让人算得更快。一个从第一天起就让 AI 写代码的人,跳过的是调试、猜测、犯错、定位、理解为什么错这一整条链路。而这条链路恰恰是程序员能力的来源。

你可以让 AI 帮你写出来,但你得能读它、能改它、能在它半夜三点挂掉的时候知道为什么。如果你做不到这些,你不是在写代码,你是在求神。(ThePrimeagen)

“求神”这个词用得很准。求神的特点是你不知道答案从哪里来,也不知道它为什么不灵,你只能不停地祈祷,换个模型,改改提示词,再试一次。这个状态写不出能长期维护的系统,也长不出能独立判断的人。

vibe coding 与那种把无知包装成风格的心态

第二件他反对的,是 vibe coding 这个词背后的心态。他的批评点落在“包装”上:这种说法把不懂原理这件事,变成了某种可以自称的风格,甚至变成了一种态度宣言。

代码最终是要维护的。维护的人可能是三个月后已经忘光上下文的你自己,也可能是根本不认识你的同事,还可能是半夜被报警叫起来的值班工程师。这三种人都不在乎你当初生成它的时候手感好不好。

他还讲过 AI 在大型代码库上的实际局限。像 Netflix 那种规模、那种历史包袱的系统,上下文散落在几百个文件、几代人的决策、无数条没人记得原因的约定里。这些东西不在训练数据里,也不在提示词里,你甚至没法把它们写进提示词,因为没人能完整地说出来。它们只存在于一群人的肌肉记忆和代码的褶皱里。

关于“AI 会不会取代程序员”,他的判断既不悲观也不盲目乐观。需求量在膨胀,短期内人不够用,这是他的基本判断。他真正担心的是另一件事:入行的人变多了,成长路径却被抹平了。

过去一个初级工程师靠啃硬骨头长本事。那些看不懂的报错、那些必须自己从零搭起来的小项目、那些因为不理解原理而踩过的坑,都是能力的生成器。现在这些硬骨头被 AI 提前嚼碎了喂过来,人吃得很快,营养吸收得很少。五年之后,一批人发现自己写了很多代码,却失去了从零判断任何一件事的能力。

他讨厌“生产力”这个词

谈到效率,他表现出明显的不耐烦。他烦的地方跟效率无关,他烦的是“生产力文化”。

他的观察很锋利:大量所谓的效率工具,最后服务于一种极其精致的拖延。你把时间花在搭建系统、整理标签、优化流程、研究别人怎么优化流程上,一天过去了,真正的工作一行没写。

我见过太多人花六个月搭建一个完美的系统,用来管理他们从来没有开始做的工作。(ThePrimeagen)

这话有点刺人,因为它描述的场景太常见了。笔记软件换到第五个,任务管理法试到第三种,每周回顾做了十几周,回顾的内容是关于回顾本身。系统越来越精美,产出越来越稀薄。

他自己的做法粗糙得多。一天切成几大块,最重要的那块留给需要深度的事,其他时间接受被打断,不做复杂的任务管理,不追踪每个小时的去向。

他讲过一句挺重的话:一天只有那么多小时,你要么在写代码,要么在看别人写代码。这句听着像玩笑,其实是他的工具判据。这个工具是让我更快进入工作,还是让我更舒服地待在工作的外围?后者是一种很隐蔽的自我欺骗,因为在做准备工作的时候,你确实感觉自己很忙、很专业、很在状态。

成瘾:他没有戒掉,他换了一个对象

聊到游戏和成瘾,他的话变坦诚了。他玩 Diablo 2,玩 Elden Ring,也玩过那些设计得极其精密的、专门为了抓住你注意力的东西。他懂这些游戏好在哪。

正因为懂,他对游戏机制的描述才格外清楚。那些公司雇了最聪明的人,专门研究怎么让你多点一次、多留十分钟、多回来一天。等级、掉落、随机奖励、进度条、每日签到,每一个元素背后都是大量实验数据。

这场对抗从一开始就不对等。你一个人,凭下班之后的那点残余意志力,去对抗一支拿着 A/B 测试数据的团队。他把这一点说得很清楚:输掉很正常,赢才需要解释。

他给出的解法很务实:你没法靠压抑活一辈子,你得给那股劲找一个更好的出口。他自己把那股劲转移到了写代码和做内容上。同样是即时反馈,同样是不断升级,同样有排行榜和观众,只不过升级的对象变成了技能本身。

他也聊了社交媒体和短视频对他注意力的侵蚀。他的处理方式是物理隔离:手机放到另一个房间,App 删掉,浏览器入口堵死。不要依靠意志力去对抗设计,直接切断路径。

这个思路跟他的 ADHD 应对方式完全一致。他不相信人能在诱惑面前长期保持清醒,他相信把诱惑移出视线。差别在于,一个把希望押在自我控制上,一个把希望押在环境设计上,后者的失败率低得多。

信仰:永恒让眼前变轻,也让人更敢投入

节目后半段突然安静下来。Lex 问他信仰。

他讲自己年轻时是坚定的无神论者,对宗教抱有相当强的敌意。后来转变了,如今是基督徒。他没有讲什么戏剧性的神迹,也没有讲某个瞬间被击中的故事,他讲了一件很朴素的事:他开始相信这个世界并非偶然,人也并非偶然。

这个信念改变了他对工作的看法。他说,如果这辈子就是你所有的东西,那每一次失败都会重得压垮人。一次崩盘的项目、一段写砸的代码、一组掉下去的直播数据,都会被放大成对整个人生的否定。但如果这不是全部,那些事就都只是暂时的。

相信有永恒,反而让我更能专注眼前。因为眼前的事没那么重要,所以我可以全力去做。(ThePrimeagen)

这句话表面上是矛盾的,其实是很多有信仰的人共有的体验。终极意义被安放在别处之后,当下的成与败就退出了生死问题的范畴。人一旦不用为每一次结果抵押全部自我,反而敢投入得更彻底。

这也为他前面那些观点补上了另一层解释。一个把全部意义押在代码上的人,代码写砸了会崩。一个把意义放在别处的人,可以把代码写得更狠,因为输得起。

死亡是过滤器,不是话题

Lex 的节目里,死亡几乎是个固定主题。这次他问得很直接:你怎么看自己会死这件事。

他讲得不煽情,也不哲学化。大意是:他不想在临死前后悔自己把时间花错了地方。这个念头是他做很多决定的过滤器。

这个过滤器的具体用法很有意思。它不解决小事,它解决方向问题。要不要接这个项目,要不要继续做内容,要不要在某个城市待下去,这些决定用日常的利弊分析永远算不清楚,用“我八十岁回头看会不会后悔”来算,往往一秒就有答案。

他也坦白说,这个过滤器不是每天都灵。人会被眼前的琐事拖走,会有几个月回头发现自己啥也没干。差别在于,他有这么一件东西可以拿出来校准,而没有它的人连校准的坐标都没有。

摔跤、高尔夫、举铁:身体不会替你撒谎

他高中摔过跤,现在打高尔夫,也举铁。这些话题在节目里穿插出现,看起来像闲聊,其实是同一根线的不同段。

摔跤教给他的东西很直接:一对一,没有队友可以怪,输了就是输了。赛场上没有解释空间。这种经验会渗透进一个人做事的方式,包括代码被人 review 挑出问题的时候,包括直播里被人当场指出错误的时候。你可以在那种时刻解释、辩解、找理由,也可以认了然后改。摔跤手通常会选后者。

高尔夫是另一种东西。他喜欢它,因为这项运动永远无法完美。你只能一次次调整,接受打坏的那一杆,然后专心打下一杆。一杆打坏了就崩掉整场的人,在这项运动里活不下去。他自己说,这跟调试很像。

举铁则是纯粹的、不可欺骗的反馈。你举得起来就是举得起来,举不起来就是举不起来,杠铃不关心你的自我叙述。他显然喜欢这种确定性,因为在软件行业里,这种确定性极其稀缺。代码能不能跑,有时候取决于十几个你控制不了的变量,而重量不会说谎。

这三件事指向同一个东西:身体是一个比大脑更诚实的系统,它不会替你撒谎。在一个人每天的工作都发生在抽象层里的时候,这种诚实是一种必要的校准。

他给年轻人的建议,几乎没有一条是关于技术的

Lex 问了很多“对新入行的人有什么建议”这类问题。他的回答很少涉及具体语言、框架、学习路线。这些东西在他看来是可以随时替换的。

他说得最多的一句是:做出来,公开做出来,让别人看见。

逻辑很清楚。编程这件事的反馈循环太长了。你学三个月,还是写不出什么像样的东西,看不见任何回报,也看不见任何人在乎。绝大多数人死在这个阶段,原因不在学不会,而在于撑不住那种“我在干什么”的空虚。

但如果你把过程公开,写博客、发视频、开直播、参与开源,你就给自己造了一套即时反馈系统。有人看、有人评论、有人指出错误,这些全都是燃料。哪怕只有三个人在看,那三个人也让这件事从私人消遣变成了有观众的行为。

他自己就是这么走过来的。他刚开始做内容的时候水平很一般,观众很少,剪辑也很粗糙。但这件事给了他持续练下去的理由,也给了他一个必须把话说清楚的场合。而把话说清楚这件事本身,会反过来逼着你想明白。

他还讲过一点:不要等到准备好了再开始。他说他到现在也没觉得自己准备好了。这句话的重量在于,说这话的人已经在 Netflix 工作过,在 Twitch 上有几十万关注。所谓“准备好”的感觉,大概永远不会到来。

直播间的那个开关,以及被观看的代价

节目最后聊回直播本身。Lex 问,长期暴露在公众面前,代价是什么。

他承认代价很实在。你的错误会被放大,你的成长会被审视,你今天状态不好,几万人就看着你状态不好。这种持续的暴露会塑造一个人,逼着你学会在被观看的时候依然专注。有人因此变得僵硬,有人因此变得更好,他说不清自己属于哪一种,但知道这件事确实改变了他。

他也说,这是他这辈子做过的最好的决定之一。

原因之一是那句话,大意是:一个人独自写代码,很容易滑进虚无。你不知道自己在干什么,也不知道做给谁看。但当你对着一群人讲清楚你在做什么的时候,你自己也理解了。

这是整期节目最核心的一条暗线。无论是写代码、学 Vim、开直播、记录信仰,还是打高尔夫,他做的都是同一件事:给自己造一个能持续得到真实反馈的系统,然后用它对抗时间的虚无。

ADHD 患者最缺即时反馈,他就把任务切小,让小任务自己产生反馈。学 Vim 最缺回报感,他就靠时间熬过去,等复利兑现。写代码最缺观众,他就开直播,把观众装进工作流。信仰最缺确定性,他就把确定性放在永恒那一端。每一处缺口,他都造一个装置补上。

这套做法和“自律”这个词关系不大。他几乎从不谈自律,他谈的永远是结构、环境、路径、成本。在他的世界观里,人是靠不住的,所以要把靠不住的人放进一个能出正确结果的结构里。

如果只带走一件事

ThePrimeagen 描绘的这条路径不适合所有人。他有 ADHD,有极强的表达欲,也赶上了一个能容纳他折腾的行业。照抄他的选择没意义。

底下那套方法论可以迁移。它的核心只有一句:别指望自己变强,去改造你所处的环境。

  • 把时间当成唯一的变量。不要指望找到捷径,也不要相信“高效学习法”能把三年压缩成三个月。你在某件事上的实际小时数,最后会变成别人嘴里的天赋。
  • 改造环境,而非改造自己。删掉 App,把手机搬到另一个房间,让开始工作变得比不开始更容易。意志力是全天最先耗尽的那块电池,别把它安排在最重要的任务上。
  • 用工具削减决策成本。学一套快捷键、一个编辑器、一个命令行工具,短期看起来低效,目标是让你在做事的过程中不再需要“想怎么操作”。省下来的心智带宽,才是真正用来做设计的地方。
  • 把 AI 当成加速器,不要当成老师。用它写你已经懂的东西,不要用它写你还没懂的东西。判断标准很简单:关掉提示词,如果你能自己写出一个更差的版本,你还在成长;如果写不出来,你只是在求神。
  • 公开做一件事。写、录、发、开源。你需要一个来自他人的真实反馈回路,否则撑不过那些看不见回报的日子。观众不必多,但必须存在。
  • 别沉迷于搭建系统。工具、标签、流程都应该服务于“今天写了一行有用的代码”。如果你的系统三个月还没产出东西,砍掉它,回到最粗糙的方式。
  • 给成瘾的那股劲找一个更好的出口。那股劲压不住,只能导流。把它导向有复利的地方,让升级的对象变成技能。
  • 找到一个关于终点的过滤器。做重大决定时,问自己八十岁回头看会不会后悔。日常的利弊分析算不清方向问题,这个过滤器往往一秒就给答案。
中英对照:英文为官方 Transcript 原文,中文为逐句机器翻译(Google 神经机器翻译),仅供学习英文参考,请以英文原文为准。
Lex Fridman00:00

The following is a conversation with Michael Paulson, better known online as ThePrimeagen.

以下是与迈克尔·保尔森 (Michael Paulson) 的对话,迈克尔·保尔森在网上更为人所知的名字是 ThePrimeagen。

00:00 He is a programmer who has entertained and inspired millions of people to have fun building stuff with software, whether you’re a newbie or a seasoned developer who has been battling it out in the software engineering trenches for decades.

他是一位程序员,他娱乐并激励了数百万人享受用软件构建东西的乐趣,无论您是新手还是在软件工程领域奋斗了数十年的经验丰富的开发人员。

In short, ThePrimeagen is a legendary programmer and a great human being with an inspiring roller coaster of a life story.

简而言之,ThePrimeagen 是一位传奇的程序员,也是一位伟大的人,有着鼓舞人心的过山车般的人生故事。

This is the Lex Fridman Podcast.

这是莱克斯·弗里德曼播客。

To support it, please check out our sponsors in the description.

为了支持它,请在说明中查看我们的赞助商。

And now, dear friends, here’s ThePrimeagen.

现在,亲爱的朋友们,这里是 ThePrimeagen。

00:42 What do you love most about programming?

编程中你最喜欢什么?

What brings you joy when you program?

编程时什么给你带来快乐?

ThePrimeagen00:46

I can tell you the first time that I ever felt love in programming, or felt that joy or that excitement-

我可以告诉你,我第一次在编程中感受到了爱,或者感受到了那种快乐或兴奋——

Lex Fridman00:51

Sure.

当然。

ThePrimeagen00:52

Which was in college.

那是在大学里。

00:52 It was the second class, data structures, and the teacher that was teaching Ray Babcock, he was talking about linked lists.

这是第二节课,数据结构,老师正在教Ray Babcock,他正在讲链表。

Now you have to learn Java at Montana State University when I went, and so he’s off there explaining this whole linked list thing and all that, and then he shows code.

现在,当我去蒙大拿州立大学时,你必须学习 Java,所以他在那里解释了整个链表的事情以及所有这些,然后他展示了代码。

And in the code it’s abstract class node or whatever it was, I can’t remember what it was.

在代码中它是抽象类节点或其他什么,我不记得它是什么了。

And then it had a private member, and that private member was of type node, and I’ve never seen that before.

然后它有一个私有成员,该私有成员是节点类型,我以前从未见过。

It is a class that is called node with a member that is of itself.

它是一个称为节点的类,具有其自身的成员。

And for the first time ever I was like, “Oh my gosh.

我第一次这样想:“天哪。

There’s no end.

没有尽头。

There’s no way to iterate.

没有办法迭代。

This is not a set of 10 items.

这不是一套 10 件商品。

This is a set of infinite items.” And so my mind kind of exploded in that moment, like, “What you can express is huge.

这是一组无限的物品。”所以那一刻我的思想爆炸了,就像,“你能表达的东西是巨大的。

I can see what memory looks like.

我可以看到记忆是什么样子。

I can see this hopping through space.”

我可以看到它在太空中跳跃。”

01:47 And I just remember being just so blown away, because up until that point, everything was just, “All right, I have a list of 10 items.

我只记得当时我非常震惊,因为在那之前,一切都只是,“好吧,我有一个包含 10 项的清单。

I have a list of 20 items.” Right?

我有一份 20 项的清单。”正确的?

It was very rigid and small, and the things I built were really small and trivial, and all of a sudden I felt like I could build anything in that one moment.

它非常僵化和小,我建造的东西真的又小又琐碎,突然间我觉得我可以在那一刻建造任何东西。

And it was so amazing.

真是太神奇了。

I just remember sitting in class for, I don’t even remember how long those classes were or anything, but I just remember being just completely profoundly impacted by this notion.

我只记得坐在课堂上,我什至不记得这些课持续了多长时间或其他什么,但我只记得我完全受到这个概念的深刻影响。

And so I just sat there and I watched, and I had the exact same experience in heaven’s forbid by a software engineering class, when we talked about the decorator pattern, where you can keep on constructing these objects in this recursive way.

所以我只是坐在那里看着,当我们谈论装饰器模式时,我在软件工程课程中获得了完全相同的经历,在天堂禁止的情况下,你可以继续以这种递归方式构造这些对象。

Not that I think that’s actually a good idea to do, but just watching that and realizing there’s so many weird and unique ways you can solve problems, and anything your mind can think of, you can just create that.

我并不认为这实际上是一个好主意,但只要观察这一点,就会意识到有很多奇怪而独特的方法可以解决问题,任何你能想到的东西,你都可以创造出来。

And I just remember getting just so excited about the possibility that anything is possible.

我只记得我对一切皆有可能感到非常兴奋。

Lex Fridman02:41

Yeah, let’s wax philosophical about a linked list.

是的,让我们对链表进行哲学思考。

02:41 It is pretty profound.

这是相当深刻的。

For people who don’t know, a node in a linked list doesn’t know anything about the world it’s in.

对于不知道的人来说,链表中的节点对其所在的世界一无所知。

It only knows about the thing it’s linked to, its neighbor.

它只知道与其相连的事物,即它的邻居。

Maybe that’s symbolic.

也许这是象征性的。

It’s a metaphor for all of us humans.

这是我们所有人的隐喻。

There’s billions of us on this planet and we only know about our local little network.

这个星球上有数十亿人,但我们只了解我们当地的小网络。

ThePrimeagen03:04

Yeah.

是的。

Lex Fridman03:05

And it’s kind of beautiful.

这很漂亮。

03:05 And you realize in that little simple data structure, you can construct arbitrarily large systems, and they’re like roots that go through memory.

你意识到,在这个简单的小数据结构中,你可以构建任意大的系统,它们就像穿过内存的根。

And then of course, that’s where you get all the programming languages that allow you to dump junk into memory and have memory leaks, and therefore create infinite pain as you try to figure out where that unfreed memory is.

当然,这就是您获得所有允许将垃圾转储到内存中并存在内存泄漏的编程语言的地方,因此当您试图找出未释放的内存在哪里时会产生无限的痛苦。

For me, yeah, probably…

对我来说,是的,可能……

It’s so beautiful the way you put that.

你这样说真是太美了。

Linked lists are indeed beautiful.

链表确实很漂亮。

Recursion also for me, when I finally wrapped my brain around what it means to write a recursive function.

当我最终明白编写递归函数的含义时,递归对我来说也是如此。

ThePrimeagen03:49

What was the thing?

到底是怎么回事?

03:49 What was one that taught you?

那个人教了你什么?

Because I think we all…

因为我认为我们都...

You probably did factorial, where you just do a quick factorial of it.

您可能进行了阶乘,只需对其进行快速阶乘。

It just doesn’t hit home.

它只是没有击中要害。

What was the thing that made it hit home?

是什么让它击中要害?

Lex Fridman04:01

I don’t remember the first.

我不记得第一个了。

ThePrimeagen04:05

I remember my first.

我记得我的第一次。

04:05 How do you not remember your first?

你怎么不记得你的第一次?

It was magic.

这太神奇了。

Lex Fridman04:08

I’ve had so many that it just…

我已经有太多了,只是……

ThePrimeagen04:11

I mean, you are a Lisp guy.

我的意思是,你是一个 Lisp 人。

04:11 You’re probably pretty used to the recursion.

您可能非常习惯递归。

Lex Fridman04:14

Yeah, all I remember is just surrounded by sea of parentheses.

是的,我所记得的只是被括号海洋包围。

04:14 I mean that’s really, probably, when I…

我的意思是,这真的很可能是当我……

In high school, I think it was either Java or C++.

高中的时候,我认为要么是Java,要么是C++。

Wow, how do I not remember that?

哇,我怎么不记得了?

It must have been C++.

一定是C++。

And then college, the generic bullshit software engineering classes were Java, but then the renegades, the cool kids, were all using Lisp.

然后到了大学,通用的废话软件工程课程是 Java,但后来的叛逆者、酷孩子都在使用 Lisp。

That’s when you’re doing the AI, the quote-unquote “AI” at that time, that that was Lisp.

那就是当你在做人工智能的时候,当时的“人工智能”,那就是 Lisp。

If you want to write a chess engine, you would use Lisp.

如果你想编写一个国际象棋引擎,你会使用 Lisp。

And so for me, probably the moment I really fell in love with programming was Lisp, and writing Othello programs and chess engines, all kinds of engines that play a game, and then I could play against that thing and that thing would beat me.

所以对我来说,也许我真正爱上编程的那一刻就是 Lisp,编写 Othello 程序和国际象棋引擎,各种玩游戏的引擎,然后我可以和那个东西对战,那个东西会打败我。

The joy of being destroyed by the thing you’ve created.

被你所创造的东西摧毁的喜悦。

And oh, game of life too.

哦,还有生命游戏。

Cellular automata.

元胞自动机。

That’s when I…

就在那时我…

05:19 I built that, you know, all kinds of programming languages.

我构建了各种编程语言。

That’s less about programming languages and more about the system you create.

这与编程语言无关,更多与您创建的系统有关。

And that just filled me with infinite joy, having…

这让我充满了无限的喜悦,拥有……

Now similar to the linked list situation, creating a system where each individual cell only knows about its neighbors and operates in very simple rules.

现在类似于链表情况,创建一个系统,其中每个单独的单元仅了解其邻居并按非常简单的规则运行。

But when you take that system as a whole and allow it to evolve over time, you can create infinite complexity.

但是,当您将该系统视为一个整体并允许其随着时间的推移而发展时,您可以创造无限的复杂性。

So I just…

所以我只是……

Man, those are many pothead moments, where I’m just looking at the beautiful complexity that can be created with cellular automata.

伙计,那是很多令人头晕的时刻,我只是在看元胞自动机可以创造出的美丽的复杂性。

That filled me with just infinite joy, for sure.

当然,这让我充满了无限的快乐。

But yeah, all I remember is parentheses.

但是,是的,我只记得括号。

So my memories of my first are drowned in a sea of parentheses.

所以我对第一次的记忆淹没在括号的海洋中。

ThePrimeagen06:11

Oh man.

噢,伙计。

06:11 Well, first off, mine was in Java, so my first was a little bit more rigid, kind of, you know, a corporate experience.

嗯,首先,我的是 Java,所以我的第一个有点严格,你知道,是一种公司体验。

Lex Fridman06:20

Yeah.

是的。

06:20 Cold, meaningless…

冰冷、无意义……

ThePrimeagen06:23

But…

但是……

06:23 yeah.

是的。

I was in a lab, everyone was using CentOS at that…

我当时在一个实验室,每个人都在使用 CentOS……

or Cent OS or however you say.

或 Cent OS 或者无论你怎么说。

I always called it CentOS, the fresh maker.

我一直称它为 CentOS,新鲜制造者。

Lex Fridman06:29

Yeah.

是的。

ThePrimeagen06:30

And so it’s just like I’m in this very cold…

所以这就像我处于非常寒冷的状态......

Lex Fridman06:32

That’s nice.

太好了。

ThePrimeagen06:33

Thank you.

谢谢。

Lex Fridman06:33

Yeah.

是的。

ThePrimeagen06:34

I’m in this cold, rigid environment with my Microsoft keyboard, programming away in Java.

我在这个寒冷、僵化的环境中,使用 Microsoft 键盘,用 Java 进行编程。

06:34 And I still have just such…

而我还有这样的……

this memory of despair, because I love programming, this was after the linked list, and I cannot figure out recursion.

这段绝望的记忆,因为我喜欢编程,这是在链表之后,我无法弄清楚递归。

And so I go to the university store and I buy a book and it’s Deitel and Deitel learn Java and it has a section, Recursion, so I open it up and I start reading it, and it just doesn’t hit home.

所以我去大学商店买了一本书,里面有 Deitel 和 Deitel 学习 Java,其中有一个章节“递归”,所以我打开它并开始阅读,但它并没有击中要害。

And I’m spiraling into this.

我正在陷入这个困境。

Lex Fridman06:35

Yeah.

是的。

ThePrimeagen07:02

Like, “Maybe I’m not a programmer.

就像,“也许我不是程序员。

07:02 Maybe I’m not worthy enough to enter into this circle of people who can figure out what the heck recursion means.” And Deitel and Deitel’s, I still remember this, their exact phrase was, “Every young budding developer solves this recursion program,” and it was the Tower of Hanoi.

也许我没有资格进入这个能够弄清楚递归到底意味着什么的人圈子。”我还记得 Deitel 和 Deitel 的说法,他们的原话是“每个年轻的崭露头角的开发人员都解决了这个递归程序”,这就是河内塔。

And guess what?

你猜怎么着?

I don’t know if I can solve the Tower of Hanoi to this day.

到现在也不知道能不能解决汉诺塔。

It’s a very hard recursive problem.

这是一个非常难的递归问题。

And I just sat there and thought, ” Oh my gosh.

我只是坐在那里想,“天哪。

I’m not going to make it.” And I sat there in the lab for eight hours, 10 hours doing these things, so worried.

我不会成功的。”我在实验室里坐了八个小时、十个小时做这些事情,非常担心。

It’s the week of recursion, we have to do a lab assignment.

这是递归的一周,我们必须做一个实验作业。

“I’m not going to be able to do it.” And I just remember being genuinely worried about that.

“我做不到。”我只记得我真的很担心这一点。

And then…

然后……

07:47 Because always my big problem was like, “Okay, do factorial.” Why not just use a for loop?

因为我的大问题总是这样,“好吧,做阶乘。”为什么不直接使用 for 循环呢?

“Okay, what about Fibonacci sequence?” Why not use a for loop?

“好吧,斐波那契数列怎么样?”为什么不使用 for 循环呢?

I don’t understand.

我不明白。

What’s the purpose of recursion?

递归的目的是什么?

I don’t understand it yet.

我还不明白。

It’s so powerful.

它是如此强大。

Why?

为什么?

It looks like a really complicated for loop.

它看起来像一个非常复杂的 for 循环。

And so I just could not understand it.

所以我就是无法理解。

And then lab came that day and it was, “I’m going to give you a 2D array you have to read from a file.

然后那天实验室来了,“我将给你一个 2D 数组,你必须从文件中读取。

This is what a starting position looks like.

这就是起始位置的样子。

This is what an ending position looks like.

这就是结束位置的样子。

This is what a wall looks like.

这就是墙的样子。

I want you to find me a path through the maze.” So I just sat there like, “Okay, well I guess I can just go up and I can create a visited grid, so I know not to visit these places anymore.” And then all of a sudden it just started clicking.

我希望你能帮我找到一条穿过迷宫的路。”所以我就坐在那里,“好吧,我想我可以上去创建一个访问过的网格,所以我知道不要再访问这些地方了。”然后突然间它开始点击。

Like, “Well, wait a second.

就像,“好吧,等一下。

I don’t know the maze, but if I just go up, right, down, and left, and hop back every time I’ve been to that square, don’t visit it, it will just go forever.”

我不知道那个迷宫,但如果我只是向上、向右、向下、向左走,每次去过那个广场就跳回来,就不要去它了,它就会永远消失。”

08:38 And I realized in that moment, I’m like, “I actually understand.

在那一刻我意识到,“我真的明白了。

I’ve understood recursion this whole time, I just never had a problem in which it actually made sense to use.

我一直都在理解递归,只是从来没有遇到过使用它真正有意义的问题。

And that was my big downfall, is that I was measuring my understanding with the problems that I had available, which were just list traversal, which is not a good use of recursion.

这是我最大的失败,是我用现有的问题来衡量我的理解,这些问题只是列表遍历,这不是递归的一个很好的用途。

And so I just remember that freeing…

所以我只记得自由……

Oh, man.

哦,伙计。

Recursion.

递归。

It was a great moment in my life.

这是我生命中伟大的时刻。

Lex Fridman09:01

I mean it does require, to be fair, a leap of faith, because people will tell you, those conformist, dogmatic, Java instructors will tell you, that this is important, to understand recursion.

我的意思是,公平地说,它确实需要信仰的飞跃,因为人们会告诉你,那些循规蹈矩、教条主义的 Java 讲师会告诉你,理解递归很重要。

09:01 But it takes a leap of faith that this is a different way of looking at the world, and it’s a powerful way of looking at the world.

但需要一个信念的飞跃,那就是这是一种不同的看待世界的方式,而且是一种强有力的看待世界的方式。

Actually, I think I remember my first now.

事实上,我想我现在还记得我的第一次。

ThePrimeagen09:37

All right.

好吧。

Lex Fridman09:40

I think it was [inaudible 00:09:42] first search for one of the games.

我认为这是 [听不清 00:09:42] 第一次搜索其中一款游戏。

09:40 Maybe Othello, something like that, and for that implementing recursion.

也许奥赛罗,类似的东西,以及实现递归。

Understand that you can search trajectories through the space of states and do that recursively?

理解您可以在状态空间中搜索轨迹并递归地执行此操作吗?

That was mind blowing.

那真是令人兴奋。

ThePrimeagen09:57

Yeah.

是的。

Lex Fridman09:57

Just imagining the possibilities.

只是想象一下可能性。

ThePrimeagen10:02

You can just see it all.

你可以看到这一切。

10:02 Yeah.

是的。

Lex Fridman10:02

Yeah, just numbers flying.

是的,只是数字飞翔。

It was like The Beautiful Mind.

就像《美丽心灵》一样。

And that’s when I also discovered conspiracy theories, and I just saw.

就在那时我也发现了阴谋论,我刚刚看到了。

I saw the truth.

我看到了真相。

Okay, yeah.

好吧,是的。

So what were we talking about?

那么我们在说什么?

Oh, what was the most painful aspect of programming for you?

哦,编程对你来说最痛苦的方面是什么?

What memories do you have of deep, profound suffering in terms of programming in the early days?

对于早期的编程经历,你有哪些深刻的记忆?

ThePrimeagen10:27

I would say the biggest one that I can really hold on to had to be one of two experiences.

我想说,我真正能坚持的最重要的经历必须是两种经历之一。

10:27 The first experience was when I was at a place called Schedulicity, and…

第一次经历是当我在一个叫做“Schedulicity”的地方时,并且……

Am I not allowed to say the place [inaudible 00:10:43]

我不能说这个地方吗 [听不清 00:10:43]

Lex Fridman10:42

You’re allowed.

你被允许了。

ThePrimeagen10:44

I’m not sure if they’re even operating still at this point, but they’re in-

我不确定他们现在是否仍在运营,但他们正在-

Lex Fridman10:47

There was something funny about the name.

这个名字有一些有趣的地方。

10:47 I’m sorry.

对不起。

ThePrimeagen10:48

Oh, Schedulicity?

哦,日程安排?

10:48 Yeah.

是的。

Actually, the name was so bad that when you looked at their paid-for Google ad terms that they would make sure that they’re at the top of the list, the spellings were just insane, because no one knew how to spell the word Schedulicity, and so the Google optimizing for that is just hilarious.

事实上,这个名字太糟糕了,以至于当你查看他们的付费谷歌广告条款时,他们会确保它们位于列表的顶部,拼写简直是疯狂的,因为没有人知道如何拼写“Schedulicity”这个词,所以谷歌对此进行的优化真是太搞笑了。

But okay, go back to the thing.

但好吧,回到正题。

11:09 The thing that kills me the most about programming, what I actually considered the worst aspect of programming, is when you know everything.

关于编程,最让我丧命的事情,实际上我认为编程最糟糕的方面,就是当你知道一切的时候。

And so when I was at this job, it’s just every single day I’d come in, there were no surprises, there was no questions.

所以当我从事这份工作时,我每天都会进来,没有惊喜,没有问题。

I didn’t understand the code base, sure, that’s fair.

我不理解代码库,当然,这很公平。

I didn’t understand all the things about the code base.

我不了解有关代码库的所有内容。

But I knew I was going to go in, I was going to generate some sort of object from the database.

但我知道我要进去,我要从数据库中生成某种对象。

I was going to take that object from the database, and I was just going to map it over and just display it on the webpage.

我打算从数据库中获取该对象,然后将其映射并显示在网页上。

There’s no creativity, there’s nothing to it.

没有创造力,什么都没有。

It’s very almost factory line kind of work.

这几乎是工厂流水线的工作。

And that was a very difficult moment for me, which is…

那对我来说是一个非常困难的时刻,那就是……

11:46 I didn’t enjoy programming, because I knew everything about it.

我不喜欢编程,因为我知道它的一切。

I already knew exactly what I was going to do that day.

我已经清楚地知道那天我要做什么。

I knew all the hurdles I going to have to go over.

我知道我必须克服的所有障碍。

There was no unknown unknowns, if you will.

如果你愿意的话,没有未知的未知数。

It was just knowns at all times.

这在任何时候都是众所周知的。

And for me, that is the worst part about programming, is when you already know the solution and it’s just a matter of how fast you can type and get it out from your head to your hands.

对我来说,编程最糟糕的部分是,当你已经知道解决方案时,问题就在于你能以多快的速度打字并将其从头脑中传到手中。

Lex Fridman12:10

So the absence of uncertainty, the absence of challenge, was the pain?

那么缺乏不确定性、缺乏挑战就是痛苦吗?

ThePrimeagen12:14

Yeah.

是的。

Lex Fridman12:15

That’s pretty profound, Prime.

这是非常深刻的,Prime。

ThePrimeagen12:18

I’m more than just good looks.

我不仅仅是漂亮的外表。

12:18 I want you to know that.

我想让你知道这一点。

Lex Fridman12:21

It’s a low bar.

这是一个低门槛。

12:21 What do you identify as?

你认为自己是什么?

I’m enjoying asking the general question.

我很喜欢问一般性问题。

ThePrimeagen12:27

38, male.

38岁,男。

Lex Fridman12:29

Male.

男。

ThePrimeagen12:29

Husband of beautiful wife.

美丽妻子的丈夫。

Lex Fridman12:30

Okay.

好的。

12:30 You stream about all kinds of programming, but what kind of programmer are you?

你直播各种各样的编程,但你是哪种程序员?

Are you full-stack developer, web programming?

您是全栈开发人员、网络编程吗?

And maybe can you lay out all the different kinds of programming and then place yourself in that, in terms of your identity.

也许你可以列出所有不同类型的编程,然后根据你的身份将自己置于其中。

Sexual identity as well.

性别认同也是如此。

ThePrimeagen12:49

Yeah, we can put it all in there.

是的,我们可以把一切都放在那里。

Lex Fridman12:51

Okay.

好的。

ThePrimeagen12:52

Plus, obviously those two are very, very tightly coupled.

另外,显然这两者的耦合非常非常紧密。

Lex Fridman12:55

I have seen you on the border of sexually aroused by certain languages.

我见过你在某些语言的性唤起的边缘。

12:55 I think you got real excited about OCaml, or…

我认为您对 OCaml 感到非常兴奋,或者……

ThePrimeagen13:01

OCaml.

奥卡姆。

13:01 Let’s go.

我们走吧。

Thank you Dillon Mulroy [inaudible 00:13:08]

谢谢 Dillon Mulroy [听不清 00:13:08]

Lex Fridman13:08

Okay, wow.

好吧,哇。

ThePrimeagen13:09

Yeah.

是的。

Lex Fridman13:09

I did not expect that.

我没想到会这样。

13:09 That escalated quickly.

事态迅速升级。

Anyway, what do you identify as?

无论如何,你认为自己是什么?

ThePrimeagen13:13

Okay, so first let’s do the previous or the in-between question first, which is the different archetypes.

好的,首先让我们先做上一个或中间的问题,即不同的原型。

13:13 I think that’s a really interesting question, because if you go on Twitter or you’re new, your thoughts are probably that there is just web programming, and maybe there’s some other stuff, yeah, like game programming, but you’d be like, game programming in JavaScript and on the web.

我认为这是一个非常有趣的问题,因为如果你上 Twitter 或者你是新手,你的想法可能是只有 Web 编程,也许还有其他一些东西,是的,比如游戏编程,但你会想,用 JavaScript 和 Web 进行游戏编程。

There’s this very myopic view of the programming world, and I bet if you ask a lot of people these days what is the most popular form of programming, they’d probably say web.

人们对编程世界的看法非常短视,我敢打赌,如果你现在问很多人最流行的编程形式是什么,他们可能会说网络。

If you said what contains the most amount of repos, how many percentage of repos on GitHub are web-based, they probably say 90% or some huge number.

如果你说什么包含最多数量的存储库,GitHub 上的存储库有多少百分比是基于网络的,他们可能会说 90% 或某个巨大的数字。

But the reality is that there’s an entire embedded robotics world.

但现实是存在一个完整的嵌入式机器人世界。

13:56 You know, you’re familiar with the ML side of things.

您知道,您熟悉机器学习方面的内容。

There’s networking, there’s going to be just performance, operating systems, compilers.

有网络,就只有性能、操作系统和编译器。

There’s just huge amounts of variation of all these different types of programming verticals that you can be.

您可以从事的所有这些不同类型的编程垂直领域存在着巨大的变化。

And so we often talk about programming in perspective of web, or something that’s pretty narrow, and I think that’s just a social construct of Twitter more than anything else, that actually I don’t believe it’s that representative of the entire programming world out there.

所以我们经常从网络的角度谈论编程,或者一些相当狭隘的东西,我认为这只是 Twitter 的一种社会结构,实际上我不相信它代表了整个编程世界。

And I think a lot of programming’s really, really fun.

我认为很多编程都非常非常有趣。

There’s some really great stuff.

有一些非常棒的东西。

Building your own language is just a very fun experience to do.

构建自己的语言是一种非常有趣的体验。

Every programmer should just do that once, just to have a completely different perspective on how things work in life.

每个程序员都应该这样做一次,只是为了对生活中的事物如何运作有一个完全不同的视角。

14:36 But as far as what do I do, I’ve always looked at myself as a tools engineer.

但就我的工作而言,我一直将自己视为一名工具工程师。

So at my time, at my jobs, typically I would start off on the UI, and then they’d be like, “Okay, well hey, we need a library for this thing.” So then I’d be the one writing the library.

所以在我那个时候,在我的工作中,通常我会从用户界面开始,然后他们会说,“好吧,嘿,我们需要一个用于这个东西的库。”那么我就是编写这个库的人了。

So in 2012, 2013, I was writing a UI library for the web that can behave just like an iPad, so you can pinch and zoom on it, but it’s still a web page.

所以在 2012 年、2013 年,我正在为网络编写一个 UI 库,它的行为就像 iPad 一样,所以你可以捏和缩放它,但它仍然是一个网页。

Because we didn’t have any of that stuff back then.

因为我们当时没有这些东西。

It was a canvas, had to do all the matrices operations and all that stuff to…

它是一块画布,必须执行所有矩阵运算和所有这些操作才能……

Lex Fridman15:04

Nice.

不错。

ThePrimeagen15:05

You know, it felt like you’re on an iPad, but it actually wasn’t on an iPad.

你知道,感觉就像你在 iPad 上,但实际上不是在 iPad 上。

15:05 And this was iPad 2 by the way, so this is a long time ago.

顺便说一句,这是 iPad 2,所以这是很久以前的事了。

And so every single time I got into a job it’s like, “Okay, hey, we need to do a library.

所以每次我开始工作时都会说,“好吧,嘿,我们需要建一个图书馆。

Hey, can you work on a build system?” So back then there was no Grunt, there was no gulp, there was no any of those things, so I had to hand roll my own JavaScript build system.

嘿,你能开发一个构建系统吗?”所以那时候没有 Grunt,没有 gulp,没有任何这些东西,所以我不得不手动推出我自己的 JavaScript 构建系统。

And so I always fell into these positions of building tools for developers to be successful.

因此,我总是致力于为开发人员构建成功的工具。

And I’ve always really enjoyed that region.

我一直非常喜欢那个地区。

So as I went on to say Netflix, spent 10 years there, I’d say the majority of my 10 years were building things for developers to use that they could be successful at their job.

因此,当我接着说 Netflix 时,我在那里度过了 10 年,我会说我这 10 年的大部分时间都在为开发人员构建可以在工作中取得成功的东西。

15:45 And so I’ve always really enjoyed that aspect, because your shareholders and the people that use your program understand programming and they’re going to say, “Hey, I need this.” And typically the thing that they need, they actually want.

所以我一直很喜欢这个方面,因为你的股东和使用你的程序的人了解编程,他们会说,“嘿,我需要这个。”通常,他们需要的东西是他们真正想要的。

Whereas with people, people want stuff, but what they actually need versus what they actually want often are this weird separation.

而对于人来说,人们想要东西,但他们真正需要的东西和他们真正想要的东西往往是这种奇怪的分离。

That’s like the old Henry Ford quote, “I just want a faster horse,” and he’s like, “No, what you actually want is a car.” And so you have to play this game of trying to really figure it out, whereas developers, it’s like, “I know you know what I’m doing.

这就像亨利·福特的一句老话,“我只想要一匹更快的马”,而他说,“不,你真正想要的是一辆汽车。”所以你必须玩这个游戏,试图真正弄清楚它,而开发人员就像,“我知道你知道我在做什么。

I know what you want.

我知道你想要什么。

Let’s figure it out together.”

我们一起想办法吧。”

Lex Fridman16:20

Actually that gives you a really nice big-picture view of programming in general.

实际上,这给了你一个非常好的总体编程视图。

16:20 So I love the idea of just starting at the interface, like you need to pinch and all that kind of stuff, and then figure out the entire thing that requires to make that happen, including maybe the side quest tooling, how to make it more productive and efficient, all that kind of stuff.

所以我喜欢从界面开始的想法,就像你需要捏和所有类似的东西,然后弄清楚实现这一点所需的整个事情,可能包括支线任务工具,如何使其更有生产力和效率,所有这些东西。

So the entirety of the thing.

所以整个事情。

That’s really cool.

这真的很酷。

ThePrimeagen16:43

Yeah.

是的。

Lex Fridman16:43

Okay, so that would be full stack?

好吧,那这就是全栈了?

16:43 By that general definition of full stack, meaning…

根据全栈的一般定义,意思是……

ThePrimeagen16:49

Perhaps, yeah.

也许,是的。

Lex Fridman16:50

Versus systems starting at the bottom and trying to optimize a certain kind of specific thing without seeing the big picture of what the resulting interface would look like.

与从底层开始并尝试优化某种特定事物的系统相比,没有看到最终界面的整体情况。

ThePrimeagen16:50

Yeah.

是的。

Lex Fridman17:02

And a lot of people in web programming, they never go beyond the front end of how a thing looks.

很多从事网络编程的人,他们永远不会超越事物的前端外观。

17:02 They kind of always assume there’ll be somebody, some grunt in the shadows, in the darkness of the basement, that will implement the back end.

他们总是假设会有人,在黑暗的地下室的阴影中,会实施后端。

ThePrimeagen17:17

Some Gilfoyle out there will be doing the back end.

一些吉尔福伊尔将负责后端工作。

Lex Fridman17:19

Gilfoyle.

吉尔福伊尔。

ThePrimeagen17:19

Yeah, I like to call myself a generalist, just to give some ideas.

是的,我喜欢称自己为多面手,只是为了提供一些想法。

17:19 At one point at Netflix I built the WebSocket connection.

我曾在 Netflix 建立过 WebSocket 连接。

So for TVs, how WebSocket works is code I just wrote.

所以对于电视来说,WebSocket 的工作原理是我刚刚编写的代码。

And so I built the framing thing, and before that I was doing stuff with memory, and before that I built a UI for a tool.

所以我构建了框架,在此之前我使用内存做一些事情,在此之前我为工具构建了 UI。

Right?

对吗?

I can just do the thing.

我只能做这件事。

You just tell me the thing to do and I’ll just go do the thing.

你只要告诉我要做什么,我就会去做。

I don’t try to get super good at one specific activity.

我不会试图在一项特定活动上变得非常出色。

I don’t want to be a Kubernetes engineer, who’s the world’s greatest employer, but if I had to go learn Kubernetes, I’d go learn it and learn how to deploy some things, and then hopefully move on to the next thing, if that makes sense.

我不想成为一名 Kubernetes 工程师,他是世界上最伟大的雇主,但如果我必须去学习 Kubernetes,我会去学习它并学习如何部署一些东西,然后希望继续进行下一个事情,如果这有意义的话。

Lex Fridman17:58

I posted about the fact that I’m talking to you on Reddit, and there’s a lot of wonderful questions.

我在 Reddit 上发布了我正在与您交谈的事实,并且有很多精彩的问题。

17:58 Somebody mentioned that I should ask you about DevOps.

有人提到我应该向你询问有关 DevOps 的问题。

Can you explain what DevOps is?

您能解释一下什么是 DevOps 吗?

Is it a kind of special ops of programmers, is it SEAL Team Six of developers?

是程序员的一种特殊行动,还是海豹六队的开发人员?

What’s DevOps?

什么是 DevOps?

Can you define…

你能定义...

Are you a DevOps engineer?

您是 DevOps 工程师吗?

ThePrimeagen18:14

Well, people keep telling me DevOps isn’t real.

嗯,人们一直告诉我 DevOps 并不真实。

18:14 There’s actually, you want platform engineers, cloud engineers, infra engineers.

实际上,你需要平台工程师、云工程师、基础设施工程师。

I just often think the easiest way, if we’re doing just some basic nomenclature, it’s just DevOps are the people that make sure that when you launch a service and all of that, it doesn’t just disappear.

我经常想到最简单的方法,如果我们只做一些基本的术语,那么 DevOps 就是确保当你启动一项服务时,它不会消失。

Right?

对吗?

It’s all the backbone of being able to operate something at scale.

这是能够大规模运营某项业务的支柱。

18:37 Really, if you think about it, if you’re just writing a mom-and-pa website, people that do PHP that are doing WordPress and all that, they’re going to build something, they’re going to hand it off to, I don’t know, Linode, DigitalOcean, some company.

真的,如果你想一想,如果你只是写一个妈妈和爸爸的网站,那些做 PHP 的人正在做 WordPress 之类的,他们会构建一些东西,他们会把它交给,我不知道,Linode,DigitalOcean,一些公司。

They don’t really need a really complicated build, deployment, all this.

他们实际上并不需要非常复杂的构建、部署等等。

It’s just someone with a simple website so they can sell their goods.

这只是一个拥有简单网站的人,这样他们就可以销售他们的商品。

And so they don’t really need that.

所以他们并不真正需要那个。

And so that’s kind of how I think of a DevOps, is when things need to scale, that’s the person you hire.

这就是我对 DevOps 的看法,当事情需要扩展时,这就是你雇用的人。

Lex Fridman19:04

Yeah, those people are actually amazing.

是的,那些人确实很了不起。

ThePrimeagen19:06

Yeah.

是的。

Lex Fridman19:07

The time I spent at Google, it’s like oh yeah yeah, there’s all these fancy machine learning people, but the folks that are running the infrastructure, basically that make sure that shit doesn’t go down, they’re like wizards, and they’re essential.

我在谷歌度过的时光,就像是哦,是的,这里有很多出色的机器学习人员,但运行基础设施的人员基本上是确保不会出现问题,他们就像巫师一样,而且他们是必不可少的。

ThePrimeagen19:23

It’s a very incredible vertical of job.

这是一个非常令人难以置信的垂直工作。

19:23 And obviously I’m using a very broad term to describe, I’m sure, a bunch…

显然,我确信我使用了一个非常广泛的术语来描述一堆……

You know, because making sure stuff doesn’t go down, you could also say that’s an SRE, right?

你知道,因为要确保事情不会发生故障,你也可以说这是 SRE,对吧?

Site reliability engineer.

站点可靠性工程师。

Whatever, the ones that wear the bomber jackets at Google.

不管怎样,那些在谷歌穿飞行员夹克的人。

And so when we say DevOps, I think people get very particular about terms specifically in this category.

因此,当我们说 DevOps 时,我认为人们对这一类别中的术语非常挑剔。

They’re like, “Well actually, you’re mentioning infrastructure engineer versus site reliability engineer.” It’s just like, “Okay, yes, I hear you,” but generally when someone thinks DevOps, they think somebody that manages the servers and their life cycles and the reliability.

他们会说,“实际上,你提到的是基础设施工程师与站点可靠性工程师。”就像“好吧,是的,我听到了”,但通常当有人想到 DevOps 时,他们会想到管理服务器及其生命周期和可靠性的人。

There’s DevOps.

有 DevOps。

Is it real?

这是真的吗?

I’m not sure.

我不确定。

Lex Fridman19:58

Okay.

好的。

ThePrimeagen19:59

Did Vercel kill DevOps?

Vercel 杀死了 DevOps 吗?

Lex Fridman20:02

Question mark?

问号?

ThePrimeagen20:03

Question mark.

问号。

Lex Fridman20:04

Yeah.

是的。

20:04 Wow, you’re almost a journalist.

哇,你几乎是一名记者了。

That’s a headline.

这是一个标题。

Let’s go back to the beginning.

让我们回到开头。

ThePrimeagen20:10

All right.

好吧。

Lex Fridman20:11

Baby Prime.

宝贝总理。

20:11 So you mentioned Netflix.

所以你提到了Netflix。

ThePrimeagen20:15

Oh, I worked at Netflix by the way.

哦,顺便说一句,我在 Netflix 工作过。

Lex Fridman20:17

For people who don’t know who ThePrimeagen is, he mentions the fact that he has been very successful and has worked at Netflix in basically every other sentence.

对于那些不知道 ThePrimeagen 是谁的人来说,他基本上每一句话都会提到他非常成功并且曾在 Netflix 工作过。

ThePrimeagen20:29

Correct.

正确。

20:29 Almost as much as I mention Neovim.

几乎和我提到 Neovim 一样多。

Lex Fridman20:33

Oh, great.

哦,太好了。

20:33 Tell me more about Neovim.

告诉我更多关于 Neovim 的信息。

No, please don’t.

不,请不要。

So, baby Prime.

所以,宝贝Prime。

At the very beginning.

一开始。

You’ve had one hell of a life, and I think it’s inspiring to a lot of people.

你经历了地狱般的生活,我认为这对很多人来说都是鼓舞人心的。

You’ve gone through a lot of painful low points, including meth addiction, loss, and like you mentioned, you’ve come out of that to become a successful programmer and a person that inspires a huge number of people to get into programming, and just to find success in life.

你经历了很多痛苦的低谷,包括冰毒成瘾、失落,就像你提到的,你已经摆脱困境,成为一名成功的程序员,一个激励大量人进入编程的人,并只是为了在生活中找到成功。

So maybe…

所以也许……

I would love it if you laid out just your whole life journey from the beginning.

如果你从一开始就规划出你的整个人生旅程,我会很高兴。

ThePrimeagen21:11

So I guess if we’re going to start with this whole journey, I think it’s probably best to start to when I was about four or five years old.

所以我想如果我们要开始整个旅程,我认为最好在我四五岁的时候开始。

21:11 That was the first time I was ever exposed to pornography, and it’s kind of just earwormed me for a large portion of my life.

那是我第一次接触色情内容,在我生命的大部分时间里,它让我耳目一新。

And so I don’t think there was a day that didn’t go by from when I was a very young lad all the way up until I was twenty-some years old where I didn’t think about porn on the daily basis.

所以我认为从我很小的时候一直到我二十多岁,我每天都会想到色情片。

And so it was just every single day, even that young.

所以这就是每一天,即使是那么年轻。

And so it was just a very mind-consuming, time-consuming, thought consuming thing that plagued me, starting at a very young age.

所以这是一件非常耗时、耗时、费思想的事情,从很小的时候就开始困扰着我。

21:47 When I was seven years old, my dad died.

当我七岁的时候,我的父亲去世了。

That was a really tough period of life.

那真是人生的一段艰难时期。

I still think about this time that I went over to China, and there’s some rules that we were given, and one of the rules was just like, “Hey, don’t talk about God, and if you do, use the word ‘Dad’ instead.” And I was just like, “Okay, Dad!” It was the first time I said that word in 17 years or some long time.

我仍然记得这次我去中国,我们被制定了一些规则,其中一条规则就像是,“嘿,不要谈论上帝,如果你谈论上帝,就用‘爸爸’这个词来代替。”我当时就想:“好吧,爸爸!”这是我 17 年或者很长一段时间以来第一次说这个词。

It was so weird to say that phrase.

这句话说出来真是太奇怪了。

And I was just like, “Oh, that was just the strangest thing I’ve ever said in my entire lifetime.” It just felt so weird.

我当时想,“哦,这是我一生中说过的最奇怪的事情。”只是感觉很奇怪。

Lex Fridman22:23

Yeah.

是的。

22:23 Yeah.

是的。

ThePrimeagen22:24

So, kind of rewind.

所以,有点倒带。

22:24 As I got older, obviously was very good at computers, good at accessing porn, of course, played video games on the Internet.

随着年龄的增长,显然我非常擅长计算机,擅长访问色情内容,当然,还喜欢在互联网上玩视频游戏。

Fun fun kind of side quest story.

有趣有趣的支线任务故事。

I think the guy’s name is Lord Toc on Twitch.

我认为这个人的名字是 Twitch 上的托克勋爵。

I can’t quite remember his name, but he built this game called Grail, G-R-A-A-L, and Graal Online.

我不太记得他的名字了,但他开发了这款名为 Grail、G-R-A-A-L 和 Graal Online 的游戏。

And when I was a young lad it was just like Zelda, except for it also had a level editor and it had a C-like language, and that’s how I discovered how to program, is I looked at these symbols and figured out what they meant, and then I was able to make things happen in the game.

当我还是个小伙子的时候,它就像《塞尔达》一样,除了它还有一个关卡编辑器和一种类似 C 的语言,这就是我发现如何编程的方式,我看着这些符号并弄清楚它们的含义,然后我能够让游戏中的事情发生。

And that’s my introduction into programming.

这就是我对编程的介绍。

So thank you that guy, whatever your Twitch name was.

所以谢谢那个人,无论你的 Twitch 名字是什么。

But all right, so keep on going.

但好吧,所以继续吧。

23:08 As I got older, I was super bad socially.

随着年龄的增长,我的社交能力变得非常差。

I was not a very great social person.

我不是一个善于交际的人。

High school is brutal, got made fun of a lot, really I wouldn’t say had a great time during high school.

高中是残酷的,被嘲笑了很多,真的,我不会说高中度过了愉快的时光。

Definitely felt very out of place or offset or maybe misplaced, if you will.

如果你愿意的话,绝对感觉非常不合适或偏移或可能错位。

I’m not sure what the right word is.

我不确定什么是正确的词。

And so of course at that point, I just always wanted to be accepted, to fit in and all that.

当然,在那一点上,我总是希望被接受、融入等等。

I did forget to say one side story.

我确实忘了说一个旁白。

After my dad died, my older brother, he started getting into drugs, and along with that he exposed me to pot, so at eight years old I was smoking some marijuana for a while there, until maybe 11 or 12, and took a break, and then again did a lot of that as I got a little bit older, but…

我父亲去世后,我的哥哥开始吸毒,随之而来的是他让我接触大麻,所以在八岁的时候,我在那里吸了一段时间大麻,直到大概11或12岁,然后休息了一下,然后随着年龄的增长,我又吸了很多大麻,但是……

23:55 So I got a lot of these exposures fairly young.

所以我很小的时候就接触过很多这样的事情。

16, 15 through 18, lot of drinking and all that.

16、15到18,大量饮酒等等。

When I graduated, or as I was graduating high school, I had such sadness, if you will.

当我毕业时,或者当我高中毕业时,如果你愿意的话,我有过这样的悲伤。

I was very sad about how everything went, tried to commit suicide, obviously it was a very poor attempt and I’m still here today.

我对一切的进展感到非常难过,试图自杀,显然这是一次非常糟糕的尝试,而我今天还在这里。

I’m very happy about that aspect.

我对这方面感到非常高兴。

I’m glad that I didn’t follow through with anything, had to go to the hospital and all that.

我很高兴我没有做任何事情,不得不去医院等等。

And when I was done, I just still remember coming out of the hospital, and at that moment it’s kind of like something broke in you.

当我完成后,我仍然记得从医院出来的那一刻,就像有什么东西打破了你的内心。

Have you ever read the book Wheel of Time?

你读过《时光之轮》这本书吗?

It’s 14,000 pages or something like that, but right around page 12,000, Rand has to intentionally kill a girl, the main character.

它有 14,000 页或类似的内容,但在 12,000 页左右,兰德必须故意杀死一个女孩,也就是主角。

And that’s the moment he breaks, and he gets into like Hard Rand.

就在那时,他崩溃了,他像哈兰德一样陷入困境。

[inaudible 00:24:46] Rand, if you will, for those that know Wheel of Time will appreciate all that.

[听不清 00:24:46] 兰德,如果你愿意的话,那些了解时间之轮的人会欣赏这一切。

For those that don’t, very confusing, and I understand.

对于那些不这样做的人来说,非常令人困惑,我理解。

Not the Amazon movie show, not that Wheel of Time.

不是亚马逊电影秀,也不是时光之轮。

24:57 So now that we go back onto it, at that point it’s just like something kind of broke in me, and I just didn’t care anymore.

所以现在我们回到这个话题,那时我就像有什么东西打破了我的内心,我不再关心了。

So all the social awkwardness, if you will, all that, just died away with me, but also so did everything else.

所以,所有的社交尴尬,如果你愿意的话,所有这些都随着我消失了,但其他一切也都消失了。

And so I started using a bunch of drugs.

所以我开始使用一堆药物。

LSD, mushrooms, meth.

LSD、蘑菇、冰毒。

Did a bunch of meth, did a bunch of that stuff, and then went off to college and continued to do a bunch of stuff.

吸了很多冰毒,做了很多类似的事情,然后上了大学,继续做了很多事情。

I took too much acid to where for quite a few years, I had little squigglies on the side of my eyes whenever I’d walk by high contrast objects.

多年来,我服用了太多的酸,每当我走过高对比度的物体时,我的眼睛一侧就会出现小波浪。

And so it’s just that whole period of life was just kind of marked by just poor decisions.

所以,整个人生阶段都以错误的决定为标志。

25:39 And then sometime when I was about 19 years old, somewhere in that range, I just had this one evening where I felt the very dramatic and real presence of God.

然后,当我大约 19 岁的时候,在这个范围内的某个地方,我刚刚度过了这个晚上,我感受到了上帝非常戏剧性和真实的存在。

And I kind of had this choice, like Frodo, on a razor, where it’s like if I go either way, I’m going to fall off, and I need to change my life.

我有这样的选择,就像弗罗多,在剃须刀上,如果我走任何一条路,我都会掉下来,我需要改变我的生活。

You get to make the choice now.

你现在就必须做出选择。

Do you want to do that or not?

你想不想这样做?

And so I remember going, “Okay, I do want to change my life.

所以我记得我说:“好吧,我确实想改变我的生活。

I don’t like this experience.

我不喜欢这种经历。

I don’t like what I’m living.

我不喜欢我现在的生活。

I am still very sad, I still feel very desperate.

我仍然很伤心,我仍然感到很绝望。

I still feel all those things.

我仍然感受到所有这些事情。

I’m just pretending to be this other person.” And then I just went to sleep that night.

我只是假装自己是另一个人。”然后那天晚上我就去睡觉了。

Nothing changed in my life.

我的生活没有任何改变。

Everything was still the way it was.

一切还是原来的样子。

I woke up the next day, the same person, and I was just like, “Oh, that’s just such a strange, weird experience.”

第二天我醒来,还是同一个人,我就想,“哦,这真是一次奇怪、奇怪的经历。”

26:29 And I just went about my day.

我刚刚度过了我的一天。

And then I remember, I think that evening, I looked at porn, and all of a sudden I just had a conscious…

然后我记得,我想那天晚上,我看了色情片,突然间我有一种意识……

just this deep, profound shame.

就是这种深深的耻辱。

And I was like, “I’ve never felt shame in my life.

我当时想,“我一生中从未感到羞耻。

I have no idea what’s happening now.” And then all of a sudden when I smoked pot, I just felt deep shame.

我不知道现在发生了什么。”然后突然间,当我抽大麻时,我感到深深的羞耻。

And when I hurt somebody or did something wrong, all of a sudden…

当我伤害某人或做错事时,突然……

It’s just like I got a conscious from that evening.

就像那天晚上我有了意识一样。

That’s what my gift was, if you will.

如果你愿意的话,这就是我的礼物。

And just at that point, I didn’t even have a choice.

就在那时,我什至没有选择。

I had to change my life, because for whatever reason, I’ve been changed in a moment.

我必须改变我的生活,因为无论出于什么原因,我瞬间就被改变了。

27:05 And so from there I started actually trying in school.

从那时起,我开始在学校进行实际尝试。

I always joke around that I got 2.14 in high school.

我总是开玩笑说我高中时得了2.14。

I had a teacher hand write me a note saying I was the worst student she’s ever had.

我有一位老师亲手给我写了一张纸条,说我是她教过的最差的学生。

All that kind of stuff.

所有这些东西。

I was not a really great student.

我并不是一个真正优秀的学生。

And then in that moment it’s just like, “Okay, now life’s changed,” and I start trying to learn, and I try to become a good student.

然后在那一刻,我就像是,“好吧,现在生活改变了”,我开始尝试学习,并努力成为一名好学生。

And it turns out it’s really hard.

事实证明这真的很难。

I was really bad.

我真的很糟糕。

I still got Cs.

我还是有Cs。

I went and took pre-calculus and failed pre-calculus, and I’m like, “Oh my gosh, I used to be the smart math guy, and now I’m the idiot failing.” And so I’m just questioning myself and all that, and I spent hours upon hours in a studying, math learning center, and then just at some point years into this journey, I’m like a year and a half into this journey, at this point, something clicks, and I go from being the worst person to just immediately becoming the best.

我去参加了微积分预科课程,但是微积分预科课程失败了,我想,“天哪,我曾经是一个聪明的数学家伙,现在我是一个失败的白痴。”所以我只是在质疑自己和所有这一切,我在一个学习、数学学习中心花了几个小时,然后就在这段旅程的几年里的某个时刻,我进入这段旅程大约一年半了,在这一点上,有些事情发生了,我从最差的人立即变成了最好的人。

27:58 Everything after that is just, I don’t know what happened.

之后的一切,我都不知道发生了什么。

All of a sudden I was the best person at math.

突然之间,我成了数学方面最好的人。

I started going into my computer science classes.

我开始学习计算机科学课程。

I just really got everything.

我真的得到了一切。

Everything, at just years after trying, just all of a sudden became easier.

尝试了几年后,一切突然变得更容易了。

And I’m not sure if it happened over the course of weeks or when the easier started, but it was just first predicated by just a huge amount of difficulty.

我不确定这是否是在几周内发生的,或者是更容易的事情何时开始的,但它只是首先由巨大的困难来预测。

And then this is where I started really desiring and loving the process of learning, was when things started getting easier after all those years.

然后这就是我开始真正渴望和热爱学习过程的地方,也是这些年来事情开始变得更容易的时候。

28:27 Because I just was motivated by this desire to do something, not thinking it was going to get any easier, and then all of a sudden it just started getting easier, and it was great.

因为我只是被这种想做某事的愿望所激励,而不是认为它会变得更容易,然后突然间它开始变得更容易,这很棒。

And that’s really where I guess I started having the biggest parts of my life change at that point.

我想这就是我生命中最大的部分开始发生变化的地方。

I started really, really, really wanting to never look at porn again, because every single time just such shame, and I really wanted to stop.

我开始真的、真的、真的不想再看色情片了,因为每次都感到羞耻,我真的想停下来。

And that was by far the hardest addiction to quit.

这是迄今为止最难戒掉的瘾。

Smoking cigarettes was also a really hard addiction to quit, shockingly hard addiction to quit, but porn by far was just the worst of them all.

吸烟也是一种很难戒掉的瘾,令人震惊的难以戒掉的瘾,但到目前为止,色情片只是其中最糟糕的。

And then I think about 22, I was finally done with all kind of addictions, if you will, and then for a year I just worked in all that, and I think right around, maybe it was 21 and three quarters, somewhere in that range, I’m not really sure where I stopped all the addictions part, but…

然后我想到22岁,如果你愿意的话,我终于摆脱了各种成瘾,然后我花了一年的时间从事这一切,我想大约是21岁又四分之三,在这个范围内的某个地方,我不太确定我在哪里停止了所有成瘾部分,但是......

Or at least the outwardly addictions.

或者至少是表面上的瘾。

And then at some point, six months later, a year later, met my beautiful wife.

然后在某个时候,六个月后,一年后,我遇到了我美丽的妻子。

Things just started falling more and more into place.

事情开始变得越来越顺利。

I loved more and more work.

我越来越热爱工作。

I loved programming.

我喜欢编程。

I started programming 12 hours a day.

我开始每天编程 12 小时。

I watched the Social Network movie, and after that, I was just like, “I’m doing a startup.” And so that night I started my first startup, and I was just like, so…

我看了《社交网络》电影,在那之后,我就想,“我正在创业。”所以那天晚上我开始了我的第一次创业,我就像,所以......

It was in PHP by way.

顺便说一句,它是用 PHP 编写的。

Lex Fridman29:41

Nice.

好的。

ThePrimeagen29:41

PHP, yeah, 5.2 or something like that.

PHP,是的,5.2 或类似的东西。

29:41 It was great.

太棒了。

Great times.

美好的时光。

And I was just so motivated to do that, and I would just program for…

我非常有动力这样做,我只是为了……而编程。

Sometimes I’d program for 24, 36 hours straight, and just nonstop, that’s all I wanted to do at all points.

有时我会连续编程 24、36 小时,而且不间断,这就是我在任何时候都想做的事情。

I think my wife got a little sick of me.

我想我妻子有点厌烦我了。

She would be like, “Can you drop me off at school?” And I’d be like, “No, I’m programming.” I was not a very nice…

她会说:“你能送我去学校吗?”我会说,“不,我正在编程。”我本来就不是一个很好的人……

You know, I didn’t think through things that well.

你知道,我没有考虑清楚事情。

Lex Fridman30:04

Yeah yeah.

是啊是啊。

30:04 Yeah.

是的。

ThePrimeagen30:05

I was just so into it and I just did it nonstop, and that’s kind of how I became me, is that story, if that makes sense.

我太投入了,不停地做,这就是我成为我的方式,就是这个故事,如果这有意义的话。

Lex Fridman30:13

Let’s try to reverse engineer some of the pain and some of the triumph.

让我们尝试对一些痛苦和一些胜利进行逆向工程。

30:13 You made it sound easy at times.

有时你让它听起来很容易。

Let’s try to understand it better, maybe when you were seven years old.

让我们试着更好地理解它,也许当你七岁时。

What do you think about the pain you’ve experienced there, losing your dad?

对于你在那里经历的失去父亲的痛苦,你有何看法?

What do you think?

你怎么认为?

What kind of impact did it have on you?

它对你产生了什么样的影响?

What kind of memories do you have at that time?

那时的你有什么样的回忆呢?

ThePrimeagen30:33

The best way I can put it is that I just never knew what a dad was.

我能说的最好的说法是,我从来不知道父亲是什么。

30:33 I was young enough that I could maybe repress or just even have the capability of remembering things long-term.

我还年轻,也许可以压抑,甚至有能力长期记住事情。

Because I know most people don’t remember a lot from when they’re young, and so I’m not exactly sure.

因为我知道大多数人年轻时的记忆并不多,所以我不太确定。

I probably was at one of the best possible ages, if I’m going to lose a dad, to lose a dad.

如果我要失去父亲的话,我可能正处于最好的年龄之一。

You know?

你知道?

If you’re going to lose one, if you’re 11 or 12, it’s a terrible age.

如果你即将失去一个,如果你是 11 岁或 12 岁,那是一个可怕的年龄。

That’s what my brother was, and he fell into drug addiction and never got back out.

我哥哥就是这样,他染上了毒瘾,再也没有戒掉。

So I just have more of a fuzziness and just kind of a longing.

所以我只是有更多的模糊感和渴望。

I just wish I had a dad.

我只希望我有一个爸爸。

Lex Fridman31:10

What impact did that have on your evolution, on your life, having that longing?

这对你的进化、对你的生活、对你的渴望有什么影响?

ThePrimeagen31:16

I think that’s why I was so bad socially, in the sense that I was looking for approval, right?

我想这就是为什么我的社交能力如此糟糕,因为我在寻求认可,对吗?

31:16 I needed approval.

我需要批准。

I think a lot of people desire that approval or that loving figure, and I just didn’t have that.

我认为很多人都渴望那种认可或那种充满爱的形象,但我却没有。

So I think I just looked for it in everything else, right?

所以我想我只是在其他一切中寻找它,对吧?

If I were to psychoanalyze my actions.

如果我要对我的行为进行心理分析。

During the time, it’s not like I was actively thinking that, but yeah, I just always wanted something to fill in whatever that was I felt.

在那段时间里,我并没有积极地思考这个问题,但是,是的,我只是一直想要一些东西来填补我的感受。

Lex Fridman31:44

I think a lot of people listening to this will resonate with your experience in high school.

我想很多人听到这个都会对你高中的经历产生共鸣。

31:44 Being the outsider, being picked on, struggling through a lot of different complexities at home.

作为局外人,被欺负,在家里挣扎于许多不同的复杂情况。

What advice would you give to them?

您会给他们什么建议?

ThePrimeagen31:58

The worst part about high school is that you’re surrounded by a bunch of people your age and it feels eternal.

高中最糟糕的部分是,你被一群与你同龄的人包围,感觉很永恒。

Lex Fridman32:05

Yeah.

是的。

ThePrimeagen32:05

You don’t think…

你不认为……

32:05 The people that are around you, you feel like are the people that will be there for the rest of your life.

你周围的人,你觉得是你余生的人。

At least that’s what I thought.

至少我是这么想的。

And I didn’t really even realize this until many years later, that they are going to be some of the least consequential people in your life.

直到很多年后我才真正意识到这一点,他们将成为你生活中最不重要的人。

Lex Fridman32:21

Yeah.

是的。

ThePrimeagen32:21

Which is very shocking to think about, especially if you’re in it right now.

想想就非常令人震惊,尤其是如果你现在就身在其中的话。

Lex Fridman32:26

Yeah.

是的。

ThePrimeagen32:27

Right?

正确的?

32:27 Right now they are everything that your experience is, your whole reality.

现在它们就是你的经历的一切,你的整个现实。

And then one day it all stops, and then real life starts to begin.

然后有一天,一切都停止了,然后真正的生活开始了。

Lex Fridman32:36

Yeah.

是的。

ThePrimeagen32:37

That’s such a shocking thing, and if I could just tell myself that, maybe I would have been a bunch of different person.

这是一件令人震惊的事情,如果我能告诉自己这一点,也许我会变成一个不同的人。

Lex Fridman32:42

That’s so beautifully put.

说得真漂亮。

32:42 I mean, it is like a trial run.

我的意思是,这就像一次试运行。

You know at the beginning of video games, there’s a little tutorial?

你知道在电子游戏开始时,有一些教程吗?

That’s what that is.

就是这样。

ThePrimeagen32:42

Yeah.

是的。

Lex Fridman32:51

And actually that should be a chance to try shit out, to take risks, because real life will begin with, there is more consequences after that.

事实上,这应该是一个尝试、冒险的机会,因为现实生活将开始,之后会有更多后果。

ThePrimeagen32:51

Yeah.

是的。

Lex Fridman33:00

Because real life will begin where there is more consequences after that.

因为真正的生活将从之后产生更多后果的地方开始。

ThePrimeagen33:03

Yeah.

是的。

Lex Fridman33:03

Here you can, if you like a girl, ask her out.

在这里,如果您喜欢一个女孩,可以约她出去。

33:03 Try, try shit.

试试,试试狗屎。

If you get picked on, hit that guy back.

如果你被欺负了,就反击那个人。

Try shit out.

尝试一下吧。

ThePrimeagen33:11

I’m not going to condone punching another person.

我不会容忍殴打他人。

Lex Fridman33:13

I will.

我会。

33:13 Beat the shit out of him, and take some jiu-jitsu and learn how to take him down.

把他打得屁滚尿流,学点柔术,学习如何打倒他。

And then that girl that rejected you will be like, “Hmm, maybe I’ll give that guy a second chance.” Be a bad motherfucker.

然后那个拒绝你的女孩会说,“嗯,也许我会给那个人第二次机会。”做一个坏混蛋。

It’s a chance to try stuff out.

这是一个尝试新事物的机会。

This is a very motivational speech for kicking ass.

这是一篇非常励志的演讲。

ThePrimeagen33:31

It is true.

是真的。

33:31 I mean, there is something very true about that, that I think especially…

我的意思是,这里面有一些非常真实的东西,我特别认为……

I mean, I have no idea what the girls experience of high school would be like, but as a guy, there’s definitely a lot of like physical requirements in high school.

我的意思是,我不知道女孩在高中的经历会是什么样,但作为一个男孩,高中肯定有很多类似的身体要求。

There’s a lot of physical measurement, at least where I grew up.

有很多物理测量,至少在我长大的地方是这样。

I think that might not be true in all high schools, but if they’re filled with boys, it’s probably true.

我认为这可能不是所有高中都是如此,但如果他们都是男孩,这可能是真的。

33:51 And so it’s just like, yeah, it probably does help to do those things, to go to BJJ, to do any of these activities.

所以这就像,是的,做这些事情,去巴西柔术,做任何这些活动可能确实有帮助。

Because even if you don’t ever kick someone’s ass, just having some level of confidence in yourself is probably a very valuable thing.

因为即使你从来没有踢别人的屁股,对自己有一定程度的信心可能是一件非常有价值的事情。

But just remembering that this is such a short, tiny moment in your life is just like a huge help.

但只要记住这是你生命中如此短暂、微小的时刻,就像一个巨大的帮助。

Lex Fridman34:12

I mean, the way you phrased it is exactly right.

我的意思是,你的措辞方式完全正确。

34:12 That’s what it feels like.

这就是感觉。

That these are the people that will be with you for the rest of your life and this is the whole world.

这些人将陪伴你一生,这就是整个世界。

And so that means that there’ll be just tremendous amount of impact if somebody picks on you or if you fall somewhere low in the hierarchy and the status hierarchy of this high school, that means you’ll be low in the status hierarchy of the world and you’re fucked for the rest of your life.

因此,这意味着,如果有人欺负你,或者如果你在这所高中的等级制度和地位等级中处于较低的位置,那将会产生巨大的影响,这意味着你将在世界的地位等级中处于较低的位置,并且你的余生都会被操蛋。

34:39 And that carries a tremendous amount of weight.

这承载着巨大的重量。

It’s just why psychologically it’s extremely difficult to be…

这就是为什么从心理上来说,这是极其困难的……

I think it’s understated often by parents, by society, how difficult it is to be a high schooler, how difficult psychologically it is, how it actually makes sense that some people would suffer from depression and be on the verge of suicide; is very, very difficult.

我认为父母和社会经常低估了作为一名高中生有多么困难,心理上有多么困难,以及为什么有些人会患上抑郁症并处于自杀边缘的事实。是非常非常困难的。

ThePrimeagen35:01

Yeah, I think it’s even…

是的,我认为这甚至是……

35:01 People always say, “Back in my day,” blah blah blah.

人们总是说,“回到我的时代”,等等等等。

I think it’s genuinely harder today than it’s ever been in the sense that when I was a kid, there was a qualification to people.

我认为今天确实比以往任何时候都更加困难,因为当我还是个孩子的时候,人们是有资格的。

Meaning, this is a cool guy, this is not a cool guy.

意思是,这是一个很酷的人,这不是一个很酷的人。

35:15 Today, there’s a quantification of people.

今天,人们已经被量化了。

You have 32,514 people following you, you have 12.

您有 32,514 人关注您,您有 12 人。

The people can visually…

人们可以直观地...

They can inspect your exact social value on whatever platform you’re on.

他们可以在您所在的任何平台上检查您的确切社交价值。

And that has to be just so much harder.

而这一定要困难得多。

35:31 And I can imagine that there’s a lot of just so much weight to put on that, that it’s just…

我可以想象,有很多太多的负担要放在这上面,这只是......

it feels probably way worse and way more damning to be uncool because you have an exact number of how uncool you are.

不酷的感觉可能更糟糕、更可怕,因为你知道自己有多不酷。

Lex Fridman35:45

Yeah.

是的。

35:45 The challenge there.

那里的挑战。

And the task, the quest is to remember that just because your social circle on social media and in high school thinks you’re uncool, it actually might mean you are cool.

我们的任务、追求是要记住,仅仅因为你在社交媒体和高中的社交圈认为你不酷,它实际上可能意味着你很酷。

And you need to find that cool and grow it and let it flourish so that when real life begins, you can fucking come out of the gate firing on all cylinders because-

你需要找到那份酷,培育它,让它蓬勃发展,这样当现实生活开始时,你他妈的就能全速冲出大门,因为——

ThePrimeagen36:15

That’s a great way to put it.

这是一个很好的表达方式。

Lex Fridman36:16

I think if anything, high school is really bad at picking out the cool people.

我认为,如果说有什么不同的话,那就是高中在挑选优秀人才方面确实很糟糕。

36:16 Whatever the system, the hierarchy that forms, it’s such a basic bitch hierarchy.

无论形成什么系统、等级制度,这都是一个基本的婊子等级制度。

You’re good at very generic shit.

你很擅长非常普通的事情。

That’s how you rise.

这就是你崛起的方式。

ThePrimeagen36:33

Your parents bought you an expensive car.

你的父母给你买了一辆昂贵的汽车。

Lex Fridman36:35

Expensive car, right?

车很贵吧?

ThePrimeagen36:36

Just-

只是——

Lex Fridman36:36

Materialistic shit.

物质主义的狗屎。

36:36 Yeah, exactly.

是的,完全正确。

ThePrimeagen36:38

It’s a greedy search.

这是一个贪婪的搜索。

36:38 See, they didn’t have a proper search, so they’re just hitting that local optima.

看,他们没有进行适当的搜索,所以他们只是达到了局部最优。

Lex Fridman36:42

But the…

但是……

36:42 I mean, even the objective function for that greedy search is just a really shitty one, where those people that win the game of high school are very often not going to be the people that win the much more exciting, beautiful game of life.

我的意思是,即使是贪婪搜索的目标函数也只是一个非常糟糕的函数,那些赢得高中游戏的人往往不会成为赢得更令人兴奋、更美丽的人生游戏的人。

So do epic shit and try stuff out.

所以,做史诗般的事情并尝试一些东西。

37:01 The weirdos are the ones that are going to succeed, the weirdos in high school.

怪人就是那些即将成功的人,高中时期的怪人。

Probably because they also get bullied and they get to be tormented more psychologically and get to explore their own mind and think through what it means to be a human being more.

可能是因为他们也受到欺负,他们在心理上受到更多的折磨,并且更多地探索自己的思想,思考作为一个人意味着什么。

37:16 Because if you’re winning in high school, you’re not being challenged, you’re not self-reflecting, you’re not trying shit out.

因为如果你在高中获胜,你就不会受到挑战,你不会自我反省,你也不会尝试去尝试。

So there is some degree to being tormented as long as it doesn’t break you.

所以,只要不让你心碎,就一定程度上会受到折磨。

The porn addiction, that’s another powerful one that I think will probably resonate with a lot of people.

色情成瘾,这是另一种强大的成瘾,我认为可能会引起很多人的共鸣。

And it’s interesting that you say that’s one of the hardest addictions to overcome.

有趣的是,你说这是最难克服的瘾之一。

ThePrimeagen37:43

Let me say it this way, some addictions have a much bigger societal look and porn is just not one of them, which makes it super hard.

让我这么说吧,有些成瘾有更大的社会面貌,而色情片并不是其中之一,这使得它变得非常困难。

37:43 None of your friends are going to cheer you on.

你的朋友都不会为你加油。

If you go on Twitter and say, “I quit porn,” they’re going to be like, “Well, that’s good for you but not everybody…”

如果你在推特上说,“我戒掉色情片了”,他们会说,“好吧,这对你有好处,但不是每个人......”

37:57 No one makes that argument with meth, right?

没有人用冰毒来争论,对吧?

No one’s going to be like, “Well, not everyone has to quit meth, okay.

没有人会说,“好吧,不是每个人都必须戒掉冰毒,好吧。

It’s actually a fine industry and people who are the ones producing it, they’re good also, right?” No one’s going to make that kind of argument.

这实际上是一个很好的行业,生产它的人也很优秀,对吧?”没有人会提出这样的论点。

38:08 Whereas with porn, you’re going to have a whole thing and friends are going to think you’re dumb for doing it or whatever.

而对于色情片,你会拥有一整套东西,朋友们会认为你这样做很愚蠢或者其他什么。

It’s like you have…

就像你有……

It’s a much more difficult one in just like that.

这是一个更加困难的事情。

So it feels accepted.

所以感觉被接受了。

Lex Fridman38:21

And I think it’s also an addiction you can practice, participate in privately and hide it from the world.

我认为这也是一种你可以练习、私下参与并隐藏起来的瘾。

38:21 There’s certain addictions that are harder to hide from the world for prolonged periods of time.

有些成瘾行为很难长期隐藏在世人面前。

38:31 And porn addiction is probably one you can just have for many years and then it can deepen.

色情成瘾可能会持续很多年,然后就会加深。

That’s probably a serious issue.

这可能是一个严重的问题。

Boy, am I glad I grew up before the internet because porn is so accessible, so easy to go deep into that addiction.

男孩,我很高兴我是在互联网出现之前长大的,因为色情是如此容易获得,很容易让人沉迷其中。

I mean, what can you speak about what impact it had on your life?

我的意思是,您能谈谈它对您的生活产生了什么影响吗?

Maybe some of the low points, but also how to overcome it?

也许有些低谷,又该如何克服呢?

ThePrimeagen38:56

I’d say as far as impact goes is that you will have such a long and broken look at women.

我想说的是,就影响而言,你会对女性有如此漫长而破碎的看法。

38:56 By the very, like I can…

到了最后,我可以……

Again, I’m only speaking from a male’s perspective, that porn in its just most basic thing is that you use another person for your own desire or your own want.

再说一次,我只是从男性的角度来说,色情片最基本的事情就是你利用另一个人来满足你自己的欲望或你自己的需要。

It’s not something that is deeply needed.

这不是非常需要的东西。

There’s no need for porn.

不需要色情片。

It’s purely a want-based activity or a lust, however you want, whatever word you can fill in there.

这纯粹是一种基于欲望的活动或欲望,无论你想要什么,无论你可以在那里填写什么词。

39:28 And it is purely an objectifying activity.

这纯粹是一种客观化活动。

Someone else is on display for your own enjoyment.

别人展示是为了你自己欣赏。

And so I think you carry this around.

所以我认为你随身携带这个。

I do think that the women that I dated during high school or the women after high school and college, I looked at them as a means to an end.

我确实认为,我在高中期间约会的女性或高中和大学毕业后的女性,我将她们视为达到目的的手段。

And I think porn greatly kind of shifted that perspective in my head that I did not give the value that was desired to another person.

我认为色情片极大地改变了我头脑中的观点,即我没有给予另一个人所需的价值。

It really devalues humanity just in general, is my perspective of it.

从我的角度来看,它确实总体上贬低了人类的价值。

And then it makes people into commodities.

然后它把人变成了商品。

And I don’t think people are commodities.

我不认为人是商品。

I think everyone has value.

我认为每个人都有价值。

40:02 And so during that, for me that’s like the great effect of porn, is that it’s just consumerism gone wild or materialism maybe, you could ask or argue, gone wild.

所以在那段时间里,对我来说,这就像色情片的巨大影响,就是消费主义变得疯狂,或者物质主义也许,你可能会问或争论,变得疯狂。

And it’s extremely hard to quit, just like you said, because I can look at porn and then I can go out to lunch.

就像你说的,戒烟非常困难,因为我可以看色情片,然后我可以出去吃午饭。

40:21 No one’s going to know.

没有人会知道。

No one’s going to have any ideas.

没有人会有任何想法。

It’s a very private, it can be very short session.

这是一次非常私密的会议,会议时间可能很短。

It doesn’t have to be something that takes…

它不一定是需要......

You can’t take acid then go out to lunch, right?

你不能吃酸然后出去吃午饭,对吧?

Your whole day is going to be a very different day.

你的这一天将会是非常不同的一天。

And so it’s very quick, easy, accessible.

所以它非常快速、简单、方便。

40:38 And then obviously there’s all the science and statistics, like men make worse decisions for some period of time after looking or being exposed to sexualized images.

显然,还有所有的科学和统计数据,比如男性在观看或接触色情图像后的一段时间内会做出更糟糕的决定。

There’s the whole dopamine effect that’s just like you constantly need more and more dopamine.

这就是多巴胺效应,就像你不断需要越来越多的多巴胺一样。

That’s why people typically don’t just watch five minutes of porn and call it a day.

这就是为什么人们通常不会只看五分钟的色情片就结束了。

There’s like the hundred tab joke that’s always made on the internet.

就像互联网上经常流传的“一百张标签”笑话一样。

It’s because it’s just this constant dopamine cycle you’re constantly doing.

这是因为你一直在进行这种持续的多巴胺循环。

41:01 And all that stuff is great to say.

所有这些都很好说。

And I’m sure statistics and science and all that stuff is really great arguments for some amount of people.

我确信统计数据和科学以及所有这些东西对于某些人来说确实是很好的论据。

But for me it just comes down to, is it really a good thing to do?

但对我来说,这只是归结为,这真的是一件好事吗?

Is it really actually something we want, is to value people in such a profane or just disregarding way?

以如此亵渎或无视的方式来重视人们,这真的是我们想要的吗?

I just really think it’s just bad for the soul.

我真的认为这对灵魂有害。

Even if all the stats said it was great for you, I still say it’s actually bad.

即使所有统计数据都表明这对你来说很好,但我仍然说它实际上很糟糕。

Lex Fridman41:29

Yeah.

是的。

41:29 You have to look at the long-term big picture, psychological impact it has on your relationships with human beings in general.

你必须着眼于长期的大局,以及它对你与人类关系的总体心理影响。

That’s my, more generally than just porn, my problem with the quote, unquote, “sort of manosphere”, is I think sleeping with a bunch of women is great, wonderful.

这就是我的问题,不仅仅是色情片,我对引用的问题,不引用,“有点马诺圈”,是我认为和一群女人一起睡觉是伟大的,美妙的。

But the problem is making that the primary objective of your life, similar with porn, is you devalue one of the most awesome things, which is intimacy.

但问题是,你生活的主要目标,就像色情片一样,是你贬低最棒的事情之一,那就是亲密。

That’s true for deep friendship, that’s true for relationships.

对于深厚的友谊来说是如此,对于人际关系来说也是如此。

42:06 And I think porn does that in its purest, darkest form, which is: the thing that matters is the sex, not the deep connection with another human being.

我认为色情片以最纯粹、最黑暗的形式做到了这一点,那就是:重要的是性,而不是与另一个人的深层联系。

And I think, again, going back to high school and the manosphere, the objective function if it’s to get laid, which helps with status and confidence and all…

我想,再次回到高中和马诺圈,目标函数如果是为了上床,这有助于地位和信心等等……

42:28 All that is wonderful, I think.

我想这一切都很棒。

Again, can be an addiction.

再说一次,可能会让人上瘾。

But the thing that’s even more awesome for a lot of people is a deep friendship or deep intimacy with a romantic partner.

但对很多人来说,更令人敬畏的是与浪漫伴侣的深厚友谊或深厚亲密关系。

That’s also fucking awesome, and both of those are great.

这也太棒了,两者都很棒。

ThePrimeagen42:45

It’s objectively better to have…

客观上更好的是……

42:45 I would say that there’s no universe that exists or there should be no argument possible that exists that a guy who has meaningless sex has a better or a more meaningful life than, say, me and my wife who’ve been together for 15 years.

我想说,不存在任何宇宙,也不应该存在任何争论,认为一个进行无意义性行为的人比我和我已经在一起 15 年的妻子拥有更好或更有意义的生活。

42:58 We have a very…

我们有一个非常…

I can depend on her in all circumstances.

在任何情况下我都可以依靠她。

Whereas if you live that other life, it sure could be…

然而,如果你过着另一种生活,那肯定可能是……

It could feel great, but there’s no meaning to it.

感觉可能很棒,但没有任何意义。

There’s no actual real value to it.

它没有实际的价值。

Lex Fridman43:10

That’s absolutely correct.

这是完全正确的。

43:10 I do think that getting laid can have a tremendous positive impact on the confidence of a young man.

我确实认为上床会对年轻人的自信心产生巨大的积极影响。

I think just there’s a certain number of sexual partners from which you can collect a lot of data and it can free you about, like not to be so nervous about the opposite sex, not to be so nervous about human interaction.

我认为只要有一定数量的性伴侣,你就可以从中收集大量数据,这可以让你解放出来,比如不要对异性那么紧张,不要对人际互动那么紧张。

43:34 And that will allow you to see the world more clearly and to actually find that one partner with whom you can be deeply intimate with.

这将使你更清楚地看到世界,并真正找到一位可以与你深深亲密的合作伙伴。

Sometimes the nervousness around this societally constructed value in getting laid can cloud your judgment.

有时,围绕这种社会建构的上床价值的紧张情绪可能会影响你的判断。

43:54 And if you just release that by getting laid a bunch of times, then you could see the world clearly that getting laid is not nearly as important as you said, as finding the right human, including I should put in that pile, not just a romantic partner, but friendships, deep lasting friendships.

如果你只是通过上床几次来释放它,那么你可以清楚地看到世界,上床并不像你说的那么重要,重要的是找到合适的人,包括我应该放在那堆里,不仅仅是一个浪漫的伴侣,而是友谊,深厚持久的友谊。

ThePrimeagen44:14

Well, I mean I think you’re right that our society puts a lot of emphasis on getting laid.

嗯,我的意思是,我认为你是对的,我们的社会非常重视上床。

44:14 And I’m sure that’s true among any group of males throughout any point in history.

我确信,在历史上的任何时刻,任何男性群体都是如此。

I’m sure that’s a very common joke that’s never actually never stopped at any point.

我确信这是一个非常常见的笑话,实际上从来没有停止过。

So I’m sure that exists but…

所以我确信这种情况存在,但是……

And there’s probably some truth to the sense that after you’ve…

在你……之后,这种感觉可能是有一定道理的。

Who was it?

是谁?

Jim Carrey.

金·凯瑞.

“I hope that everyone can get rich so they realize that money solves none of your problems.” The realization that this thing that society told you is hyper important is actually not the important part.

“我希望每个人都能致富,这样他们就会意识到金钱并不能解决你的任何问题。”意识到社会告诉你的这件事非常重要,实际上并不是重要的部分。

It is a very important…

这是一个非常重要的…

44:45 It’s a great sign that your relationship is healthy.

这是你们的关系健康的一个很好的迹象。

Like if me and my wife were to have no sex at all for months on end, something’s gone wrong, which means what…

就像如果我和我的妻子连续几个月没有发生性行为,就会出现问题,这意味着......

we are no longer on the same plane.

我们不再在同一架飞机上。

But it’s not also a good identifier.

但它也不是一个好的标识符。

Just because you’re having a lot of sex, it doesn’t mean you’re having a good relationship.

仅仅因为你们有很多性行为,并不意味着你们的关系很好。

45:03 And so it’s like a unique…

所以它就像一个独特的......

I forget the right term here, but it’s a unique way at looking at the problems.

我忘记了这里的正确术语,但这是看待问题的独特方式。

And our society puts so much emphasis.

我们的社会非常重视。

And maybe that’s why porn was so hard to quit, but my guess is it’s just all the dopamine effect that it is.

也许这就是为什么色情片如此难以戒掉的原因,但我猜这只是它的多巴胺效应。

45:21 But for me, the most important part and the thing that actually has real reward is having that…

但对我来说,最重要的部分和真正有真正回报的事情是……

having just my wife.

只有我的妻子。

I do not look at…

我不看……

I desperately try not to look at any other woman.

我拼命地试着不看任何其他女人。

I’m hopefully not going to get caught…

我希望不会被抓住……

Mark Zuckerberged at the White House like that.

马克·扎克伯格就是这样在白宫的。

45:37 I don’t look at porn.

我不看色情片。

My wife has complete confidence in me that there is not going to be a situation in which she has to question me in any kind of sense.

我的妻子对我完全有信心,她不会在任何情况下质疑我。

And that builds a much more deeply, I would argue, a very deep relationship because the trust is that much bigger.

我认为,这会建立一种更深厚的关系,因为信任更大。

I think the deepness of the relationship is probably proportional to the trust you have in each other.

我认为关系的深度可能与你们对彼此的信任成正比。

It’s very hard to have a deep relationship with no trust.

如果没有信任,很难建立深厚的关系。

Lex Fridman45:59

Yeah.

是的。

45:59 And a probably a prerequisite, maybe a component of trust is vulnerability to where you take the leap of being vulnerable with another human being.

也许信任的一个先决条件,也许是信任的一个组成部分,就是你在与另一个人相处时表现出脆弱的程度。

And that vulnerability when reciprocated builds this really strong trust and it’s a beautiful thing.

当这种脆弱性得到回报时,就会建立起真正牢固的信任,这是一件美好的事情。

Yeah.

是的。

46:20 I personally just…

我个人只是……

Given my position, that’s even more challenging, being vulnerable with the world and there’s a bunch of people out there that want to hurt you for it, but I think it’s worthwhile anyway to be vulnerable.

考虑到我的立场,这更具挑战性,在这个世界上保持脆弱,还有很多人想因此伤害你,但我认为无论如何保持脆弱是值得的。

ThePrimeagen46:36

It’s always worth it.

这总是值得的。

46:36 The risk is always worth it in some sense.

从某种意义上来说,冒险总是值得的。

Obviously, everyone has a different life they have to filter through their actions with, right?

显然,每个人都有不同的生活,他们必须通过自己的行为来过滤,对吧?

Because the person that has no, say, social following or anything, their risk reward profile could just be local impact, which could be just as damning or harming to them.

因为那些没有社会追随者或任何东西的人,他们的风险回报状况可能只是局部影响,这可能对他们同样有害或有害。

46:54 And so it’s always worth the risk though, in my personal opinion, because finding my wife has been obviously the most impactful or changing thing in my life.

因此,在我个人看来,冒险总是值得的,因为找到我的妻子显然是我一生中最有影响力或改变的事情。

Or second most, I’d argue that one night with God would probably be the most impactful thing that led to everything else, but then the wife would be the next most impactful.

或者第二个,我认为与上帝共度一晚可能是导致其他一切最有影响力的事情,但妻子将是第二个最有影响力的事情。

I mean, I’m cleaning up after myself and stuff now.

我的意思是,我现在正在清理自己和其他东西。

Changed man.

变了个人。

I’m a changed man.

我变了一个人。

Lex Fridman47:17

Can we try to reverse engineer that moment of you finding God.

我们可以尝试逆向工程你找到上帝的那一刻吗?

47:17 What is it at 19?

19岁是什么日子?

Because it feels like that was a big leap for you to escape the pain, to escape the addiction or the beginning of that journey.

因为感觉这对你来说是一个巨大的飞跃,让你摆脱了痛苦、摆脱了毒瘾或那段旅程的开始。

What do you think happened there?

你认为那里发生了什么?

ThePrimeagen47:37

I think it just felt like I just…

我想我只是感觉……

47:37 There was no line that I wasn’t willing to cross.

没有什么界限是我不愿意跨越的。

Everything was fine and just like…

一切都很好,就像……

It just all of a sudden, just in that moment, it’s just like I had I guess some sort of deep fear and understanding I am going down a path.

突然之间,就在那一刻,就像我有某种深深的恐惧和理解,我正在走上一条路。

Is this really the path you want to go down?

这真的是你想要走的路吗?

47:58 And I don’t know what the result of that path would be or anything like that.

我不知道这条路的结果是什么或类似的事情。

I don’t tend to speculate on things I don’t understand.

我不倾向于猜测我不理解的事情。

I just know that in that moment I had the option and I just chose…

我只知道在那一刻我有选择,我只是选择了……

I didn’t want it anymore.

我不再想要它了。

Right?

正确的?

48:13 It’s kind of mixed in this whole thing where it’s just like I had no value.

它有点混合在整个事情中,就像我没有价值一样。

I wrapped up all my meaning or value in having sex or getting laid, I had…

我把所有的意义或价值都包裹在做爱或上床中,我……

All that stuff, all the things we just talked about, that was where all my worth was.

所有这些东西,所有我们刚才谈论的东西,那就是我所有的价值所在。

And that is just such a terrible place to have your worth.

那是一个让你无法发挥自己价值的地方。

48:28 And it was just all came to a point.

一切都到了一个点。

And I can’t tell you the day of the week, I can’t tell you anything other than it was nighttime and I was in South Hedges in Montana State University, go Bobcats, that’s about…

我不能告诉你星期几,我不能告诉你除了那是晚上之外的任何事情,我在蒙大拿州立大学的南树篱,去山猫队,那是关于……

Yeah, that’s the sign that we do at football games.

是的,这就是我们在足球比赛中所做的标志。

Don’t worry about it.

不用担心。

But that’s all I can really tell you because that night was no more or less special than some other night.

但这就是我真正能告诉你的,因为那个夜晚并不比其他夜晚更特别或更不特别。

It’s just the specialness was I got at least a chance to make a choice.

特殊之处在于我至少有机会做出选择。

Lex Fridman48:58

Because you find in that advice that you can give to others who are probably…

因为你发现你可以向其他可能……的人提供建议。

48:58 There’s probably just an endless amount of people that are struggling with porn addiction now, young people.

现在可能有无数的人在与色情成瘾作斗争,年轻人。

What advice could you give to them?

您能给他们什么建议?

How to overcome it?

如何克服呢?

ThePrimeagen49:15

For me to overcome it, I had to realize that I was taking something away from my future wife.

为了克服它,我必须意识到我正在从我未来的妻子那里夺走一些东西。

49:15 Some people would be like, “Oh, well, once you get a girlfriend then you can stop.” And it’s just like, “No, because you never stopped the problem.” You don’t stop a problem by replacing it.

有些人会说,“哦,好吧,一旦你有了女朋友,你就可以停下来了。”就像,“不,因为你从来没有停止过这个问题。”更换问题并不能解决问题。

And so I didn’t have a girlfriend, I didn’t have all that.

所以我没有女朋友,我没有这一切。

I just realized that I was truly taking away from something from my future wife.

我刚刚意识到我确实从我未来的妻子那里夺走了一些东西。

And I didn’t even know my current wife at that time.

而且当时我什至不认识我现在的妻子。

She was not in the picture.

照片中没有她。

I’m not even sure if she was at Montana State University at that point.

我什至不确定她当时是否在蒙大拿州立大学。

49:43 And so it’s just that’s…

所以这就是……

Once I made that realization, I think it went from my head to my heart, which they say is the greatest distance in the universe.

一旦我意识到这一点,我想它就从我的头脑到了我的心,他们说这是宇宙中最远的距离。

I finally got it.

我终于明白了。

And that’s really where things change.

这确实是事情发生变化的地方。

49:59 The ability to say like what’s going to help you change and all that, I don’t know if there’s…

有能力说什么可以帮助你改变等等,我不知道是否有……

I don’t think there’s silver bullets, right?

我认为没有灵丹妙药,对吗?

If someone could offer you a drug…

如果有人可以给你提供药物……

I forget who says this phrase, but there’s this really interesting phrase that goes something like, he was a very depressed man and he was struggling with suicide and he writes about this in this memoir.

我忘记这句话是谁说的,但是有一个非常有趣的短语,大概是这样的,他是一个非常抑郁的人,他正在与自杀作斗争,他在这本回忆录中写下了这一点。

50:18 And he goes to these doctors and the doctors effectively say, “Well, here’s antidepressants, it’s going to help you.” And he says that, “Well, the problem was is that scientists told me that I could just touch my brain and make myself happy, and that’s it.

他去找这些医生,医生们有效地说,“好吧,这里有抗抑郁药,它会对你有帮助。”他说,“嗯,问题是科学家告诉我,我可以触摸我的大脑,让自己快乐,就是这样。

They could reach in, they could configure some stuff and I’ll be happy.” He’s like, “For me, it was a lot like going out into a field and being able to take a drug to see the rain.

他们可以介入,可以配置一些东西,我会很高兴。”他说,“对我来说,这很像走进田野,服用药物就能看到下雨。

I could look out, see the rain, it would fall down, it’d be silvery, it’d be beautiful, but all the crop would still die because there’s not actually any rain.

我可以向外看,看到雨,它会落下来,它会是银色的,它会很美丽,但所有的庄稼仍然会死,因为实际上没有下雨。

I had to discover how to be happy myself.”

我必须找到让自己快乐的方法。”

50:48 And so for me, it’s like the reason why I looked at porn is because I was unhappy.

所以对我来说,就像我看色情片的原因是因为我不快乐。

I was trying to find meaning.

我试图寻找意义。

I was trying to find value in something, right?

我试图找到某件事的价值,对吗?

Something that was supposed to finally give me this ultimate satisfaction.

本来应该最终给我带来终极满足的东西。

And it just does not, no matter how hard, and no matter how much you think it will, there is no escapade, there is no pornography that will ever give you that satisfaction you’re looking for.

但它就是不会,无论多么困难,无论你多么认为它会,没有任何越轨行为,没有任何色情内容能给你你所寻求的满足感。

That’s the reason why it’s addicting.

这就是它让人上瘾的原因。

And that’s my call to why you shouldn’t do it, but how to get out of it, I only got out of it by realizing.

这就是我对为什么你不应该这样做的呼吁,但如何摆脱它,我只是通过意识到才摆脱它。

Lex Fridman51:20

I think that’s really brilliantly described.

我认为这描述得非常精彩。

51:20 You knew that this thing you’re doing is preventing you from finding your future wife and future wife could mean more even broadly, this path to a flourishing, to a beautiful life.

你知道你正在做的这件事会阻止你找到未来的妻子,而未来的妻子可能更广泛地意味着这条通往繁荣、美好生活的道路。

51:43 I think there’s a lot of choices we make that are just preventing us from opening the door to whatever future.

我认为我们做出的很多选择只会阻止我们打开通向未来的大门。

I think what’s really nice to do is to imagine, just like we said with high school, that there are a bunch of trajectories in life where you’ll be truly happy and you need to construct your life in a way where you have the chance to travel down those paths.

我认为真正好的做法是想象,就像我们在高中时所说的那样,生活中有很多轨迹会让你真正快乐,你需要以一种有机会沿着这些路径行走的方式构建你的生活。

And there’s a bunch of addictions, there’s a bunch of choices that prevent us from traveling down those paths.

有很多上瘾,有很多选择阻止我们走上这些道路。

52:12 So just believe that you’re going to have an awesome life and remove from your life the things that are preventing you from walking down that path, which is essentially what you did.

因此,只要相信你将拥有美好的生活,并从你的生活中消除那些阻碍你走这条路的东西,这本质上就是你所做的。

It’s a leap of faith that if you let go of porn, that a better life is waiting for you on the other end.

这是一种信念的飞跃,如果你放弃色情,更好的生活就在另一端等着你。

ThePrimeagen52:32

Yeah.

是的。

52:32 I definitely can’t say how long it will take, a better life.

我绝对不能说需要多长时间,更好的生活。

But for me, there’s no way in the universe I could have had the relationship that I have without first making those steps because I couldn’t value my wife in the way that was proper for who she was.

但对我来说,如果不先采取这些步骤,我就不可能拥有现在的关系,因为我无法以适合我妻子的方式来评价她。

I would have valued her through the index or the lens that I currently was looking through.

我会通过我目前正在观察的索引或镜头来评价她。

Lex Fridman52:58

Got to ask.

得问一下。

52:58 So I’ve never done meth.

所以我从来没有吸过冰毒。

I’ve never done meth.

我从来没有做过冰毒。

ThePrimeagen53:03

That was a great segue by the way.

顺便说一句,这是一个很棒的转场。

Lex Fridman53:05

Oh, man.

哦,伙计。

53:05 I don’t know what the fuck I’m doing, honestly with this interviewing thing.

老实说,我不知道我他妈的在做什么,接受采访。

But yeah, meth and LSD…

但是,是的,冰毒和LSD……

I did ayahuasca.

我做了死藤水。

I did shrooms a bunch of times.

我做过很多次蘑菇。

And this topic, I should say that there’s a lot of, on Twitter and in the tech community in general, people speaking negatively about ayahuasca and some positively.

对于这个话题,我应该说,在 Twitter 上和整个科技社区中,有很多人对死藤水持负面言论,也有一些人持积极态度。

I think it’s such a roll of the dice.

我认为这就是掷骰子。

53:34 I had incredible experiences, but I don’t think I want to recommend it to anyone.

我有过令人难以置信的经历,但我想我不想把它推荐给任何人。

It’s a risk, it’s a serious risk.

这是一个风险,这是一个严重的风险。

It really is a roll of the dice that you could meet your demons and they could destroy you or you can meet your demons and let go of them.

这真的是掷骰子,你可能会遇到你的恶魔,他们可能会摧毁你,或者你可能会遇到你的恶魔并释放它们。

Or you could have experiences like I did, which is never…

或者你可能有像我一样的经历,这从来都不是……

Apparently I don’t have demons.

看来我没有恶魔。

I’m pretty sure they’re somewhere in the basement, but I’ve never met them on drugs.

我很确定他们在地下室的某个地方,但我从未在吸毒时见过他们。

53:58 I’m always really happy.

我总是很高兴。

I’m happy drunk.

我醉得很开心。

I’m super happy on ayahuasca, just full of love.

我对死藤水非常满意,充满了爱。

I don’t understand, I don’t understand where the demons are, but that’s my biochemistry, whatever that is.

我不明白,我不明白恶魔在哪里,但这就是我的生物化学,不管那是什么。

54:10 And for some others, one trip could be amazing and the next one could just completely destroy you and wreck your life.

对于另一些人来说,一次旅行可能令人惊叹,而下一次旅行可能会彻底摧毁你并毁掉你的生活。

So I don’t know what the recommendation from that is, maybe avoid it, but then all of us die and life…

所以我不知道这的建议是什么,也许避免它,但然后我们所有人都会死而生......

54:25 I tend to lean into adventure but drugs is…

我倾向于冒险,但毒品是……

If you fuck with the biochemistry of your brain, you can really destroy yourself in a way that it’s going to torment you.

如果你搞砸了你大脑的生物化学,你真的会以一种折磨你的方式摧毁你自己。

So I would generally recommend that people avoid drugs altogether, probably, unless you’re a crazy motherfucker.

所以我一般会建议人们完全避免吸毒,除非你是个疯狂的混蛋。

Hunter S.

亨特·S。

Thompson.

汤普森.

ThePrimeagen54:53

What an intro to this topic.

这是对这个主题的介绍。

Lex Fridman54:54

I’m sorry.

对不起。

54:54 What’s meth like?

冰毒是什么样的?

ThePrimeagen54:57

That’s a great intro.

这是一个很棒的介绍。

54:57 I like…

我喜欢……

You are very correct in the sense that there is, at least when it comes to hallucinogens, there is a wild variance to what you’re going to experience.

从某种意义上说,你是非常正确的,至少在致幻剂方面,你将经历的事情存在很大的差异。

And there is no guarantee, there’s no…

没有保证,没有……

Just because you buy the product, it doesn’t mean you’re going to have a good time, right?

仅仅因为您购买了该产品,并不意味着您会玩得很开心,对吗?

There’s a lot of…

有很多……

55:14 Personally, I find that stuff to be very…

就我个人而言,我发现这些东西非常……

I believe in the spiritual realm, right?

我相信精神领域,对吗?

I believe demons and angels exist.

我相信恶魔和天使是存在的。

I believe God exists.

我相信上帝存在。

And that whole realm is like…

整个领域就像……

I don’t know what it opens you up to, but it’s much, much different experience.

我不知道它会给你带来什么,但这是非常非常不同的体验。

Now, some people will be like, “Oh, it’s just a bunch of chemicals in your brain.

现在,有些人会说,“哦,这只是你大脑中的一堆化学物质。

They all get mixed up.

他们都搞混了。

LSD just takes all of your pathways and they all go…

LSD 会占据你所有的路径,然后它们都会消失……

They all get kind of scrambled up in your brain.”

它们都会在你的大脑中混乱起来。”

55:37 And it’s just like, “Yeah, the experiences are profound.” I had some really bizarre, very cool, very awful…

就像,“是的,这些经历是深刻的。”我有一些非常奇怪的、非常酷的、非常可怕的……

I’ve had all the experiences in them all.

我有过所有这些经历。

I can just tell you that I personally always say the same thing.

我只能告诉你,我个人总是说同样的话。

It’s like, choices that I made I can never take back.

就像,我做出的选择永远无法收回。

I would never take that away from myself because I don’t know if I would be who I am today without all those experiences going up to it.

我永远不会把它从自己身上夺走,因为我不知道如果没有这些经历,我是否会成为今天的我。

55:58 But if you have not had that experience, I’m on your team, or at least partially on your team, maybe more severely, I don’t think you need those experiences.

但如果你没有这样的经验,我在你的团队中,或者至少部分在你的团队中,也许更严重的是,我认为你不需要这些经验。

I don’t think they’re going to…

我不认为他们会……

You don’t have to put yourself through that to make a good decisions or to realize that people have value, right?

你不必让自己经历这些才能做出正确的决定或意识到人们的价值,对吗?

You don’t have to do that.

你不必这样做。

56:16 So as far as what is meth like?

那么冰毒到底是什么样的呢?

Meth is like…

冰毒就像……

If you’ve ever done cocaine, cocaine starts off with like a 15-minute dance party.

如果您吸食过可卡因,那么可卡因的开始就像一场 15 分钟的舞会。

Just…

只是……

It’s just so intense.

真是太激烈了。

It’s so great.

太棒了。

And then it just followed up with like a five hour…

然后就持续了大约五个小时……

just feeling wiggly, right?

只是感觉摇摆不定,对吗?

I don’t know how else to describe it.

我不知道还能怎么形容。

Meth is like that except for I didn’t get as much dance party or any dance party, but instead I just got that part for like 12 hours.

冰毒就是这样,除了我没有参加那么多的舞会或任何舞会,但我只参加了大约 12 个小时的那部分。

Lex Fridman56:40

Yeah.

是的。

ThePrimeagen56:41

So did a lot of skateboarding, did a lot of running around, staying all night.

于是,我玩了很多滑板,跑了很多遍,整晚都待在那里。

Lex Fridman56:46

Would you say it’s a pleasant feeling or is it more like an escape from the loneliness of life?

你会说这是一种愉快的感觉还是更像是一种逃避生活孤独的感觉?

56:46 Is it pleasant or negative in the actual moment?

当下的心情是愉快的还是消极的?

Not the consequences but in the moment.

不是后果,而是当下。

ThePrimeagen57:01

So I mean, this is just a very interesting kind of area, which is that not…

所以我的意思是,这只是一个非常有趣的领域,而不是……

57:01 Universally, you can’t say that.

普遍来说,你不能这么说。

Often you’ll find that there’s kind of these two groups of drug addicts.

通常你会发现有这两类吸毒者。

There’s those that like the opioids and those that like the uppers.

有些人喜欢阿片类药物,有些人喜欢鞋面。

They typically don’t like…

他们通常不喜欢……

There’s very few people in the drug world that do both.

毒品界很少有人能同时做到这两点。

They’re really just like find their side and they go for it.

他们真的很想找到自己的立场并为之奋斗。

57:25 So is meth a thing that everybody’s going to enjoy?

那么冰毒是每个人都会喜欢的东西吗?

Well, categorically, as you can see, and just how people experience drug addiction, no.

嗯,正如你所看到的,人们是如何经历毒瘾的,绝对不是。

But for me it’s just I had a really…

但对我来说,这只是我真的……

It kind of feeds into the ADHD nature of this…

它有点融入了这种多动症的本质……

Because you know you’re kind of high energy, you’re like always in the moment.

因为你知道自己精力充沛,总是活在当下。

So it’s just like you’re in the moment, but it’s just like, “Oh, I’m in the moment!” Everything’s just so intense!

所以就像你就在当下,但就像,“哦,我就在当下!”一切都是那么激烈!

57:48 You just want to really be in the moment.

你只想真正活在当下。

And so it’s just experiencing that constantly.

所以它只是不断地经历。

And so was that great?

那很棒吗?

Well, some people…

嗯,有些人……

My wife always tells me this, being nervous or…

我妻子总是告诉我这个,因为紧张或者……

I forget, the anxiety of a situation can also be the same thing as like thrill.

我忘记了,某种情况下的焦虑也可以和兴奋一样。

I forget the exact way.

具体方法我忘记了。

She’s probably super disappointed that I messed this up.

她可能对我搞砸了这件事感到非常失望。

58:10 But it’s like you could perceive those two experiences in very different lights.

但这就像你可以从非常不同的角度来感知这两种体验。

Some people get in front of a crowd and it’s thrilling.

有些人出现在人群面前,这很令人兴奋。

Some people get in front of it and it’s just the worst experience of their lifetime.

有些人面对它,这只是他们一生中最糟糕的经历。

They would actually literally rather die, which is a crazy thing to think about than stand up and speak.

他们实际上宁愿死,这比站起来说话更疯狂。

58:25 And so for me, meth was that thrilling side, but at the same time, it still didn’t quite give me that thing I wanted, whatever I was looking for.

所以对我来说,冰毒是令人兴奋的一面,但与此同时,它仍然没有完全给我我想要的东西,无论我在寻找什么。

I’d use it to help try to get that thing I want, but it was never giving me that thing I wanted.

我会用它来帮助尝试得到我想要的东西,但它从来没有给我我想要的东西。

Lex Fridman58:43

Yeah.

是的。

58:43 For me, I’ve had all really wonderful experiences.

对我来说,我经历过所有非常美妙的经历。

Do not recommend them.

不要推荐他们。

But like with shroom-

但就像蘑菇一样——

ThePrimeagen58:50

That’s a YouTube policy by the way that you have to say, “By the way, do whatever you do, do not do a illegal activity.”

顺便说一句,这是 YouTube 的一项政策,你必须说:“顺便说一句,无论你做什么,都不要从事非法活动。”

Lex Fridman58:54

I-

我-

ThePrimeagen58:54

But I had great experiences, but whatever you do, don’t do it.

但我有过很棒的经历,但无论你做什么,都不要这样做。

Lex Fridman58:57

Mr. ThePrimeagen, I have no master.

ThePrimeagen先生,我没有主人。

58:57 I don’t have YouTube or whatever.

我没有 YouTube 之类的。

I’ll say whatever the fuck I want.

我他妈想说什么就说什么。

I’m just-

我只是——

ThePrimeagen59:06

But seriously, you do.

但说真的,你确实这么做了。

Lex Fridman59:10

…

……

59:10 kind…

善良…

No.

不。

No, I don’t give a shit about YouTube or anybody, honestly.

不,老实说,我根本不在乎 YouTube 或任何人。

I’m just careful about the words I say because just because I had positive experiences, I don’t want young people listening to this think they should try the experience.

我只是对自己所说的话很谨慎,因为仅仅因为我有过积极的经历,我不希望年轻人听到这些就认为他们应该尝试这种经历。

I think the much more powerful message is that life is awesome even without that.

我认为更强有力的信息是,即使没有这些,生活也很棒。

That’s something I definitely experiment with on the alcohol side.

这绝对是我在酒精方面尝试过的东西。

59:34 So for me, I’m an introvert.

所以对我来说,我是一个内向的人。

I’m afraid of the world.

我害怕这个世界。

Social interaction fills me with anxiety.

社交互动让我充满焦虑。

Alcohol is definitely a thing that helps with that sometimes, but I think honestly it’s not even the alcohol, it’s having to do something while a person is talking to me.

有时酒精确实是有帮助的,但老实说,这甚至不是酒精,而是当一个人跟我说话时必须做点什么。

I could just drink a liquid.

我只能喝液体。

“Yeah.

是的。

Mm-hmm.” There’s a social thing.

嗯嗯。”有一个社交的事情。

With a beer, it’s like…

喝了一杯啤酒,就像……

“Yeah.

是的。

Uh-huh.

嗯嗯。

Yeah, we’re having fun.” And I think it’s…

是的,我们玩得很开心。”我认为这是……

1:00:02 For me, it works the same as…

对我来说,它的作用与...相同

If the liquid actually looks like alcohol, it does the same purpose often because alcohol…

如果液体实际上看起来像酒精,它通常会起到同样的作用,因为酒精......

If you have a whiskey or a beer looking thing, it kind of sends a signal that we should be having fun.

如果你有威士忌或啤酒的东西,它会发出一个信号,表明我们应该玩得很开心。

So we’re socializing, right?

所以我们正在社交,对吧?

We’re fucking getting crazy.

我们他妈快疯了。

And then that mean…

然后这意味着……

1:00:24 You don’t actually need the alcohol.

你实际上并不需要酒精。

You can get fucking crazy without the alcohol substance, but there is some kind of social signaling that happens when you have a drink in your hand.

如果没有酒精物质,你可能会发疯,但当你手里拿着饮料时,会发生某种社交信号。

So I’ve been to get-togethers where I’m not drinking, but just doing a fake drink situation and I can also have fun.

所以我参加聚会时我不喝酒,只是假装喝酒,我也能玩得很开心。

So I’ve been…

所以我一直...

1:00:47 But that said, traveling across the world, there are times when you get to be able to down a bottle of vodka.

但话虽如此,在环游世界时,有时您还是能够喝下一瓶伏特加。

That’s very essential for my line of work, but that’s almost like a cultural experience versus a necessary component of a successful social interaction and one that brings you happiness.

这对我的工作来说非常重要,但这几乎就像一种文化体验,而不是成功的社交互动和给你带来快乐的必要组成部分。

1:01:05 So not drinking…

所以不喝酒...

I think you can have fun and not drink too.

我觉得你可以玩得开心,但不要喝酒。

So all of this…

所以这一切……

Man, I’m so careful saying drugs have had a good effect on my life because I think for most people, no, for majority of people, they will in the long term have a negative effect.

伙计,我很谨慎地说毒品对我的生活产生了良好的影响,因为我认为对于大多数人来说,不,对于大多数人来说,从长远来看,它们会产生负面影响。

So I think if you were to choose one or the other, just no drugs and no drinking means one day you can be the President of the United States kids.

所以我认为,如果你要选择其中之一,只要不吸毒、不喝酒,就意味着有一天你可以成为美国孩子们的总统。

And I should say…

我应该说……

Oh, man.

哦,伙计。

ThePrimeagen1:01:42

That is-

那就是——

Lex Fridman1:01:42

That means Diet Coke-

这意味着健怡可乐——

ThePrimeagen1:01:43

…

……

1:01:43 his funniest line.

他最有趣的台词。

Lex Fridman1:01:44

Diet Coke is great.

健怡可乐很棒。

ThePrimeagen1:01:45

That’s his funniest line, which is, “You would hate me if I drank.” Which I just like…

这是他最有趣的台词,“如果我喝酒你就会恨我。”我就是喜欢……

1:01:45 To me, that tickles me to no end.

对我来说,这让我很痒。

Just like, “Oh my gosh, that is such a funny line.”

就像,“天哪,这句话真有趣。”

Lex Fridman1:01:52

Self-awareness and humor is wonderful there, but yeah.

自我意识和幽默感很棒,但是是的。

ThePrimeagen1:01:55

But I am on your team.

但我在你的团队里。

1:01:55 All of the reasons why I used drugs and all that, it’s some level of escapism.

我吸毒的所有原因都是某种程度的逃避现实。

I’m sure that’s like…

我确信那就像……

would be the archetype or the box I’d put that into or the pursuit of trying to feel something that cannot come from them.

将是我将其放入的原型或盒子,或追求尝试感受无法来自他们的东西。

1:02:09 It’s like trying to find meaning in your job.

这就像试图寻找工作的意义一样。

You can find satisfaction in what you do.

你可以从你所做的事情中找到满足感。

That is a very good thing.

这是一件非常好的事情。

You can find satisfaction and be happy with what you’ve created.

您可以对自己所创造的东西感到满足和高兴。

You can be thrilled by the experience, but you cannot find…

你可能会对这种经历感到兴奋,但你找不到……

I doubt you can find purpose.

我怀疑你能否找到目标。

Maybe some people in specific jobs.

也许有些人从事特定的工作。

1:02:26 This obviously have very broad strokes, I’m painting with.

这显然有非常广泛的笔触,我正在用它来绘画。

Like if you’re an EMT and you save someone’s life, maybe there can be purpose in that whole experience, right?

就像如果你是一名急救人员并且你拯救了某人的生命,也许整个经历都是有目的的,对吗?

So I’m not saying all things, but as programming goes, most programmers, you cannot just simply find your purpose.

所以我并不是说所有的事情,但随着编程的发展,大多数程序员,你不能只是简单地找到你的目的。

1:02:39 And same with drugs, you cannot find that thing you’re looking for, but they are a very great distraction.

与毒品一样,你找不到你正在寻找的东西,但它们是一种非常大的干扰。

And then at some point that distraction comes with a heavy cost.

然后在某些时候,这种分心会带来沉重的代价。

I think Dr. Faust would probably know the best about the heavy cost, but it’s just you’re making one trade for another and at some point the bill comes due and that bill can be very, very large.

我认为浮士德博士可能最了解高昂的成本,但这只是你在用一项交易换另一项交易,到了某个时候账单到期了,而且这笔账单可能非常非常大。

Lex Fridman1:03:00

The other moment you mentioned that I think is really inspiring is that you failed pre-calculus.

你提到的另一个我认为真正鼓舞人心的时刻是你预科微积分失败了。

1:03:00 You really struggled in school.

你在学校确实很挣扎。

You realize that school is really hard and then eventually you’re able to sort of persevere and, I don’t know, break through that wall of struggle.

你意识到学校真的很难,然后最终你能够坚持下去,我不知道,冲破那堵挣扎的墙。

Can you, by way of advice, figure out what happened and what kind of advice you can give to people who are struggling?

您能否通过建议的方式弄清楚发生了什么事以及您可以为陷入困境的人们提供什么样的建议?

ThePrimeagen1:03:25

Yeah.

是的。

1:03:25 I’ll paint it in a more clear picture, or a very fast speed run of it is that I took pre-calculus, failed.

我会把它画成更清晰的图,或者以非常快的速度运行它,就是我预科微积分,失败了。

I took pre-calculus again, failed, took pre-calculus again and got a C.

我再次参加了微积分预科课程,失败了,再次参加了微积分预科课程,并获得了 C。

So I took it three times.

所以我就拿了三遍。

Then I took Calc over the summer, so Calc 1.

然后我在夏天学习了 Calc,所以 Calc 1。

In that one at the end, the final…

在最后的那个,最后……

The final was a two-hour final.

决赛进行了两个小时的决赛。

I finished it in 30 minutes and that was the highest score in all of the school.

我用了30分钟就完成了,这是全校最高分。

And I proceeded to be the highest score in all calculus and Diffy Q.

我在所有微积分和 Diffy Q 中取得了最高分。

1:03:54 I was the only person out of 400 people to finish the Diffy Q final.

我是 400 人中唯一完成 Diffy Q 决赛的人。

And I got the highest grade.

我得到了最高分。

And so I was like…

所以我就像……

I got really good.

我真的很好。

So I somehow went from really bad to really good.

所以我不知何故从非常糟糕变成了非常好。

And my only…

还有我唯一的……

The thing that I did is that I had to win.

我所做的就是我必须赢。

It was not a option.

这不是一个选择。

It was not like, “Oh, this would be really great.” It’s like, “I will not graduate, I will not finish my stuff if I cannot do this.”

这并不是说,“哦,这真的很棒。”就像,“如果我做不到这一点,我就不会毕业,我就不会完成我的工作。”

1:04:16 And so every single day I got up, I went to my however many hour class it was.

所以每天我起床后,不管上课时间有多长,我都会去参加。

Right after that, I went straight to the math learning center, did those problems.

之后我就直接去了数学学习中心,做那些题。

When I got home, I just got the book and it had the odd answers in the back.

当我回到家时,我刚刚拿到这本书,它的后面有奇怪的答案。

And I would try to walk through the problems over and over and over and over again until I absolutely got it.

我会尝试一遍又一遍地解决这些问题,直到我完全明白为止。

And it just became this thing where it’s just I…

结果就变成了只有我一个人的事情……

1:04:37 Just simple rote memory took over and the ability to just effectively have the times table, but for calculus, all stuck in my head.

只是简单的死记硬背和有效地掌握乘法表的能力,但对于微积分,所有这些都停留在我的脑海中。

Inverse trig substitution, trig substitution, doing Taylor and MaClaurin series.

逆三角替换、三角替换、泰勒级数和麦克劳林级数。

All those things, just over and over and over and over again.

所有这些事情,一遍又一遍,一遍又一遍。

Eventually they became easy.

最终他们变得容易了。

They became very easy.

他们变得非常容易。

It’s just that I had to cram it in there.

只是我不得不把它塞在那里。

1:04:57 And some people, you hear these stories, whether they barely show up to class and they get As, I’ve never been that person.

有些人,你听过这些故事,无论他们几乎没来上课,还是得了A,我从来都不是那样的人。

I’ve always been the person that has to sit down, read through everything, and I’m bad at abstract concepts.

我一直是那种必须坐下来阅读所有内容的人,而且我不擅长抽象概念。

I like the concrete into the abstract, not the abstract into the concrete.

我喜欢把具体变成抽象,而不是把抽象变成具体。

Very bad at talking about things theoretically, then trying to apply them.

非常不擅长从理论上谈论事物,然后尝试应用它们。

But if I can do it once literally, then it’s really easy for me to go into the abstract.

但如果我能从字面上做到一次,那么我就很容易进入抽象领域。

1:05:20 And so it’s just like…

所以就像……

For me, it’s just I had…

对我来说,这只是我所拥有的……

There’s no substitute for the hours.

时间是无可替代的。

So if I were to give advice, it’s just that you have to have time in the saddle.

因此,如果我要提供建议,那就是你必须有时间坐在马鞍上。

Hour after hour will make you slowly better.

一小时又一小时会让你慢慢好起来。

And at first, it’s crushing.

一开始,这令人心碎。

It’s defeating and it’s not fun because you are bad at it.

这是一种失败,而且并不有趣,因为你不擅长。

1:05:40 But then at some point you’re just not bad at it if you can just do it long enough, and you’ll start getting okay at it.

但到了某个时候,如果你能做足够长的时间,你就不会做得不好,并且你会开始变得好起来。

And then at some point you might even get good at it.

然后在某个时候你甚至可能会擅长它。

And when you get good at something, it feels amazing.

当你擅长某件事时,感觉棒极了。

1:05:50 There’s like an exploratory thing.

这就像一个探索性的事情。

If you’ve ever played a musical instrument, you stop having to think about all the little teeny things you have to do to be able to play something correctly.

如果你曾经演奏过一种乐器,你就不再需要考虑所有你必须做的小事才能正确地演奏某些东西。

And you start thinking about how you can explore that space.

然后你开始思考如何探索这个空间。

1:06:00 …play something correctly and you start thinking about how you can explore that space.

……正确地演奏一些东西,你就会开始思考如何探索那个空间。

It’s like it’s a completely different problem.

这就像这是一个完全不同的问题。

And same with programming, programming has an identical kind of feel to it.

与编程一样,编程也有同样的感觉。

It’s just like you’ll cross that barrier and it becomes magical as opposed to a chore.

就像你会跨越那个障碍一样,它变得神奇而不是苦差事。

Lex Fridman1:06:15

Yeah.

是的。

1:06:15 Once you cross that barrier, somehow other things become easier.

一旦你跨越了这个障碍,其他事情就会变得更容易。

But then if you want to have a truly successful life, then you find the next barrier.

但如果你想拥有真正成功的生活,那么你就会发现下一个障碍。

Yeah, I’ve always been the same.

是的,我一直都是这样。

Everything’s come really hard.

一切都来得很艰难。

ThePrimeagen1:06:27

Yeah, I’ve had no free lunches.

是的,我没有免费的午餐。

1:06:27 Everything’s just been a lot of pain and struggle.

一切都充满了痛苦和挣扎。

Lex Fridman1:06:35

I think somebody said that on this topic that you think work smarter not harder is a phrase that you dislike.

我想有人说过,在这个话题上,你不喜欢“你认为更聪明地工作而不是更努力地工作”这样的说法。

1:06:35 Somebody on Reddit told me this.

Reddit 上有人告诉我这一点。

ThePrimeagen1:06:47

Yeah.

是的。

1:06:47 I don’t just dislike it.

我不只是不喜欢它。

I hate that phrase.

我讨厌这句话。

Lex Fridman1:06:49

Okay.

好的。

1:06:49 Tell me about your hatred.

告诉我你的仇恨。

How do you feel?

你感觉如何?

ThePrimeagen1:06:54

The reason why I dislike that is that there is kind of a hidden suggestion there, which is that you already know what smarter is, so just do that.

我不喜欢这样做的原因是,那里有一种隐藏的建议,那就是你已经知道什么是更聪明,所以就这么做吧。

1:06:54 That actually things should be easy.

实际上事情应该很容易。

You should just not have to try that hard.

你不应该那么努力。

You should just do the quick, easy, obvious path and boom, it’s done.

你应该只走快速、简单、明显的路径,然后就完成了。

It’s like I’ve never experienced that in anything I’ve done.

就好像我从来没有在我做过的任何事情中经历过一样。

Everything is actually really hard and most of the time I don’t even know what I’m doing, so therefore I don’t even know what smart looks like.

其实一切都很难,很多时候我什至不知道自己在做什么,所以我什至不知道什么是聪明。

And so for me, the only way I can learn how to work smart is by working very, very hard and knowing that there’s no shortcuts.

所以对我来说,学习如何聪明工作的唯一方法就是非常非常努力地工作,并且知道没有捷径。

And then when I finally figure out what smart is, when I work smart and work hard, it is that much better.

然后,当我最终弄清楚什么是聪明时,当我聪明地工作并努力工作时,那就好多了。

Lex Fridman1:07:39

I think there’s a deep profound truth to that.

我认为这有一个深刻的道理。

ThePrimeagen1:07:42

There’s a lot of these phrases that just drive me nuts in our society,

在我们的社会里有很多这样的短语让我发疯,

Lex Fridman1:07:45

But that one is…

但那个是……

1:07:45 Sorry, that one is really accepted if you can just linger on it because it really bothers me as well.

抱歉,如果你能坚持下去的话,那真的是可以接受的,因为它也确实困扰着我。

So one, which is a really nice thing you said, the presumption there is things should be easy and you’re a failure if you don’t see the easy path.

所以,你说的是一件非常好的事情,假设事情应该很容易,如果你看不到简单的道路,你就是一个失败者。

That’s kind of the implied thing.

这就是暗示的事情。

ThePrimeagen1:08:02

Just work smart, daug, why are you putting in all those hours?

聪明地工作吧,老兄,你为什么要花那么多时间呢?

Lex Fridman1:08:05

And so it makes a lot of people that struggle feel like they’re a failure because I don’t see it.

因此,这让很多正在奋斗的人感觉自己是个失败者,因为我看不到这一点。

1:08:05 And then the choice they have, well, I’ll just be lazy and then maybe the profound truth will come to me somehow.

然后他们有选择,好吧,我只是懒惰,然后也许深刻的真理会以某种方式来到我身边。

And yeah, I don’t think I’ve ever, and I don’t think I’ve met great engineers that find the smart way without the extremely hard work.

是的,我想我从来没有遇到过,我想我也没有遇到过那些不经过极其艰苦的工作就能找到明智方法的伟大工程师。

The annoying thing about those great engineers is then looking back, they forget the hard work because they remember all the joy they now are experiencing from all the efficient, smart work they figured out how to do.

对于那些伟大的工程师来说,令人烦恼的是,当他们回顾过去时,他们忘记了辛苦的工作,因为他们记得他们现在从他们想出的所有高效、聪明的工作中体验到的所有快乐。

They forget.

他们忘记了。

So when they give advice they give the stupid advice of, well, just do it like the easy way

因此,当他们提供建议时,他们会给出愚蠢的建议,好吧,就用简单的方法来做吧

1:08:53 And here’s the easy way.

这是简单的方法。

But no, you have to put in the hours.

但不行,你必须投入时间。

Musical instrument is a beautiful example of guitar and piano.

乐器是吉他和钢琴的一个美丽例子。

I’ve put in, I don’t know how many thousands of hours.

我已经投入了,不知道有多少个小时。

And now when I’m explaining stuff jiu-jitsu as well, I sound like one of those people just relax in jiu-jitsu.

现在,当我也在解释柔术时,我听起来就像是那些只是在柔术中放松的人之一。

By the way, just relax is a really wonderful thing for physical endeavors like piano and so on.

顺便说一句,对于钢琴等体力活动来说,放松确实是一件很棒的事情。

But to learn how to relax your hand, how to relax your mind, your body and use whatever the biomechanics of your body to apply the correct kind of leverage and the timing and all that, that takes thousands of hours of learning.

但是要学习如何放松你的手,如何放松你的思想和身体,以及如何利用你身体的生物力学来应用正确的杠杆类型和时机等等,这需要数千小时的学习。

Just to learn how to relax takes a lot of really hard work.

仅仅学习如何放松就需要付出很多艰苦的努力。

In jiu-jitsu that takes many months of getting your ass beat over and over until you ride the bus home crying.

在柔术中,你需要好几个月的时间一遍又一遍地挨打,直到你哭着坐公共汽车回家。

1:09:55 Your ego completely shattered and destroyed.

你的自我彻底粉碎和摧毁。

And then a little element is figured out late that night or next morning.

然后当晚或第二天早上就想出了一个小要素。

And from the depression, there’s this little plant that grows this flower of insight.

从抑郁症中,有一种小植物长出了洞察力之花。

And you use that insight to then get your ass kicked again all next month and year.

然后你利用这种洞察力,在下个月和下一年再次让你的屁股被踢。

And then you grow and grow and grow.

然后你就会成长、成长、成长。

And from that you discover how beautifully simple jiu-jitsu is or Judo is, just speaking for myself, or piano or guitar.

从中你会发现柔术或柔道是多么美丽简单,仅就我自己而言,或者钢琴或吉他。

And then yes, the profound truth or the mastery of a skill feels simple when you finally arrive to it, but the path for most people is going to be a hard one.

是的,当你最终到达深刻的真理或掌握一项技能时,你会感觉很简单,但对大多数人来说,这条路将是一条艰难的路。

ThePrimeagen1:10:46

I think I should make an addendum to the phrase, I think the phrase should be work hard, get smart.

我认为我应该对这句话做一个补充,我认为这句话应该是努力工作,变得聪明。

Lex Fridman1:10:51

Nice.

好的。

1:10:51 That’s a t-shirt.

那是一件T恤。

ThePrimeagen1:10:53

That’s what it should be.

事情应该如此。

Lex Fridman1:10:54

Yeah, agreed.

是的,同意。

1:10:54 Okay, that was a tangent of a tangent.

好吧,这是切线的切线。

ThePrimeagen1:10:57

Can I say one more cultural phrase that I absolutely hate?

我还能再说一个我绝对讨厌的文化短语吗?

Lex Fridman1:10:59

Yes.

是的。

ThePrimeagen1:11:01

The journey is better than the destination.

旅程比目的地更好。

1:11:01 Everyone’s heard this.

每个人都听说过这个。

Just take one second to apply what that means.

只需花一秒钟来应用这意味着什么。

That means forever starting from now, you are only going towards a place that’s worse.

这意味着从现在开始,你只会走向更糟糕的地方。

That literally is what it means.

从字面上看就是这个意思。

Enjoy the journey, celebrate the destination, that should be what it would be but no.

享受旅程,庆祝目的地,这本该是这样,但事实并非如此。

People say these phrases, they’re everywhere.

人们说这些短语,它们无处不在。

There’s these very shallow phrases that have no logical bounds to them.

这些非常浅薄的短语没有逻辑界限。

You’re just like, why would the journey ever be better than the destination?

你会想,为什么旅程会比目的地更好呢?

I think this might even be a C.S.

我认为这甚至可能是 C.S.

Lewis quote is that C.S.

刘易斯引用的是 C.S.

Lewis was like, nope, this is terrible.

刘易斯说,不,这太糟糕了。

The journey is not in fact better than the destination.

事实上,旅程并不比目的地更好。

Lex Fridman1:11:43

I love the demotivational posters.

我喜欢那些消极的海报。

1:11:43 Progress, moving forward is better than moving backwards even if you’re still going nowhere.

进步,前进比倒退要好,即使你仍然一事无成。

There’s a lot-

有很多——

ThePrimeagen1:11:54

I feel that one so much being in California for a few years, that is painful.

我觉得在加州呆了几年是很痛苦的。

Lex Fridman1:12:00

Positivity, if it doesn’t break you today don’t worry, it will try again tomorrow.

积极,如果今天没有让你崩溃,别担心,明天它会再试一次。

1:12:00 It’s just a lot of really great posters.

这只是很多非常棒的海报。

ThePrimeagen1:12:07

I didn’t even know this was a thing.

我什至不知道这是一件事。

Lex Fridman1:12:09

This is a thing.

这是一件事。

ThePrimeagen1:12:10

Oh my gosh, I want that.

哦天哪,我想要那个。

Lex Fridman1:12:11

Yeah.

是的。

ThePrimeagen1:12:12

Hey.

嘿。

1:12:12 Hi, this is ThePrimeagen.

大家好,我是 ThePrimeagen。

One thing that I forgot to mention in this podcast, which feels just so foolish to me for forgetting, is just what a big role my mom played in my life.

我在这个播客中忘记提及的一件事是,我的妈妈在我的生活中扮演了多么重要的角色,我觉得忘记这一点真是太愚蠢了。

She had to work 18 hours a day after my dad died.

我父亲去世后,她每天必须工作 18 个小时。

She really made her house be able to survive.

她确实让她的家能够生存下去。

I always looked up to her and I always thought her amazing.

我一直很尊敬她,我一直认为她很了不起。

And she really was the reason why when I decided to get my butt kicked back in gear, she’s just someone who I looked to as an internal inspiration for me to continuing, to keep on going because I really wanted to make her proud.

她确实是我决定重新振作起来的原因,她只是我的内在激励,让我继续前进,因为我真的想让她感到骄傲。

And all those years of just high energy effort, I really wanted to make sure that she knew that I was just so dang appreciative for it.

这么多年的高能量努力,我真的很想确保她知道我对此非常感激。

So hey, I just wanted to say thank you.

所以嘿,我只是想说谢谢。

Love you, mom.

爱你,妈妈。

Lex Fridman1:12:55

For people who don’t know, you worked in Netflix.

也许有人不知道,您曾在 Netflix 工作。

ThePrimeagen1:12:59

By the way.

顺便一提。

Lex Fridman1:13:00

By the way.

顺便一提。

1:13:00 Now, how did you go from there, from the hardship that we mentioned, from the struggle, from the addictions and so on to a place where you were working at this incredible engineering company and building cool shit there?

现在,你是如何从那里,从我们提到的困难,从挣扎,从成瘾等等,到你在这家令人难以置信的工程公司工作并在那里建造很酷的东西的地方?

So tell the Netflix story.

那么请讲述 Netflix 的故事。

ThePrimeagen1:13:21

Yeah, so I kind of alluded to it earlier that I wanted to do my own startup so for, I forget how long it was, one or two years or two and a half years, built a startup.

是的,所以我早些时候提到过我想自己创业,所以我忘记了花了多长时间,一两年或两年半,建立了一家初创公司。

1:13:21 PHP, jQuery, everyone’s favorite language is all put together.

PHP、jQuery,大家最喜欢的语言都放在一起了。

You can solve math stuff with jQuery.

您可以使用 jQuery 解决数学问题。

So I just was totally into just non-stop doing that.

所以我完全热衷于不停地这样做。

This is the height of Stack Overflow.

这是Stack Overflow 的高度。

I was asking really dumb questions on Stack Overflow like what is more pythonic?

我在 Stack Overflow 上问了一些非常愚蠢的问题,比如什么更Pythonic?

And then you get a bunch of up votes and try to steal a bunch of karma away, all the fun stuff to do.

然后你会得到一堆赞成票,并试图窃取一堆业力,所有有趣的事情都可以做。

Good times.

美好时光。

And I was just so into it breathing and I just breathe it in, breathe it out, and that’s what I do all day every day.

我非常喜欢呼吸,我只是吸气,呼气,这就是我每天所做的事情。

And so it’s just like non-stop building of a startup.

这就像不间断地创建一家初创公司一样。

Ultimately that startup failed and so I had to go get a real job.

最终那家初创公司失败了,所以我不得不去找一份真正的工作。

Lex Fridman1:14:06

Can you say what the startup was?

你能说一下初创公司是什么吗?

ThePrimeagen1:14:08

It is so wild thinking about it in the past.

过去想起来真是太疯狂了。

1:14:08 Before I tell you what it is, I want to tell one quick thing about my dad.

在我告诉你这是什么之前,我想先简单介绍一下我父亲的一件事。

My dad in the early ’90s, like ’91, ’92, was building kind of a phone card company where you’d be able to pre-purchase long-distance minutes.

我父亲在 90 年代初,就像 91 年、92 年一样,正在建立一家电话卡公司,你可以在其中预先购买长途通话时间。

Now, if you remember the ’90s at about what ’97, ’98, ’99, 10-10-220, all those different things down the center, all those companies where you can pre-purchase long-distance minutes kind of came out and were very, very big.

现在,如果你还记得 90 年代,大约是 97、98、99、10-10-220,所有这些不同的东西都在中心,所有那些你可以预先购买长途通话时间的公司都出现了,而且规模非常非常大。

And so my dad was six years early to that notion and ultimately his startup failed.

所以我父亲比我早六年就提出了这个想法,但最终他的创业失败了。

But he was just really early to something that would catch on really, really big specifically in the telecommunication space.

但他只是很早就开始做一些会非常非常流行的事情,特别是在电信领域。

1:14:51 Me as I grew up and did my own startup, I did a startup where was text message marketing.

当我长大并开始自己创业时,我创办了一家短信营销初创公司。

This was in 2010 where you could receive, say texts about various deals, all that kind of stuff.

那是在 2010 年,你可以收到各种交易的短信,诸如此类的东西。

And of course, 10 years later now you don’t stop receiving texts and text message marketing is all the rage.

当然,十年后,你仍然不会停止接收短信,短信营销也风靡一时。

And so I also, much like my father had a startup in the telemarketing space in which was just like a half decade too early.

所以我也像我父亲一样,在电话营销领域创办了一家初创公司,但时间还早了五年。

Lex Fridman1:15:15

So is it fair to say you’re almost always ahead of your time, that you’re a visionary of sorts?

那么,可以公平地说,你几乎总是走在时代的前面,你是一个有远见的人吗?

ThePrimeagen1:15:20

No, in fact, I am not ahead of my time.

不,事实上,我并没有走在时代的前面。

1:15:20 I just got, some would say I got unlucky on that situation.

我刚刚得到,有些人会说我在这种情况下运气不好。

But it seems so obvious to me at that time when I was doing it, 80% of phones were dumb phones.

但在我当时做这件事时,我觉得很明显,80% 的手机都是哑手机。

Most people had flip phones.

大多数人都有翻盖手机。

When I went and sold Via Text, is what the name was of that specific product.

当我通过 Text 销售时,就是该特定产品的名称。

And we had the short code via text too, so it was pretty clever, six digits.

我们也通过文本获得了短代码,所以它非常聪明,是六位数字。

When I went out and sold it, I only had a flip phone during that time.

当我出去卖的时候,我当时只有一部翻盖手机。

I didn’t even have a smartphone because they were kind of untenable for a lot of people.

我什至没有智能手机,因为它们对很多人来说有点站不住脚。

So it’s kind of just wild times to think about.

所以想想,这真是一段疯狂的时光。

1:15:56 But then after that, obviously had to get a real job.

但在那之后,显然必须找到一份真正的工作。

We were living in an apartment right next to campus, Bozeman, Montana.

我们住在蒙大拿州博兹曼校园旁边的一套公寓里。

And the guy below us must’ve been on some amount of drugs.

我们下面的那个人肯定吸食过一定量的毒品。

He threatened to kill us several times, would just scream and just lose his marbles all the time.

他好几次威胁要杀了我们,只是尖叫,总是失去理智。

Very unhinged man, angry downstairs man is what we call him.

非常精神错乱的人,愤怒的楼下人就是我们所说的他。

One time my wife dropped a battery, double A.

有一次我妻子掉了一块电池,双 A。

Okay, so we’re not talking about a B battery or D battery.

好的,我们不是在讨论 B 电池或 D 电池。

We’re just talking about a double A, drop it pa, land on the ground, “I’m going to kill you.” Like crazy, absolutely unhinged behavior down there.

我们只是在谈论双A,把它扔到地上,“我要杀了你。”就像疯狂的、完全精神错乱的行为一样。

So I had to go get a real job, we needed to move out of there.

所以我必须去找一份真正的工作,我们需要搬出那里。

We were going to start our life.

我们要开始我们的生活了。

1:16:34 And so I worked at a small place [inaudible 01:16:38], which I kind of talked about the boredom there.

所以我在一个小地方工作 [听不清 01:16:38],我谈到了那里的无聊。

Got to go to a place called WebFilings where I’m working just tons and tons of hours.

我要去一个叫 WebFilings 的地方,在那里我工作了无数个小时。

During all that time I’m still trying to figure out startups.

在那段时间里,我仍在尝试寻找初创公司。

Did one where you could pre-wish your friend’s birthday messages, and then it would automatically send it via Facebook beforehand.

做了一个你可以预先祝福你朋友的生日消息,然后它会提前自动通过 Facebook 发送它。

We called it Greet Feed.

我们称之为 Greet Feed。

It was pretty clever.

这非常聪明。

Nonetheless, I say all that story because everything that I was doing was exploring, building, finishing things, working, learning about corporate life, learning how to communicate in corporate life, being able to be successful at a job, learning about a bunch of technologies that we’re about.

尽管如此,我之所以说这些故事,是因为我所做的一切都是在探索、构建、完成事物、工作、了解企业生活、学习如何在企业生活中沟通、能够在工作中取得成功、了解我们所关注的一系列技术。

1:17:13 And one of the big technologies during that day, specifically 2013 was RXJS, if you remember that one, RxJS, that’s a link from C# kind of ported over to JavaScript.

那天(特别是 2013 年)的一项重大技术是 RXJS,如果您还记得 RxJS,它是从 C# 移植到 JavaScript 的链接。

Lex Fridman1:17:25

And for people who don’t know, I guess C-sharp, what is its closest neighbor?

对于那些不知道的人,我猜升 C 音,它最近的邻居是什么?

1:17:25 Java.

爪哇。

Is Java-

是Java-

ThePrimeagen1:17:30

They obviously just took Java and ripped it off at one point, but now it’s such a dynamic, interesting language that it seems like it could be a really cool bounds of practical versus not practical.

显然,他们只是在某个时候抄袭了 Java,但现在它是一种如此动态、有趣的语言,看起来它可能是实用与不实用的一个非常酷的界限。

1:17:30 It’s just I’m not really into wearing pleated pants and programming at a Microsoft house.

只是我不太喜欢穿褶皱裤和在微软家里编程。

Lex Fridman1:17:42

Is pleated pants a requirement?

打褶裤有要求吗?

ThePrimeagen1:17:46

I think so.

我想是的。

Lex Fridman1:17:47

Okay, we’ll get back to this.

好的,我们会回到这个话题。

ThePrimeagen1:17:49

Can we just get back-

我们可以回去吗-

Lex Fridman1:17:49

All right.

好吧。

ThePrimeagen1:17:49

Triggering me here.

在这里刺激我。

Lex Fridman1:17:49

WebFilings.

网络归档。

ThePrimeagen1:17:54

So anyways, WebFilings was that’s where I had to do all the matrices stuff and build systems and just kind of all that.

所以无论如何,WebFilings 是我必须做所有矩阵工作和构建系统之类的地方。

1:17:54 And it really pushed me because they also wanted me to do 60 hours a week.

这确实推动了我,因为他们也希望我每周工作 60 小时。

It was not very healthy work-life balance.

这不是很健康的工作与生活平衡。

It was very hard work.

这是非常辛苦的工作。

And kind of that really hard work going to cutting edge stuff, really understanding the world, really made it so that I was able to just be able to talk about stuff very commandingly because we had to build really complex state machines for the UI for what we’re building.

这种非常艰苦的工作涉及尖端的东西,真正了解世界,真正做到了,这样我就能够非常命令地谈论东西,因为我们必须为我们正在构建的 UI 构建非常复杂的状态机。

And so when I went and started getting a LinkedIn and all that, inevitably just due to the fact that I’ve touched all these technologies and I had some sort of paper trail saying, I’ve touched these technologies or Microsoft.

因此,当我开始建立 LinkedIn 之类的网站时,不可避免地只是因为我接触了所有这些技术,并且我有某种书面记录说,我接触过这些技术或微软。

Dang it, Lex

该死,莱克斯

Lex Fridman1:18:36

Pleated pants.

打褶裤。

ThePrimeagen1:18:36

Pleated pants reached out.

百褶裤伸了出来。

1:18:36 No, Netflix reached out and said, “Hey, I see you’ve done RxJS.

不,Netflix 伸出手来说:“嘿,我看到你已经完成了 RxJS。

We do a lot of it.

我们做了很多。

You want to come and interview with us?” And I was always told that you should never reject kind of a handwritten personal invitation to interview.

你想来接受我们的采访吗?”我总是被告知,你永远不应该拒绝手写的个人面试邀请。

This was way before bots and even the bots were pretty obvious to tell they were bots.

这远早于机器人,甚至机器人也很明显地告诉我们它们是机器人。

This was a manager at Netflix, Jeff Wagner, first manager ever.

这是 Netflix 的经理杰夫·瓦格纳 (Jeff Wagner),他是有史以来第一位经理。

And he just wrote a really nice note and just like, “Hey, I see you’re doing a lot of these things.

他刚刚写了一张非常好的便条,就像,“嘿,我看到你做了很多这样的事情。

We really need help with JavaScript.

我们确实需要 JavaScript 方面的帮助。

I would love for you to come interview.

我希望您能来面试。

We’re even using a lot of RxJS if you’re interested in that.” And so I was like, all right, I can come and I’ll interview.

如果您对此感兴趣的话,我们甚至使用了大量 RxJS。”所以我就想,好吧,我可以来接受采访。

And lo and behold, interview went on and I called my wife I think halfway through the interview and I was just like defeated, absolutely crushed because I said…

你瞧,采访继续进行,我打电话给我的妻子,我想采访进行到一半时,我就像被击败了,完全崩溃了,因为我说……

1:19:28 And she might remember this but I said, ” We now have to make a decision.

她可能还记得这一点,但我说:“我们现在必须做出决定。

Are we actually going to move to California or not?” Because I already knew I had the job at that point.

我们真的要搬到加利福尼亚吗?”因为那时我已经知道我得到了这份工作。

I was just knocking them out of the park.

我刚刚把他们赶出了公园。

I was doing a great job on that.

我在这方面做得很好。

And so I just knew for a fact, I’m getting a job at Netflix.

所以我就知道了一个事实,我在 Netflix 找到了一份工作。

There’s this thing that people always get so freaked out about when it comes to interviews and all that.

当谈到采访之类的事情时,人们总是会感到非常害怕。

And I luckily somehow avoided this.

幸运的是我以某种方式避免了这种情况。

I don’t get test anxiety, I don’t get any of that because when I go into these situations, my only goal is to show the things I already know.

我没有考试焦虑,我没有任何焦虑,因为当我进入这些情况时,我唯一的目标就是展示我已经知道的事情。

And so it’s like I walked into this situation, I’ve been preparing for this 80 hours a week for the last five years.

所以就好像我遇到了这种情况,在过去的五年里我一直在为这每周 80 个小时做准备。

So just walk in and I’m just showing the things I know.

所以只要走进去,我只是展示我所知道的东西。

1:20:08 And it was perfectly fitting for Netflix at that time period in the 2013, early JavaScript days on television.

它非常适合 2013 年 JavaScript 在电视上出现的那个时期的 Netflix。

And so it was just awesome, just worked out perfectly.

所以这真是太棒了,效果非常完美。

Got hired there.

在那里受聘了。

Lex Fridman1:20:19

So we’re in California with Netflix.

我们在加利福尼亚州与 Netflix 合作。

1:20:19 This is San Francisco.

这是旧金山。

ThePrimeagen1:20:22

Los Gatos.

洛斯加托斯。

1:20:22 So if you’re familiar, so classic symbol people do which is this is San Francisco, Oakland, San Jose, Los Gatos is just kind of a little bit south of San Jose, same mega contiguous city.

所以如果你熟悉的话,人们会做的经典符号是旧金山、奥克兰、圣何塞,洛斯加托斯就在圣何塞以南一点点,同一个巨型连续城市。

Lex Fridman1:20:39

Yellowstone is in Montana, Yellowstone, the show.

黄石公园是在蒙大拿州黄石公园演出的。

1:20:39 So is it basically like that, Kevin Costner riding on a horse?

那么基本上就是这样吗,凯文·科斯特纳骑在马上?

Were you riding on a horse to campus?

你骑马去校园吗?

ThePrimeagen1:20:48

No, but I love those stereotypes.

不,但我喜欢这些刻板印象。

1:20:48 Actually to be completely fair, when I was 15 years old, I was driving around on what is now a very busy populated street shooting gophers out the window of our car with a 22.

事实上,公平地说,当我 15 岁的时候,我开着一辆 22 开着车在现在非常繁忙的街道上拍摄车窗外的地鼠。

So it’s like Montana was a different place at one point than it is today.

所以,蒙大拿州在某个时刻与今天是一个不同的地方。

And there’s plenty of parts of Montana that’s still very rural, still kind of more of that old world.

蒙大拿州的很多地方仍然非常乡村,仍然更像旧世界。

So yeah, a little bit you can get whatever you want from Montana.

所以,是的,你可以从蒙大拿州得到你想要的任何东西。

As far as culturally goes, I’m not really sure the best way to put the difference between California and Montana.

就文化而言,我不太确定区分加利福尼亚州和蒙大拿州之间差异的最佳方式。

It’s just different expectations.

只是不同的期望而已。

One thing I can really appreciate about California, or at least when I say California, I mean the Silicon Valley Because obviously LA and the Silicon Valley, very different attitudes, very different mindsets.

我真正欣赏加州的一件事,或者至少当我说加州时,我指的是硅谷,因为显然洛杉矶和硅谷,态度非常不同,心态也非常不同。

You can’t really compare one to the other.

你无法真正将其中一个与另一个进行比较。

1:21:38 One thing I can say that’s really positive about the valley is that everybody is operating on this idea of trying to build or create something, and there’s an energy to it that’s very exciting.

我可以说,硅谷真正积极的一点是,每个人都在尝试建造或创造一些东西,并且有一种非常令人兴奋的能量。

You meet somebody and they have a startup and they’re working on the startup.

你遇到某人,他们有一家初创公司,并且他们正在为这家初创公司工作。

And it’s very exciting.

这非常令人兴奋。

And there’s a lot of negative aspects to that, and we can all agree that our entire life being commercialized has probably not been that great.

这有很多负面影响,我们都同意,我们的整个生活被商业化可能并没有那么美好。

But the kind of the experience of being there and everyone’s excited to build something, it’s a really cool experience.

但那种身处其中的体验,每个人都兴奋地想要创造一些东西,这是一种非常酷的体验。

Lex Fridman1:22:06

Yeah, it’s really great.

是的,这真的很棒。

1:22:06 The excitement, the energy.

兴奋,能量。

ThePrimeagen1:22:09

Yeah, Montana doesn’t have that.

是的,蒙大拿州没有这个。

Lex Fridman1:22:11

I have a romantic admiration for the shows like Yellowstone being out on nature.

我对像黄石公园这样的大自然表演有着浪漫的钦佩。

1:22:11 It’s beautiful.

很美丽。

I like riding horses.

我喜欢骑马。

Somebody also said Reddit is full of wisdom about you.

有人还说 Reddit 充满了关于你的智慧。

Some of it could be fake news, but something about horses and this kind of thing.

其中一些可能是假新闻,但有些是关于马之类的事情。

You like horses, you like riding horses?

你喜欢马,你喜欢骑马吗?

ThePrimeagen1:22:28

We have horses on…

我们有马…

1:22:28 Our neighbor had much more hilly land and one of the horses broke its leg, so they had to put it down.

我们的邻居有更多的山地,其中一匹马摔断了腿,所以他们不得不把它放下。

And so we just said, “Hey, we are on much flatter land.

所以我们只是说,“嘿,我们在平坦得多的土地上。

You can just have your horses in our property.” And so we just have horses that run around on our-

你可以把你的马放在我们的财产里。”所以我们只有马匹在我们的——

Lex Fridman1:22:44

What about milking cows?

挤奶的奶牛怎么办?

1:22:44 Somebody asked about cattle and cow.

有人问有关牛和牛的问题。

ThePrimeagen1:22:50

So I’ve only had open cows.

所以我只养过开放的奶牛。

1:22:50 If you don’t know, cow means girl, open means that, hey, they’ve tried to get the cow pregnant.

如果你不知道,牛意味着女孩,开放意味着,嘿,他们试图让牛怀孕。

The cow did not get pregnant first try.

母牛第一次尝试并没有怀孕。

And so they’re calling that gene, they’re getting rid of that gene.

所以他们称之为该基因,他们正在摆脱该基因。

The open cow is going to now go out to pasture for the year and then get turned into delicious T-bone steaks and various things.

开放的牛现在要出去放牧一年,然后变成美味的丁骨牛排和各种东西。

And so we would house open cows on our property.

因此,我们会在我们的土地上饲养开放的奶牛。

So no, there’s no milking of open cows.

所以不,没有露天奶牛挤奶。

Lex Fridman1:23:16

Okay.

好的。

ThePrimeagen1:23:16

They’d be very upset if you tried to milk an open cow because they’re not milking cows.

如果你试图给一头开放的奶牛挤奶,他们会非常不高兴,因为他们不给奶牛挤奶。

1:23:16 You have to get that cow pregnant.

你必须让那头牛怀孕。

And then once you get it pregnant, you have to kind of put it into this permanent state of milking and all that.

一旦你让它怀孕了,你就必须让它进入这种永久的挤奶状态等等。

And it’s a little bit more complicated than say what we did, which was just cows on eating grass and I didn’t have to touch them.

这比我们所做的要复杂一点,我们所做的只是牛在吃草,我不必碰它们。

Lex Fridman1:23:35

Okay, well, that’s wonderful.

好吧,那太好了。

ThePrimeagen1:23:36

Reddit is not a great place for wisdom about me.

Reddit 并不是一个展示我智慧的好地方。

1:23:36 They’re going to give you the craziest answers.

他们会给你最疯狂的答案。

Lex Fridman1:23:41

We’ll return to Reddit time and time again, my friend.

我的朋友,我们会一次又一次地回到 Reddit。

1:23:41 So yeah, you took the leap into Netflix.

是的,您进军 Netflix。

So what was that like?

那么那是什么样的呢?

ThePrimeagen1:23:52

This is one of those things where when you talk about it, people love to trivialize this because it’s like, oh, you’re taking a leap of faith by going into a fang company.

这是当你谈论它时,人们喜欢轻视它的事情之一,因为这就像,哦,你通过进入一家方公司实现了信仰的飞跃。

1:23:52 And in 2013, sounds super risky.

2013 年,听起来风险极高。

My wife was 36 weeks pregnant.

我的妻子怀孕 36 周。

We had to travel to a place where we knew not a soul.

我们必须前往一个无人认识的地方。

We were about to have our first kid.

我们即将生第一个孩子。

We didn’t even have a doctor.

我们甚至没有医生。

If you don’t know what having a baby does, you kind of want a relationship with a doctor.

如果您不知道生孩子会带来什么,您可能会想要与医生建立关系。

There’s a whole thing that goes on there.

那里正在发生一整件事。

So it was a really hard and great experience.

所以这是一次非常艰难而又很棒的经历。

So I went to a job in which their culture deck…

所以我去了一份他们的文化甲板的工作......

So during this time, this is where Netflix still had kind of that old generation X feel to it.

所以在这段时间里,Netflix 仍然有一种老一代 X 的感觉。

Their culture deck was hire fast, fire fast.

他们的文化平台租得快,解雇得也快。

It was very in your face about like, “Hey, this is how we operate.

这非常当着你的面,“嘿,这就是我们的运作方式。

You don’t meet the standards, we kick you out.”

你不符合标准,我们就把你踢出去。”

1:24:39 So it’s like I’m leaving a place where it’s more secure to go to a place I don’t know anybody, to a job that’s bold in its claims about firing everybody with a wife that’s just about to have a baby.

所以这就好像我要离开一个更安全的地方,去一个我不认识任何人的地方,去做一份大胆声称要解雇所有妻子即将生孩子的人的工作。

And I’m from Montana and every Montanan’s born with a natural dislike of California.

我来自蒙大拿州,每个蒙大拿人生来就对加州有一种天生的厌恶感。

So there’s all these things kind of flowing into it where it’s just going to be like, wow, this is a very intense experience.

所以所有这些东西都会涌入其中,就像是,哇,这是一次非常激烈的体验。

And it was hard for sure.

这很难确定。

It wasn’t just some easy simple experience that we were just like, oh, well, I work now at Fang.

这不仅仅是一些简单的经历,我们就像,哦,好吧,我现在在 Fang 工作。

We had to kind of work through that.

我们必须解决这个问题。

Having a kid was very difficult.

养孩子非常困难。

Our first kid was very difficult.

我们的第一个孩子非常困难。

Not having any family around to ever help you took a much larger toll on my wife than me, for sure.

毫无疑问,没有家人在身边帮助你,对我妻子的伤害比我大得多。

Lex Fridman1:25:23

What was the technical learning curve for you?

您的技术学习曲线是怎样的?

1:25:23 You showed up in your plaid pants, dressed up?

你穿着格子裤出现,盛装打扮吗?

ThePrimeagen1:25:29

Yeah.

是的。

Lex Fridman1:25:30

What did you have to learn about the Stack?

关于堆栈,你需要了解什么?

1:25:30 Because Netflix, I imagine is this incredible infrastructure.

因为 Netflix,我认为这是一个令人难以置信的基础设施。

It has to deliver just a huge amount of data.

它必须提供大量数据。

I’m just blown away by Netflix but also YouTube.

Netflix 和 YouTube 都让我震惊。

These companies that have to deliver, serve a huge amount of bits.

这些公司必须交付、服务大量的比特。

ThePrimeagen1:25:55

Netflix has it easiest.

Netflix 是最简单的。

1:25:55 Out of all the companies Netflix by…

在所有公司中,Netflix 的...

Even though you could say maybe we beat YouTube in view hours, I’m not sure if we do, but let’s just pretend Netflix has five x more view hours than YouTube.

尽管你可能会说我们的观看时长可能超过了 YouTube,但我不确定我们是否能做到这一点,但让我们假设 Netflix 的观看时长是 YouTube 的五倍。

Whatever it is, Netflix has a fundamentally easier problem than all other companies.

不管是什么,Netflix 面临的问题从根本上来说比所有其他公司都要容易。

And let’s get back to that.

让我们回到这一点。

I’m going to first tell you about the Stack, but I’ll tell you why it has a fundamentally easier problem.

我将首先向您介绍堆栈,但我会告诉您为什么它有一个从根本上更简单的问题。

So when I first got there, they gave me my PlayStation three.

所以当我第一次到达那里时,他们给了我我的 PlayStation 3。

My boss said, “Go learn some code.

我的老板说:“去学习一些代码。

Come back to me in a couple of days and tell me what you’ve learned.

几天后回来告诉我你学到了什么。

And then I’m going to start giving you bugs to fix.”

然后我将开始给你提供需要修复的错误。”

Lex Fridman1:26:27

Wait, PlayStation three, what are you talking about?

等等,PlayStation 3,你在说什么?

ThePrimeagen1:26:30

Well, I was on the TV team.

嗯,我是电视团队的成员。

1:26:30 I had to go plug in a PlayStation and start launching programs onto the PlayStation three and figure out how to work Netflix on a television device.

我必须插入 PlayStation,开始在 PlayStation 3 上启动程序,并弄清楚如何在电视设备上运行 Netflix。

Lex Fridman1:26:38

Oh, so you have different kinds of devices.

哦,所以你有不同类型的设备。

1:26:38 Why PlayStation three, is other different-

为什么 PlayStation 3 与众不同 -

ThePrimeagen1:26:43

It’s just 2013.

这只是2013年。

1:26:43 That’s what you have.

这就是你所拥有的。

Lex Fridman1:26:44

Any devices that plug into the TV?

有哪些设备可以连接到电视上?

1:26:44 Okay, cool.

好吧,酷。

ThePrimeagen1:26:46

Yeah, not as many TVs had Netflix, let alone what they called their Darwin app, which is their new application.

是的,没有那么多电视有 Netflix,更不用说他们所谓的达尔文应用程序,这是他们的新应用程序。

1:26:46 So if you bought a VIZIO earlier that year, you’d get their older one there.

因此,如果您当年早些时候购买了 VIZIO,您会在那里购买他们的旧款。

It’s called Plus UI.

它被称为 Plus UI。

You get their older version.

你得到他们的旧版本。

And so not many had the newer version.

因此没有多少人拥有较新的版本。

We no longer supported Plus or we never actively developed on Plus, we only did stuff on Darwin.

我们不再支持Plus,或者我们从未在Plus上积极开发,我们只在Darwin上做了一些事情。

And so I had to learn that whole stack, the backend or the middle end, the middle layer between the actual backend and the front end was written in Groovy.

所以我必须了解整个堆栈,后端或中间端,实际后端和前端之间的中间层是用 Groovy 编写的。

And as I went around, Groovy is if you’re not familiar with Jenkins, then you’ve probably never interacted with Groovy.

正如我所了解的那样,如果您不熟悉 Jenkins,那么您可能从未与 Groovy 进行过交互。

But Groovy is a JVM language.

但 Groovy 是一种 JVM 语言。

It’s a very interesting language, but here’s how it got started at Netflix.

这是一门非常有趣的语言,以下是它在 Netflix 的起源。

Lex Fridman1:27:30

Oh, it’s Apache.

哦,这是阿帕奇。

1:27:30 Apache Groovy is a powerful object-oriented programming language that runs on the Java virtual machine released in 2007.

Apache Groovy 是一种功能强大的面向对象编程语言,运行在 2007 年发布的 Java 虚拟机上。

It has evolved to become a versatile language that combines both static and dynamic typing capabilities.

它已经发展成为一种结合了静态和动态类型功能的多功能语言。

ThePrimeagen1:27:43

All right, so the AI is kind of lying to you.

好吧,所以人工智能有点在骗你。

1:27:43 Groovy is not a powerful great language.

Groovy 并不是一门强大的伟大语言。

That statement makes it seem way cooler than it actually is.

这句话让它看起来比实际酷得多。

You’ll meet one out of 100 people that have touched Groovy that said, “Oh yeah, Groovy’s great.” The other 99 will be like, “Heavens forbid, you ever have to touch that language.” So when I got there, nobody, not a single soul at Netflix, those 40-some engineers had any idea how Groovy pretty much worked.

每 100 个接触过 Groovy 的人中都会有一个人说:“哦,是的,Groovy 太棒了。”其他 99 个人会说,“天哪,你必须接触那种语言。”所以当我到达那里时,Netflix 的 40 多名工程师没有人、没有一个人知道 Groovy 是如何工作的。

Somehow people just hacked together these scripts and put them all on there and it worked.

不知何故,人们只是将这些脚本拼凑在一起并将它们全部放在那里并且它起作用了。

And this was before there was a Groovy RX port.

这是在 Groovy RX 端口出现之前。

We wrote our own version called WX.

我们编写了自己的版本,称为 WX。

It was a nightmare, observables, all these things.

这是一场噩梦,可观察到的所有这些事情。

I remember one time they told me that, “Oh yeah, with RX it’s really easy.

我记得有一次他们告诉我,“哦,是的,有了 RX,这真的很容易。

You just say what you need to do.

你只需说出你需要做什么。

It maps out and boom, boom, everything will run and all that.” And I was like, “Oh wow, really?”

它描绘出繁荣、繁荣,一切都会运行等等。”我当时想,“哇哦,真的吗?”

1:28:33 So all I did was go like observable.sleep one because I just wanted to see it sleep and then do the next thing.

所以我所做的就是像 observable.sleep 一样,因为我只想看到它睡眠,然后做下一件事。

And it turns out when a thread sleeps itself, no thread can wake it up.

事实证明,当一个线程自行休眠时,没有线程可以唤醒它。

And I just turned off all of staging because I ran it like 10 times.

我只是关闭了所有的暂存,因为我运行了大约 10 次。

Like, oh, it’s not responding.

就像,哦,它没有回应。

Oh, it’s not responding.

哦,没反应。

Oh, now it’s not even coming back.

唉,现在已经回不来了。

Broke all of staging for everybody.

打破了所有人的所有舞台。

So no developer could work for the rest of the afternoon because I locked up all the instances because it turns out no, it was in fact not multi-threaded.

因此,没有开发人员可以在下午剩下的时间里工作,因为我锁定了所有实例,因为事实证明不是,它实际上不是多线程的。

Every assumption we’ve been told is a lie.

我们被告知的每一个假设都是谎言。

No one had any idea what they were doing.

没有人知道他们在做什么。

It was a wild time.

那是一段疯狂的时光。

And so I just simply naturally gravitated towards that because I’m good at print off debugging.

所以我很自然地倾向于这一点,因为我擅长打印调试。

I’m good at doing those things.

我很擅长做这些事情。

1:29:12 So I was like, yeah, I’ll just figure this out here.

所以我想,是的,我会在这里解决这个问题。

I will do this.

我会做这个。

So I had the rewrite how we do the data structure on the front end for the TV from what is called a LoLoMo, list of list of movies into LoLoRoMo, which is a list of list of recommendation objects for movie.

因此,我将电视前端的数据结构从所谓的 LoLoMo(电影列表列表)重写为 LoLoRoMo(电影推荐对象列表)。

Why would we need to do that?

为什么我们需要这样做?

Think about this.

想想这个。

You have two lists, one has Live Free Die Hard, Bruce Willis because you love Bruce Willis.

你有两份清单,一份是《Live Free Die Hard》、《Bruce Willis》,因为你喜欢布鲁斯·威利斯。

The other one has Live Free Die Hard because you want tough men doing tough jobs.

另一种是《Live Free Die Hard》,因为你希望坚强的人做艰苦的工作。

Well, during those days we’d only have one way we could show evidence why you wanted it.

好吧,在那些日子里,我们只有一种方法可以证明你为什么想要它。

So we couldn’t say, “Oh, because you liked this other movie.” You’d go to that one and say the same thing.

所以我们不能说,“哦,因为你喜欢另一部电影。”你会去那个地方说同样的话。

So we had to add one level of indirection where we could decorate the video with the recommendation information.

因此,我们必须添加一层间接层,以便我们可以用推荐信息来装饰视频。

Lex Fridman1:29:52

Okay.

好的。

1:29:52 So you can abstract away into the space of recommendation versus the space of movies directly.

因此,您可以直接抽象到推荐空间和电影空间。

ThePrimeagen1:29:56

Yeah.

是的。

1:29:56 So you can’t hang it off the video because obviously then it would be the same for everything that shows that same video.

因此,您不能将其挂在视频上,因为显然,对于显示同一视频的所有内容来说,它都是相同的。

Lex Fridman1:30:01

That’s amazing.

太棒了。

ThePrimeagen1:30:02

I had to do all this and I wrote it in Groovy and I just did it-

我必须做这一切,我用 Groovy 编写了它,然后我就做到了 -

Lex Fridman1:30:02

Such a funny name.

真是个有趣的名字。

ThePrimeagen1:30:06

And people were like, “How did you write this in Groovy?” And I was just like, “Well, I read the language reference for a day and then programmed it.” Well, what do you mean?

人们会问,“你是怎么用 Groovy 写这个的?”我当时想,“好吧,我读了一天语言参考资料,然后对其进行了编程。”嗯,你什么意思?

1:30:06 It was a very radical language, shall we say.

可以说,这是一种非常激进的语言。

And so I just simply became the person that knew these things, so they just give me more and more jobs with that.

所以我只是成为了知道这些事情的人,所以他们就给了我越来越多的工作。

And so that’s kind of how I excelled, being the person that was willing to do the thing that no one else was.

这就是我的卓越之处,成为一个愿意做别人不敢做的事情的人。

Lex Fridman1:30:28

Yeah.

是的。

1:30:28 Can you actually speak to the print off debugging.

你能真正谈谈打印调试吗?

You walk into a system and there’s a lot of systems in the world like this.

你走进一个系统,世界上有很多这样的系统。

Twitter was like this, when Elon acquired Twitter and the rolls in and there’s this old junky code base that’s just like a giant mess, and you have to basically do print off debugging.

Twitter 就是这样,当 Elon 收购 Twitter 并推出时,就有了这个旧的垃圾代码库,就像一团糟,你基本上必须进行打印调试。

What’s the process of going into a code base and figuring out what the fuck?

进入代码库并弄清楚到底是什么的过程是怎样的?

Well, how does this work?

那么,这是如何运作的呢?

What are the flaws?

有哪些缺陷?

What are the assumptions?

假设是什么?

You have to reverse engineer what all these other engineers did in the past and the mess across the space of months and years, and you have to figure out how all that works in order to make improvements.

你必须对所有其他工程师过去所做的事情以及几个月和几年的混乱情况进行逆向工程,并且你必须弄清楚所有这些是如何工作的才能做出改进。

ThePrimeagen1:31:06

I’ve always just been good at print off debugging because one of my first kind of side quest jobs that I got was writing robots for the government when I was still at school.

我一直擅长打印调试,因为我在学校时获得的第一种支线任务工作就是为政府编写机器人。

1:31:06 And so I’d kind of do this contractually for so many hours a week.

所以我会根据合同每周花很多时间来做这件事。

And my boss, Hunter Lloyd, great professor by the way, he just said, “Hey, here’s your computer, here’s the robot, here’s how you plug it in.

我的老板亨特·劳埃德(Hunter Lloyd),顺便说一下,他是一位伟大的教授,他只是说:“嘿,这是你的电脑,这是机器人,这是你如何插入它的。

Here’s how you run the code.

以下是运行代码的方法。

Can you write the flash driver, the ethernet driver.

你能写闪存驱动程序、以太网驱动程序吗?

Can you write the planetary pancake motor?

你能写出行星煎饼电机吗?

Here’s some manuals, I’m missing some.

这是一些手册,我丢失了一些。

Just figure it out, I’ll be back.” So that was government work for me.

你想清楚了,我就回来。”所以这对我来说是政府工作。

So I was like, okay, I’ll figure all these things out.

所以我想,好吧,我会解决所有这些问题。

And I figured them all out and the only way to really get anything out of the machine was to print.

我把它们全部弄清楚了,真正从机器中得到任何东西的唯一方法就是打印。

And so it’s like I had to become really good at printing my way through problems.

所以我必须非常擅长打印解决问题的方法。

And so that kind of became this skill I guess I adopted is that I can just kind of print off debug my way through a lot of these problems.

因此,我想我采用的这种技能就是我可以通过打印调试方式解决很多这些问题。

1:31:56 Obviously I’m not a game developer, probably a different world probably should use…

显然我不是游戏开发者,可能异世界可能应该使用……

I think John Carmack was on here and talked to how great the debugger is, different world.

我想约翰·卡马克(John Carmack)在这里谈论了调试器是多么伟大,不同的世界。

Because when I was at Netflix, there’s machines that exist somewhere on AWS, I’m not logged into them.

因为当我在 Netflix 时,AWS 上有一些机器,但我没有登录它们。

I don’t even know how to log into them.

我什至不知道如何登录它们。

I’m not even sure if I have credentials to log into them.

我什至不确定我是否有登录它们的凭据。

They run once somewhere and I have to figure out what happened and why it’s happening.

他们在某个地方跑过一次,我必须弄清楚发生了什么以及为什么会发生。

So it’s like I’m going to become…

所以这就像我会成为……

This is what I’ve trained for.

这就是我训练的目的。

I’m a print off debugging champion.

我是打印调试冠军。

So it’s just like I could just run through these things really quickly and figure out why they’re happening the way they’re happening.

所以就像我可以快速浏览这些事情并找出它们为什么会这样发生一样。

Lex Fridman1:32:26

You’re a special human.

你是一个特别的人。

1:32:26 I think that’s an incredible skill set to have to be able to drop in into any code base, drop into any situation, and do print off debugging.

我认为这是一项令人难以置信的技能,必须能够融入任何代码库,融入任何情况,并进行打印调试。

Meaning you’re in a dark room and you’re feeling around that room to try to figure out what the room is.

这意味着你在一个黑暗的房间里,你在那个房间周围感觉,试图弄清楚这个房间是什么。

ThePrimeagen1:32:40

Well, I had the code so it’s like I can kind of blueprint what’s happening.

好吧,我有代码,所以我可以绘制正在发生的事情的蓝图。

1:32:40 I don’t understand the services or anything, but you can start guessing pretty quick as to what’s going wrong.

我不了解服务或其他任何东西,但你可以很快开始猜测出了什么问题。

Lex Fridman1:32:48

Right.

正确的。

1:32:48 But then the print side of that helps you confirm your intuitions, test your intuitions and build up more and more information.

但印刷方面可以帮助你确认你的直觉,测试你的直觉并建立越来越多的信息。

And then you start to accumulate this bigger picture from that, what the edge cases are that break the system and not.

然后你开始从中积累更大的图景,哪些边缘情况会破坏系统,哪些不会破坏系统。

I think that just that kind of situation is intimidating for a lot of engineers.

我认为这种情况对很多工程师来说都是令人生畏的。

They break down at that point.

他们在那一刻崩溃了。

I think it really is a powerful thing to be able to come into a code base, that’s generally a skillset of very few of us start from scratch.

我认为能够进入代码库确实是一件很强大的事情,这通常是我们中极少数人从头开始的技能。

And actually this is the fundamental problem of web development and in general where they’re like, I don’t know what’s going on.

实际上,这是网络开发的根本问题,总的来说,我不知道发生了什么。

I’m going to write my own thing from scratch.

我将从头开始写我自己的东西。

As opposed to actually doing print off debugging on the space of languages, on the space of problems, because there’s a lot of wisdom and solved problems already in this code base.

与实际在语言空间、问题空间上进行打印调试相反,因为这个代码库中已经有很多智慧和已解决的问题。

1:33:50 It’s a much more important skillset to understand, to learn from the mistakes and the wisdom of the past, of the ancestors that came before and build on them as opposed to throw it all out and start from scratch.

理解、从过去、前人的错误和智慧中学习并在此基础上继续发展,而不是完全抛弃并从头开始,这是一种更重要的技能。

This is something obviously you see a lot with a JavaScript framework that comes out and you won every single day.

显然,这是你在 JavaScript 框架中经常看到的事情,它的出现让你每天都赢了。

ThePrimeagen1:34:12

I have a very great story about that, that this is what I think has shaped me the most about my perspective of other devs.

关于这一点,我有一个非常精彩的故事,我认为这对我对其他开发者的看法影响最大。

1:34:12 There’s this dev and he always just wrote things in just what I thought was such a bizarre and weird way, and this had to do with Falcor.

有一个开发者,他总是用我认为非常奇怪的方式写东西,这与 Falcor 有关。

So our data fetching library for Netflix, This would run on mobile.

因此,我们的 Netflix 数据获取库将在移动设备上运行。

So I had to write in Objective-C.

所以我不得不用 Objective-C 来写。

It had to run on television and it had to also run on web.

它必须在电视上运行,也必须在网络上运行。

So it ran on everything.

所以它运行在一切之上。

And me and one other person were responsible for this thing working.

我和另外一个人负责这件事的运作。

And the request side where we’d have to de-dupe the information that we already have, the requests that were pending and the new data.

在请求端,我们必须对已有的信息、待处理的请求和新数据进行重复数据删除。

1:34:45 So I had to figure all that out based on what someone’s requesting, and then just only optimally request the stuff that we don’t have.

所以我必须根据某人的要求弄清楚所有这些,然后只最佳地要求我们没有的东西。

He wrote in such a goofy way and I’m thinking, man, this guy is just…

他写的方式很愚蠢,我在想,伙计,这家伙只是……

What a goofball.

真是个傻瓜。

So I delete it all and I start writing and I’m like, look at how much nicer this is.

所以我把它全部删除,然后开始写作,我想,看看这有多好。

It’s looking so good.

看起来很好。

I’m like, Ooh, there’s that one edge case.

我想,哦,有一种极端情况。

Okay, I can see why he wrote it this one way.

好吧,我明白他为什么这样写了。

That’s not a big deal though.

不过这没什么大不了的。

The rest of my code’s really great.

我的其余代码真的很棒。

By the end of it, I’m like, I literally almost line for line just reproduced what he already wrote.

到最后,我想,我几乎逐行复制了他已经写过的内容。

It’s slightly different towards my style, but I just wrote the same code.

这与我的风格略有不同,但我只是编写了相同的代码。

I’m like, I’m an idiot.

我想,我是个白痴。

1:35:20 I am the idiot in this situation because it was already a solved problem.

在这种情况下我是个白痴,因为这已经是一个解决了的问题。

I just didn’t take the time to learn what he did.

我只是没有花时间去了解他做了什么。

Instead, I relearned what he did by rewriting the entire thing.

相反,我通过重写整个事情来重新了解他所做的事情。

Lex Fridman1:35:29

I think that’s a skill set that is extremely important for people to learn.

我认为这对人们来说非常重要。

1:35:29 I see that in myself.

我在自己身上看到了这一点。

That’s a constant struggle for myself when facing a code base, for example.

例如,当我面对代码库时,这对我来说是一场持续的斗争。

But this applies generally in life, where somebody did a lot of work to do a thing, you should invest a huge amount of time and get really good at figuring out what they did, why they did it.

但这普遍适用于生活中,当某人做了很多工作才能做一件事时,你应该投入大量时间并真正善于弄清楚他们做了什么,为什么这么做。

Do a lot of print off debugging to understand what they did.

进行大量打印调试以了解他们做了什么。

It’s a much more efficient way to understand a problem deeply than to start from scratch.

这是深入理解问题比从头开始更有效的方法。

Even though there’s a constant temptation to start from scratch, because starting from scratch is fun.

尽管从头开始的诱惑一直存在,因为从头开始很有趣。

You do get the puzzle solved and all that kind of stuff.

你确实解决了难题以及诸如此类的事情。

It’s just not going to be the right thing to do.

这不是正确的做法。

Usually pain is the right thing to do, and it is for most people painful to understand other people’s code bases.

通常,痛苦是正确的事情,对于大多数人来说,理解别人的代码库是痛苦的。

ThePrimeagen1:36:21

I highly recommend starting from scratch if you want to understand a concept.

如果您想理解一个概念,我强烈建议您从头开始。

1:36:21 You don’t know how an HTTP server works, create a TCP socket, learn how to parse HTTP.

你不知道HTTP服务器是如何工作的,创建一个TCP套接字,学习如何解析HTTP。

It’ll become very easy and you’ll go, this is the reason why whenever I get a request, I have to await the text.

这会变得非常容易,你就可以走了,这就是为什么每当我收到请求时,我都必须等待短信的原因。

I now understand why the text is for whatever reason not there.

我现在明白为什么文本由于某种原因不存在了。

I get it.

我得到它。

I now understand it.

我现在明白了。

And so you kind of gain these new perspectives just by simply parsing something out.

因此,只需简单地解析一些东西,你就可以获得这些新的视角。

Lex Fridman1:36:50

All right.

好的。

1:36:50 Back to the wisdom of Reddit.

回到 Reddit 的智慧。

Apparently there are memes and legends about your programming arc in Netflix.

显然,Netflix 中有关于您的节目弧线的模因和传说。

This Falcor system you mentioned, somebody, I think it was Teej, how do you pronounce his name by the way?

你提到的这个 Falcor 系统,有人,我想是 Teej,顺便问一下他的名字怎么发音?

ThePrimeagen1:36:50

Teej.

蒂杰。

Lex Fridman1:37:05

Okay, Teej.

好吧,蒂吉。

ThePrimeagen1:37:06

TJ would be his name, but we call it Teej or Telescopic Johnson.

TJ 将是他的名字,但我们称之为 Teej 或 Telescope Johnson。

Lex Fridman1:37:10

Oh wow, so many names.

哇哦,这么多名字。

1:37:10 DDoS, distributed denial of service attacks, you apparently were able to accomplish the simplified version of that of just DoS.

DDoS,分布式拒绝服务攻击,您显然能够完成 DoS 攻击的简化版本。

That’s a legend.

那是一个传奇。

So you basically broke down the system somehow.

所以你基本上以某种方式破坏了系统。

ThePrimeagen1:37:25

Yeah.

是的。

Lex Fridman1:37:26

Can you tell the story of that?

你能讲一下这个故事吗?

ThePrimeagen1:37:28

I’d be glad to.

我很乐意这样做。

1:37:28 So there’s this Falcor business, and I did discover the bug before anybody else and I did report it to security and it was so bad.

所以这就是 Falcor 业务,我确实比其他人先发现了这个错误,并且我确实向安全部门报告了它,情况非常糟糕。

It actually got its own name, Repulsive Grizzly Attack, and they even give examples of how to do it.

它实际上有自己的名字,令人厌恶的灰熊攻击,他们甚至给出了如何做到这一点的例子。

Effectively what it means is that there is a request that targets both memory and CPU and will destroy.

实际上,这意味着存在一个同时针对内存和 CPU 的请求,并且该请求将被破坏。

There you go.

就这样吧。

Look, how Netflix…

看看 Netflix 如何...

The next one down was the article that was actually written.

下一篇是实际写的文章。

I don’t get mentioned, which is a little bit upsetting considering I was the one that discovered it and told everybody how bad it was.

我没有被提及,考虑到我是发现它并告诉每个人它有多糟糕的人,这有点令人沮丧。

1:38:01 Anyways, and had the right to fix for it or the first fix.

不管怎样,并且有权修复它或第一次修复。

So this is how it works, is that you can do something pretty similar, I believe with GraphQL as well.

这就是它的工作原理,我相信使用 GraphQL 也可以做一些非常类似的事情。

It has the same kind of danger.

它也有同样的危险。

Any of these kinds of RPC request as much or as little of the data as you would like frameworks, are vulnerable to this kind of attack.

任何此类 RPC 请求的数据量与您希望的框架一样多或一样少,都容易受到此类攻击。

So with Falcor, what you do is you give it an array.

所以对于 Falcor,你要做的就是给它一个数组。

That’s an array is called a path, and that’s the path to the data.

数组称为路径,这就是数据的路径。

But sometimes you don’t want to have to write out, I want movie, I want row zero or list zero or row zero column zero title.

但有时你不想写出,我想要电影,我想要零行或零列表或零行零列标题。

I want row zero column zero description.

我想要行零列零描述。

You don’t want to have to write out all that.

你不想把所有这些都写出来。

1:38:42 So instead you could just be like, I want rows zero through 10, columns zero through 10, titles and descriptions.

因此,您可能只是想,我想要第 0 到 10 行、第 0 到 10 列、标题和描述。

So you can write in a very compact, nice little format and it’ll give you all that data.

所以你可以用一种非常紧凑、漂亮的小格式编写,它会给你所有的数据。

It’ll go to the server.

它将转到服务器。

The server will fill that all in and give it to you.

服务器将填写所有内容并将其提供给您。

Oh, dang it, list three, it only had three videos in it.

哦,该死,列出三个,里面只有三个视频。

So what happens when I try-

那么当我尝试时会发生什么-

1:39:00 Three, it only had three videos in it.

第三,里面只有三个视频。

So what happens when I try to re-request the data?

那么当我尝试重新请求数据时会发生什么?

Well, I need a way to be able to tell my system that you’d have requested the data and there’s nothing there.

好吧,我需要一种方法来告诉我的系统您已经请求了数据,但那里什么也没有。

So call this like a boxed value.

所以将其称为盒装值。

So it’s going to be like type, something, value, there’s nothing there.

所以它就像类型、东西、值,什么都没有。

We’ve already requested it and there’s nothing there.

我们已经要求了,但那里什么也没有。

It’s like a sentinel value, if you will, a boxed value.

如果你愿意的话,它就像一个哨兵值,一个盒装值。

And we have this little special flag weed pass called materialize.

我们有一个名为 Materialize 的特殊旗帜杂草通道。

Meaning that when you ask for a path, we will make sure we fill it out so we don’t accidentally erase anything.

这意味着当您询问路径时,我们将确保填写它,这样我们就不会意外删除任何内容。

And at the very end we’ll say okay, the thing does, the request you’ve made has already been made and there’s nothing there.

最后我们会说,好吧,事情确实发生了,你提出的请求已经提出了,那里什么也没有。

Well, what happens if I request rows zero through 10,000 columns through 10,000, one more item through 10,000 and then a whole bunch of properties and then ask it to materialize?

那么,如果我请求第 0 行到第 10,000 行到第 10,000 列,再请求第 10,000 行,然后请求一大堆属性,然后要求它实现,会发生什么情况?

1:39:49 Well, I’m about to go create billions of objects in the JVM, and what happens to the machine?

好吧,我即将在 JVM 中创建数十亿个对象,机器会发生什么?

It stops running.

它停止运行。

And then if we try to JSON…

然后如果我们尝试 JSON...

Even if it could create a mall, we then ask it that JSON serialize, it’s not going to do it.

即使它可以创建一个商城,然后我们要求它进行 JSON 序列化,它也不会这样做。

It’s impossible.

这是不可能的。

And so that was the attack vector, is a simple wild loop would’ve taken down and held down Netflix for a very long time.

这就是攻击向量,一个简单的疯狂循环就可以让 Netflix 瘫痪很长一段时间。

Because one request would kill one machine on AWS.

因为一个请求会杀死 AWS 上的一台机器。

And so that means it would just turn it all off.

这意味着它会将其全部关闭。

And this was on the website?

这是在网站上吗?

This was on TV, this was on mobile.

这是在电视上,这是在手机上。

This was profound.

这是深刻的。

And here’s the worst part, it was in production for years so we couldn’t even roll it back.

这是最糟糕的部分,它已经生产了多年,所以我们甚至无法将其回滚。

There was no like, “Oh crap, let’s just roll back to two weeks ago and we’ll fix forward and figure out.” No, it’s like we could roll back to 2011.

不会有人说,“哦,糟糕,让我们回滚到两周前,我们会向前解决并找出答案。”不,我们好像可以回到 2011 年。

That’s our option is 2011 and that’s it.

我们的选择是 2011 年,仅此而已。

So we had to figure out a way forward and all that.

所以我们必须找出前进的道路等等。

And so it was like…

所以就像……

The amount of problems that would’ve happened if someone would’ve discovered this is unstatable.

如果有人发现这一点,将会发生多少问题,这是无法统计的。

Lex Fridman1:40:55

Just to be clear, the infrastructure that’s serving the videos would shut down.

需要明确的是,提供视频服务的基础设施将关闭。

ThePrimeagen1:41:00

Yeah, the UI, you couldn’t perform any actions in the UI.

是的,用户界面,您无法在用户界面中执行任何操作。

1:41:00 You surprisingly could still stream video but you would never be able to get to a video to stream.

令人惊讶的是,您仍然可以流式传输视频,但您永远无法访问要流式传输的视频。

Because every action you would take would be completely shut down.

因为你所做的每一个动作都会被完全关闭。

And so it wasn’t a DDoS because you didn’t need a bunch of computers to try to overwhelm the system by making a bunch of requests, one request, one machine.

因此,这不是 DDoS,因为您不需要一堆计算机来尝试通过发出一堆请求(一个请求、一台机器)来淹没系统。

If we had 50 machines serving the millions of requests, it’d only take 50 requests to shut down the entire UI.

如果我们有 50 台机器来服务数百万个请求,那么只需要 50 个请求就可以关闭整个 UI。

Lex Fridman1:41:23

Isn’t it possible to do DoS or DDoS on basically any software system Like defending against all the closing all those attack factors is probably really difficult.

难道不可能在任何软件系统上进行 DoS 或 DDoS 攻击吗?像防御所有这些攻击因素可能真的很困难。

1:41:23 If you take any sufficiently complicated software system, there’s probably so many ways to overwhelm it.

如果你使用任何足够复杂的软件系统,可能有很多方法可以压倒它。

ThePrimeagen1:41:42

Yeah, this is why people use CloudFlare.

是的,这就是人们使用 CloudFlare 的原因。

1:41:42 I think d HH said it best, which is like we have our website and we have a strong bodyguard on the outside.

我认为d HH说得最好,这就像我们有我们的网站,我们在外面有一个强大的保镖。

So CloudFlare has a bunch of utilities all built in.

因此,CloudFlare 内置了许多实用程序。

Because obviously this is why everyone hates all these Bluetooth devices that connect to the internet because they just turn into attack vectors where people use those to DoS or DDoS other sites.

因为显然这就是为什么每个人都讨厌所有这些连接到互联网的蓝牙设备,因为它们只会变成攻击媒介,人们使用这些设备对其他网站进行 DoS 或 DDoS。

And so you don’t need something sophisticated, you just need a bunch of requests to come in and you can take down websites.

所以你不需要复杂的东西,你只需要一堆请求进来,你就可以关闭网站。

And so that’s why these fronts are really good at discovering where these problems are.

这就是为什么这些前沿非常擅长发现这些问题所在。

1:42:13 But DoS is a bit different, because it doesn’t have to be overwhelming by using resources with a whole bunch of requests.

但 DoS 有点不同,因为它不必因大量请求而使用资源而造成压倒性的后果。

It really just means simply that there’s a denial of service attack.

这实际上只是意味着存在拒绝服务攻击。

One of them could be there’s a RegEx attack that existed where CloudFlare actually did it to itself and shut itself down, which is there’s a RegEx expansion attack where given the right RegEx, if you know someone’s running a specific RegEx, you can actually provide input that is maximally bad and that thing goes to super processing.

其中之一可能是存在正则表达式攻击,CloudFlare 实际上对自己进行了攻击并关闭了自己,​​这是一种正则表达式扩展攻击,如果给定正确的正则表达式,如果你知道某人正在运行特定的正则表达式,你实际上可以提供最糟糕的输入,然后事情会进入超级处理。

It takes 10 seconds to process a single request, then you only need to make hundreds of requests and you shut down the whole service.

处理一个请求需要 10 秒,然后你只需要发出数百个请求,然后关闭整个服务。

It’s not like you need some giant machinery to make one trillion requests.

这并不像你需要一些巨型机器来发出一万亿个请求。

You only need just some small amount to completely destroy a service.

您只需要少量即可完全摧毁一项服务。

And so there’s…

所以有……

The web is an extremely difficult place to do it correct.

网络是一个极其难以正确执行此操作的地方。

Lex Fridman1:42:59

This is super fascinating.

这真是超级迷人。

1:42:59 I do also wonder how many ultra competent, what is it, black hat hackers there are, versus the good guys versus the bad guys.

我也确实想知道有多少超级能干的黑帽黑客,这是什么,与好人与坏人相对。

How many bad guys there are and what is the average…

有多少坏人,平均数是多少……

What is the distribution of skillset on the bad guy side that are constantly trying to attack?

不断尝试攻击的坏人一方的技能分布是怎样的?

ThePrimeagen1:43:23

I assume there’s probably a huge number of just really simple ones, script kitties, right?

我认为可能有大量非常简单的脚本小猫,对吧?

1:43:23 Just people trying to just do things.

只是人们试图做事。

And then there’s a huge amount of social engineering that just goes in where hacking’s done, not with a computer but just by one of the classic ones.

然后,有大量的社会工程直接进入黑客攻击的地方,不是使用计算机,而是使用经典的计算机之一。

Kevin Mitnick had this one in his book which was you’d call up somebody pretending to be like, “Charlene, we’re doing some auditing and I think your pin’s out of date on file.

凯文·米特尼克(Kevin Mitnick)在他的书中提到了这一点,那就是你会假装打电话给某人,“夏琳,我们正在做一些审计,我认为你的密码已经过时了。

Is it 2323, still?” And they’re like, “No, it’s 4747.” You’re like, “Oh, thanks Sharon.” Boom.

还是2323吗?”他们说:“不,是 4747。”你会说,“哦,谢谢莎伦。”繁荣。

You just hacked him.

你刚刚黑了他。

Right?

正确的?

The classic people love correcting bad information.

经典的人喜欢纠正错误的信息。

1:43:57 This is like a standard.

这就像一个标准。

So there’s all these ways people hack.

人们的黑客攻击方式有很多。

And so my assumption is that there are really great white hat hackers, there’s really great black hat hackers.

所以我的假设是,确实有很棒的白帽黑客,也有很棒的黑帽黑客。

But the vulnerability space, the harp, the thing is that discovering a vulnerability and you don’t let anyone know, the white hat hacker still has to make that same discovery.

但是漏洞空间,竖琴,问题是,发现漏洞并且你不让任何人知道,白帽黑客仍然必须做出同样的发现。

And that’s where I think the real thing is that black hat hacking in some sense has a fundamentally easier job or at least a job in which they can take advantage of for much longer periods of time.

这就是我认为真正的问题是,从某种意义上说,黑帽黑客的工作从根本上来说更容易,或者至少是他们可以利用更长时间的工作。

One’s the process of discovering who’s breaking the system.

这是发现谁破坏系统的过程。

The other one’s trying to figure out how to break the system.

另一个则试图找出如何破坏系统的方法。

And it seems like most software is held together by toothpicks and glue and there is a lot of dangers in every piece.

似乎大多数软件都是用牙签和胶水粘合在一起的,每个部分都存在很多危险。

Lex Fridman1:44:40

And also the social engineering aspect, that’s a real attack vector.

还有社会工程方面,这是一个真正的攻击媒介。

1:44:40 I think that’s the attack vector that will do in the longterm the most damage in the world.

我认为从长远来看,这是世界上造成最大损害的攻击方式。

Especially as AI tooling becomes easier and easier to convince people at scale, sort of do that email Grandma.

尤其是随着人工智能工具变得越来越容易大规模说服人们,就像给奶奶发电子邮件一样。

I think that’s a really serious attack vector, like human psychology and all that.

我认为这是一个非常严重的攻击媒介,就像人类心理学等等。

I assume whenever there’s a girl that approaches me, it’s some kind of social engineering project, some attack vector, some intelligence agency.

我认为每当有一个女孩接近我时,这都是某种社会工程项目,某种攻击媒介,某种情报机构。

In fact, I’m pretty sure-

事实上,我很确定——

ThePrimeagen1:45:12

We’re back to A Beautiful Mind, aren’t we?

我们又回到了《美丽心灵》,不是吗?

Lex Fridman1:45:14

Beautiful mind?

心灵美吗?

1:45:14 Yeah.

是的。

I have a whiteboard upstairs that I calculate everything, everybody’s trajectory and move.

我在楼上有一块白板,我可以计算一切,每个人的轨迹和移动。

ThePrimeagen1:45:20

You’re not wrong though with the attack vector, especially in the day of AI.

不过,你对攻击向量的看法并没有错,尤其是在人工智能时代。

1:45:20 One thing that I don’t think a lot of people are talking about as we integrate more and more AI is that prompt injection is an extremely hard thing to defend against because it’s not really clear how you defend against it.

随着我们集成越来越多的人工智能,我认为很多人都在谈论的一件事是,即时注入是一件极其难以防御的事情,因为目前还不清楚如何防御它。

If it’s just a, at the end of the day word calculator make word come out.

如果它只是一个,那么最终单词计算器会让单词出来。

If you can figure out the proper word calculator input, it might just break its bounds and start doing something it’s not supposed to do.

如果你能找出正确的单词计算器输入,它可能会打破它的界限并开始做一些不应该做的事情。

And there’s a whole future word.

还有一个完整的未来词。

1:45:49 There’s all these products that are going to be vulnerable to things they never thought about.

所有这些产品都容易受到他们从未想过的事情的影响。

It’s one thing where you forget an edge case while you’re programming.

在编程时忘记边缘情况是一回事。

Now you have to guess what people might be able to think of making something that has access to a system be able to do.

现在你必须猜测人们可能会想到让有权访问系统的东西能够做什么。

Right.

正确的。

And you don’t have a way to reason about it.

而且你没有办法对此进行推理。

Its reasoning came from Reddit, and other words that it’s read and how to put things together.

它的推理来自 Reddit,以及它所读到的其他文字以及如何将事物组合在一起。

This is a very…

这是一个非常…

It’s a massive space that’s going to be happening.

这是一个即将发生的巨大空间。

It’s why I’m personally thinking don’t give too many powers yet.

这就是为什么我个人认为还不要赋予太多权力。

We don’t know the attacks that are about to happen.

我们不知道即将发生的攻击。

Lex Fridman1:46:21

Yeah, the more power we give to software systems, the more damage they can do.

是的,我们赋予软件系统的权力越多,它们造成的损害就越大。

1:46:21 That certainly is the case.

情况确实如此。

But the more awesome they could do, and that’s the knife’s edge that we all walk along as a human civilization together, hand in hand.

但他们能做得越出色,那就是我们作为人类文明一起携手并进的刀刃。

Will we flourish or destroy ourselves?

我们会繁荣还是毁灭自己?

Question mark.

问号。

Folks on Reddit, the good folks on Reddit, demanded that I ask you about the time you broke production.

Reddit 上的人们,Reddit 上的好人们,要求我询问你中断生产的时间。

Is this related to Falco?

这和法尔科有关系吗?

Did you break production?

你中断生产了吗?

Is this fake news?

这是假新闻吗?

ThePrimeagen1:46:48

I’ve broke production quite a few times.

我已经多次中断生产了。

1:46:48 I’ve broken productions for so many stupid reasons.

我曾因为很多愚蠢的原因而破坏过作品。

One time I broke production because I came up in the PHP and PHP.

有一次我中断了生产,因为我遇到了 PHP 和 PHP。

Static means static for the lifetime of the PHP and PHP was the lifetime of every request, right?

静态意味着 PHP 的生命周期是静态的,PHP 是每个请求的生命周期,对吗?

That’s why PHP was so inefficient was that every request was its own instance, and therefore static memory was for the lifetime.

这就是 PHP 效率如此低下的原因,因为每个请求都是它自己的实例,因此静态内存是终生的。

I guess I never put that together.

我想我从来没有把它们放在一起。

And so I had some objects that I made static because I was like, oh I just need this for the lifetime of the request.

因此,我将一些对象设为静态,因为我想,哦,我只需要在请求的生命周期内使用它。

And lo and behold, those weren’t lifetime.

你瞧,那不是一生。

A whole bunch of bad data got all over the place.

一大堆坏数据遍布各处。

People were showing up saying they were from all these different countries and everything was all wrong because I just…

人们出现说他们来自所有这些不同的国家,一切都错了,因为我只是……

“Whoopsie-daisies.”

“哎哟雏菊。”

1:47:25 I just made a whole conundrum with that.

我刚刚对此提出了一个完整的难题。

So that was one time I did it.

所以那是我做过的一次。

Another time is I took down, if you were on the homepage on the website waiting for Lady Gaga’s video to come out and you were watching the countdown go down, if it reached zero, the billboard would freeze and it wouldn’t work.

还有一次是我记下来了,如果你在网站首页等待Lady Gaga的视频出来,你正在看着倒计时,如果到了零,广告牌就会冻结,不起作用。

If you refreshed it, it would work.

如果你刷新它,它就会起作用。

But the reveal, the big reveal, I screwed that up and my boss got real upset and so did other people in Hollywood got upset about that one.

但是这个揭露,一个重大的揭露,我搞砸了,我的老板非常生气,好莱坞的其他人也对此感到不安。

That was like a, “My bad.

这就像“我的错。

Sorry, Jeff Wagner, again.” I remember that one.

再次抱歉,杰夫·瓦格纳。”我记得那个。

I remember that one specifically.

我特别记得那一个。

One time I released a bug where again on the billboard, if you pressed add to my list, I accidentally programmed in an infinite loop, and your whole webpage would just freeze.

有一次,我发布了一个错误,再次在广告牌上,如果您按下“添加到我的列表”,我不小心编程为无限循环,您的整个网页就会冻结。

Lex Fridman1:48:12

Are some of these bugs difficult to discover until you started-

在您开始之前,其中一些错误是否很难发现?

ThePrimeagen1:48:14

That one seems really easy looking back at it.

现在回想起来,这似乎很容易。

Lex Fridman1:48:17

In for a loop?

循环吗?

1:48:17 Yeah.

是的。

ThePrimeagen1:48:18

And we actually, during those days we had manual QA that are supposed to go through everything.

事实上,在那些日子里,我们有手动质量检查,应该检查所有事情。

1:48:18 So I didn’t feel as bad because my manual QA counterpart also missed it.

所以我并没有感觉那么糟糕,因为我的手动 QA 同行也错过了它。

We all missed it.

我们都错过了。

But it was just so simple.

但事情就是这么简单。

Just press that button, boom.

只要按下那个按钮,繁荣。

It just completely freezes the website.

它只是完全冻结了网站。

Lex Fridman1:48:33

Polluting the code with global variables that are holding values, SPHP I think allows you to do, that’s a tricky one to discover, because you rely on it, then there could be somebody else assigns a value to it.

用保存值的​​全局变量污染代码,我认为 SPHP 允许你这样做,这是一个很难发现的问题,因为你依赖它,然后可能会有其他人给它赋值。

ThePrimeagen1:48:47

Yeah, it’s a data race everywhere.

是的,到处都是数据竞赛。

1:48:47 And I just didn’t understand…

我只是不明白……

In my head static was like, “Oh, this is for the life.” I was just so locked into the PHP world at that time that I just made just such a, looking back on it’s so obvious.

在我的脑海里,静电就像是,“哦,这就是为了生活。”那时我就​​被困在 PHP 世界里了,所以我就做了这样一个,现在回想起来,这是显而易见的。

But during the time, it’s hard.

但期间,很难。

Lex Fridman1:49:04

So in general, pushing to production, I talked to Peter levels about this.

因此,总的来说,为了推动生产,我与彼得·水平讨论了这个问题。

1:49:04 He, obvious he’s operating as mostly a solo developer, but he often on the website said thousands, not hundreds of thousands of people use.

显然,他主要是作为一名独立开发者进行运营,但他经常在网站上说有数千人,而不是数十万人使用。

He often ships to production, pushes to production, meaning just no testing, just like push to fix.

他经常将产品交付到生产环境,推送到生产环境,这意味着不需要测试,就像推送修复一样。

What are the pros and cons of that approach in general to you?

对您来说,这种方法的优点和缺点是什么?

What do you think?

你怎么认为?

ThePrimeagen1:49:31

It’s obviously much easier the smaller your organization is.

您的组织越小,这显然会容易得多。

1:49:31 I think no one would argue that sentiment.

我想没有人会反驳这种观点。

If it’s just you working on a singular project, it is obviously much easier for you to push directly to production because you are the only one working.

如果只有您在处理一个项目,那么直接投入生产显然会更容易,因为您是唯一一个在工作的人。

You know all the ins and outs and if something were to break, you would discover it.

你知道所有的来龙去脉,如果有什么东西坏了,你会发现它。

So to me that makes sense.

所以对我来说这是有道理的。

I think the way he operates is perfect for what he does.

我认为他的运作方式非常适合他所做的事情。

You couldn’t take what he does and move it to say Microsoft or Netflix or Google because that would obviously…

你不能接受他所做的事情并将其移至“微软”、“Netflix”或“谷歌”,因为这显然会……

It would just be a disaster, just due to the amount of people all pushing to production.

这将是一场灾难,因为大量的人都在推动生产。

And so I personally love that.

所以我个人很喜欢这一点。

I think that you have to gauge both the application you’re building and its complexity and what you’re pushing, and how many people are working on it.

我认为你必须衡量你正在构建的应用程序及其复杂性以及你正在推动的内容,以及有多少人正在开发它。

1:50:15 I think those all go into how you can do that.

我认为这些都涉及到如何做到这一点。

Because not all applications are created equal either.

因为并非所有应用程序都是一样的。

That application I was making was zooming and scrolling where we had all of our own everything.

我正在制作的应用程序是缩放和滚动的,我们拥有自己的一切。

It was a very deep heavy logic app, and that was regardless of what was happening on the website, most of the code was library code.

这是一个非常深的重型逻辑应用程序,无论网站上发生什么,大部分代码都是库代码。

And that becomes way harder if you don’t have a good test suite and stuff to run before you push it out.

如果您在推出之前没有良好的测试套件和需要运行的东西,那么这会变得更加困难。

Because when you squeeze that ball, different things come popping out in different areas.

因为当你挤压那个球时,不同的区域会弹出不同的东西。

And that’s a very harder problem than say if you’re doing more of a heavy visual one because a heavy visual one, you’re affecting just this one area’s visual stuff and you can test it and that’s normally the end of it.

这是一个非常困难的问题,比说如果你做更多的重型视觉任务,因为重型视觉任务,你只影响这个区域的视觉内容,你可以测试它,通常就结束了。

1:50:57 Whereas, you know…

然而,你知道……

So it depends on the coupling and everything.

所以这取决于耦合和一切。

So I love his approach by the way.

所以顺便说一句,我喜欢他的方法。

I have such mad respect for anyone that operates that way because I think is a great way, it just is so good because it breaks this notion that tech Twitter has that oh well you have to use all these expensive services, you need to use all these things because if you don’t use all this stuff, “If you’re not using the latest version of React, if you’re not using the latest version of this, you’re simply not going to make it as a startup.

我非常尊重任何以这种方式运作的人,因为我认为这是一个很好的方式,它是如此的好,因为它打破了科技 Twitter 的观念,哦好吧,你必须使用所有这些昂贵的服务,你需要使用所有这些东西,因为如果你不使用所有这些东西,“如果你不使用最新版本的 React,如果你不使用最新版本的这个,你根本就不会成为一家初创公司。

It’s impossible.” And it’s just like, “No, no, that’s not software.” Most of software isn’t the new stuff.

这是不可能的。”就像,“不,不,那不是软件。”大多数软件都不是新东西。

Most of software is old crappy software that someone has to maintain, and it actually is really, really great and has lots of really hard problems.

大多数软件都是旧的蹩脚软件,需要有人维护,但它实际上非常非常好,并且有很多非常困难的问题。

And if you look at it differently, it’s actually fantastic.

如果你以不同的方式看待它,它实际上非常棒。

Lex Fridman1:51:38

For people who don’t know his tech stack, in terms of web development is PHP, jQuery and SQL.

对于那些不了解他的技术栈的人来说,就 Web 开发而言,就是 PHP、jQuery 和 SQL。

ThePrimeagen1:51:45

Yeah, all great stuff.

是的,都是很棒的东西。

1:51:45 I’m just surprised he still uses jQuery just given the fact that at this point on the modern web, everything is, you have document query selector and ad event listener click, right?

我只是很惊讶他仍然使用 jQuery,因为在现代网络上,一切都是这样的,你有文档查询选择器和广告事件监听器点击,对吗?

It pretty much has everything you already need.

它几乎拥有您需要的一切。

It had DOM content load, all the reasons I used jQuery back in the day was adding a click on a button was hard.

它有 DOM 内容加载,我当时使用 jQuery 的所有原因是添加按钮上的点击很困难。

You had to deal with IE7, IE8, IE9.

你必须处理 IE7、IE8、IE9。

Those are hard differences.

这些都是很困难的差异。

Whereas now, it’s just so easy.

而现在,一切就这么简单。

I’m just surprised it’s even that.

我只是很惊讶竟然是这样。

Lex Fridman1:52:13

That’s definitely a trade-off.

这绝对是一个权衡。

1:52:13 I still use the exact same stack, PHP, jQuery and different flavors of SQL.

我仍然使用完全相同的堆栈、PHP、jQuery 和不同风格的 SQL。

But the question there is you keep using jQuery because you can get the job done really fast and there’s no significant performance hit that you detect.

但问题是您继续使用 jQuery,因为您可以非常快地完成工作,并且您没有检测到显着的性能影响。

So like why swish to something else?

那么为什么要选择别的东西呢?

But it’s always probably as we’ll talk about good to explore and to learn.

但这总是可能的,因为我们会谈论探索和学习的好处。

ThePrimeagen1:52:39

Not all tools are great at solving all problems.

并非所有工具都能很好地解决所有问题。

1:52:39 And so what you think is really the problem is you run into this trade off, which is you have some tool belt that you’re very adept with, you know all the ins and outs.

所以你认为真正的问题是你遇到了这种权衡,那就是你有一些你非常擅长的工具带,你知道所有的来龙去脉。

There’s no unknown unknowns, but there’s no surprises in this.

没有未知的未知,但也没有什么意外。

You know what you’re building, you know what you’re getting into.

您知道自己正在构建什么,也知道自己正在进入什么领域。

You will go through and you’ll be able to solve the problem.

你会经历并能够解决问题。

But if you ever use a different language or a different experience, you can find that some things are able to represent states way easier, in a way more efficient way.

但如果你使用不同的语言或不同的经历,你会发现有些东西能够更容易、更有效地表示状态。

And you can solve problems really efficiently in some versus the other.

与其他问题相比,你可以真正有效地解决某些问题。

And so it’s like if you don’t take the time to explore as well, you could be missing out on something that makes you twice as good on this one specific problem like subset.

因此,如果你不花时间去探索,你可能会错过一些能让你在这个特定问题上表现加倍的东西,比如子集。

And so I value being able to look at all problems.

因此,我很重视能够审视所有问题。

And so I don’t want to get stuck on one thing though.

所以我不想困在一件事上。

I see why people do, which is for the efficiency sake.

我明白人们为什么这样做,这是为了效率。

Lex Fridman1:53:34

Let’s just return to the infrastructure of the platform of Netflix and, speak more generally, Netflix, Twitch, YouTube.

让我们回到 Netflix 平台的基础设施,更笼统地说,Netflix、Twitch、YouTube。

1:53:34 Anytime I use any of these services, I’m just blown away by the infrastructure it takes to deliver this service.

每当我使用这些服务中的任何一个时,我都会对提供该服务所需的基础设施感到震惊。

YouTube and Twitch are unique, versus Netflix where the creators can roll in themselves and upload stuff.

YouTube 和 Twitch 是独一无二的,而 Netflix 的创作者可以自行参与并上传内容。

So on the consumption side, YouTube has over 100 billion views a day, over one billion hours watch time.

所以在消费方面,YouTube每天的观看次数超过1000亿次,观看时间超过10亿小时。

But on the creator side, one million hours of videos are uploaded every day.

但在创作者方面,每天上传的视频有100万小时。

One million hours.

一百万小时。

It’s like you have to service both and you have to deliver everything…

这就像你必须为两者提供服务,并且你必须提供一切......

It’s just incredible to me.

这对我来说简直难以置信。

Can you maybe speak to your own intuition, just zooming out on it, what it takes to deliver that kind of infrastructure?

您能否谈谈您自己的直觉,只是缩小范围,交付这种基础设施需要什么?

ThePrimeagen1:54:25

For me, the thing that I find vastly complicated and I can’t imagine the engineering hours, is how do you even create an edge in that situation?

对我来说,我发现非常复杂并且无法想象工程时间的事情是如何在这种情况下创造优势?

1:54:25 And what I mean by an edge, when people say this phrase, if you’re unexperienced, an edge is where you deliver data.

我所说的优势是什么意思,当人们说这句话时,如果你没有经验,优势就是你提供数据的地方。

You want that edge to be as close to the customer as possible because that’s where the data lives.

您希望该边缘尽可能靠近客户,因为那是数据所在的地方。

And then the communication between the customer and what you’re doing is really, really small.

然后客户和你正在做的事情之间的沟通非常非常小。

Obviously the speed of light adds up, the amount of hops adds up, the amount of services that you have to remotely call adds up.

显然,光速加起来,跳数加起来,你必须远程调用的服务数量加起来。

1:54:54 They all add up and they all add inefficiencies to the system.

它们加起来就会导致系统效率低下。

So something like YouTube, they want to be able to serve that data as quick as possible, but their data changes constantly and relevance is almost directly tied with the newness of the item.

像 YouTube 这样的网站,他们希望能够尽快提供数据,但他们的数据不断变化,相关性几乎与项目的新颖性直接相关。

So it’s like how do you even cache these things out?

那么这就像你如何缓存这些东西呢?

How are you doing this?

你怎么做这个?

So they must have such an incredible caching network that I can’t even…

所以他们一定有一个令人难以置信的缓存网络,我什至不能……

I can’t even fathom what it takes to do that.

我什至无法理解需要什么才能做到这一点。

That just to me is just so impressive.

这对我来说真是太令人印象深刻了。

A million view hours in how many different resolutions with how much data?

一百万小时的观看时间,有多少种不同的分辨率和多少数据?

What is a million view hours?

什么是百万观看小时?

Is it 4K million view hours, along with 1080p, along with 720p, along with 1440p?

是 4K 百万观看小时、1080p、720p、1440p 吗?

That number is an insane number.

这个数字是一个疯狂的数字。

Lex Fridman1:55:33

Actually, it is brilliant what you said, which is for YouTube often the new thing is extremely important to show to everybody.

事实上,你说的很精彩,对于 YouTube 来说,向大家展示新事物往往是极其重要的。

1:55:33 And so, you can’t rely on caching or trivial kind of caching.

因此,您不能依赖缓存或简单的缓存。

ThePrimeagen1:55:34

Yeah.

是的。

Lex Fridman1:55:48

You have to deliver the new thing as quickly as possible.

你必须尽快交付新东西。

1:55:48 Yeah, it’s incredible.

是的,这太不可思议了。

So there’s the entire system, the recommendation system that knows each individual human watching YouTube and it has to integrate into that the new thing, while also caching this incredible cluster of possible videos that you’re potentially interested in.

因此,整个系统、推荐系统都知道每个观看 YouTube 的人,它必须集成到新事物中,同时还缓存这些令人难以置信的您可能感兴趣的可能视频。

And integrate into that ads in the case of YouTube and so on.

并整合到 YouTube 等广告中。

ThePrimeagen1:56:19

It’s a really tough problem because you have to think what is the cash hit rate on this?

这是一个非常棘手的问题,因为你必须考虑这个问题的现金命中率是多少?

1:56:19 Because the problem now actually comes down to space, space actually becomes a real problem.

因为现在问题实际上归结为空间,空间实际上成为一个真正的问题。

How many hundreds of petabytes do they have that they have for like, “Okay, what do we cache and where do we cache this?” The number, I think in the terms of gigabytes or maybe megabytes, they have to think in probably versions of bytes I don’t even know the name for right?

他们有多少数百 PB 的数据,比如“好吧,我们缓存什么?我们缓存在哪里?”我认为这个数字以千兆字节或兆字节为单位,他们必须以我什至不知道其名称的可能版本来思考?

It’s such a different problem and that’s why I said Netflix.

这是一个完全不同的问题,这就是我说 Netflix 的原因。

Netflix has a much easier job when it comes to caching.

Netflix 在缓存方面的工作要容易得多。

So if you’ve never looked it up, it’s called OCA and that we know what videos we’re releasing, we know what videos are hot in specific areas.

因此,如果您从未查过,它被称为 OCA,我们知道我们要发布哪些视频,我们知道哪些视频在特定领域很热门。

It’s a very limited set.

这是一个非常有限的集合。

We’re not going to all of a sudden get, “Oopsies, we got a million new view hours.” We don’t even have to worry about that as a problem.

我们不会突然得到,“哎呀,我们有了一百万个新的观看小时数。”我们甚至不必担心这是一个问题。

So it’s like, “Okay, we know Stranger Things season five’s about to drop, we’re going to pre-cash Stranger Things season five in every single OCA across the world because that thing’s about to get hammered.” And so it’s like it’s able to do such a different decision-making than what you have to do with something like YouTube.

所以这就像是,“好吧,我们知道《怪奇物语》第五季即将结束,我们将在世界各地的每个 OCA 中为《怪奇物语》第五季预付现金,因为这件事即将受到重击。”因此,与 YouTube 等网站相比,它能够做出如此不同的决策。

And then Twitch is even more wild because now you’re actually ingesting video and trying to make it go out all at the exact same time for all video and you have to transform that video from whatever format and whatever the bit rate is into something that’s more efficient in the system like that.

然后 Twitch 就更疯狂了,因为现在你实际上正在摄取视频并试图使其在所有视频的同一时间全部输出,并且你必须将该视频从任何格式和比特率转换为在此类系统中更有效的东西。

Hats off to Twitch engineering, because that’s some serious work.

向 Twitch 工程人员致敬,因为这是一项严肃的工作。

Lex Fridman1:57:44

And here’s some asshole, Lex, coming out and tweeting about YouTube features.

有个混蛋,Lex,出来发推文谈论 YouTube 的功能。

1:57:44 Listen…

听……

ThePrimeagen1:57:53

You’re not wrong on the features you asked for, though.

不过,您所要求的功能并没有错。

Lex Fridman1:57:56

I think this is an engineering problem of how do you allow fast iteration and addition of features that shouldn’t have to be integrated or impact the whole code base.

我认为这是一个工程问题,即如何允许快速迭代和添加不应集成或影响整个代码库的功能。

1:57:56 So at the edges of the code base improve on certain features, without having to consult the mothership of the code.

因此,在代码库的边缘改进某些功能,而无需咨询代码的母体。

ThePrimeagen1:58:19

It’s the large team, right?

这是一个大团队,对吧?

1:58:19 That’s the fundamental problem.

这是根本问题。

When you get into YouTube size, there is the team/organization that deals with data warehousing.

当您进入 YouTube 规模时,就会有处理数据仓库的团队/组织。

There’s the team slash organization that deals with delivery.

有一个负责交付的团队削减组织。

There’s a team slash organization that’s like the middle layer, how you even…

有一个团队斜线组织,就像中间层,你甚至……

They’re going to be like the little micro-surfaces to talk to these places.

它们将像小微表面一样与这些地方对话。

Then you have this front-end engine.

然后你就有了这个前端引擎。

So for a small feature, you have to get middle team, you have to get backend team, you have to get all these things.

因此,对于一个小功能,你必须得到中间团队,你必须得到后端团队,你必须得到所有这些东西。

Quick example, Netflix.

举个简单的例子,Netflix。

Are you familiar with the dystopian, Black Mirror?

你熟悉反乌托邦电影《黑镜》吗?

Lex Fridman1:58:19

Yeah.

是的。

ThePrimeagen1:58:51

Okay.

好的。

1:58:51 Season one, episode one.

第一季,第一集。

Do you know season one, episode one?

你知道第一季第一集吗?

Everyone who watches Black Mirror typically knows this episode.

看过《黑镜》的人都知道这一集。

Lex Fridman1:58:57

Okay, yeah.

好吧,是的。

1:58:57 I don’t remember what it is.

我不记得那是什么了。

ThePrimeagen1:58:58

Forgive my language, but they call it the pig-fucker episode.

请原谅我的语言,但他们称之为“猪他妈的插曲”。

Lex Fridman1:59:01

Oh yeah, of course.

哦,是的,当然。

ThePrimeagen1:59:02

Once you’ve seen the episode, you will then know this episode.

当你看过这一集之后,你就会知道这一集。

1:59:02 Well, when Netflix adopted it, I got pulled into a room, there’s like a VP, a product designer, a VP, and they said, Hey, we’re about to release our own version of Black Mirror, season three, I think at that time.

好吧,当 Netflix 采用它时,我被拉进一个房间,里面有一位副总裁、一位产品设计师、一位副总裁,他们说,嘿,我想当时我们即将发布我们自己版本的《黑镜》第三季。

We need episode one, season one to not be the first thing people see.

我们需要第一集、第一季不要成为人们首先看到的东西。

So let’s just reverse the season order.

因此,让我们颠倒季节顺序。

That required me…

这需要我……

I had like 20 engineers I had to gather together to be able to have this happen.

我必须召集大约 20 名工程师才能实现这一目标。

And that’s just the problem of big companies is that eventually every little thing has to become its own team.

这正是大公司的问题所在,最终每件小事都必须成为自己的团队。

And so even small…

所以即使很小……

There’s no such thing as a small feature.

没有什么是小功能。

Lex Fridman1:59:42

Reversing the order of the dropdown that selects the seasons is a meeting with a bunch of VPs and engineers.

颠倒选择季节的下拉菜单的顺序是与一群副总裁和工程师的会议。

1:59:42 That’s really interesting.

这真的很有趣。

ThePrimeagen1:59:50

Yeah.

是的。

Lex Fridman1:59:50

There’s got to be a way to accelerate that.

必须有一种方法来加速这一过程。

1:59:50 The natural scaling of a company and the bureaucracy that grows, yes, slows that down.

是的,公司的自然规模和不断增长的官僚机构会减慢这一速度。

But just having seen Elon work a lot, his teams are able to still keep it very fast, even as the company grows.

但只要看到埃隆工作了很多,他的团队仍然能够保持非常快的速度,即使公司在发展。

There’s got to be a process to doing that, especially for the pig-fucker episode.

必须有一个过程才能做到这一点,尤其是对于猪他妈的那一集。

I don’t know where that’s in the priority list, but for important things like that, you should be able to do that quickly.

我不知道它在优先级列表中的位置,但对于这样重要的事情,你应该能够快速完成。

I don’t know.

我不知道。

Can you speak to how would you do that?

你能谈谈你会怎么做吗?

ThePrimeagen2:00:25

Well, I can tell first how it was done.

好吧,我可以先说说它是如何完成的。

2:00:25 Remember…

记住……

So at a place like Netflix, there would be…

所以在 Netflix 这样的地方,会有……

I think that at that point it’s called a product called Dexter.

我认为那时它被称为 Dexter 产品。

I can’t remember.

我不记得了。

There’s our actual movie metadata warehouse that’s going to be highly integrated with Hollywood, where that side is able to manage all that.

我们实际的电影元数据仓库将与好莱坞高度集成,好莱坞方面能够管理所有这些。

So I’m like, “Hey, you need the ability to mark things that need to be reversed because we’re going to run into this a bunch.” And we did.

所以我想,“嘿,你需要能够标记需要逆转的事情,因为我们会遇到很多这样的事情。”我们做到了。

We ran into quite a few topical shows that all need to be reversed and all that.

我们遇到了很多热门节目,所有这些都需要逆转。

And so it’s like, “We need to be able to reverse episode numbers, season numbers.

就像这样,“我们需要能够反转剧集编号、季数。

We need to be able to hide season or episode numbers.”

我们需要能够隐藏季数或集数。”

2:00:58 In the case of the Chelsea Handler Show, it was like a daily show, so it’s like you don don’t need episode numbers, you just need the latest one.

就《切尔西·汉德勒秀》而言,它就像一场每日秀,所以就好像你不需要剧集编号,你只需要最新的一集。

And so there’s this whole problem that exists.

所以这整个问题就存在了。

And so it’s like, “Okay, you need to work on that for your UI over there, then you need to be able to store that data.

就像,“好吧,你需要为你的 UI 做这些工作,然后你需要能够存储这些数据。

Then we need to be able to go to the people that can actually get the video data out of that and provide it to our service layer.

然后我们需要能够找到能够真正从中获取视频数据并将其提供给我们的服务层的人。

I need to go talk to them and convince them they need to be able to give me the new methods and everything to do that.

我需要去和他们交谈并说服他们,他们需要能够为我提供新的方法和一切来做到这一点。

Then I need to be able to go write the methods to get it down, and then I need to go to the UI and make that accessible.

然后我需要能够编写方法来获取它,然后我需要转到 UI 并使其可访问。

Now I need to go to the website people, I need to go to the mobile people, I need to go to the TV people.”

现在我需要去找网站人员,我需要去找移动人员,我需要去找电视人员。”

Lex Fridman2:01:31

Yeah.

是的。

ThePrimeagen2:01:32

And so it’s like, you could see this thing like snowballing.

所以就像,你可以看到像滚雪球一样的事情。

2:01:32 And for us, the big thing that Netflix did that was so well is after I met with these people that were high level, I was the captain.

对我们来说,Netflix 做得如此出色的一件大事就是在我会见了这些高层之后,我成为了队长。

“I’m the captain now.” So I went to all these teams and said, “Hey manager, I need an engineer.

“我现在是队长了。”所以我去找所有这些团队说:“嘿经理,我需要一名工程师。

We need to get this done within the next couple of months because we got Black Mirror coming out.” So she would go, “Okay, here you go.” “The map team, I need someone to help me with being able to get data out of the lomo for this.” And so it’s like, “All right, you’re working with this engineering.”

我们需要在接下来的几个月内完成这项工作,因为《黑镜》即将上映。”所以她会说:“好吧,给你。” “地图团队,我需要有人帮助我从 lomo 中获取数据。”就像,“好吧,你正在从事这项工程工作。”

2:01:59 I’d go to the BMS team, “Okay, I need this engineer.” I’d go to the billboard team, “I need this engineer.” I go to all these little places to get all these little pieces of data.

我会去找 BMS 团队,“好吧,我需要这位工程师。”我会去找广告牌团队,“我需要这位工程师。”我去所有这些小地方来获取所有这些小数据。

And then I was the captain, I was like, “You’re working on this, you’re doing this, you’re doing this, you’re doing this, I’m doing this.

然后我是队长,我说,“你正在做这个,你正在做这个,你正在做这个,你正在做这个,我正在做这个。

Let’s go.” It’s like that worked.

我们走吧。”就像那样有效。

And we were able to go pretty fast for a big company.

对于一家大公司来说,我们能够发展得相当快。

And the fact that it required 20 engineers to do such a simple task, we were able to do it in, gosh, I’d say about three weeks worth of effort.

事实上,它需要 20 名工程师来完成如此简单的任务,我们能够完成它,天哪,我想说大约需要三周的努力。

But that was still…

但那仍然是……

I thought that was amazing, comparatively, to how many people move.

相比之下,有多少人搬家,我认为这是令人惊讶的。

Lex Fridman2:02:29

Well, because you have the freedom of the agency to do it.

嗯,因为机构有这样做的自由。

2:02:29 You said the captain of the ship.

你说的是船长。

That’s really powerful.

这真的很强大。

For big companies, that’s a risk.

对于大公司来说,这是一个风险。

Because you can fuck it up.

因为你可以搞砸它。

You might not see the bigger context legally the bigger context of the impact on the industry or all the contracts that are made, all that.

您可能看不到法律上更大的背景,对行业或所有签订的合同的影响的更大背景,所有这些。

So it’s a risk, it’s a risk, but it’s a risk you have to keep taking.

所以这是一个风险,这是一个风险,但你必须继续承担这个风险。

And then when you fuck up, you fix, and then maybe pay the cost legally for that, whatever.

然后当你搞砸了,你就修复,然后可能会为此合法地支付费用,无论如何。

But the long term, that risk pays off because you’re going to keep creating a better and better product, evolving where the industry is going, constantly innovating ahead of where the industry is going and so on.

但从长远来看,这种风险是有回报的,因为你将不断创造出越来越好的产品,不断发展行业发展方向,不断创新,领先于行业发展方向等等。

Yeah.

是的。

ThePrimeagen2:03:08

And not only that, I think one thing that is just so important is that yes, the product will get better, but the people that you hire and the people that you keep around are better because they’re the ones that show maturity.

不仅如此,我认为非常重要的一件事是,是的,产品会变得更好,但你雇用的人和你保留的人会更好,因为他们是那些表现出成熟的人。

2:03:08 They’re the ones that can just…

他们是那些能够……

You give them something and they can rally the troops and make something happen.

你给他们一些东西,他们就可以集结军队并做出一些事情。

That’s a very great group of people to hire.

这是一群非常值得雇用的人。

And so you also naturally select out great engineers that aren’t just simply good at coding, they’re good at coding and they’re good at explaining and they’re good at convincing.

因此,你自然会挑选出优秀的工程师,他们不仅擅长编码,还擅长编码、擅长解释、擅长说服。

And you have to create a very lean audience that can move fast.

而且你必须创建一个非常精干且能够快速移动的受众群体。

Lex Fridman2:03:40

And I think for great engineers, having to wait for like, “Okay, let’s schedule a meeting for next Wednesday with the VPs and…” That destroys their soul.

我认为对于伟大的工程师来说,必须等待“好吧,让我们安排下周三与副总裁开会……”这会摧毁他们的灵魂。

2:03:40 And they either don’t want to contribute anymore or they leave the companies or they just tune out and take the golden handcuffs and just buy a nice house and focus on a family.

他们要么不想再做出贡献,要么离开公司,要么干脆闭嘴,戴上金手铐,买一栋漂亮的房子,专注于家庭。

ThePrimeagen2:04:04

Yeah.

是的。

2:04:04 I feel like I would die under that…

我感觉我会死在那个之下……

Honestly, that is my death sentence is where it’s just that there’s no reason to try, there’s no reason to do anything.

老实说,这就是我的死刑,只是没有理由去尝试,没有理由做任何事情。

I’m just going to go in there, effectively zombie through my day and call it…

我只是要去那里,有效地度过我的一天,然后称之为……

I don’t want to live like that.

我不想那样生活。

I want to feel like I’m trying to do something.

我想要感觉自己正在尝试做某事。

Lex Fridman2:04:22

I should also mention on top of that, so you’ve brilliantly laid out how incredible the challenge that Netflix has to solve.

除此之外,我还应该提一下,您出色地阐述了 Netflix 必须解决的挑战是多么令人难以置信。

2:04:22 On top of that with YouTube, the metadata thing, because users are able to upload video and there’s an API where they can upload automatically and change all this kind of stuff automatically.

最重要的是 YouTube,还有元数据,因为用户可以上传视频,并且有一个 API,他们可以自动上传并自动更改所有此类内容。

Every one of those things is an attack vector, as we mentioned.

正如我们提到的,这些事情中的每一个都是一种攻击媒介。

That’s something they have to consider seriously on the engineering side.

这是他们在工程方面必须认真考虑的事情。

And on the legal side, they can get into trouble all kinds of ways.

在法律方面,他们可能会以各种方式陷入麻烦。

So they have to consider all of that, which is fascinating.

所以他们必须考虑所有这些,这很有趣。

ThePrimeagen2:04:59

The legal side is obvious, but it’s not really like…

法律方面是显而易见的,但事实并非如此……

2:04:59 I would never have initially thought someone would, say, upload images that you’re not allowed to own or have.

我最初绝不会想到有人会上传你不被允许拥有或拥有的图像。

But that guarantee you that happens.

但这保证你会发生这种情况。

Then you have the whole kid side, right?

那么你就拥有了整个孩子的一面,对吗?

I think about when you mark something as kid-friendly, how many times have they snuck porn into a Taylor Swift video or whatever?

我想,当你将某些内容标记为适合儿童时,他们有多少次将色情内容偷偷放入泰勒·斯威夫特的视频或其他内容中?

That was like a few years back, there was that whole Taylor Swift or whatever.

就像几年前,还有泰勒·斯威夫特之类的。

I forget what it was, I thought it was Taylor Swift.

我忘了那是什么了,我以为是泰勒·斯威夫特。

But there’d be these mock videos that’d come up and then, boom.

但会有这些模拟视频出现,然后,繁荣。

It’s like, that is such an awful problem and I’m so happy that is not a problem.

就像,这是一个非常可怕的问题,我很高兴这不是一个问题。

I have to try to figure out.

我必须想办法弄清楚。

Lex Fridman2:05:32

Okay.

好的。

2:05:32 So yes, YouTube and Twitch and Netflix are doing an incredible job.

所以,是的,YouTube、Twitch 和 Netflix 正在做着令人难以置信的工作。

You eventually chose, the madman you are, to leave Netflix and to start on a new journey of being a wolf pack of one, start streaming.

你这个疯子最终选择离开 Netflix,开始成为狼群的新旅程,开始流媒体。

What was that?

那是什么?

What was the story of that?

那是怎样的故事呢?

ThePrimeagen2:05:52

So I was streaming for almost seven years now.

所以我直播已经快七年了。

2:05:52 It started actually at Netflix.

它实际上是从 Netflix 开始的。

We did a charity, Extra Life, shout out to Extra Life for starting my streaming career, effectively is just you stream and whatever money you raise, it goes to Kids with Cancer research.

我们做了一个慈善机构“Extra Life”,感谢 Extra Life 开始了我的流媒体生涯,实际上就是你的流媒体,无论你筹集到什么钱,它都将用于患有癌症的儿童研究。

They are a great charity in the sense that they take no overhead and they raise their own donations for their website and everything.

他们是一个伟大的慈善机构,因为他们不承担任何管理费用,并且为他们的网站和一切筹集自己的捐款。

And so it’s a very great, straightforward charity.

所以这是一个非常伟大、直接的慈善机构。

Really love what they’ve done.

真的很喜欢他们所做的事情。

It was super cool because I live in South Dakota now, but I actually could choose a hospital directly where the money goes to.

这太酷了,因为我现在住在南达科他州,但实际上我可以直接选择资金流向的医院。

So there’s a direct impact from A to B.

所以从A到B有直接影响。

So it’s a pretty cool organization.

所以这是一个非常酷的组织。

And so my friend, Guy Cirino, Nice Try Guy is what I like to call him, he was probably the single greatest engineer I’ve ever met in my lifetime.

所以我的朋友盖伊·西里诺(Guy Cirino),我喜欢这样称呼他,他可能是我一生中见过的最伟大的工程师。

2:06:37 And he was just like, “Hey, come do this.

他就像是,“嘿,来吧。

We’re going to all do this.” So I played Fortnite.

我们都会这样做。”所以我玩了《堡垒之夜》。

So before I did that, I was like, oh, I better learn how to stream first.

所以在我这样做之前,我想,哦,我最好先学习如何直播。

I better get affiliated so I can take subscriptions.

我最好加入会员,这样我就可以订阅。

And then if anyone gives me a subscription, I’ll also pay that forward.

然后,如果有人给我订阅,我也会将其转发。

So June 2018 or something like that, I start, I start streaming and I start streaming some Fortnite.

所以 2018 年 6 月或者类似的事情,我开始,我开始直播,我开始直播一些《堡垒之夜》。

End up getting affiliated, end up doing the whole extra life thing.

最终变得附属,最终做所有额外的生活事情。

I end up really enjoying it.

我最终真的很享受它。

I’m like, “This is a lot of fun.” I’m playing Fortnite at that point.

我想,“这很有趣。”那时我正在玩《堡垒之夜》。

Okay, so mind you, I’m a Fortnite streamer at that point, and I start really enjoying it.

好吧,请注意,那时我是《堡垒之夜》的主播,我开始真正享受它。

I keep doing it and then one day I decide I’m going to do some programming.

我一直这样做,然后有一天我决定要做一些编程。

Because I really love Vim and I think I’m fast at Vim, and maybe people think programming is cool.

因为我真的很喜欢 Vim,而且我认为我在 Vim 上很快,也许人们认为编程很酷。

Because there was no really programming section at that point.

因为那时还没有真正的编程部分。

2:07:22 And I did it.

我做到了。

I had like 30 people show up, which was just…

我有大约 30 个人出现,这只是......

And it felt like incredible numbers at that point.

那时感觉这个数字令人难以置信。

So I was like, “Oh my gosh, there’s like 30 people watching me program.” So it just kept on going and it kept on happening and it just kept on growing.

所以我当时想,“天哪,大约有 30 个人在看我的节目。”所以它一直在继续,一直在发生,一直在增长。

And I did it for year after year.

我年复一年地这样做。

I would do my job, I would come home, I’d eat dinner with the kiddos, I would read them Lord of the Rings and the Hobbit during that time, I’d read to them for a half an hour, then I’d set that down.

我会做我的工作,我会回家,我会和孩子们一起吃晚饭,在那段时间我会给他们读《指环王》和《霍比特人》,我会给他们读半个小时,然后我把它写下来。

And then three nights a week I would program until like 2:00 in the morning or play video games until 2:00 in the morning streaming and building up this whole side thing.

然后每周三个晚上我都会编程直到凌晨 2:00 或玩视频游戏直到凌晨 2:00 流媒体并建立整个副业。

And I did this for a long, long time, and then eventually it just kept working out so well and I started making YouTube videos.

我这样做了很长很长一段时间,最后效果一直很好,我开始制作 YouTube 视频。

And then that started getting better.

然后情况开始好转。

And it was just a long, long grind until April of last year.

直到去年四月,这只是一个漫长的磨练。

2:08:08 I went to the Streamer Awards and I got to announce the programming category and Pirate SoftwareOne.

我参加了 Streamer Awards,并宣布了编程类别和 Pirate SoftwareOne。

It was awesome.

太棒了。

It was a great time.

那是一段美好的时光。

And during that time he gave me a challenge coin and just said, “You just got to go for it.

在那段时间里,他给了我一枚挑战币,然后说:“你必须去争取。

Just go full time.” And so I just sat there and my wife can attest to it.

就全职吧。”所以我只是坐在那里,我的妻子可以证明这一点。

It was like an emotional turmoil thing and it just took a lot of, it was pretty awful because Netflix is very safe option.

这就像一场情绪动荡的事情,花了很多时间,这非常糟糕,因为 Netflix 是非常安全的选择。

It was both very fun.

两者都很有趣。

It was challenging.

这很有挑战性。

I liked a lot of the people worked with, it was overall a really great thing.

我喜欢很多一起工作的人,总的来说这是一件很棒的事情。

I had a really great boss, really appreciated him.

我有一个非常出色的老板,非常感谢他。

I still have text him now and then he’s really great guy.

我现在仍然给他发短信,他真的是一个很棒的人。

So it’s just like I’m leaving all these things for something that’s unsure.

所以这就好像我为了一些不确定的事情而放弃了所有这些事情。

And the reality is that streaming and all these things, people love you one day, they could hate you the next day.

现实是,流媒体和所有这些东西,人们有一天爱你,第二天他们可能会恨你。

There’s all this stuff that goes into being on the public side.

所有这些东西都是在公共方面出现的。

2:09:04 And I had Netflix as the backing, so it’s like if public hated me the next day I’d be like, deuces, I’m out.

而且我有 Netflix 作为支持,所以如果第二天公众讨厌我,我会说,平局,我出局了。

I don’t care now it’s like, now I’m going to do this as a job.

我现在不在乎,现在我要把它当作一份工作。

And so there’s a whole huge turmoil to this whole thing that went through it.

因此,整个事件经历了巨大的混乱。

And eventually I just said, okay, I’m going to make this.

最后我只是说,好吧,我要做这个。

It resonated with me when I first made the decision to join Netflix.

当我第一次决定加入 Netflix 时,它引起了我的共鸣。

I’m getting older.

我变老了。

There’s not a lot of chances to do something unusual.

做不寻常事情的机会并不多。

Those chances go down constantly.

这些机会不断下降。

As you get older, this might be the last crazy thing I get to do.

随着年龄的增长,这可能是我做的最后一件疯狂的事情。

Let’s just try it.

我们来试试吧。

So in April I went full-time and I guess I haven’t looked back.

所以四月份我开始全职工作,我想我再也没有回头。

I’m only not even a year into doing this as a full-time gig.

我全职做这件事还不到一年。

And it’s just been a lot of fun.

这很有趣。

And the biggest thing is just being able to really explore and do these things on stream where people really enjoy watching and engaging.

最重要的是能够在人们真正喜欢观看和参与的直播中真正探索和做这些事情。

It’s been a great, hard, fun, amazing, difficult experience.

这是一次伟大的、艰难的、有趣的、令人惊奇的、困难的经历。

Lex Fridman2:10:02

It’s a really inspiring leap.

这真是一次鼓舞人心的飞跃。

2:10:02 It’s a really hard one to take for many reasons, like you outlined, but also the loneliness of it, I think it’s a pretty lonely pursuit.

正如您所概述的,由于多种原因,这确实很难接受,而且它的孤独感,我认为这是一种非常孤独的追求。

ThePrimeagen2:10:14

It is.

这是。

Lex Fridman2:10:15

Just you and the camera and the audience and the ups and downs of that.

只有你、摄像机、观众以及其中的起起落落。

2:10:15 And there’s not really a team.

而且实际上并没有一个团队。

ThePrimeagen2:10:21

I do have one lucky thing I’d say that, my editor, Flip, shout out Flip.

我确实有一件幸运的事,我要说的是,我的编辑 Flip,大声喊出 Flip。

Lex Fridman2:10:25

Flip, shout out.

翻转,大喊一声。

ThePrimeagen2:10:26

He said it would mean the world to him if I said, “Shout out, Flip.”

他说如果我说“大声喊出来,小菲”,这对他来说意味着整个世界。

Lex Fridman2:10:28

I love you, Flip.

我爱你,弗利普。

2:10:28 We all love you.

我们都爱你。

ThePrimeagen2:10:31

Oh, man.

哦,伙计。

2:10:31 He had, as he would say, he had nothing going for him.

正如他自己所说,他一事无成。

He had a really hard growing up.

他的成长过程非常艰难。

A lot of rough life decisions have gone into his life and he’s crawling back out of it.

他的生活中已经做出了很多艰难的人生决定,而他正在从中爬出来。

And he just said, Hey, I’ll edit full-time for you.

他只是说,嘿,我会全职为你编辑。

So I just said, “All right, like 50/50, whatever I make on YouTube, you get.

所以我只是说,“好吧,就像 50/50 一样,无论我在 YouTube 上做什么,你都可以得到。

We’re going to do this together.” And we did that for years, making $0 a month pretty much.

我们将一起做这件事。”我们这样做了很多年,每月几乎赚 0 美元。

And so it’s just like that was an incredible jump and now we get to work together.

所以这就像是一个令人难以置信的飞跃,现在我们可以一起工作。

So I do get that one team aspect that I think is really nice.

所以我确实得到了我认为非常好的团队方面。

But it’s not like it was at Netflix where I could hear about stuff people are building, I don’t have a team, I don’t have product or cycles, I don’t have a manager that I have to try to make happy.

但这与在 Netflix 不同,我可以听到人们正在开发的东西,我没有团队,没有产品或周期,也没有需要让经理高兴的人。

It’s just like…

就像……

It is very lonely.

这是非常孤独的。

And I don’t think a lot of people realize how lonely it actually can be.

我认为很多人都没有意识到它实际上有多孤独。

Lex Fridman2:11:19

Yeah.

是的。

2:11:19 So combine that loneliness with, in my case, I don’t know how many people attack you.

因此,将这种孤独与我的情况结合起来,我不知道有多少人攻击你。

ThePrimeagen2:11:24

I have a shockingly low amount of attack rate, I feel like.

我感觉我的攻击率低得惊人。

Lex Fridman2:11:28

Yeah, people generally…

是的,人们一般...

2:11:28 It’s sometimes fun sort of teasing, that kind of thing, but it’s mostly just really…

有时候,取笑之类的事情很有趣,但大多数情况下都是真的……

You give so much love to the world and inspire so many people, even when you’re making fun of stuff, yeah.

你给了这个世界如此多的爱,激励了很多人,即使你在取笑一些东西,是的。

But with me taking the loneliness of it combined with just really intense attacks, it’s tough.

但对于我来说,孤独与强烈的攻击相结合,这很艰难。

It can be rough.

它可能很粗糙。

Psychologically, really a tough journey.

从心理上来说,确实是一段艰难的旅程。

You miss working with a team, just from even a software engineering side, where you can share code or talk over code?

您怀念与团队合作,即使是在软件工程方面,您也可以在团队中共享代码或讨论代码?

ThePrimeagen2:12:01

Yeah.

是的。

Lex Fridman2:12:02

Yeah, the collab…

是啊,合作……

2:12:00 Or talk over code or the collaborative aspect of it.

或者讨论代码或其协作方面。

ThePrimeagen2:12:05

Yeah, multiple things there.

是的,那里有很多东西。

2:12:05 One, hey, we love you Lex, so don’t let the things get you down.

一,嘿,我们爱你莱克斯,所以不要让事情让你沮丧。

Lex Fridman2:12:12

Thank you.

谢谢。

2:12:12 Thank you.

谢谢。

I love you too.

我也爱你。

ThePrimeagen2:12:15

Thank you.

谢谢。

2:12:15 Hey, little bonding moment here going on.

嘿,这里正在发生一些亲密的时刻。

But one thing I really miss-

但我真的很怀念一件事——

Lex Fridman2:12:20

Not in a sexual way, just to be clear.

不是以性的方式,只是为了澄清。

ThePrimeagen2:12:21

The tension is a little tense.

气氛有点紧张。

Lex Fridman2:12:23

I’m getting uncomfortable.

我越来越不舒服了。

2:12:23 Yeah.

是的。

Anyway, team.

无论如何,组队。

ThePrimeagen2:12:27

It’s just the one thing I really miss is just, even when I hated how people did it, just seeing how other people solved things, it’s really amazing just the raw creative power so many people have, and just being like, oh, wow, I would’ve never done it this way.

我真正怀念的一件事是,即使我讨厌人们如何做到这一点,只要看到其他人如何解决问题,这么多人拥有的原始创造力真是令人惊叹,就像,哦,哇,我永远不会这样做。

2:12:27 Crazy, right?

疯了,对吧?

Wow, this is awesome.

哇,这太棒了。

And then you kind of internally process this and you’re like, oh, I now have a new little tool in my tool belt.

然后你在内部处理这个问题,你会想,哦,我的工具带里现在有了一个新的小工具。

Because at some point it’s really hard to find a mentor when you’re first, young and you’re just starting out programming.

因为在某些时候,当你第一次、年轻、刚刚开始编程时,真的很难找到导师。

I mean, anyone with a couple years of experience will be not just a little bit better than you, but infinitely better than you.

我的意思是,任何拥有几年经验的人都不会比你好一点点,而是比你好得多。

It feels like crazy how much better people are.

人们变得更好了,这感觉简直太疯狂了。

And so you have to get mentors and you learn from people.

所以你必须得到导师并向人们学习。

And then as you get better, that amount of availability gets really small.

然后,当你变得更好时,可用性就会变得非常小。

And so it’s something that I really do miss is that forced hard problem solving together.

所以我真正怀念的是强制一起解决难题。

Lex Fridman2:13:19

I think there’s also a skill to mining the wisdom from other people.

我认为挖掘他人智慧也是一种技巧。

2:13:19 I generally try to approach even junior people, young folks.

我通常会尝试去接近资历较浅的人、年轻人。

It’s just mentally, at least for me, it works as a hack to assume they’re the smartest person in the world, way smarter than me.

这只是在心理上,至少对我来说,这是一种黑客行为,假设他们是世界上最聪明的人,比我聪明得多。

And so I take every single word they say as potential wisdom, and that helps me sort of mine for potential wisdom there.

所以我把他们说的每一句话都视为潜在的智慧,这对我来说是潜在的智慧的帮助。

Because it’s so easy once you get older to judge, to be like, yeah, okay, okay.

因为一旦你长大了,你就很容易做出判断,说,是啊,好吧,好吧。

I’ve been through that.

我经历过。

I remember feeling like that.

我记得有那样的感觉。

I remember thinking that.

我记得我是这么想的。

That’s incorrect, whatever.

无论如何,这是不正确的。

But just kind of assume that I don’t know what the fuck I’m doing, and the other person is this sage.

但假设我不知道自己在做什么,而另一个人就是这个圣人。

And in that kind of interaction, I think you could actually learn a lot.

在这种互动中,我认为你实际上可以学到很多东西。

And my favorite interactions is when we both think that way.

我最喜欢的互动是我们都这么想的时候。

So from there, I think that’s a catalyst for a great collaboration and interaction.

因此,从那时起,我认为这是良好合作和互动的催化剂。

ThePrimeagen2:14:19

It just also makes everything much nicer.

它也让一切变得更加美好。

2:14:19 It really stinks to work with someone that’s combative and negative.

和好斗、消极的人一起工作真的很糟糕。

I don’t mind combativeness if it’s like I’m trying to figure out what’s best to do right now, versus combativeness just because you’re a negative person and things have to be this one particular way, because if they’re not this one particular way, it’s the end of the world.

如果我想弄清楚现在最好做什么,我不介意好斗,而不是因为你是一个消极的人而好斗,事情必须以这种特定的方式进行,因为如果不是这种特定的方式,那就是世界末日。

And that’s actually really hard for me to work with.

这对我来说真的很难工作。

Lex Fridman2:14:43

What’s the origin story of ThePrimeagen name?

ThePrimeagen 这个名字的起源故事是什么?

ThePrimeagen2:14:47

The origin story of ThePrimeagen name was, are you familiar with a video game called Turok?

ThePrimeagen 这个名字的由来是,你熟悉一款叫做 Turok 的电子游戏吗?

2:14:47 Nintendo 64.

任天堂 64。

Turok had Turok I and then Turok II.

图洛克有图洛克一号,然后是图洛克二号。

Turok II was a brutally hard game.

《Turok II》是一款极其艰苦的游戏。

This is back when first-person shooters, they would only give you a certain amount of health, and you had to go discover health and get that health.

这又回到了第一人称射击游戏的时代,它们只会给你一定的生命值,你必须去发现生命值并获得生命值。

And you had to beat the whole game without effectively dying.

而且你必须在不死亡的情况下通关整个游戏。

That’s the first version right there.

这是第一个版本。

That’s like Turok I and Turok II.

就像图洛克一号和图洛克二号一样。

Lex Fridman2:15:16

Turok is a renowned first-person shooter video game series featuring dinosaurs, action, and sci-fi elements.

Turok 是著名的第一人称射击视频游戏系列,以恐龙、动作和科幻元素为特色。

2:15:16 The franchise has evolved significantly since its inception in 1997.

自 1997 年成立以来,该系列已经取得了显着的发展。

ThePrimeagen2:15:27

There you go.

就这样吧。

2:15:27 So in 1998, there, you can see it right there.

所以在 1998 年,你就可以看到它。

Lex Fridman2:15:30

Turok II, Seed of Evil followed in 1998 featuring larger levels, more challenging puzzles, and deadlier enemies.

1998 年推出的《Turok II, Seed of Evil》具有更大的关卡、更具挑战性的谜题和更致命的敌人。

ThePrimeagen2:15:37

The notable difficulty, it was very, very, very difficult.

值得注意的困难是非常非常非常困难。

2:15:37 So I spent, when I got it, it came in a black cartridge, not like your standard gray Nintendo 64, the black cartridge.

所以当我拿到它时,它是黑色卡带的,而不是像标准的灰色任天堂 64 那样,黑色卡带。

Badass game.

坏蛋游戏。

And I got it and I put it in and I played, and I played every day for 10 hours a day, for a month straight.

我拿到了它,把它放进去玩,我每天都玩 10 个小时,连续一个月。

And I beat it.

我打败了它。

And it was such an incredible, great experience.

这是一次令人难以置信的、很棒的经历。

And the last leader of Turok II is called the Primeagen.

Turok II 的最后一位领导者被称为 Primeagen。

And so when I was a kid, when you’re in fifth grade, that’s super cool, named after the bad guy.

所以当我还是个孩子的时候,当你上五年级的时候,那太酷了,以坏人的名字命名。

And so for a long time on any internet thing, like Grail Online that I mentioned earlier, the name was ThePrimeagen.

因此,很长一段时间以来,在任何互联网事物上,比如我之前提到的 Grail Online,这个名字都是 ThePrimeagen。

It was great.

太棒了。

And then I became an adult eventually, and it’s just like, okay, I’m an adult.

然后我最终成为了一个成年人,就像,好吧,我是一个成年人了。

My name’s Michael Paulson underscore.

我的名字是迈克尔保尔森下划线。

And that’s what I was on the internet for a long time was that.

这就是我在互联网上呆了很长时间的事情。

And I remember it was like 2017, 2018, somewhere in there.

我记得那是 2017 年、2018 年的某个地方。

2:16:36 I remember just how bad the tech world had kind of become.

我记得科技世界变得多么糟糕。

It was just like this super pretentious place, tons of dick measuring, just everything that just was the worst.

就像这个超级自命不凡的地方,大量的鸡巴测量,一切都是最糟糕的。

Ken Wheeler got canceled over playing the Circle game.

肯·惠勒因玩“圆圈”游戏而被取消。

It was just like, it is so hard to describe to people that weren’t there, but it was just the worst place to be.

就像,很难向不在场的人描述,但那是最糟糕的地方。

Tech was extremely unfun.

科技非常无趣。

It was extremely awful.

这是非常可怕的。

Everything was just so, it wasn’t academic because it was research.

一切都是如此,这不是学术,因为它是研究。

It was like we’re building the most sophisticated things, and this is for the smart people and everyone else is the dumb people.

就好像我们正在建造最复杂的东西,这是为聪明人准备的,而其他人都是愚蠢的人。

Don’t worry.

不用担心。

We’ll design for you, dummy.

我们将为你设计,傻瓜。

We’ll show you how to make the perfect architecture.

我们将向您展示如何打造完美的架构。

And I remember changing my Twitter handle because I got so upset and just went back to my video game name.

我记得我改变了我的推特账号,因为我很沮丧,然后又回到了我的电子游戏名称。

I was like, I want things to be fun.

我当时想,我希望事情变得有趣。

2:17:24 I want this to stop.

我想让这一切停止。

And so when I started streaming tech, my goal became to destroy whatever that tech mentality was, because it includes nobody.

因此,当我开始流媒体技术时,我的目标就是摧毁任何技术心态,因为它不包括任何人。

Everyone thinks that they’re the smart people and they design for the dummies.

每个人都认为自己是聪明人,但他们的设计却是为了傻瓜。

And it’s just like, no, I want tech to be this place where people feel like they can be creative, and excited, and actually build something.

就像,不,我希望科技成为这样一个地方,让人们觉得他们可以发挥创造力,感到兴奋,并真正构建一些东西。

And if you’re new, it’s okay to be dumb and ask dumb questions.

如果你是新手,犯傻并问愚蠢的问题是可以的。

Learn from your dumbness.

从你的愚蠢中学习。

No one’s expecting you to be smart.

没有人指望你聪明。

Pick whatever you want.

选择你想要的任何东西。

Actually do something and have fun and build your crazy ideas.

实际做一些事情,享受乐趣,并建立你疯狂的想法。

Oh, you’re going to reinvent the wheel, reinvent the wheel, understand what you’re doing, learn it really good, and interact and stuff.

哦,你要重新发明轮子,重新发明轮子,了解你在做什么,学得很好,并进行互动等等。

And it was just so different than what was out there.

它与外面的东西完全不同。

And the name…

还有名字……

Arnold Schwarzenegger talks about this thing where, when he first started acting, his name was the thing that people hated.

阿诺·施瓦辛格谈到这件事时,当他刚开始演戏时,他的名字是人们讨厌的东西。

2:18:14 As he once said, you have a strange voice, you have a strange body, and your name, your name’s unpronounceable.

正如他曾经说过的,你有一个奇怪的声音,你有一个奇怪的身体,你的名字,你的名字难以发音。

No one’s going to Schneitzinfinitzel, no one’s going to remember that.

没有人会去Schneitzinfinitzel,没有人会记得那件事。

And he said, but now the name is the strong part.

他说,但现在名字才是最重要的部分。

And for me, I’ve always felt akin to that, though my name’s not nearly as cool, nor am I as popular as Arnold, nor am I as tough or good-looking or successful.

对我来说,我一直有类似的感觉,尽管我的名字不像阿诺德那么酷,也不像阿诺德那么受欢迎,也不像阿诺德那么坚强、好看或成功。

But nonetheless, it’s just the name represented this counterculture movement within myself, in which I just hated what was there and I wanted to defeat it.

但尽管如此,这个名字代表了我内心的反文化运动,我只是讨厌那里的东西,我想打败它。

And so this has been the thing.

事情就是这样。

And now people remember me so well because of how weird my name is.

现在人们对我的记忆如此深刻,因为我的名字很奇怪。

And so it’s just like for whatever reason, it became its own thing.

所以无论出于什么原因,它都变成了自己的东西。

And so that’s the…

这就是……

Now I would never change it, and back then I would never change it because it was my rage against the machine moment, if you will.

现在我永远不会改变它,那时我也永远不会改变它,因为这是我对机器的愤怒,如果你愿意的话。

Lex Fridman2:19:01

Yeah, I love that as a symbol of rage against the machine and the rage being fun.

是的,我喜欢它作为对机器的愤怒的象征,而且愤怒是有趣的。

ThePrimeagen2:19:07

Yeah.

是的。

2:19:07 I just want people to be creative and have fun again.

我只是希望人们能够发挥创造力并再次享受乐趣。

It’s okay.

没关系。

Lex Fridman2:19:11

What about the mustache?

小胡子呢?

2:19:11 It’s an epic mustache.

这是史诗般的胡子。

It’s an epic stash.

这是一个史诗般的藏品。

It has a life of its own.

它有自己的生命。

Is there an origin story or did you guys discover each other at some point?

有没有起源故事或者你们在某个时候发现了彼此?

Or did it emerge from the darkness of the struggle that is your life, or where does it come from?

或者它是从你生命中挣扎的黑暗中出现的,或者它来自哪里?

ThePrimeagen2:19:29

Well, the original mustache is that it was no-shave November back before it became Movember.

好吧,原来的小胡子是十一月没有刮胡子,然后才变成Movember。

2:19:29 It was no-shave November back in the day.

那时是十一月,没有刮胡子。

And after no-shave November, you had all this hair.

十一月不刮胡子之后,你的头发就长成了这样。

And so what’s the natural thing you got to do?

那么你自然要做的事情是什么?

You got to sport a mustache for a day.

你必须留一天小胡子。

So whenever I’d forget to not shave for a long time, and then I’d let it start growing out really big, I just go, oh, this is kind of funny.

所以每当我忘记很长时间不刮胡子,然后我让它开始长得很大时,我就会说,哦,这有点有趣。

I’ll have a mustache.

我会留胡子。

So one day when I was streaming, it’s just one of those times I just didn’t shave, and then I started just letting it go, and then I got kind of a beard, and then I just had a mustache.

所以有一天,当我直播时,这只是我没有刮胡子的时候之一,然后我开始放手,然后我就留了胡子,然后我就留了小胡子。

When I did it, people were just like, yeah, it’s mustache time.

当我这样做的时候,人们就像是,是的,现在是胡子时间了。

And I was just like, heck yeah, it feels like a lifestyle decision.

我当时想,哎呀,这感觉像是一种生活方式的决定。

2:20:07 This is the fun times.

这是有趣的时光。

And so all of a sudden it was just exciting to have a mustache.

所以突然之间,留胡子真是令人兴奋。

And I shaved it off and I was like, oh, okay.

我把它剃掉了,我想,哦,好吧。

But then part of me is like there’s this weird energy that comes from just having a mustache.

但我的一部分感觉就像有一种奇怪的能量来自于留胡子。

So I was like, I’m going back.

所以我想,我要回去了。

Told my wife, forgive her.

告诉我的妻子,原谅她。

She was very not as thrilled about my decisions to have a mustache long-term, but I just decided to have it back and it was the right thing.

她对我长期留胡子的决定并不那么兴奋,但我决定把它留回来,这是正确的事情。

It’s always been the energy that I had was the mustache.

小胡子一直是我的能量。

It was always been there.

它一直都在那里。

It just never was visible until later on it feels like.

它只是一直不可见,直到后来才感觉到。

Lex Fridman2:20:40

Yeah, we’re chatting offline how one of the components of a successful relationship is sacrifice and your wife was willing to take the sacrifice of allowing you to have a mustache.

是的,我们正在线下聊天,成功关系的组成部分之一就是牺牲,而你的妻子愿意为了让你留胡子而做出牺牲。

ThePrimeagen2:20:48

I clearly was not willing to sacrifice not having one.

我显然不愿意牺牲没有一个。

Lex Fridman2:20:53

You do this incredible thing where you tried a bunch of different programming languages when you stream.

在直播时尝试了多种不同的编程语言,这是一件令人难以置信的事情。

2:20:53 You go all out on certain programming languages like Rust and then go and then try to pick a new one, but also are experimenting constantly.

你全力以赴地使用某些编程语言,比如 Rust,然后尝试选择一种新的语言,但同时也在不断地进行实验。

So maybe one question I could ask is about learning.

所以也许我可以问的一个问题是关于学习的。

What’s your approach to learning a new programming language, and maybe what’s your advice on learning a new programming language when you begin that journey?

您学习一门新的编程语言的方法是什么?当您开始学习一门新的编程语言时,您的建议是什么?

ThePrimeagen2:21:26

So I’ve kind of done a bunch of different ways to go through this learning process, and I’ve tried a lot of different ones.

所以我做了很多不同的方法来完成这个学习过程,并且我尝试了很多不同的方法。

2:21:26 Something that is obviously successful is just start building something.

显然成功的事情就是刚刚开始构建一些东西。

Just put your hands on the keyboard, especially if you already know how to program.

只需将手放在键盘上,尤其是如果您已经知道如何编程的话。

You’re like, okay, I’m now using Zig.

你会说,好吧,我现在正在使用 Zig。

How do I do a main function so I can just run the program?

如何执行 main 函数以便我可以运行程序?

Okay, now I know how to build.

好的,现在我知道如何构建了。

Okay, how do I do an if statement?

好吧,我该如何做 if 语句呢?

What does it look like?

它看起来像什么?

Okay, how do I declare my own functions?

好吧,我如何声明我自己的函数?

How do I do modules, right?

我该如何做模块,对吗?

You just kind of Google your way through it, if you will, to get to the end product and build something.

如果你愿意的话,你只需谷歌一下就能找到最终产品并构建一些东西。

It’s a great way to do things because I find that repetition, rote learning is obviously the best way to do this.

这是一种很好的做事方式,因为我发现重复、死记硬背显然是最好的方式。

You have to kind of go over it a bunch and you can definitely get out and build a lot of stuff with that.

你必须仔细检查一下它,然后你绝对可以用它来构建很多东西。

I like that initial kind of get used to things.

我喜欢最初的那种习惯。

2:22:12 But on top of it, I find that, by doing that, you also fall into traps.

但最重要的是,我发现这样做也会落入陷阱。

You kind of Google and you try to solve a problem in the language based on all of your previous experience.

你用谷歌搜索一下,然后尝试根据你以前的所有经验用该语言解决问题。

And so you don’t have what makes that language special.

所以你不具备该语言的特殊之处。

You have what all the other languages make special.

您拥有所有其他语言的独特之处。

And so you end up not really being able to use it very effectively, but you can certainly kind of learn it and get kind of good at it.

所以你最终无法真正有效地使用它,但你当然可以学习它并擅长它。

And so the second approach I’ve been doing lately, and this has been inspired by the creator of Ghosty, Mitchell Hashimoto, is to just start by reading the language reference, the whole thing.

因此,我最近采用的第二种方法是从阅读语言参考资料开始,这受到了 Ghosty 的创建者 Mitchell Hashimoto 的启发。

And so lately I’ve been just kind of going through and just reading the entire manual for these languages.

最近我一直在浏览并阅读这些语言的整个手册。

Like Zig, I’m almost done with that one.

和 Zig 一样,我也快完成这个任务了。

It’s like eight to 10 hours of just sitting down reading, and I’ll whip out my computer and kind of practice a couple of the things from the actual docs, and that way I can learn all the things.

这就像坐下来阅读八到十个小时,然后我会拿出我的电脑,练习实际文档中的一些内容,这样我就可以学习所有的东西。

2:23:01 So then when I start building again, I’ll remember, okay, I know there’s a thing over here, let me go reread about it because now I have it indexed in my brain somewhere that will remember.

所以当我再次开始构建时,我会记得,好吧,我知道这里有一个东西,让我重新阅读它,因为现在我已经将它索引到我大脑中某个会记住的地方。

And so I don’t think there’s a right or wrong way.

所以我认为没有正确或错误的方法。

I mean at the end of the day, the right way is always that you have to build something eventually.

我的意思是,归根结底,正确的方法始终是你最终必须构建一些东西。

You cannot just read about it.

你不能只阅读它。

You have to put your hands on the keyboard, you have to build something out.

你必须把手放在键盘上,你必须构建一些东西。

And then once you do that, that’s where you really discover what makes it painful or what makes it great.

一旦你这样做了,你就会真正发现是什么让它变得痛苦或是什么让它变得伟大。

And if you don’t have the breadth of what the language offers, you just may make it painful by simply being bad at it.

如果你不具备该语言所提供的广度,那么你可能会因为不擅长它而感到痛苦。

Lex Fridman2:23:30

Where exactly are you reading this-

你到底在哪里读到这篇文章——

ThePrimeagen2:23:35

Language reference.

语言参考。

Lex Fridman2:23:38

The language reference.

语言参考。

ThePrimeagen2:23:38

So it just goes through every feature top to bottom, right?

所以它只是从上到下遍历每个功能,对吗?

Lex Fridman2:23:38

That’s a lot.

就这么多了。

2:23:38 Yeah.

是的。

ThePrimeagen2:23:39

Every way it’s described, all the different things.

每一种描述方式,都有不同的东西。

2:23:39 I think Zig’s is, it’s a decent size, but it’s not just simply read the words.

我认为 Zig 的尺寸不错,但不仅仅是简单地阅读文字。

You want to internalize each concept as well.

您还想内化每个概念。

So it takes a long time.

所以需要很长时间。

So I’m a slow reader.

所以我是一个阅读速度很慢的人。

Lex Fridman2:23:51

So you’re building, in AI terms, like a background model.

所以,用人工智能的术语来说,你正在构建一个背景模型。

2:23:51 I don’t think you can just start building once you’re done reading because you probably forgot how to do a for loop.

我不认为你读完之后就可以开始构建,因为你可能忘记了如何执行 for 循环。

You kind of forget the specifics.

你有点忘记了具体细节。

You just are building up the design choices, the set of features available, what are the strengths and weaknesses, all that kind of stuff.

您只需建立设计选择、可用功能集、优点和缺点等等。

And then you start building.

然后你开始建造。

That’s really interesting.

这真的很有趣。

Probably not the thing you would recommend to a junior developer, somebody who’s just starting out at first.

您可能不会向初级开发人员(刚开始开发的人)推荐这种方法。

ThePrimeagen2:24:24

If you don’t know what an if statement is, that’s not a good way to learn.

如果你不知道什么是 if 语句,那不是一个好的学习方法。

2:24:24 To me, the best way to learn that is really hands on the keyboard and building extremely simple things, and slowly growing in complexity.

对我来说,学习的最好方法是真正动手操作键盘并构建极其简单的东西,然后慢慢增加复杂性。

Because understanding what a class and methods and instances versus the blueprint, which is the class versus functions versus modules versus all that stuff.

因为了解什么是类、方法和实例与蓝图,什么是类、函数、模块与所有这些东西。

That just takes time to learn.

这只是需要时间来学习。

And so that’s a completely different style of learning.

所以这是一种完全不同的学习方式。

Lex Fridman2:24:46

I wonder because for me, learning right now, AI is a huge help, but I already have a lot of experience.

我想知道,因为对我来说,现在学习人工智能是一个巨大的帮助,但我已经有了很多经验。

2:24:46 I wonder, if you’re starting from scratch, whether that’s a good idea.

我想知道,如果你从头开始,这是否是一个好主意。

But I still think it’s probably a really good idea, but basically generate some code using AI and figure out what it’s doing by playing with different parts.

但我仍然认为这可能是一个非常好的主意,但基本上是使用人工智能生成一些代码,并通过使用不同的部分来弄清楚它在做什么。

Maybe can you comment on that aspect, like the use of AI as part of the learning process?

也许你能评论一下这方面,比如在学习过程中使用人工智能吗?

ThePrimeagen2:25:15

This is where I have both the hopeful and the doomer take at the exact same time, and it’s the same thing with Google or Stack Overflow, it’s all the same kind of take, which is it’s just making things more democratized in some sense.

这就是我同时抱有希望和悲观的态度,谷歌或 Stack Overflow 也是如此,都是同样的看法,那就是它只是在某种意义上让事情变得更加民主化。

2:25:15 I get to ask questions in probably the most personal possible way with my own voice, in my own words, and it’s able to produce out answers and hopefully help guide me.

我可以用自己的声音、用自己的话以最个人化的方式提出问题,它能够给出答案并希望能帮助指导我。

Now, regardless of just say the errors and the incorrectness of it, ultimately just using it as a learning tool and being able to just formulate and read answers in your own voice, I think is super powerful.

现在,不管只是说出错误和不正确之处,最终只是将其用作学习工具并能够用自己的声音制定和阅读答案,我认为是超级强大的。

And I think it’s super amazing.

我认为这太棒了。

But the part that I think is going to be really difficult is that we don’t value remembering things anymore as a society.

但我认为真正困难的部分是,作为一个社会,我们不再重视记住事情。

Since the internet came about, I can just look that up.

自从有了互联网,我就可以查一下。

I can just look that up.

我可以查一下。

You don’t need to memorize your times tables.

您不需要记住时间表。

2:26:12 You can just use a calculator.

您只需使用计算器即可。

You can just do all that.

你就可以做到这一切。

I remember I just was sitting on the airplane and I watched someone do the world’s most simple addition and subtraction like 10 times on their phone.

我记得我刚坐在飞机上,就看到有人在手机上做了 10 次世界上最简单的加法和减法。

And why are you not just…

为什么你不只是……

You should already know, you should be able to do these things.

你应该已经知道,你应该能够做这些事情。

And I realized that we kind of offload our brains, right?

我意识到我们有点卸下了大脑的负担,对吗?

Oh, I don’t need to know these things because I can look them up.

哦,我不需要知道这些事情,因为我可以查到它们。

And that’s not a bad answer in some sense.

从某种意义上来说,这并不是一个糟糕的答案。

I can understand that.

我能理解。

I don’t need them to remember every last thing, but then it also makes me realize that you kind of develop this learned helplessness, that a new error comes up.

我不需要他们记住每一件事,但这也让我意识到你会养成这种习得性无助,一个新的错误就会出现。

I’ll just ask the AI.

我就问问AI吧。

2:26:46 AI says, oh, okay, I got to fix this line.

AI 说,哦,好吧,我得修好这条线。

I fix the line.

我修好线路。

You didn’t actually learn anything.

你实际上什么也没学到。

You kind of just used it as a quick means to get something out and move on.

你只是用它作为一种快速的手段来得到一些东西并继续前进。

And so you sacrifice knowledge for speed, which is a great thing in some…

所以你为了速度而牺牲知识,这对某些人来说是一件好事……

We have to make those trade-offs all the time in engineering.

在工程中我们必须始终做出这些权衡。

Sometimes you have to move fast at the sacrifice of knowledge, and I’m totally on board for that, but I worry that what we’ll create is an entire generation of incompetent programmers who can do some amount of things well, but anything that is unique, bespoke, or requires some extra like little elbow grease, might become very difficult.

有时你必须以牺牲知识为代价来快速行动,我完全同意这一点,但我担心我们将创造出整整一代无能的程序员,他们可以很好地完成一些事情,但任何独特的、定制的或需要一些额外的努力的东西可能会变得非常困难。

It might cause a whole chasm where juniors remain juniors forever.

这可能会造成一个巨大的鸿沟,让初级者永远是初级者。

2:27:26 And I don’t want to see that.

我不想看到这一点。

I want to see people grow.

我想看到人们成长。

I want to see people actually be able to take this as a craftsmanship thing.

我希望看到人们真正能够将其视为一种工艺。

And so that’s both my hope and my worry is that AI think can do both really.

所以这既是我的希望,也是我的担心,人工智能认为真的可以做到这两点。

If you could ask whatever question you want and you don’t have to rely on, say, a book to give you that exact answer.

如果你可以问任何你想问的问题,而不必依赖一本书来给你确切的答案。

And if the book just said it wrong and you can’t understand it, it’s just like, sorry, you don’t get to learn what this is.

如果这本书只是说错了,而你无法理解它,那就就像,抱歉,你无法了解这是什么。

Like recursion for me, I spent way too much time until someone gave me the right problem to understand recursion.

就像我的递归一样,我花了太多时间直到有人给我正确的问题来理解递归。

You could imagine AI could have solved that for me way faster because it could have gave me the right problem and walked me through much better.

你可以想象人工智能可以更快地为我解决这个问题,因为它可以给我正确的问题并引导我更好地解决问题。

But what happened if I just always have recursion solved by them and not actually learn it myself?

但是,如果我总是让他们解决递归而不是自己实际学习它,会发生什么?

Lex Fridman2:28:03

So if I ask AI to generate code to do a certain thing, actually a large percentage of time, most of what AI generates is going to be correct for me, but some percent of time it’s not, fundamentally not.

因此,如果我要求人工智能生成代码来完成某件事,实际上在很大一部分时间里,人工智能生成的大部分内容对我来说都是正确的,但也有一部分时间是错误的,从根本上来说是错误的。

2:28:03 And for me to recognize the difference between those two, I think it takes a lot of experience.

对于我来说,要认识到这两者之间的区别,我认为需要大量的经验。

I think to learn that skill of knowing, no, no, no, a different new out of the box solution is needed here than the one you’re providing.

我认为要学习这种了解技能,不,不,不,这里需要一种与您提供的不同的新的开箱即用解决方案。

You’re missing the point.

你没有抓住要点。

That’s a skill, and how do you learn that?

这是一项技能,你如何学习呢?

You learn that by building from scratch.

您可以通过从头开始构建来学习这一点。

So both are probably really necessary.

所以两者可能都是非常必要的。

2:28:44 But I think as a first step of learning how to program, it’s pretty nice to generate a function, to generate for loops and all that kind of stuff, and then just fuck with the different lines and modify them to try to adjust the behavior of the program, and from the way the behavior of the program adjusts or bugs are created, you learn about the syntax of the language, the behavior of the language, all that kind of stuff.

但我认为作为学习如何编程的第一步,生成一个函数、生成 for 循环和所有类似的东西是非常好的,然后只是处理不同的行并修改它们以尝试调整程序的行为,并且从程序的行为调整或错误创建的方式中,您可以了解语言的语法、语言的行为以及所有此类的东西。

So I think it’s a super powerful way to learn.

所以我认为这是一种非常强大的学习方式。

But yeah, you need to also write from scratch.

但是,是的,您还需要从头开始编写。

ThePrimeagen2:29:17

At some point you have to take off the training wheels, because I think what you’re really spotting is the difference between reading and writing code.

在某些时候,你必须卸下辅助轮,因为我认为你真正发现的是阅读和编写代码之间的区别。

2:29:17 I can read a lot of languages very well.

我能很好地阅读很多语言。

I can see what’s happening.

我可以看到发生了什么。

I can understand it, but I would not be very good at writing it.

我能理解,但我不会很好地写它。

I can understand a lot of things about C++ and I can read it, but I’m just not that because I just don’t done it in so long.

我能理解很多关于 C++ 的东西,我也能读懂它,但我只是不是这样,因为我只是很久没这么做了。

I can’t remember where all the semicolons, and colons and you do public and private, and how should you do naming conventions?

我不记得所有的分号、冒号和你在哪里做公共和私人的,你应该如何做命名约定?

All those things kind of add all together, and then you’re just like, oh, I’m really bad at writing it, though I can read it.

所有这些东西加在一起,然后你就会想,哦,我真的不擅长写它,尽管我能读懂它。

And so there’s a skill gap chasm that exists between those two.

因此,两者之间存在技能差距。

Lex Fridman2:29:56

All right.

好的。

2:29:56 Well, let me talk about the various languages.

好吧,让我谈谈各种语言。

The cheesy, ridiculous question of what’s the best programming language?

什么是最好的编程语言?这个俗气又可笑的问题是什么?

Let’s say, what’s the best programming language that everybody should learn?

比方说,每个人都应该学习的最佳编程语言是什么?

Maybe let’s go with the top five.

也许让我们看看前五名。

I’m going to pull up the Stack Overflow developer survey, because I think we have…

我将调出 Stack Overflow 开发者调查,因为我认为我们……

You don’t like them?

你不喜欢他们?

ThePrimeagen2:30:21

You got to remember, because I mean, you’re a data guy.

你必须记住,因为我的意思是,你是一个数据专家。

2:30:21 You know about biases and data.

您了解偏见和数据。

What does Stack Overflow naturally bias towards?

Stack Overflow 自然偏向于什么?

Lex Fridman2:30:28

Well, they have the different slices of professional developers, junior developers, they have different slices.

嗯,他们有专业开发人员和初级开发人员的不同部分,他们有不同的部分。

2:30:28 Okay, what is the bias?

好吧,偏见是什么?

ThePrimeagen2:30:36

I hear you, but who fills out a Stack Overflow survey?

我听到了,但是谁填写了 Stack Overflow 调查呢?

2:30:36 Someone who participates on Stack Overflow.

参与 Stack Overflow 的人。

Who’s participating on Stack Overflow?

谁参与了 Stack Overflow?

Largely very, very new people, and that one guy that loves answering questions.

大部分都是非常非常新的人,而且是一个喜欢回答问题的人。

And so I’m not sure if Stack Overflow is a great place to get data.

所以我不确定 Stack Overflow 是否是获取数据的好地方。

It could be a very biased set of data.

这可能是一组非常有偏见的数据。

Lex Fridman2:30:52

Is it really only new people?

真的只有新人吗?

ThePrimeagen2:30:55

I mean that’s who’s using Stack Overflow.

我的意思是,这就是使用 Stack Overflow 的人。

Lex Fridman2:30:58

All right.

好的。

2:30:58 Most popular technologies.

最流行的技术。

On this…

在此……

ThePrimeagen2:31:02

JavaScript, HTML, Python, SQL.

JavaScript、HTML、Python、SQL。

Lex Fridman2:31:05

SQL is the more general kind of…

SQL 是更通用的一种......

2:31:05 I’m sure they’re not doing the individual sort of flavors of SQL.

我确信他们不会做个别类型的 SQL。

By the way, pronounce SQL versus SQL?

顺便问一下,如何发音 SQL 与 SQL?

ThePrimeagen2:31:15

It’s squeal.

这是尖叫声。

Lex Fridman2:31:16

Squeal?

尖叫?

2:31:16 You squeal?

你尖叫吗?

ThePrimeagen2:31:19

Squeal, I think is the correct way.

尖叫,我认为这是正确的方法。

Lex Fridman2:31:19

Squeal.

尖叫声。

ThePrimeagen2:31:20

I did SQL because I didn’t know the audience.

我做 SQL 是因为我不了解观众。

2:31:20 I don’t know if they can handle the truth, which is its squeal.

我不知道他们是否能接受事实,那就是它的尖叫声。

Lex Fridman2:31:25

The squeal of joy, squeal…

喜悦的尖叫声、尖叫声……

ThePrimeagen2:31:27

Squeal light, my squeal, Postgres squeal.

尖叫光,我的尖叫,Postgres 的尖叫。

Lex Fridman2:31:31

By the way, I had a lot of joy from earlier saying pigfucker, for some reason.

顺便说一句,出于某种原因,我从之前说“pigfucker”时感到很高兴。

ThePrimeagen2:31:34

It’s such a [inaudible 02:31:36].

就是这样[听不清 02:31:36]。

2:31:34 I mean, can you believe that was a real conversation that I had?

我的意思是,你能相信这是我的真实对话吗?

Lex Fridman2:31:38

Yeah, that was.

是的,就是这样。

2:31:38 TypeScript, BAS, Java, C Sharp, C++, C-PHP.

TypeScript、BAS、Java、C Sharp、C++、C-PHP。

ThePrimeagen2:31:45

It largely kind of aligns with the world you’d expect, but Assembly, why is Assembly more popular than Ruby?

它在很大程度上符合您所期望的世界,但是 Assembly,为什么 Assembly 比 Ruby 更受欢迎?

2:31:45 Who’s writing just Assembly by…

谁正在编写汇编...

No one writes Assembly by hand other than maybe that one guy that’s developing TLS 1.3 and hand rolling a cryptography algorithm to be the fastest possible algorithm.

除了开发 TLS 1.3 并手工将加密算法打造为最快的算法之外,没有人会手工编写 Assembly。

Lex Fridman2:32:02

Yeah.

是的。

2:32:02 Assembly is a weird one.

装配是一件奇怪的事情。

Maybe people write it maybe in school, but even in school now for a operating systems course or something like that, or system engineering.

也许人们在学校写它,但即使现在在学校的操作系统课程或类似的课程,或系统工程。

I don’t know if they write Assembly anymore.

我不知道他们是否还写Assembly。

I don’t think so anyway.

无论如何我不这么认为。

ThePrimeagen2:32:18

And Swift and Ruby being less popular than Assembly seems ridiculous.

而且 Swift 和 Ruby 的受欢迎程度不如 Assembly,这似乎很荒谬。

2:32:18 But nonetheless, okay, so you get my ideas behind that, but as far as top five languages go, that’s probably too broad because you could just name so many.

但尽管如此,好吧,所以你明白了我的想法,但就前五种语言而言,这可能太宽泛了,因为你只能说出这么多语言。

I think you should probably archetype it by what do you want to do?

我认为你应该通过你想做什么来原型化它?

So if you want to get into game development, perhaps C Sharp, C++ could be good choices.

所以如果你想进入游戏开发,也许C Sharp、C++可能是不错的选择。

Or JavaScript and doing Canvas games, I could see that also working.

或者 JavaScript 和做 Canvas 游戏,我可以看到这也有效。

But you’re limited by doing JavaScript obviously, because you can’t do as much because the language is just not fast enough to do as much.

但你显然受到 JavaScript 的限制,因为你无法做那么多事情,因为该语言的速度不够快,无法做那么多事情。

So it’s like a good thing to remember.

所以记住这是一件好事。

If you’re going to be doing backend stuff, if you want a job, if you’re looking for a job, maybe C Sharp slash Java, or JavaScript, or Go would be great choices.

如果你要做后端工作,如果你想要一份工作,如果你正在找工作,也许 C Sharplash Java、JavaScript 或 Go 都是不错的选择。

If you’re looking to do embedded, you probably want to do C, C++, like that would probably be a good choice.

如果你想做嵌入式,你可能想做 C、C++,这样可能是一个不错的选择。

And so I think you have to first determine what do you really want to get out.

所以我认为你必须首先确定你真正想得到什么。

Lex Fridman2:33:14

If you’re just curious about programming, which I talked to a lot of people who are, yeah, you can consider jobs, but basically their question is, okay, what’s the first language I should learn, and maybe what are the several languages I should explore?

如果你只是对编程感到好奇,我和很多人交谈过,是的,你可以考虑工作,但基本上他们的问题是,好吧,我应该学习的第一门语言是什么,也许我应该探索哪几种语言?

ThePrimeagen2:33:28

Can I say something that’s going to make a lot of people angry?

我能说一些让很多人生气的话吗?

Lex Fridman2:33:30

Yeah, sure.

是的,当然。

ThePrimeagen2:33:30

I think the first language people should learn if they have no idea about anything is JavaScript.

我认为,如果人们对任何事情一无所知,他们应该学习的第一门语言就是 JavaScript。

Lex Fridman2:33:35

Yeah.

是的。

2:33:35 Why would that make people angry?

为什么会让人生气呢?

ThePrimeagen2:33:37

Oh, because people just, first off, I’m not supposed to say anything nice about JavaScript.

哦,因为人们首先,我不应该对 JavaScript 说任何好话。

Lex Fridman2:33:41

Yeah, usually that’s the meme, that you hate JavaScript, right?

是的,通常这就是你讨厌 JavaScript 的模因,对吧?

ThePrimeagen2:33:44

Yeah.

是的。

2:33:44 No, JavaScript’s a beautiful language, and it has a lot of things that are very great for it, and one of them is that you can express anything with very little effort.

不,JavaScript 是一门美丽的语言,它有很多优点,其中之一就是你可以毫不费力地表达任何东西。

And so someone that’s new, I think it’s really great to be able to draw a box and move a box.

所以对于新人来说,我认为能够画一个盒子并移动一个盒子真的很棒。

That’s great.

那太棒了。

You get to see it visually.

你可以直观地看到它。

I think that’s one thing that’s really great about JavaScript is that you can do that.

我认为 JavaScript 真正伟大的一件事就是你可以做到这一点。

Then you can go, okay, I want to learn about the backend.

那你就可以了,好吧,我想学一下后端。

I want to make a request now.

我现在想提出一个请求。

2:34:08 You can write a quick backend in it.

您可以在其中编写一个快速后端。

Now you’re starting to get familiar with programming a little bit.

现在您开始稍微熟悉编程了。

I can save this to a database.

我可以将其保存到数据库中。

I can bring it down.

我可以把它拿下来。

I can put it on a screen and I can animate it all around, and I can even put it on a canvas and render it in 2D or 3D.

我可以将其放在屏幕上,然后将其全部制作成动画,甚至可以将其放在画布上并以 2D 或 3D 形式进行渲染。

So it’s like there’s so much variety of what you can do with JavaScript.

所以你可以用 JavaScript 做很多事情。

It’s a great way to get introduced into programming.

这是入门编程的好方法。

But then at some point you have to go, okay, I now need to learn more about this whole thing.

但在某些时候你必须离开,好吧,我现在需要更多地了解这整件事。

Lex Fridman2:34:31

I mean, yeah, just like you said, you can make games, you can do front end, backend for web development.

我的意思是,是的,就像你说的,你可以制作游戏,你可以做前端、后端的网络开发。

ThePrimeagen2:34:37

You can even do embedded.

你甚至可以做嵌入式。

2:34:37 They actually have…

他们实际上有……

Like there’s Wes Bos is building his Roomba or something and programming it with JavaScript and React, which is just the world’s worst language to choose for embed, but you can still do it.

就像 Wes Bos 正在构建他的 Roomba 之类的东西,并使用 JavaScript 和 React 对其进行编程,这只是世界上最糟糕的嵌入语言选择,但你仍然可以做到。

Lex Fridman2:34:51

Also, we mentioned sort of in terms of applications, anything that relates to data or machine learning, Python is the sort of the leader there, so that’s a great one.

另外,我们提到了在应用程序方面,任何与数据或机器学习相关的东西,Python 都是其中的领导者,所以这是一个很棒的选择。

ThePrimeagen2:35:01

It seems like Python, CUDA stuff and C++ would be a dynamite in that, because a lot of these Python libraries are assumed you’re just smuggling in C++ underneath the hood or C.

看起来 Python、CUDA 的东西和 C++ 将是一个炸药,因为很多这些 Python 库都假设你只是在底层使用 C++ 或 C。

Lex Fridman2:35:11

Okay, so JavaScript.

好的,现在是 JavaScript。

2:35:11 I’ll say Python.

我会说Python。

ThePrimeagen2:35:14

Python’s a great one too.

Python 也是一种很棒的语言。

2:35:14 You can get quite far with it, but you can’t write the front end.

你可以走得很远,但你无法编写前端。

What happened if you love the front end?

如果你喜欢前端会发生什么?

What happened if you really just want to design things and you just didn’t know that?

如果你真的只是想设计一些东西而你却不知道,会发生什么?

Lex Fridman2:35:24

Well, it’s okay.

好吧,没关系。

2:35:24 So for that, JavaScript.

为此,JavaScript。

ThePrimeagen2:35:26

But Python’s a good choice because you can’t do the ML stuff in JavaScript nearly as easy.

但 Python 是一个不错的选择,因为你无法用 JavaScript 轻松完成 ML 工作。

Lex Fridman2:35:30

Do we count HTML and CSS as programming languages?

我们是否将 HTML 和 CSS 视为编程语言?

ThePrimeagen2:35:33

I think there’s some technical definition that it is.

我认为这是有一些技术定义的。

2:35:33 If you use this certain amalgamation of CSS plus HTML, it actually has, it can be a Turing complete language.

如果你使用 CSS 和 HTML 的某种组合,它实际上是一种图灵完备的语言。

But I mean for practical purposes, no.

但我的意思是,出于实际目的,不。

HTML is not a language.

HTML 不是一种语言。

For me, yes, the Turing test is a good one, but for those that are just not wanting to be as academic, if I can’t write a function and an if statement, I don’t feel like that’s…

对我来说,是的,图灵测试是一个很好的测试,但对于那些只是不想学术化的人来说,如果我不能编写函数和 if 语句,我不觉得那是……

If I can’t loop, if, and function, I don’t feel like that’s a good, that’s a programming language.

如果我不能循环、if 和函数,我觉得这不是一个好的编程语言。

Lex Fridman2:36:03

Although modern HTML has a lot of features.

尽管现代 HTML 有很多功能。

ThePrimeagen2:36:05

It’s crazy how much it has, but it’s more of a specification than anything else.

它的数量之多令人疯狂,但它更多的是一种规格。

2:36:05 I specify it to be a pop-up.

我指定它是一个弹出窗口。

I specify it to have this kind of accessibility, this kind of look.

我指定它具有这种可访问性、这种外观。

Under these conditions look like this, transform like this, move down here.

在这种情况下看起来像这样,这样变形,向下移动到这里。

Lex Fridman2:36:21

I don’t know.

我不知道。

2:36:21 I kind of like these popular programming languages in this list.

我有点喜欢这个列表中的这些流行的编程语言。

I like JavaScript.

我喜欢 JavaScript。

ThePrimeagen2:36:25

You like Bash?

你喜欢巴什吗?

Lex Fridman2:36:26

Oh, yeah.

哦,是的。

2:36:26 I like Bash a lot.

我非常喜欢巴什。

Yeah.

是的。

Why?

为什么?

ThePrimeagen2:36:28

Okay.

好的。

2:36:28 Bash is kind of one of those ones where it’s like, do you really like it?

Bash 就是其中之一,你真的喜欢它吗?

I like it up until I need an array.

我喜欢它直到我需要一个数组。

Lex Fridman2:36:34

Oh, as a programming language, just no, but I like the command line.

哦,作为一种编程语言,只是不,但我喜欢命令行。

ThePrimeagen2:36:35

Okay.

好的。

Lex Fridman2:36:39

Do you like Bash?

你喜欢巴什吗?

2:36:39 No, nobody likes Bash.

不,没有人喜欢 Bash。

Do you mean-

你的意思是——

ThePrimeagen2:36:39

Someone is so offended right now.

现在有人很生气。

Lex Fridman2:36:45

It means do you use it a lot?

这意味着你经常使用它吗?

2:36:45 Yes.

是的。

I mean, it’s good to learn, right?

我的意思是,学习很好,对吧?

It is good to-

最好是——

ThePrimeagen2:36:55

It is.

是的。

Lex Fridman2:36:55

…

……

2:36:55 Be comfortable in the command line because it’s a bit of a superpower.

熟悉命令行,因为它有点超能力。

It’s like, I think I follow on Twitter, FFMPEG.

就像,我想我在 Twitter 上关注了 FFMPEG。

ThePrimeagen2:37:02

Great account.

很棒的账户。

Lex Fridman2:37:05

There’s certain Twitter accounts that are just legit.

有些 Twitter 帐户是合法的。

2:37:05 And I think FFMPEG, they have all these sort of parameters that you can add on the command line, that it’s like one of those cryptic languages that only very few wizards understand.

我认为 FFMPEG,它们具有所有这些类型的参数,您可以在命令行上添加这些参数,这就像只有极少数向导能够理解的神秘语言之一。

But once you begin to slowly understand, and I’m only at the very sort of beginning stage of that journey to mastery, the powers you gain at every step, it grows exponentially, it feels like.

但一旦你开始慢慢理解,而我只是处于掌握之旅的开始阶段,你在每一步中获得的力量,都会呈指数级增长,感觉就像是。

I mean, FFMPEG is just this incredible, what would you call a library system?

我的意思是,FFMPEG 就是这么令人难以置信,你会称什么为库系统?

There’s just the people behind them must be just brilliant masterminds because they have to work with all these codecs, with all these containers, with all the mysteries of the media codec universe they’re masters of.

他们背后的人一定是杰出的策划者,因为他们必须与所有这些编解码器、所有这些容器以及他们掌握的媒体编解码器宇宙的所有奥秘一起工作。

And they understand compression, which is another super fascinating technical set of problems that, I don’t know, just FFMPEG just fills me with joy that it exists.

他们了解压缩,这是另一组超级令人着迷的技术问题,我不知道,只是 FFMPEG 让我对它的存在感到高兴。

But you need kind of Bash type comfort, command line comfort, to work with it to really unlock its power.

但是您需要 Bash 类型的舒适度、命令行舒适度,才能使用它来真正释放其功能。

Yeah.

是的。

ThePrimeagen2:38:12

I think FFMPEG is probably one of the most consequential libraries of our day, and the Twitter account is so unhinged.

我认为 FFMPEG 可能是当今最重要的库之一,而 Twitter 帐户却如此疯狂。

2:38:12 It is the most amazing thing to see because I think FFMPEG does not get the love it deserves.

这是最令人惊奇的事情,因为我认为 FFMPEG 没有得到它应有的喜爱。

Every single application, OBS, probably FFMPEG underneath the hood.

每个应用程序、OBS、可能都是底层的 FFMPEG。

Everything, FFMPEG underneath the hood, and yet they do not get the love they deserve.

一切,FFMPEG 在幕后,但他们没有得到他们应得的爱。

I just love it.

我就是喜欢它。

I just think they’re the best.

我只是认为他们是最好的。

Lex Fridman2:38:39

Yeah, I would say JavaScript, HTML, CSS, Python, SQL, I mean that is SQL Squeal is a programming language.

是的,我会说 JavaScript、HTML、CSS、Python、SQL,我的意思是 SQL Squeal 是一种编程语言。

2:38:39 It’s an incredibly sophisticated programming language.

这是一种极其复杂的编程语言。

Yeah?

是的?

ThePrimeagen2:38:52

SQL is interesting.

SQL 很有趣。

2:38:52 I believe you can classify it as a programming language.

我相信你可以将它归类为一种编程语言。

It does have, if.

确实有,如果。

You have case statements and it’s pretty crazy what you can do with it.

你有案例陈述,你可以用它做什么是非常疯狂的。

Lex Fridman2:39:00

You could do functions, you can do all that stuff.

你可以做函数,你可以做所有这些事情。

2:39:00 You shouldn’t.

你不应该。

ThePrimeagen2:39:02

Yeah, for stored procedures, that’s how you make your life hell.

是的,对于存储过程来说,这就是让你的生活变得一团糟的原因。

2:39:02 I will say that all the top languages there, none of them are strict static typed languages.

我想说的是,所有顶级语言都不是严格的静态类型语言。

And so even TypeScript, I don’t like this any.

所以即使是 TypeScript,我也不喜欢这个。

And so for people that are learning, doing something that’s much more strict would be great.

因此,对于正在学习的人来说,做一些更严格的事情会很棒。

Something like Go, Rust, I mean even C Sharp, C++.

像 Go、Rust,我的意思是 C Sharp、C++。

Anything that kind of changes your perspective of types I think is really helpful to kind of go through.

我认为任何改变你对类型的看法的事情都对你的经历很有帮助。

They’re not getting nearly as much love on this most popular language list, but I think they’re very fantastic.

在这个最受欢迎的语言列表中,它们并没有得到那么多的喜爱,但我认为它们非常出色。

Lex Fridman2:39:38

All right, well, if I put a gun to your head, top five languages, let’s list them out.

好吧,好吧,如果我拿枪指着你的头,排名前五的语言,让我们列出来。

2:39:38 There’s a bright-eyed 20-year-old asking you, what are the top languages, five languages to learn?

有一个眼睛明亮的 20 岁年轻人问你,最热门的语言是什么,五种需要学习的语言是什么?

ThePrimeagen2:39:51

If I were to pick five languages that I think people should learn, or at least, let’s restate it this way, I’m going to say a couple languages and you should at least explore some of them.

如果我要选择五种我认为人们应该学习的语言,或者至少让我们这样重申,我会说几种语言,你至少应该探索其中的一些。

2:39:51 I think you should explore a loosey language, so Python slash JavaScript, where there is truly only one type, which is a boxed value, which is a multivariate, different types underneath the hood.

我认为你应该探索一种松散的语言,比如 Python 和 JavaScript,其中实际上只有一种类型,即装箱值,它是底层的多变量、不同类型。

Lex Fridman2:40:12

What did you call it?

你叫它什么?

2:40:12 A loosey language?

松散的语言?

ThePrimeagen2:40:13

A loosey-goosey language.

一种松散的语言。

2:40:13 It’s a dynamic language, and so I think it’s really good to explore one of those too.

它是一种动态语言,所以我认为探索其中一种也非常好。

So I’d put Python or JavaScript right there.

所以我会把 Python 或 JavaScript 放在那里。

Even Lua, throw Lua in the bunch.

即使是Lua,也将Lua 放在一堆中。

I think you should explore a strict language, so I’d do something like Rust, Go.

我认为你应该探索一种严格的语言,所以我会做一些像 Rust, Go 这样的事情。

I think those are both really, really great.

我认为这两者都非常非常出色。

Lex Fridman2:40:31

C++?

C++?

ThePrimeagen2:40:32

You can do C++.

你可以做C++。

2:40:32 You can do some type erasure in C++.

您可以在 C++ 中进行一些类型擦除。

You can do it with Go as well, but for the most part it’s a great language to do that in.

您也可以使用 Go 来做到这一点,但在大多数情况下,它是一种很棒的语言。

It can get a little wild.

它可能会变得有点狂野。

New C++ seems great.

新的 C++ 看起来很棒。

Everyone keeps telling me new C++ is great.

每个人都一直告诉我新的 C++ 很棒。

It has every feature you’ve ever wanted and all the features you don’t want.

它拥有您想要的所有功能以及您不想要的所有功能。

Lex Fridman2:40:47

Yeah, exactly.

是的,完全正确。

2:40:47 I mean there’s smart pointers, there’s dumb pointers, there’s all kinds of pointers.

我的意思是有智能指针,有哑指针,有各种各样的指针。

There’s no memory leaks.

不存在内存泄漏。

That’s not an issue.

这不是问题。

ThePrimeagen2:40:55

Foot guns, face guns, soft beds.

脚枪、脸枪、软床。

2:40:55 There’s everything in there.

里面什么都有。

Lex Fridman2:40:58

Unless you like memory leaks, it has that too if you want that kind of thing.

除非你喜欢内存泄漏,否则如果你想要那种东西,它也有。

2:40:58 It’s great.

这很棒。

ThePrimeagen2:41:02

Okay.

好的。

2:41:02 How about this one?

这个怎么样?

Languages that I actually want to really learn, that at least sit in my curiosity bank.

我真正想真正学习的语言,至少存在于我的好奇心库中。

There’s three languages, which is going to be Swift, Elixir, OCaml, and then I’m going to throw Odin in there, just because Ginger Bill is great.

一共有三种语言,分别是 Swift、Elixir、OCaml,然后我会把 Odin 放在那里,因为 Ginger Bill 很棒。

But Elixir and OCaml, I don’t have a strong functional language underneath my belt.

但是 Elixir 和 OCaml,我没有强大的函数式语言。

That’s something that I just genuinely lack.

这是我真正缺乏的东西。

Lex Fridman2:41:26

Yeah, I’ve heard incredible things about Elixir, about Odin, about OCaml.

是的,我听说过有关 Elixir、Odin、OCaml 的令人难以置信的事情。

2:41:26 Obviously, I’m a person, as you know, who loves Lisp.

显然,如你所知,我是一个热爱 Lisp 的人。

ThePrimeagen2:41:33

I have never done Lisp.

我从来没有做过Lisp。

2:41:33 Lisp could be in that category too, just, or Closure I think at this point is what everyone tells you to use.

Lisp 也可能属于这个类别,或者我认为现在每个人都告诉你要使用闭包。

Lex Fridman2:41:39

So in the case of Lisp, I don’t want to speak negatively about Lisp, but it’s important about modern community, what the community looks like.

因此,就 Lisp 而言,我不想对 Lisp 进行负面评价,但现代社区以及社区的面貌很重要。

2:41:39 It seems like there’s an excited, maybe small, but an excited community around Elixir, Odin, and OCaml, so that helps.

似乎有一个围绕 Elixir、Odin 和 OCaml 的令人兴奋的社区(也许规模很小,但令人兴奋),所以这很有帮助。

Because then you can post shit on Twitter that you’re like, I accomplished this.

因为这样你就可以在 Twitter 上发布你喜欢的内容,我做到了这一点。

People get excited and it’s nice.

人们很兴奋,这很好。

It’s a good feeling.

这是一种很好的感觉。

ThePrimeagen2:42:01

You can post something on Twitter and you’ll get a thousand likes if you do something cool on Elixir, which is that’s a pretty big amount of people to like a post for such a niche topic.

你可以在 Twitter 上发布一些东西,如果你在 Elixir 上做了一些很酷的事情,你就会得到一千个赞,也就是说,有相当多的人喜欢这样一个小众主题的帖子。

2:42:01 Programming’s already a pretty small topic.

编程已经是一个很小的话题了。

Then you get into functional program.

然后你就进入了函数式程序。

That’s a small topic in a small topic.

这是小话题中的小话题。

Lex Fridman2:42:17

Yeah.

是的。

2:42:17 I don’t get that much.

我不明白那么多。

If I post something about Emacs, I’ll get crickets if I post something about…

如果我发布有关 Emacs 的内容,如果我发布有关……的内容,我就会受到蟋蟀的骚扰。

If I proudly use Neovim, there’d be a lot of people like, good job.

如果我自豪地使用 Neovim,会有很多人喜欢,干得好。

ThePrimeagen2:42:27

Because it is the best editor.

因为它是最好的编辑器。

Lex Fridman2:42:29

Yeah, maybe it’s just hype.

是的,也许这只是炒作。

ThePrimeagen2:42:31

Come back to the Civil War, Lex.

回到内战,莱克斯。

Lex Fridman2:42:33

Yeah.

是的。

2:42:33 Sometimes you have to sacrifice and go from the superior editor that is Emacs and choose Neovim just to be popular.

有时你必须做出牺牲,从 Emacs 等高级编辑器中选择 Neovim,只是为了流行。

You sacrifice integrity and values and quality for just popularity.

你为了受欢迎而牺牲了诚信、价值观和质量。

It’s a choice you made.

这是你做出的选择。

ThePrimeagen2:42:45

Absolutely.

绝对地。

2:42:45 I love how you put it.

我喜欢你的说法。

Lex Fridman2:42:49

Okay.

好的。

2:42:49 Anyway, what were we talking about?

无论如何,我们在谈论什么?

I like how you’re doing this in bunches.

我喜欢你成群结队地做这件事。

That’s great.

那太棒了。

ThePrimeagen2:42:53

Right now, my kind of side honeys that I’m exploring-

现在,我正在探索我的另一半——

Lex Fridman2:42:57

Side honey?

侧蜜?

ThePrimeagen2:42:57

Yeah, side honeys.

是的,侧面亲爱的。

2:42:57 They’re not my mainstay.

他们不是我的支柱。

Right now Go’s kind of my favorite one to build a web app in.

目前,Go 是我最喜欢用来构建 Web 应用程序的语言。

If I’m going to build some sort of backend with a lot of complicated logic, Go’s just so convenient.

如果我要构建某种具有大量复杂逻辑的后端,Go 就非常方便。

But I get really frustrated with its ability to express everything that I need.

但我对它表达我需要的一切的能力感到非常沮丧。

If you have a list, a heterogeneous list, a list that contains two types, Go’s just really not that fun to use.

如果你有一个列表,一个异构列表,一个包含两种类型的列表,那么 Go 使用起来真的没有那么有趣。

And I could see, so the ones I’m exploring is Jai or J, or the language as Jonathan Blow says, and Zig.

我看得出来,所以我正在探索的是 Jai 或 J,或者 Jonathan Blow 所说的语言,以及 Zig。

And both of them have a lot of power to them.

而且他们两人都拥有很大的权力。

They’re both very interesting.

他们都很有趣。

They definitely have foot guns in them.

他们身上肯定有脚枪。

They’re definitely more, they don’t take it easy on you.

他们肯定更厉害,他们不会轻易对待你。

Zig seems like it’s a really amazing language, and so does Jai.

Zig 似乎是一种非常神奇的语言,Jai 也是如此。

They’re both very cool.

他们都很酷。

Lex Fridman2:43:42

Yeah.

是的。

2:43:42 Actually, I saw Dave Plummer’s testing of close to 100 languages for speed, and Zig came out on top.

事实上,我看到 Dave Plummer 对近 100 种语言的速度进行了测试,Zig 名列前茅。

ThePrimeagen2:43:51

That was a mistake.

那是一个错误。

2:43:51 I mean, when I say mistake, nothing against Dave Plummer.

我的意思是,当我说错误时,并不是针对戴夫·普卢默。

He’s an extremely talented engineer.

他是一位非常有才华的工程师。

It’s just that Zig, C, C++, all those languages that were being tested, they’re all LLVM backends, right?

只是 Zig、C、C++,所有这些正在测试的语言,它们都是 LLVM 后端,对吧?

That’s the one that actually turns the thing into the executable part.

这才是真正将事情变成可执行部分的部分。

And if there’s a variation in speed, it just means in one language you didn’t quite express what you are supposed to correctly.

如果速度存在差异,这只意味着在一种语言中你没有完全正确地表达你应该正确表达的内容。

There’s the language ball test that’s been bouncing around on Twitter.

Twitter 上流传着一项语言球测试。

Zig was like sixth or seventh below I forget what language it is.

Zig 大概是下面的第六或第七,我忘记了它是什么语言。

I played around with the example, added the word “no alias” to the argument, which means that the piece of memory that’s coming into this function, there’s no global pointers, there’s nothing to it, and so the compiler can make these really cool optimizations.

我研究了这个例子,在参数中添加了“无别名”这个词,这意味着进入这个函数的内存块没有全局指针,什么也没有,所以编译器可以做出这些非常酷的优化。

And I made it faster than the C version.

而且我让它比 C 版本更快。

So it just means that it’s just not correctly specified is all that means.

所以这只是意味着它只是没有正确指定而已。

Lex Fridman2:44:40

Yeah, but it’s still exciting.

是的,但它仍然令人兴奋。

2:44:40 To me, the competition between Zig, Rust, and C++ is really interesting.

对我来说,Zig、Rust 和 C++ 之间的竞争真的很有趣。

Part of it’s for speed.

部分是为了速度。

Part of it’s how easy it is to write performant code.

部分原因在于编写高性能代码是多么容易。

ThePrimeagen2:44:51

I’ll say something.

我会说些什么。

2:44:51 That’s the reason why I think Zig is so interesting comparatively to say C or Rust.

这就是为什么我认为 Zig 比 C 或 Rust 更有趣。

C is the ultimate language.

C 是终极语言。

It can do anything, have pre-process or macros.

它可以做任何事情,有预处理或宏。

You can do quite a bit with it, but it’s also really difficult.

你可以用它做很多事情,但这也非常困难。

2:45:00 So macros, you can do quite a bit with it, but it’s also really difficult and it’s also really simple and you can learn it.

所以宏,你可以用它做很多事情,但它也非常困难,它也非常简单,你可以学习它。

So it’s kind of its own unique beast.

所以它是一种独特的野兽。

And when you get really good at C, C is a magical language and people are really great at it and people speak very highly of it.

当你真正擅长 C 语言时,C 语言就是一门神奇的语言,人们真的很擅长它,人们对它评价很高。

Rust is like this ultra safe language.

Rust 就像这种超级安全的语言。

What you can do in C, you just can’t even express in Rust.

你在 C 中能做到的事情,你甚至无法在 Rust 中表达。

Rust is going to be the safe man that holds you at night, keeping you warm, right?

Rust 会成为一个安全的人,在晚上抱着你,让你保持温暖,对吗?

It’s going to be just the greatest.

这将是最伟大的。

2:45:24 But somewhere in the middle lies Zig.

但 Zig 则处于中间的某个位置。

Zig has optionals.

Zig 有选项。

If you’re not familiar with optionals, that just simply means there’s a value here or there’s not, but you first have to check that before you can use it.

如果您不熟悉可选值,那只是意味着这里有值或没有值,但您首先必须检查它,然后才能使用它。

So it prevents that whole null pointer dereferencing segfault problem.

因此它可以防止整个空指针取消引用段错误问题。

And that’s not available in C, just by default, you have to kind of build that thing in.

这在 C 语言中是不可用的,只是默认情况下,你必须构建这个东西。

It is the only option in Rust, but Zig says, “Hey, if you have a pointer, you can’t express it as null unless if you market that it can be null.”

这是 Rust 中唯一的选择,但 Zig 说,“嘿,如果你有一个指针,你不能将它表示为 null,除非你推销它可以为 null。”

2:45:48 There’s ways around it, there’s other types of pointers and stuff like that that can do that.

有很多方法可以解决这个问题,还有其他类型的指针和类似的东西可以做到这一点。

But for the most part, Zig will give you safety for the most part.

但在大多数情况下,Zig 会为您提供大部分安全。

So it’s like a little bit of safety, but more like C.

所以它有点安全,但更像 C。

So it kind of gives you everything you want in that region where you can express safe code and unsafe code.

因此,它为您提供了在该区域中您想要的一切,您可以在其中表达安全代码和不安全代码。

It’s very easy to write.

这很容易写。

It’s very pretty.

非常漂亮。

Or at least the idea behind it is very pretty.

或者至少它背后的想法非常漂亮。

The language itself is bland, but.

语言本身平淡无奇,但是。

Lex Fridman2:46:12

Wow, there’s beauty in everything, Prime.

哇,万物皆有美,Prime。

ThePrimeagen2:46:14

Yeah.

是的。

Lex Fridman2:46:15

You’ve programmed in Rust a lot.

您已经用 Rust 编程了很多次。

2:46:15 What do you love about Rust?

你喜欢 Rust 的什么?

What are the strengths?

有什么优势?

What are the weaknesses?

缺点是什么?

Maybe you can speak about memory management that you already mentioned, the challenge of memory management that several of these languages address, but yeah, what do you love about Rust?

也许你可以谈谈你已经提到过的内存管理,其中几种语言解决的内存管理挑战,但是,是的,你喜欢 Rust 的什么?

ThePrimeagen2:46:31

What I love about Rust, I love the ability to free the memory that you’re using is directly tied to the stack.

我喜欢 Rust 的一点是,我喜欢释放正在使用的内存的能力,该内存直接与堆栈相关。

2:46:31 So whenever you create something, there’s a stack variable or there’s some amount of stack memory, whether it’s a pointer off to the heap, a pointer and a length.

因此,每当您创建某些内容时,都会有一个堆栈变量或一定量的堆栈内存,无论是指向堆的指针、指针还是长度。

So some amount of memory on the stack and then some memory on the heap because a string is not all on the stack, it’s some on the heap, some on the stack.

因此,堆栈上有一些内存,然后堆上有一些内存,因为字符串并不全部在堆栈上,它有一些在堆上,有一些在堆栈上。

And when that stack variable goes out of scope and gets cleaned up, it also cleans up what’s on the heap.

当该堆栈变量超出范围并被清理时,它也会清理堆上的内容。

So it kind of simplifies this whole idea of, whoops, I forgot to free my memory.

所以这有点简化了整个想法,哎呀,我忘了释放我的记忆。

It just does it for you.

它只是为你做的。

2:47:07 So it’s not a garbage collector, which will do it sometime later.

所以它不是垃圾收集器,稍后会做。

It’s not like C where you have to call it yourself, it’s somewhere in between.

它不像 C 那样你必须自己调用它,它介于两者之间。

Now, there’s a lot of strategies people use, arenas and all that that make that C part much easier.

现在,人们使用了很多策略、竞技场以及所有使 C 部分变得更容易的东西。

I’m just not even mentioning it, but it just makes it a lot easier.

我只是没有提到它,但它只是让事情变得容易多了。

But Rust does that really beautifully and it’s just like a really cool idea about it and I really like that.

但 Rust 确实做到了这一点,这真是一个很酷的想法,我真的很喜欢。

And the second thing that I think Rust does really, is such a good thing is that mutability of something is you have to specify it.

我认为 Rust 真正做的第二件事是一件好事,那就是某些东西的可变性是你必须指定它。

So you don’t just create a variable and then mutate it.

所以你不只是创建一个变量然后改变它。

You have to say this is not only a variable, it’s a mutable variable.

你不得不说这不仅仅是一个变量,它还是一个可变变量。

And I think that just makes code really readable and really understandable.

我认为这只会使代码真正具有可读性和可理解性。

Because anything that does not have the word mute next to it, you know for a fact it cannot change.

因为任何旁边没有“静音”一词的东西,你都知道它无法改变。

There’s some rules around that, but you get the general idea.

虽然有一些规则,但您已经了解了总体思路。

Lex Fridman2:47:57

Unlike most programming languages, you have to explicitly state that this is going to be changed.

与大多数编程语言不同,您必须明确声明这将被更改。

ThePrimeagen2:47:57

Yeah.

是的。

Lex Fridman2:48:03

Yeah.

是的。

2:48:03 That’s really interesting.

这真的很有趣。

I mean it’s safe, it’s trying to be, and the safety might be, create limitations.

我的意思是它是安全的,它正在努力做到安全,但安全可能会产生限制。

Let us consult the AI overlords.

让我们向AI霸主请教一下。

Rust is a blazing fast memory efficient systems programming language that emphasizes performance, type safety and concurrency.

Rust 是一种速度极快、内存高效的系统编程语言,强调性能、类型安全和并发性。

The language enforces memory safety without using a garbage collector, as you said, instead utilizing the unique, quote, “borrow checker” that tracks object lifetimes at compile time.

正如您所说,该语言在不使用垃圾收集器的情况下强制执行内存安全,而是利用独特的引用“借用检查器”在编译时跟踪对象生命周期。

This prevents common programming errors like null point or dereferencing and memory leaks and so on.

这可以防止常见的编程错误,例如空点或取消引用以及内存泄漏等。

Yeah.

是的。

2:48:43 So you’ve also spoken about metaprogramming.

所以你也谈到了元编程。

Which of these languages do you like for the metaprogramming?

您喜欢使用以下哪种语言进行元编程?

I love metaprogramming in C++, but it’s a giant mess.

我喜欢 C++ 中的元编程,但它一团糟。

At least when I program C++ 17 standard, I believe, it’s just a mess, especially a mess to debug.

至少当我编写C++ 17标准时,我相信,这只是一团糟,尤其是调试起来一团糟。

ThePrimeagen2:49:00

Yeah, I would consider myself kind of a metaprogramming newbie.

是的,我认为自己是一个元编程新手。

2:49:00 I have only solved some amount of problems with it.

我只是用它解决了一些问题。

That’s kind of like what this year is for, is for me to really, I want to see where the ends can go in that.

这有点像今年的目的,对我来说,我真的想看看结局会怎样。

So I don’t have a strong opinion on this one.

所以我对这一点没有什么强烈的看法。

Zig, one thing I really like about Zig is that the metaprogramming is also the language itself.

Zig,我真正喜欢 Zig 的一件事是元编程也是语言本身。

So you don’t have to, there’s not an alternative.

所以你没必要这样做,没有其他选择。

So with Rust there’s an alternative.

因此,Rust 还有一个替代方案。

When you create a macro, you have to do the macro syntax.

创建宏时,必须执行宏语法。

With Zig, it’s just, it is the thing, you just program it and you add the word comp time if you want it to be a compile time only.

对于 Zig,它就是这样,你只需对其进行编程,如果你希望它只是一个编译时间,你可以添加“comp time”这个词。

2:49:33 So you can create the list of prime numbers at compile time in Zig, which is kind of an interesting, unique thing.

因此,您可以在 Zig 中编译时创建素数列表,这是一件有趣且独特的事情。

So you have code that executes at compile time and then you can take advantage of the result of it at runtime.

因此,您拥有在编译时执行的代码,然后您可以在运行时利用它的结果。

So neat, right?

很整洁,对吧?

That’s how I’d look at it.

我就是这么看的。

But again, I haven’t used it to the point where I feel like I can super authoritatively talk about it.

但同样,我还没有使用它到我觉得我可以超级权威地谈论它的程度。

Lex Fridman2:49:55

You have been undecided, what language are you going for this year?

你还没有决定,今年你要选择什么语言?

ThePrimeagen2:49:59

I’m going to keep Go as my mainstay, my two side honeys, Jai and Zig.

我将继续将 Go 作为我的支柱,我的两个助手 Jai 和 Zig。

2:49:59 I’m going to explore and try to build out a service in them that can do a bunch of talking to, say, ChatGPT and ElevenLabs and send stuff down to client and work with web sockets.

我将探索并尝试在其中构建一个服务,该服务可以与 ChatGPT 和 ElevenLabs 等进行大量对话,并​​将内容发送到客户端并使用 Web 套接字。

And I want to make sure that, I just want to see how do they perform in this realm.

我想确保这一点,我只是想看看他们在这个领域的表现如何。

And I may be using the language incorrectly, like Jai, it’s not really been designed for the web world.

我可能错误地使用了这种语言,就像 Jai 一样,它并不是真正为网络世界设计的。

I just got done writing the ability to read Twitch Chat and it required me to do Berkeley sockets.

我刚刚写完阅读 Twitch Chat 的功能,它需要我做 Berkeley 套接字。

2:50:29 So if you’re unfamiliar with Berkeley sockets, it’s like the old way of doing it, it’s how you do it in C.

因此,如果您不熟悉 Berkeley 套接字,那么就像旧的做法一样,这就是您在 C 中的做法。

So you have to kind of go through the whole nine yards of creating your own connection.

所以你必须经历整个九码来建立你自己的联系。

I had to create my own connection, I have to read from the socket, then I have to parse out all the IRC, right?

我必须创建自己的连接,我必须从套接字读取,然后我必须解析出所有 IRC,对吧?

You have to kind of build it from scratch.

你必须从头开始构建它。

There’s not like a new TCP connection to this server.

没有到该服务器的新 TCP 连接。

You have to be like, “I’m creating a socket.” You’re going to be of the IPv4 family and TCP and you’re going to do, you know, I’m going to now have to take your address and go look up your address with DNS, get that address back and then connect to a TCP.

你必须说,“我正在创建一个套接字。”你将属于 IPv4 系列和 TCP,你要做的就是,你知道,我现在必须获取你的地址,并使用 DNS 查找你的地址,取回该地址,然后连接到 TCP。

So it’s a lot more manual still.

所以它仍然需要更多的手动操作。

It’s a lot more raw in that area, but it’s fun.

这方面的情况要原始得多,但很有趣。

Lex Fridman2:51:03

What are some epic projects you’ve built on stream that jump to memory?

您在直播中构建了哪些令人难忘的史诗级项目?

ThePrimeagen2:51:08

My most favorite, sorry for interrupting you.

我最喜欢的,抱歉打扰你了。

2:51:08 So I’m really jazzed right now.

所以我现在真的很兴奋。

Lex Fridman2:51:13

Let’s go.

我们走吧。

ThePrimeagen2:51:14

Okay.

好的。

2:51:14 So jazzed.

如此爵士乐。

Lex Fridman2:51:15

Jazz hands.

爵士手。

ThePrimeagen2:51:17

My most favorite project was the one I did last year.

我最喜欢的项目是我去年做的一个。

2:51:17 Someone built a Doom ASCII port.

有人构建了 Doom ASCII 端口。

So you could play Doom with ASCII.

所以你可以用 ASCII 玩《Doom》。

So that means you could play it in your terminal.

这意味着您可以在终端上播放它。

Very, very fun, very excite.

非常非常有趣,非常兴奋。

So I made a Go program that could spawn out the Doom ASCII, then I took that Doom ASCII and I sent it to the browser so that people could play Doom ASCII in the browser, but then I made it so that Twitch chat could control that instance of Doom ASCII by piping in Twitch chat, taking the average of the movements over so much time and replaying it as if it was a controller.

所以我制作了一个可以生成 Doom ASCII 的 Go 程序,然后我将 Doom ASCII 发送到浏览器,以便人们可以在浏览器中玩 Doom ASCII,但随后我制作了它,以便 Twitch 聊天可以通过在 Twitch 聊天中进行管道传输来控制 Doom ASCII 实例,取这么长时间内的移动平均值并重播它,就好像它是一个控制器一样。

And I had Twitch chat beat level one by spamming it.

我通过发送垃圾邮件让 Twitch 聊天击败了第一级。

2:51:55 But the fun part was I used a bunch of fun encoding techniques.

但有趣的是我使用了一堆有趣的编码技术。

I used quad trees to be able to take smaller amounts to use run length in coding.

我使用四叉树能够在编码中使用较小的游程长度。

Tried to create my own compression algorithm because if you’re sending out a bunch of ASCII stuff, it’s still pretty expensive because you have to represent color, color’s not cheap.

尝试创建我自己的压缩算法,因为如果你要发送一堆 ASCII 内容,它仍然相当昂贵,因为你必须表示颜色,颜色并不便宜。

On top of it you have to represent what does it look like?

最重要的是你必须代表它是什么样子?

What does the ASCII look like?

ASCII 是什么样子的?

2:52:15 Well, I realized there’s all these fun techniques you can do for compression like the shape of the ASCII you send down in a lot of these engines are actually just proportional to the lumosity of that pixel.

嗯,我意识到您可以采用所有这些有趣的技术来进行压缩,例如您在许多此类引擎中发送的 ASCII 形状实际上与该像素的亮度成正比。

So you’d use an eight to represent or a pound sign to represent white, but black, you’re going to want to do a period or a comma or a bar, something smaller.

所以你会用八来代表白色,或者用井号来代表白色,但是黑色,你会想要用句点、逗号或横线,或者更小的东西。

So it’s like I then developed all these different compression algorithms that turn a bunch of data, which would take, I forget how much it would take.

所以就像我然后开发了所有这些不同的压缩算法来转换一堆数据,这需要花费,我忘记了需要多少。

It’d take gigabytes upon gigabytes to be able to send out to thousands of people to all see the same image at the same time, to all be able to interact with Doom at the same time.

需要大量的字节才能发送给成千上万的人,让他们同时看到同一张图像,并且所有人都能够同时与 Doom 互动。

I turned it from gigabytes into kilobytes by just trying to figure out how to make it as small as possible and send it all out.

我只是想弄清楚如何使其尽可能小并将其全部发送出去,从而将其从千兆字节转换为千字节。

It was super fun.

非常有趣。

Absolutely had a great time.

绝对度过了一段美好的时光。

Lex Fridman2:53:00

So you’re actually sending it to all the people in chat.

所以你实际上是将其发送给聊天中的所有人员。

2:53:00 So where’s that pipeline, how chat is able to control the Doom thing?

那么管道在哪里,聊天是如何控制 Doom 的呢?

ThePrimeagen2:53:09

Twitch chat.

抽搐聊天。

2:53:09 Yeah, so they would go, people would spam W and if you said W, it would hold down W for 150 milliseconds if the majority of people during that time period said W.

是的,所以他们会去,人们会发送垃圾邮件 W,如果你说 W,如果该时间段内大多数人都说 W,那么它会抑制 W 150 毫秒。

Lex Fridman2:53:21

Nice.

不错。

2:53:21 Okay.

好的。

And how are they getting the input of where you are on screen?

他们如何获取您在屏幕上的位置的输入?

ThePrimeagen2:53:26

So originally I was going to send that through Twitch, but Twitch is like five seconds behind, so that’s why I piped it out to a website so everybody could see from my computer to the website and typical lag was right around 70 milliseconds.

最初我打算通过 Twitch 发送该消息,但 Twitch 大约落后了 5 秒,所以我将其通过管道发送到网站,以便每个人都可以从我的计算机看到该网站,典型的延迟约为 70 毫秒。

2:53:26 So it’s like they could mostly see what was happening in that short period of time.

所以就好像他们大部分都能看到那短时间内发生的事情。

It was pretty exciting.

这真是太令人兴奋了。

So we had 1,000 people, or I had somewhere between 1,000 to 1,400 people smashing Ws and pressing F to fire and turning and we killed some zombies.

所以我们有 1,000 人,或者我有 1,000 到 1,400 人,粉碎 Ws,按 F 开火并转身,我们杀死了一些僵尸。

We blew up the barrel at the very end of level one to kill the imp.

我们在第一关最后炸毁了木桶来杀死小恶魔。

Lex Fridman2:53:57

How are you getting the Ws from the Twitch chat?

您如何从 Twitch 聊天中获得 W?

2:53:57 Is there an API?

有API吗?

ThePrimeagen2:54:03

I was using IRC, so just a little TCP socket and then you just parse out IRC.

我使用的是 IRC,所以只需一点 TCP 套接字,然后您只需解析 IRC。

Lex Fridman2:54:06

Okay.

好的。

2:54:06 And there’s very little lag there.

而且那里几乎没有滞后。

Okay.

好的。

ThePrimeagen2:54:08

Yeah, I think it’s a couple hundred milliseconds though.

是的,我认为这只是几百毫秒。

2:54:08 It’s enough that it actually made it a little bit difficult because people would often overturn and then go forward and miss the door and then they had to go back and…

这实际上让事情变得有点困难,因为人们经常会翻倒,然后向前走,错过了门,然后他们不得不回去……

Lex Fridman2:54:19

That’s awesome.

太棒了。

ThePrimeagen2:54:20

It was awesome.

太棒了。

2:54:20 So that was my favorite I think project of all time just because I never got to do a lot of encoding.

所以这是我最喜欢的项目,因为我从来没有做过很多编码。

Encoding’s kind of like, what do you normally do?

编码有点像,你通常做什么?

Okay, I need to send something down.

好的,我需要寄一些东西下来。

I don’t know, gzip it, server will just do it.

我不知道,gzip它,服务器就可以了。

Server just does the right thing.

服务器只是做正确的事情。

I don’t need to think about it.

我不需要考虑它。

So instead it’s like I think about it, I’m going to send the right thing.

所以,我想了一下,我会发送正确的东西。

Lex Fridman2:54:37

Yeah, you have to think about the compression.

是的,你必须考虑压缩。

2:54:37 Yeah.

是的。

And there you go.

就这样吧。

That’s some more love towards FFmpeg because they have to think about that a lot.

这是对 FFmpeg 的更多热爱,因为他们必须考虑很多。

ThePrimeagen2:54:44

Ultimately inspired by FFmpeg and their awesomeness.

最终受到 FFmpeg 及其卓越性的启发。

Lex Fridman2:54:49

So can you speak to just the chat community in general?

那么您能谈谈整个聊天社区吗?

2:54:49 A big part of what you do in terms of streaming is the humans that are communicating with you live.

您在流媒体方面所做的很大一部分是与您实时交流的人。

Can you talk to the different chat communities?

您可以与不同的聊天社区交谈吗?

First of all, which is the best chat community, YouTube, Twitch, or X?

首先,哪个是最好的聊天社区,YouTube、Twitch 还是 X?

ThePrimeagen2:55:11

This is where I feel bad for YouTube, because I do think it’s technically the worst, but it’s not YouTube’s fault.

这就是我对 YouTube 感到难过的地方,因为我确实认为它在技术上是最糟糕的,但这不是 YouTube 的错。

2:55:11 And let me kind of explain why.

让我解释一下原因。

Lex Fridman2:55:19

And then I will explain why you’re wrong.

然后我会解释你为什么错了。

2:55:19 But go ahead.

但继续吧。

YouTube is great.

YouTube 很棒。

ThePrimeagen2:55:22

I know you love YouTube but let explain why, is that when you go on Twitch, you go to anyone’s channel, they have this cultural human centipede thing that’s happening where as the memes flow in, all of Twitch reacts and morphs to all those memes.

我知道你喜欢 YouTube,但让我们解释一下为什么,当你上 Twitch 时,你会去任何人的频道,他们有这种文化人类蜈蚣的事情,当模因流入时,所有 Twitch 都会对所有这些模因做出反应和变形。

2:55:22 So every channel you go to has this same culture.

因此,您访问的每个频道都有相同的文化。

There’s a lot of similar emotes and everything, so it’s very tight-knit.

有很多相似的表情和一切,所以它非常紧密。

So when I stream, I get all the same jokes that you would pretty much see if you saw, I don’t know, Sodapoppin or some big streamer, Asmongold, whoever, [inaudible 02:55:56] software streaming.

因此,当我进行直播时,我会得到所有相同的笑话,如果您看到(我不知道)Sodapoppin 或某个大型流媒体、Asmongold 等 [听不清 02:55:56] 软件流媒体,您几乎会看到这些笑话。

All the same memes would all flow through the exact same kind of pipe.

所有相同的模因都会流经完全相同类型的管道。

And so it’s a very holistic kind of community.

所以这是一个非常全面的社区。

2:56:04 So every time you’re making jokes, you’re making jokes that are in the ether.

所以每次你开玩笑的时候,你都是在开玩笑。

Twitter kind of has that too.

Twitter 也有类似的功能。

Tech Twitter kind of has a set of jokes and so you can kind of see it.

科技推特有一系列笑话,所以你可以看到它。

The problem with Twitter chat is that there’s just nobody there right now.

Twitter 聊天的问题是现在没人。

Typically just to put it into perspective, I have somewhere between…

通常,只是为了客观地看待它,我介于……之间。

somewhere between like 1,500 to 3,000 people on Twitch, somewhere between 800 to 2,000 on YouTube, and like 50 people on Twitter.

Twitch 上大约有 1,500 到 3,000 人,YouTube 上大约有 800 到 2,000 人,Twitter 上大约有 50 人。

So the difference is massive.

所以差异是巨大的。

2:56:34 But Twitter has that same thing that’s developing where there’s memes that are constantly flowing through it.

但 Twitter 也有同样的事情正在发展,其中不断有迷因在其中流动。

And so they’re very highly connected.

所以他们的联系非常紧密。

YouTube just doesn’t seem to have that.

YouTube 似乎没有这个功能。

They’re just a bunch of people and people go to YouTube for various reasons.

他们只是一群人,人们出于各种原因访问 YouTube。

I’m going to YouTube to learn.

我要去 YouTube 学习。

So they come in and they want to learn.

所以他们进来并想学习。

So they’re not on the meme train, they’re not in this cultural zeitgeist train.

所以他们不在模因列车上,也不在文化时代精神列车上。

They’re just like, “But why would you use this if statement when a switch statement in this one particular case?” And you’re just like, well that’s not what I’m trying to do here.

他们就像是,“但是在这种特殊情况下,当使用 switch 语句时,为什么要使用这个 if 语句呢?”你就像,好吧,这不是我在这里想做的。

Lex Fridman2:57:02

Yeah, you want to captain the meme train or you want to ride on the meme train.

是的,你想成为模因火车的队长,或者你想乘坐模因火车。

ThePrimeagen2:57:07

Yeah.

是的。

2:57:07 Or you just want to be able to create a culture on your chat because your chat’s going to be some variation of that kind of zeitgeist that’s flowing through Twitch.

或者您只是希望能够在聊天中创造一种文化,因为您的聊天将是 Twitch 中流动的那种时代精神的某种变体。

And it kind of is very contiguous between X and Twitch.

X 和 Twitch 之间非常连续。

It just feels really out of sync with YouTube.

感觉和 YouTube 真的不同步。

And then YouTube particularly does a bad job.

YouTube 的表现尤其糟糕。

And some people would argue a good job because you can swim.

有些人会因为你会游泳而认为这是一份好工作。

Swim being, you can actually change what timestamp you’re at.

游泳的话,你实际上可以改变你所处的时间戳。

So all of a sudden you’ll be like, oh yeah, something about driving to soccer in my minivan.

所以突然间你会想,哦,是的,关于开着我的小型货车去踢足球。

And then 20 minutes later you’ll be talking about Zig and then someone’s like, “I personally use whatever to drive to soccer.” And you’re like, “What are we talking about?” So YouTube is a very disjointed chat as well because it depends on where they’re at within the video.

20 分钟后,你会谈论 Zig,然后有人会说,“我个人用任何东西来推动足球。”你会想,“我们在说什么?”因此,YouTube 也是一个非常杂乱的聊天,因为这取决于他们在视频中的位置。

Swim comes from Netflix, by the way, call it swim.

《Swim》来自Netflix,顺便说一下,就叫《Swim》吧。

Lex Fridman2:57:53

The term?

期限?

ThePrimeagen2:57:56

Yeah, people said swim.

是的,人们说游泳。

Lex Fridman2:57:57

Oh, so you’re, okay.

哦,原来你是这样,好吧。

ThePrimeagen2:57:59

Swimming through-

游过——

Lex Fridman2:58:00

Yeah.

是的。

2:58:00 So you’re not just making up the term.

所以你不只是编造这个词。

Thank you.

谢谢。

Wow.

哇。

ThePrimeagen2:58:02

Yeah, but it’s probably made up and probably only 10 people said it at Netflix, so no one’s going to know it and they’re going to be like, “Yeah, right.

是的,但这可能是编造的,而且可能只有 10 个人在 Netflix 上说过,所以没有人会知道,他们会说,“是的,对。

2:58:02 That doesn’t happen on Netflix.”

Netflix 上不会发生这种情况。”

Lex Fridman2:58:11

So going back to projects, what projects on stream or in general?

那么回到项目,哪些项目正在进行中或总体上?

ThePrimeagen2:58:14

No, you need to answer why YouTube chat’s the best chat.

不,您需要回答为什么 YouTube 聊天是最好的聊天。

Lex Fridman2:58:18

Well you kind of convinced me.

好吧,你有点说服了我。

2:58:18 Okay, why YouTube is the best chat.

好吧,为什么 YouTube 是最好的聊天工具。

Well, I think I’m just a hater.

好吧,我想我只是一个仇恨者。

That’s basically what it boils down to and I’m just talking shit.

基本上就是这样,我只是在胡说八道。

ThePrimeagen2:58:18

Love it.

爱它。

Lex Fridman2:58:29

And I’m probably just from the outside shooting in because Twitch is such a fun culture of memes.

我可能只是从外部拍摄,因为 Twitch 是一种非常有趣的模因文化。

2:58:29 And so it’s just fun to shoot from the outside to egg the house of Twitch.

因此,从外面拍摄并为 Twitch 的房子加油是一件很有趣的事情。

And then I just sit back on my lawn chair with the small YouTube community just talking shit.

然后我就坐在我的草坪椅子上,和 YouTube 的小社区一起胡说八道。

No, you’re absolutely right.

不,你说得完全正确。

There’s a real sense of community that Twitch can form.

Twitch 可以形成真正的社区意识。

But I just like the openness of YouTube.

但我就是喜欢 YouTube 的开放性。

It’s just better at opening to the world.

它只是更善于向世界开放。

It’s more accessible, it’s easier to share.

它更容易访问,更容易分享。

It’s just a more established platform, that’s all.

这只是一个更成熟的平台,仅此而已。

ThePrimeagen2:59:08

Fully on that team.

完全属于那个团队。

Lex Fridman2:59:14

For the open world.

为了开放世界。

2:59:14 I can send it to people that don’t usually watch video game streaming or that kind of stuff.

我可以将其发送给那些通常不看视频游戏流媒体或类似内容的人。

ThePrimeagen2:59:19

Yeah.

是的。

2:59:19 If you send a Twitch link, they’re like, “I don’t like video games.” And you’re like, “Well actually it’s not video games.” That talk happens every single time you mention Twitch because Twitch does have a perspective about it that YouTube does not.

如果你发送 Twitch 链接,他们会说,“我不喜欢电子游戏。”你会说,“实际上这不是电子游戏。”每次你提到 Twitch 时都会发生这样的讨论,因为 Twitch 确实有 YouTube 没有的观点。

Lex Fridman2:59:32

I was just on Joe Rogan’s podcast and I think it came up, he asked something like, “Is Twitch still a thing?” So that just gives you an example.

我刚刚在 Joe Rogan 的播客上,我想这个问题出现了,他问了诸如“Twitch 仍然存在吗?”之类的问题。这只是给你一个例子。

2:59:32 And then Jamie said, “Yeah, yeah, it’s definitely still a thing.

然后杰米说:“是的,是的,这绝对是一件事。

It’s still growing and so on.” And so yeah, there’s just a big slice of humans that don’t participate in the Twitch Twitch sphere.

它仍在增长等等。”所以,是的,只有很大一部分人不参与 Twitch Twitch 领域。

Yeah, I just like talking shit so yeah.

是的,我就是喜欢说废话,所以是的。

ThePrimeagen3:00:00

That’s a beautiful answer.

这是一个美丽的答案。

Lex Fridman3:00:01

But it’s cool that you sort of make it accessible on all these different platforms.

但很酷的是,您可以在所有这些不同的平台上访问它。

3:00:01 And I have high hopes for X, but yeah, it’s feature-wise still has a lot of growing up to do.

我对 X 寄予厚望,但是,是的,它的功能仍然有很多需要改进的地方。

ThePrimeagen3:00:11

And just why do people use X?

人们为什么要使用 X?

3:00:11 You typically are going there for a text-based interaction you want to look through.

您通常会去那里进行想要查看的基于文本的交互。

So I also think they just have a user expectation change that needs to happen.

所以我也认为他们只是需要改变用户的期望。

And that just takes a while.

这只需要一段时间。

That’s going to take a little bit before people get to it.

人们需要一点时间才能做到这一点。

I think their idea of audio first is a great first step where people can listen to it and have the phone away maybe.

我认为他们的音频优先的想法是一个很好的第一步,人们可以一边听一边把手机拿开。

There’s a lot of changes that have to happen before X can be successful in that.

在 X 取得成功之前,必须进行很多改变。

Lex Fridman3:00:37

I mean, X has this incredible comment section just like Reddit, right?

我的意思是,X 有像 Reddit 一样令人难以置信的评论部分,对吧?

3:00:37 So it’s like-

所以就像-

ThePrimeagen3:00:43

You said incredible.

你说不可思议。

3:00:43 That’s not Reddit.

那不是 Reddit。

Comment section, correct.

评论区,正确。

Lex Fridman3:00:46

Comment, yeah.

评论一下,是啊

3:00:46 Incredibly dynamic and vibrant even if it’s…

令人难以置信的活力和活力,即使它是……

Yeah.

是的。

What is the technological platform?

技术平台是什么?

How does the interface and the technology shape the discourse?

界面和技术如何塑造话语?

It’s fascinating because X has a different style than Reddit, different style than Facebook, different style than Instagram.

这很有趣,因为 X 的风格与 Reddit 不同,与 Facebook 不同,与 Instagram 不同。

It’s interesting.

这很有趣。

And all those common sections are different technologically, like how the sorting is done, how easy it is to sort of build a community around it?

所有这些常见部分在技术上都是不同的,比如排序是如何完成的,围绕它建立一个社区有多容易?

Because YouTube is not really a community.

因为 YouTube 并不是一个真正的社区。

Every single video on YouTube has its own mini community.

YouTube 上的每个视频都有自己的迷你社区。

You’re all talking on just that one video.

你们都在谈论那个视频。

But you can’t jump across.

但你不能跳过去。

ThePrimeagen3:01:40

There’s not like, “Hey Bill, hey George.” There’s no crosstalk that happens in multiple videos.

不像“嘿比尔,嘿乔治”。多个视频中不会出现串扰。

Lex Fridman3:01:44

Yeah.

是的。

3:01:44 But the community is awesome.

但社区很棒。

I love community.

我喜欢社区。

I love the feeling of community and I guess that’s what Twitch really provides.

我喜欢社区的感觉,我想这就是 Twitch 真正提供的。

ThePrimeagen3:01:52

YouTube also does have it though.

YouTube 也有它。

3:01:52 They have an aggregate community.

他们有一个聚合社区。

There’s a lot of fun comments and all that on the videos and a lot of thumbs up and then you see the fun discourse that happens and it’s like that’s the community, it’s just only a certain slice sees it.

视频中有很多有趣的评论和所有这些,还有很多人竖起大拇指,然后你会看到发生的有趣的讨论,就像这就是社区,只是只有一部分人看到它。

Lex Fridman3:02:06

I think that’s even more so on YouTube for live-streaming.

我认为 YouTube 上的直播更是如此。

3:02:06 All the same folks show up and they talk shit, they celebrate, the meme train arrives.

所有同样的人都出现了,他们说着废话,他们庆祝,模因列车到达。

ThePrimeagen3:02:16

Yeah.

是的。

Lex Fridman3:02:17

Okay.

好的。

3:02:17 So now, what projects shape you as a programmer?

那么现在,哪些项目塑造了你作为一名程序员的形象呢?

Whether the ones you streamed or offline.

无论是您流式传输的还是离线的。

ThePrimeagen3:02:27

For me, I don’t know if there’s a one project I can point to, but I can point to a specific spot where I think it happens and where I think you can learn a lot from.

对我来说,我不知道是否有一个项目可以指出,但我可以指出一个我认为它发生的特定地点,以及我认为你可以从中学到很多东西的地方。

3:02:27 Any small program you write will be somewhere between 1,000 to 5,000 lines of code I consider a pretty dang small project.

您编写的任何小程序都会有 1,000 到 5,000 行代码,我认为这是一个非常小的项目。

You can correlate this to any feature within a larger system as well.

您也可以将其与更大系统中的任何功能相关联。

A specific feature on a website could be a thousand lines, a couple thousand lines.

网站上的一个特定功能可能有一千行,几千行。

3:02:51 There’s a point in which all of your choices add up.

总有一天,你的所有选择都会叠加起来。

And I typically find that right around 5 to 10,000 lines of code.

我通常发现大约 5 到 10,000 行代码。

The choices you’ve made either weigh you down or kind of free you up.

你所做的选择要么让你感到沉重,要么让你自由。

And so it’s right in that, that I feel like I learned the most is because I love getting to that point in a project or in some small part of the code base because at that point I get to test, A, how good were my initial gut decisions about how I designed the software, but B, now I need to go back and think about how am I going to do testing across this in a more effective way?

因此,我觉得我学到最多的是因为我喜欢在项目中或代码库的某个小部分中达到这一点,因为那时我要测试,A,我最初关于如何设计软件的直觉决定有多好,但是 B,现在我需要回过头来思考我将如何以更有效的方式对此进行测试?

How can I scale this out to 20,000 lines of code?

如何将其扩展到 20,000 行代码?

How can I do all these things with what I’ve got or do I need to kind of rethink it?

我怎样才能用我所拥有的东西来做所有这些事情,或者我需要重新考虑一下吗?

3:03:28 And I find that that’s really where the best learning happens is that everybody has probably a different number that exists, and as you go to each one of these numbers or how well or holistic you want your project to be, I think that you’ll come up with different numbers.

我发现这确实是最好的学习发生的地方,每个人可能都有不同的数字,当你研究这些数字中的每一个或你希望你的项目有多好或整体时,我认为你会想出不同的数字。

And I think that number should just get bigger as you get more experienced.

我认为随着经验的增加,这个数字应该会变得更大。

Because there’s projects that are a million lines of code, but they’re most certainly not holistic, right?

因为有些项目有一百万行代码,但它们肯定不是整体的,对吧?

Every part of the code base is some age at some capsule of time with some sort of programming style.

代码库的每个部分都有一定的年龄和某种编程风格。

Some is more functional, more class-based, more, God help your soul if it’s pre-processor macros in C++.

有些更实用,更基于类,更多,如果是 C++ 中的预处理器宏,上帝会帮助你的灵魂。

There’s all these different kind of things you’ll find throughout time.

随着时间的推移,你会发现各种各样的东西。

3:04:08 And so that’s why I try to think about it as the feature or the thing you’re working on.

这就是为什么我尝试将其视为功能或您正在开发的东西。

It’s usually about 5,000 lines is where I find that things get kind of, did I make good or bad decisions?

通常大约 5,000 行是我发现事情变得有点的地方,我做出了好还是坏的决定?

And that’s where I do all my learning is right on that phase.

这就是我在那个阶段所做的所有学习的地方。

I’m trying to get it to the point where I should be able to shoot from the hip and do 20,000 lines and not be upset about it.

我正在努力达到这样的程度:我应该能够从臀部开始拍摄并完成 20,000 行,并且不会为此感到沮丧。

Lex Fridman3:04:27

So first of all, just enjoying the thing you create part, yeah.

所以首先,享受你所创造的东西,是的。

3:04:27 About there you can sit back and see all the parts dancing together.

在那里你可以坐下来观看所有部分一起跳舞。

For me, also debugging, you get to see the choices you make materialize as how easy it is to debug.

对我来说,还有调试,您可以看到您所做的选择具体化为调试是多么容易。

I’m a big proponent, I think you’ve mentioned this in the past, I put asserts everywhere.

我是一个大力支持者,我想你过去已经提到过这一点,我到处都提出了主张。

ThePrimeagen3:04:51

No, you are the reason why I do that.

不,你就是我这么做的原因。

Lex Fridman3:04:53

Yeah.

是的。

ThePrimeagen3:04:54

You were like the first one.

你就像第一个一样。

3:04:54 Keep on going, sorry.

继续吧,抱歉。

Lex Fridman3:04:56

Really?

真的吗?

3:04:56 Okay.

好的。

So for me, one of the joys, whether it’s try catch box, whether it’s assert, whether it’s with the testing, I get to see the payoff of all the minefield of asserts I’ve laid out before me in my kingdom by how quickly I can debug a system as it grows larger.

因此,对我来说,乐趣之一是,无论是 try catch 框,还是断言,还是测试,我都可以看到我在王国中布置的所有断言雷区的回报,即随着系统规模的扩大,我可以多快地调试系统。

And I can first of all discover errors before they become real bugs and also how quickly I can solve those errors.

我首先可以在错误成为真正的错误之前发现它们,以及我可以多快地解决这些错误。

And that brings me joy.

这给我带来了快乐。

For me, a lot of the joys of programming is creating powerful systems that don’t break down, that work correctly, that work correctly in majority of the cases.

对我来说,编程的很多乐趣在于创建强大的系统,这些系统不会崩溃,可以正常工作,并且在大多数情况下都能正常工作。

And there, sort of the stress testing the system and getting all of the signals from that system that everything is working correctly is something that fills me with joy and makes sure that the system actually works.

在那里,对系统进行压力测试并从该系统获取一切正常工作的所有信号,这让我充满喜悦,并确保系统实际工作。

So yeah, that, I don’t know if it’s 5, 10,000 lines of code, if it’s Java or C++ it’s millions lines of code.

所以,是的,我不知道它是 5 行、10,000 行代码,还是 Java 或 C++ 代码,它是数百万行代码。

But yeah, in Python, yeah, I would say 10,000 lines of code.

但是,是的,在 Python 中,是的,我会说 10,000 行代码。

That’s when you first get to see the magic.

那是你第一次看到魔法的时候。

But anyway, you were saying?

但无论如何,你是说?

ThePrimeagen3:06:11

Okay, so you and John Carmack had a conversation about asserts.

好的,您和 John Carmack 进行了有关断言的对话。

Lex Fridman3:06:14

Yes.

是的。

ThePrimeagen3:06:14

You talked about this idea of putting asserts everywhere that effectively crash the program when you have some state in your program that should not be represented and you have made this choice actively.

您谈到了这样的想法:当您的程序中存在不应表示的某些状态并且您已主动做出此选择时,在各处放置断言会有效地使程序崩溃。

3:06:14 And so I’ve never done that before.

所以我以前从未这样做过。

And I know this is like an old technique and I obviously must be too young or too dumb to know that this was a thing people did.

我知道这就像一种古老的技术,显然我一定太年轻或太愚蠢,不知道这是人们所做的事情。

I grew up in Java and I think that’s probably why I didn’t run into this.

我是在 Java 环境下长大的,我想这可能就是我没有遇到这种情况的原因。

3:06:38 So I saw that and I was like, I’m curious about how to use asserts more.

所以我看到了这一点,我很好奇如何更多地使用断言。

And then I ran into a person named Joran.

然后我遇到了一个叫乔兰的人。

He’s the CEO and creator of TigerBeetle.

他是 TigerBeetle 的首席执行官和创始人。

It’s like the world’s fastest, greatest financial database.

它就像世界上最快、最大的金融数据库。

And it was spawned out of a company that needed to do a bunch of financial transactions.

它是从一家需要进行大量金融交易的公司中产生的。

And it’s written in Zig and what they do is they do deterministic simulation testing and they just use NASA’s kind of guarantee for creating really great software.

它是用 Zig 编写的,他们所做的是进行确定性模拟测试,他们只是使用 NASA 的保证来创建真正出色的软件。

So don’t use U size, specify your exact size of int you expect everywhere.

因此,不要使用 U 大小,而是指定您期望的 int 的确切大小。

All these kind of things they do to be very specific.

他们做的所有这些事情都非常具体。

3:07:10 And one of them is that every function should contain two asserts.

其中之一是每个函数都应该包含两个断言。

Whether it’s positive space like these things should happen or negative space, like this pointer should never be null.

无论是像这些事情应该发生的正空间还是像这个指针永远不应该为空的负空间。

You’re programming into things that should never happen.

你正在编程一些不应该发生的事情。

Normally, you would just never specify that.

通常,您永远不会指定这一点。

You’d never think about that.

你永远不会想到这一点。

So every single function everywhere has all these asserts and these asserts run both in production and in testing.

因此,每个地方的每个函数都有所有这些断言,并且这些断言在生产和测试中都运行。

They’re always on.

它们始终在线。

3:07:35 And then they take deterministic simulation testing and run like 200 years of just random data, just complete slop going through the system and seeing how far it goes.

然后他们进行确定性模拟测试,并运行 200 年的随机数据,只是完整地遍历系统并看看它能走多远。

And when an assert happens, they’re like, here’s the input that caused it, here’s every last little bit that happened, and now you can identify where this went wrong.

当断言发生时,他们会说,这是导致断言的输入,这是发生的最后一点,现在您可以确定哪里出了问题。

And it was so cool.

太酷了。

So between you, John Carmack and Joran, that’s where I got like, okay, I got to really…

所以在约翰·卡马克和乔兰之间,我就想,好吧,我真的……

And NASA, I’ll throw NASA a bone as well.

还有美国宇航局,我也会向美国宇航局扔一根骨头。

NASA can join in on that one.

美国国家航空航天局 (NASA) 可以参与其中。

3:08:04 I was like, okay, I want to try this.

我当时想,好吧,我想尝试一下。

And I did try it.

我确实尝试过。

I built this big reverse proxy for me trying to do some game development stuff.

我为尝试做一些游戏开发工作构建了这个大型反向代理。

And I just went ham on the asserts.

我只是对这些主张胡思乱想。

And then I built the whole simulation testing thing that could do everything deterministically.

然后我构建了整个模拟测试的东西,可以确定地完成所有事情。

So even the result of requests would all come in specific orders.

因此,即使是请求的结果也会按照特定的顺序出现。

And I found a bunch of bugs that I just would never have found.

我发现了一堆我永远不会发现的错误。

And then I did it for a game I was making.

然后我在我正在制作的游戏中这样做了。

I found some bugs where my cursor went off-screen, it would cause all these different problems because I just never tested them.

我发现了一些错误,我的光标离开了屏幕,这会导致所有这些不同的问题,因为我从未测试过它们。

And it’s super fun and it’s like a really great way to program.

它非常有趣,而且是一种非常棒的编程方式。

Lex Fridman3:08:33

Yeah, I think it’s a skillset you grow over time.

是的,我认为这是随着时间的推移而成长的技能。

3:08:33 It’s not just that you have to specify the preconditions, everything that has to be true, it’s also adding things that are like, you might not even think about.

这不仅是你必须指定前提条件,一切都必须是真实的,它还添加了一些你可能根本没有想到的东西。

You have to sort of anticipate really weird things.

你必须预见到一些非常奇怪的事情。

And if you add asserts, especially in complicated functions or in complicated classes that are able to catch really weird things, that’s going to save you so many headaches and it’s going to help you learn about your own code.

如果您添加断言,特别是在能够捕获非常奇怪的事情的复杂函数或复杂类中,这将为您省去很多麻烦,并且将帮助您了解自己的代码。

3:09:10 This is one of the things, I think it was Jonathan Blow that either in conversation with you or was it in a presentation, he said that when he’s starting in a project, he usually doesn’t know how to implement it, how it’s going to work.

这是其中一件事,我认为乔纳森·布洛(Jonathan Blow)无论是在与您交谈还是在演示中,他说当他开始一个项目时,他通常不知道如何实施它,它如何运作。

And I think he was saying that he wants a programming language.

我认为他是在说他想要一种编程语言。

This might have been a criticism of C++, I’m not sure, where he wants a programming language that makes it as painless as possible for him to not know what he’s doing, how he’s going to implement it, and to quickly get to a place where he figures it out.

我不确定,这可能是对 C++ 的批评,他想要一种编程语言,让他尽可能轻松地不知道自己在做什么、将如何实现它,并快速到达他弄清楚的地方。

3:09:50 I think there’s a fundamental part of programming is building stuff while not really knowing what the next thing you’re doing is.

我认为编程的一个基本部分是构建东西,但并不真正知道你接下来要做的事情是什么。

You kind of have a loose design, maybe a strict design, but really you’re solving puzzles that are not…

你有一个宽松的设计,也许是一个严格的设计,但实际上你正在解决的难题不是……

It is a dark room in a fundamental sense.

从根本上讲,这是一个暗室。

And there you have to anticipate the kind of weirdnesses that might emerge while not really knowing everything.

在那里,你必须预见到在不了解一切的情况下可能出现的奇怪情况。

Just this full fog, fog of war.

就是这浓浓的迷雾,战争迷雾。

And there that’s a real skill to anticipate the kind of issues that might arise and put a asserts on top of them.

这是一种真正的技能,可以预测可能出现的问题类型并对其进行断言。

3:10:30 And it’s also like spiritually, for me, been a really nice way of programming a building of living life as having very strict asserts that say, “You’re going to fix this problem if it ever arises.

对我来说,从精神上来说,这是一种非常好的设计生活建筑的方式,因为它有非常严格的断言,“如果这个问题出现了,你就会解决这个问题。

You can’t just look the other way.” This idea of treating warnings as errors.

你不能只是视而不见。”这种将警告视为错误的想法。

Make sure your code compiles without any warnings.

确保您的代码编译时没有任何警告。

That was a big leap for me.

这对我来说是一个巨大的飞跃。

It’s like, but there’s so many of them and it’s not really that important.

就像,但它们太多了,而且并不是那么重要。

It’s like, no, no, no warnings.

就像,不,不,没有警告。

Make sure you treat every single problem, even fuzzy problems seriously, because that’s actually long-term is going to create code that’s much easier to work with, much more fun to work with, much more robust, resilient to all kinds of weirdnesses, all that kind of stuff.

确保你认真对待每一个问题,甚至是模糊的问题,因为从长远来看,这实际上会创建出更容易使用、更有趣、更健壮、能够适应各种奇怪情况的代码。

3:11:21 So it’s a different way of approaching coding, probably more NASA-like versus web programming style.

所以这是一种不同的编码方式,与网络编程风格相比,可能更像 NASA。

But yeah, it has made programming for me personally, much more fun because one of the most painful things about programming is creating when you get past 10,000, 20,000 lines of code and you have to find a bug.

但是,是的,它使我个人的编程变得更加有趣,因为编程中最痛苦的事情之一就是当你的代码超过 10,000、20,000 行时,你必须找到一个错误。

And that bug can take hours, it could take days to find, and that’s torture.

这个错误可能需要几个小时,可能需要几天的时间才能找到,这真是一种折磨。

ThePrimeagen3:11:50

Yeah.

是的。

3:11:50 When your system gets sufficiently large, some of these bugs are just, they are very difficult.

当您的系统变得足够大时,其中一些错误只是非常困难的。

Bless anyone’s soul that’s working on million line code bases, because it does.

祝福任何在数百万行代码库上工作的人的灵魂,因为它确实如此。

I can’t tell you how many times I’ve spent multiple days just trying to figure out the root cause of the bug.

我无法告诉你有多少次我花了很多天来试图找出错误的根本原因。

Not even the fix.

连修复都没有。

Just like why does this happen?

就像为什么会发生这样的事情?

And that’s hard.

这很难。

3:12:09 So I love that.

所以我喜欢这样。

I just love the asserts because I’m not good at them, I can see it’s definitely a skill that I don’t put into practice constantly, which means it’s just not like a muscle memory type thing.

我只是喜欢这些断言,因为我不擅长它们,我可以看到这绝对是一项我不会不断实践的技能,这意味着它不像肌肉记忆类型的东西。

And so it’s just one of those things I just love.

所以这只是我喜欢的事情之一。

It’s such a fascinating way to approach a problem, because I would’ve never thought, you know what I’m going to do?

这是解决问题的一种令人着迷的方式,因为我从来没有想过,你知道我要做什么吗?

If I’m wrong, I’m going to crash this thing and I’m going to crash it right here because I should never be wrong.

如果我错了,我就会让这个东西崩溃,而且就在这里崩溃,因为我永远不应该错。

But instead you’re like, “Oh, actually that makes perfect sense.

但相反,你会想,“哦,实际上这是完全有道理的。

I should crash this thing.

我应该让这件事崩溃。

I’ve done something terribly wrong here.

我在这里做了一件非常错误的事情。

Why would this ever exist?” And then you’re like, “This is going to solve a whole class of problems.”

为什么会有这样的存在?然后你会想,“这将解决一整类问题。”

Lex Fridman3:12:42

Yeah.

是的。

3:12:42 And especially if it’s in production, it’s like, well a user’s going to see this crash.

尤其是在生产环境中,用户会看到这种崩溃。

It’s like, yeah, well you should minimize the number of times any user ever sees the crash, not by having a nice blue screen or whatever the fuck, but actually stopping everything.

就像,是的,你应该最大限度地减少任何用户看到崩溃的次数,不是通过漂亮的蓝屏或其他什么他妈的东西,而是实际上停止一切。

And that’s going to create an incentive for you to never have that happen.

这将激励你永远不会发生这种情况。

You’re actually going to put in the time to make sure it never happens.

实际上,您要投入时间以确保它永远不会发生。

ThePrimeagen3:13:09

And the nice part is with the web and all that, you can always pop up something and say, “Hey, things have gone very, very wrong or unable to recover.” You can give them a nice message and then log it off so you can see it, and then measure how often are you doing it.

最好的部分是网络和所有这些,你总是可以弹出一些东西并说,“嘿,事情已经变得非常非常错误或无法恢复。”您可以给他们一条好消息,然后将其注销,以便您可以看到它,然后衡量您执行此操作的频率。

3:13:09 I understand that there’s a bit of interestingness to a web project like do you want to always crash a server?

我知道 Web 项目有一点有趣,比如你想让服务器总是崩溃吗?

There’s a bit of a gamble if you release a bad version and you crash all your servers constantly.

如果你发布了一个糟糕的版本并且不断导致所有服务器崩溃,那就有点赌博了。

That’s a pain you’re going to have to accept.

这是你必须接受的痛苦。

Lex Fridman3:13:36

I think this is more applicable for single systems like robots and so on.

我认为这更适用于机器人等单一系统。

3:13:36 You have struggled with ADHD.

您一直在与多动症作斗争。

I think a lot of people are really inspired by the fact that you’re able to be productive and flourish while having ADHD.

我认为很多人都受到了这样一个事实的启发:在患有多动症的情况下,你仍然能够保持高效和蓬勃发展。

How’d you overcome it?

你是如何克服的?

ThePrimeagen3:13:57

Well, there’s a lot of things that ADHD affects and so I’ll start with some of the easiest things, because there’s directly applicable, then these kind of collateral damage applicable things that happen.

嗯,多动症会影响很多事情,所以我将从一些最简单的事情开始,因为有直接适用的事情,然后这些附带损害适用发生的事情。

3:13:57 So one thing that has really helped me with ADHD is maturity.

所以真正帮助我治疗多动症的一件事就是成熟。

I think that’s just a thing that everyone needs more of.

我认为这是每个人都需要更多的东西。

Meaning that I found myself getting so wiggly and so out of control when I would try to sit down and read, and I just couldn’t handle it.

这意味着当我试图坐下来读书时,我发现自己变得如此摇摆和失控,而我就是无法应对。

I just felt like I’d read a page and didn’t read anything.

我只是觉得我读了一页,但什么也没读。

The part of me that just went, “Oh man, gosh, I just can’t even do this.” I had to just simply quit listening to it and said, “Nope, I’m rereading this page.” I remember reading some pages in college like 18 times in a row, just like I’m going to force myself to just do this the correct way.

我的一部分刚刚说:“天啊,我什至都做不到。”我不得不干脆不再听它并说:“不,我正在重读这一页。”我记得在大学里连续读了一些书页 18 遍,就像我要强迫自己以正确的方式做这件事一样。

3:14:43 And so there’s an aspect of maturity that really helps, no matter what, I will do the thing I’m going to do and I’m going to do it well and maybe it takes me a lot longer and that’s okay.

因此,成熟的一个方面确实很有帮助,无论如何,我都会做我要做的事情,而且我会做得很好,也许这需要我更长的时间,但这没关系。

That’s not the point of it.

这不是重点。

It’s that I’m doing it and that’s the point.

我正在做这件事,这就是重点。

And so that’s one thing that I think just generally helps.

所以我认为这是一件通常有帮助的事情。

And ADHD, no ADHD, the resilience, emotional resilience is just a really important aspect that just helps.

多动症,不,多动症,恢复力,情绪恢复力是一个非常重要的方面,可以提供帮助。

And so I think that has been a large part that really helps me.

所以我认为这对我很有帮助。

3:15:11 There’s things that I still obviously struggle with.

显然,有些事情我仍然在挣扎。

It’s clear where I’m really bad at stuff, and just trying to think through all the different things that I’m bad at.

很明显我在哪些方面真正不擅长,并且只是尝试思考我不擅长的所有不同事情。

There’s more things I’m bad at than I’m good at.

我不擅长的事情比我擅长的事情还多。

And so programming obviously has something that just allows me to remain focused and it’s like a strength of mine.

因此,编程显然可以让我保持专注,这就像我的优势。

And so I started off where I could just do it for a little bit and then just through kind of that emotional resilience, I was able to start doing it more and more.

所以我一开始只能做一点,然后通过某种情绪恢复力,我能够开始越来越多地这样做。

And so now I can just do it for like 10, 12, 15 hours at a time and I absolutely love it.

所以现在我一次可以做 10、12、15 个小时,我非常喜欢它。

And so it’s become kind of like a joy.

所以它变得有点像一种快乐。

It’s like playing a musical instrument.

这就像演奏乐器一样。

I’m really into it.

我真的很喜欢它。

3:15:51 But then if it came down to, “Hey, you need to go schedule your own dentistry and go do all these other things or make sure the kids have this type of stuff ready for the meals you need to pack throughout the week.” I’m historically very bad at that and will probably continue to be very bad at that.

但如果归结为,“嘿,你需要去安排自己的牙科检查,并去做所有其他事情,或者确保孩子们准备好这类东西,以备你一周需要打包的饭菜。”从历史上看,我在这方面一直很糟糕,而且可能会继续很糟糕。

And so I must say that one of the reasons why I excel so much is because I also have a wife who is so good to me and she helps clear out a lot of the things in my life that cause a lot of me kind of getting snowballed into a weird spot where I’m just distracted getting nothing done.

所以我必须说,我如此出色的原因之一是因为我还有一个对我很好的妻子,她帮助我清理了生活中的很多事情,这些事情导致我很多人像滚雪球一样陷入一个奇怪的境地,在那里我只是分心而无所事事。

And so she’s really helped me.

所以她真的帮助了我。

3:16:30 So it would be foolish of me to claim that I’ve defeated the ADHD by myself, but instead I find that the places that I can really control I’ve done a very good job at, and the things that I obviously need to do much better at, my wife has helped me a whole bunch.

因此,如果我声称自己已经战胜了多动症,那就太愚蠢了,但相反,我发现,在我真正可以控制的地方,我做得很好,而在我显然需要做得更好的事情上,我的妻子帮了我很多。

And so I’ve kind of cheated.

所以我有点受骗了。

Maybe I found a cheat code, a loving wife.

也许我找到了一个作弊码,一个慈爱的妻子。

But that has been the thing that has really helped.

但这才是真正有帮助的事情。

Lex Fridman3:16:50

You said a lot of interesting things.

你说了很多有趣的话。

3:16:50 So on the reading and for me it’s also audiobook side, I do the same thing and I’ve gotten much better at it, which is I tune out mentally and I read a page and you don’t understand anything on the page.

所以在阅读方面,对我来说,这也是有声读物方面,我做了同样的事情,而且我在这方面做得更好了,那就是我在精神上调离了,我读了一页,你不明白页面上的任何内容。

You didn’t actually read it.

你实际上没有读过它。

And yeah, I forced myself to just reread it or re-listen to an audiobook, which is a much more common problem for me now, and forcing myself to really pay attention.

是的,我强迫自己重新阅读或重新听有声读物,这对我来说是一个更常见的问题,并强迫自己真正集中注意力。

Because I listen to audiobooks often when I run and it’s so easy to just tune out.

因为我跑步时经常听有声读物,而且很容易就听不下去。

3:17:26 It’s a skill.

这是一项技能。

I didn’t realize how much of a skill listening to an audiobook is, especially when there’s other sensory inputs when you run.

我没有意识到听有声读物有多大的技巧,尤其是当你跑步时还有其他感官输入时。

So I have to force myself to really pay attention to every single word.

所以我必须强迫自己真正注意每一个字。

And if I don’t, like tune out and don’t remember what I just listened to in the past 30 seconds, I force myself to re-listen to it.

如果我不这样做,比如调出音量并且不记得过去 30 秒里我刚刚听过什么,我就会强迫自己重新听一遍。

And sometimes that means five times until, it’s like punishing myself to like, “You’re going to listen to this boring shit over and over until you get good at that little skill of like zoom in.” And you’re like, yeah, there’s people, they’re doing stuff, there’s nature, it doesn’t matter…

有时这意味着五次,直到,这就像惩罚自己一样,“你会一遍又一遍地听这些无聊的狗屎,直到你擅长像放大这样的小技巧。”你会想,是的,有人,他们在做事,有自然,这并不重要……

3:18:00 Yeah, there’s people, they’re like doing stuff, there’s nature, it doesn’t matter.

是的,有人,他们喜欢做事,有自然,这并不重要。

You’re listening to every single word and loading it in and trying to stay focused, even there’s just so many distractions all around you.

你正在倾听每一个单词,将其加载进去,并努力保持专注,即使你周围有那么多干扰。

Yeah.

是的。

ThePrimeagen3:18:10

It’s definitely a learned skill and it takes a lot of time.

这绝对是一项需要学习的技能,并且需要花费很多时间。

3:18:10 And when I say, “Oh, I was able to do from here to here,” I’m speaking over the course of like five years of doing this every day.

当我说“哦,我能够从这里做到这里”时,我是在五年的时间里每天都这样做。

It’s not some small…

这可不是什么小事……

There’s no…

没有……

The nice part about that decision though is you can make that decision today.

不过,这个决定的好处是你今天就可以做出这个决定。

You can make it right now.

你现在就可以做到。

You’re going to be like, “From here on out, I’ll never make that mistake again.

你会说:“从现在开始,我再也不会犯同样的错误了。

I will say I’m going to read 50 pages, I will sit down and read 50 pages, and when I get distracted I’ll go back to the last place I remember and I’ll start again.” And like that’s a decision you can make.

我会说我要读 50 页,我会坐下来读 50 页,当我分心时,我会回到我记得的最后一个地方,然后重新开始。”就像这是你可以做出的决定一样。

That’s a mature, non-emotional decision to make.

这是一个成熟的、不带感情色彩的决定。

And you can do that, it just may be really painful for the first couple years of making said decisions.

你可以做到这一点,只是在做出上述决定的头几年可能会非常痛苦。

And then it gets easier and then it gets easier, and then it becomes more natural to change yourself.

然后它会变得越来越容易,然后它会变得越来越容易,然后改变自己就会变得更加自然。

Lex Fridman3:18:53

Yeah.

是的。

3:18:53 And with every medium, with every platform, I think it’s like a new skill.

对于每一种媒介、每一个平台,我认为这就像一项新技能。

For me, like using social media has been that, just like I end up like doom scrolling too easily on platforms.

对我来说,就像使用社交媒体一样,就像我最终很容易在平台上滚动一样。

And one solution is not to look at all, which is kind of what I lean on mostly these days, but I feel like I should be able to check, just read, okay, feel a thing, learn a thing, and then put it down, versus you have this glazed look over your eye and you’re not really paying attention anymore and you’re dead inside and you feel horrible afterwards.

一个解决办法就是根本不看,这是我现在主要依靠的方式,但我觉得我应该能够检查,只是阅读,好吧,感受一件事,学习一件事,然后把它放下,而不是你的眼睛看起来呆滞,你不再真正集中注意力,你的内心已经死了,事后你感觉很糟糕。

I don’t understand.

我不明白。

ThePrimeagen3:19:33

The horrible afterwards is real serious.

事后的可怕是非常严重的。

3:19:33 I’ve definitely…

我绝对……

I can 100% notice that I am a more anxious person the more time I spend scrolling.

我可以 100% 注意到,我花在滚动上的时间越多,我就越焦虑。

Lex Fridman3:19:41

Yeah, yeah.

是啊是啊。

ThePrimeagen3:19:42

I can just feel it.

我能感觉到。

3:19:42 It’s like something inside of me that’s kind of…

这就像我内心深处的某种东西……

I don’t know how to say it other than it like wants to get out but I don’t really know what that is.

我不知道该怎么说,除了想出去,但我真的不知道那是什么。

It’s not anger, but it’s not…

这不是愤怒,但也不是……

It’s very anxious.

很着急。

Lex Fridman3:19:52

It’s like the opposite of the feeling I have when I wake up in the morning and I’m feeling good, and I look out in nature and look at the sun and just, and there’s like a bird chirping and this kind of thing.

这与我早上醒来时的感觉相反,我感觉很好,我看着大自然,看着太阳,就像鸟儿在鸣叫之类的东西。

3:19:52 Scrolling through social media, even if it’s like super positive stuff or whatever, it’s still not the same feeling as the bird chirping.

浏览社交媒体,即使它是超级积极的东西或其他什么,它仍然与鸟儿鸣叫的感觉不一样。

Bird chirping on Instagram is a different bird chirping than in real life, cause bird chirping on Instagram, I’ll start swiping until there’s demons of different types fighting inside my head and then different anxiety, insecurity, whatever the hell.

Instagram 上的鸟鸣声与现实生活中的鸟鸣声不同,因为 Instagram 上的鸟鸣声,我会开始滑动,直到不同类型的恶魔在我的脑海中战斗,然后出现不同的焦虑、不安全感,无论如何。

Just the mixture of chaos versus the bird chirping in real life.

只是混乱与现实生活中鸟儿鸣叫的混合。

That is beautiful.

那是美丽的。

But again, that’s the same thing as with the audiobook.

但同样,这与有声读物是一样的。

It boils down to…

归结为……

Man, these people that talk about meditation, I think that’s probably…

伙计,这些谈论冥想的人,我想这可能是……

they’re onto something, because that’s what it is be able to like focus calmly and deliberately on a thing, whether it’s reading or audiobook or existence.

他们专注于某件事,因为这就是能够平静而刻意地专注于某件事的原因,无论是阅读、有声读物还是存在。

When they sort of observe the breath, you’re able to silent out everything else and remove everything else from focus.

当他们观察呼吸时,你就可以让其他一切都安静下来,并从焦点中移开其他一切。

Yeah.

是的。

That’s a skill.

这是一项技能。

That’s a skill.

这是一项技能。

ThePrimeagen3:21:05

I heard it put really beautifully, which is that we in America really have misunderstood liberty because we typically have liberty as just the freedom to do whatever you want.

我听到它说得非常漂亮,那就是我们美国人确实误解了自由,因为我们通常拥有的自由就是做任何你想做的事情的自由。

3:21:05 And the argument was that it’s not the freedom to do whatever you want, it’s the freedom to be able to do what you will.

争论的焦点是,这不是做任何你想做的事的自由,而是能够做你想做的事的自由。

And how often is what you actually want to do, you don’t do because you get trapped doing something that you’ve convinced yourself in this quick moment you want to do?

有多少次你真正想做的事却没有做,因为你被困在做一些你在这一刻说服自己想做的事情?

And so it’s like, “I want liberty.

所以就像是,“我想要自由。

I want the ability to control my energy and to be able to do the thing I want to do, not to get distracted and destroyed in all the millions of distractions.” And some of us get handed a worse deck of cards, some of us get a better deck of cards, but I don’t think there’s anybody that doesn’t struggle with it in the technological age.

我希望能够控制自己的能量,能够做我想做的事情,而不是在数以百万计的干扰中分心和被摧毁。”我们中的一些人拿到了一副更差的牌,一些人拿到了一副更好的牌,但我认为在科技时代没有人不为此而苦苦挣扎。

Lex Fridman3:21:48

Yeah, and that’s the skill.

是的,这就是技能。

3:21:48 What can you say to the skill of achieving focus in programming?

您对编程中集中注意力的技巧有何评价?

Do you have a process of how you sit down and try to sort of approach a problem?

您是否有一个如何坐下来尝试解决问题的流程?

So, all the different, not just distractions but the challenges of starting a project, of thinking through the design, how to maintain real focus, because it’s really difficult intellectual endeavor.

因此,所有这些都不同,不仅仅是干扰,还有启动项目、思考设计、如何保持真正专注的挑战,因为这确实是一项困难的智力努力。

ThePrimeagen3:22:15

At this point I’m lucky, but when I first started I can remember that every last part of programming.

在这一点上我很幸运,但是当我第一次开始时,我可以记住编程的每一个最后部分。

3:22:15 I had to go look up, I had to go read, I had side quests at all time.

我必须去查找,我必须去阅读,我一直都有支线任务。

Every step was a side quest.

每一步都是一个支线任务。

Why is my screen blinking when I’m trying to render this thing out?

当我尝试渲染这个东西时,为什么我的屏幕会闪烁?

Oh, I didn’t know about double buffering.

哦,我不知道双缓冲。

Why is this happening?

为什么会发生这种情况?

How do I even write to the screen?

我怎样才能写到屏幕上呢?

How do I…

我该如何…

Everything was a question.

一切都是一个问题。

I had more questions than answers.

我的问题多于答案。

And so I constantly had the problem of side quests, and I find that to be a very exhausting thing.

所以我经常遇到支线任务的问题,我发现这是一件非常累人的事情。

But as I learned my instrument very, very well, I don’t have as many side quests.

但当我把我的乐器学得非常非常好时,我就没有那么多支线任务了。

I become more and more able to just focus on the thing I want to do.

我变得越来越能够专注于我想做的事情。

And I find that to be something that is just super, super useful.

我发现这是非常非常有用的东西。

So, when I say I’m kind of lucky, meaning that I’ve spent so much of my life preparing for this moment that now when I have the opportunity to do something, I can just do that thing and I don’t…

所以,当我说我很幸运时,意思是我花了一生的时间为这一刻做准备,现在当我有机会做某事时,我可以做那件事,但我不会……

3:23:08 Like I can be just on an airplane and I can just program for hours.

就像我可以在飞机上进行几个小时的编程一样。

I don’t have to look up a single thing.

我不需要查找任何东西。

I don’t have to do anything.

我不需要做任何事情。

I don’t even have to test the code.

我什至不需要测试代码。

I can write 1,000 lines of code on an airplane and I’m very confident that it’s going to be 98% pretty dang good.

我可以在飞机上编写 1,000 行代码,并且我非常有信心它的 98% 都非常好。

And I’m very happy about that because that allows me just to be in the moment solving the problem I’m trying to solve.

我对此感到非常高兴,因为这让我能够及时解决我想要解决的问题。

Then I have 100% of my brain power solving a problem.

然后我就可以用 100% 的脑力解决问题。

And this is why I also…

这就是为什么我也……

It’s the same reason why I recommend learning how to type and learning your editor so well you don’t even have to think about the action because the people that have to…

这就是为什么我建议学习如何打字和学习你的编辑器,以至于你甚至不需要考虑操作,因为人们必须......

Even if you just look down, that’s still mental processing power you have to spend looking at a keyboard in which you already know where the key is.

即使你只是低头看,这仍然是你必须花在看键盘上的心理处理能力,因为你已经知道按键在哪里。

You do.

你做。

At this point, if you’ve been typing for thousands of hours, you know where the key is, just stop looking down, you’ll learn really quickly.

此时,如果你已经打字了数千个小时,你知道关键在哪里,只要停止往下看,你就会学得很快。

3:23:51 And so it’s like this thing where it’s like, “I’m not going to spend all that time and all that mental effort looking up the thing.

就像这件事一样,“我不会花那么多时间和精力去查找这个东西。

I’m going to just memorize…

我只会记住...

I’m just going to get it in me, and then I can go fast.” And it feels good.

我只要把它放在心里,然后我就能走得快。”而且感觉很好。

And so that’s how I’d kind of defeat that is because now I get to do something where it’s like there’s no more questions.

这就是我失败的方式,因为现在我要做一些事情,就像没有更多问题一样。

It’s now me just expressing myself into this medium and it feels really good.

现在我只是通过这种媒介表达自己,感觉真的很好。

Lex Fridman3:24:15

I’m sure there’s still like things that pull at you, like curiosities, distractions, like, “Ooh, I wonder how…” Anytime you have access to the internet, you’re going to get-

我确信仍然有一些东西吸引着你,比如好奇心、干扰,比如,“哦,我想知道如何……”只要你能访问互联网,你就会——

ThePrimeagen3:24:26

Twitter’s a big one on that one.

Twitter 在这方面发挥了重要作用。

3:24:26 Yeah.

是的。

Lex Fridman3:24:28

…

……

3:24:28 you’re going to get curious about stuff, including, I guess you’re speaking about everything in the editors optimize, but, okay, you can always improve stuff.

你会对一些东西感到好奇,包括,我猜你正在谈论编辑器优化中的所有内容,但是,好吧,你总是可以改进东西。

You can always find better plugins and macros and, “Oh, let me…

你总能找到更好的插件和宏,“哦,让我......

You know what, this thing that took this pain point, I just found this tiny pain point, let me spend the next five days creating a plugin for my editor or whatever the fuck to remove that one pain point,” when you should have just kept going as opposed to taking side quests.

你知道吗,这个东西解决了这个痛点,我刚刚发现了这个微小的痛点,让我在接下来的五天里为我的编辑器创建一个插件或者其他什么他妈的来消除这个痛点,“当你应该继续前进而不是接受支线任务时。

ThePrimeagen3:24:59

So, I have a rule which is I do not edit my RC other than some kind of cataclysmic thing, like someone updates a plugin, I didn’t know they updated it and now there’s like a hard error in my editor and I have to move forward.

所以,我有一条规则,除了某种灾难性的事情之外,我不会编辑我的 RC,比如有人更新了插件,我不知道他们更新了它,现在我的编辑器中出现了一个严重错误,我必须继续前进。

3:24:59 But I have a rule where I will edit my RC, my Neovim RC or anything once a year.

但我有一个规则,每年编辑一次我的 RC、Neovim RC 或任何其他内容。

Something that bothers me, I’ll write it down, I’ll remember it.

有什么困扰我的事情,我会写下来,我会记住。

I’ll be like, “Okay, I want to change that,” but I will just not go back to it.

我会说,“好吧,我想改变这一点”,但我不会再回到过去了。

Now, every now and then I’ll break that rule if I know, if like, “Oh, I want a new remap to be able to do this one command and that takes literally 13 seconds, like copy paste, do this, bop-bop-bop, done.

现在,如果我知道的话,我会时不时地打破这个规则,比如,“哦,我想要一个新的重新映射来执行这个命令,这实际上需要 13 秒,就像复制粘贴一样,执行此操作,bop-bop-bop,完成。

Okay, I have this new remap, it made perfect sense in this situation, but I don’t go plug-in exploring.

好吧,我有这个新的重新映射,在这种情况下它非常有意义,但我不会去探索插件。

I don’t try to solve every problem.

我并不试图解决所有问题。

3:25:39 I don’t want a perfect editor because that is a pursuit that will never stop.

我不想要一个完美的编辑器,因为那是一种永远不会停止的追求。

I just go, “This is good, good breakpoint, I won’t do it again.” So, last month I probably spent a hundred hours just editing every possible thing I could about how I start up my system and make…

我只是说,“这很好,很好的断点,我不会再这样做了。”所以,上个月我可能花了一百个小时来编辑所有可能的事情,关于如何启动我的系统并制作……

I can have a computer from zero to 60 in almost no time now everything the way I exactly want it, Neovim and everything all perfectly set up.

我几乎可以在短时间内拥有一台从 0 到 60 的计算机,现在一切都按照我想要的方式进行,Neovim 和一切都设置得非常完美。

Happy enough, I’m not going to touch that system again.

很高兴,我不会再碰那个系统了。

Maybe I’ll touch it next year.

也许明年我会接触它。

Maybe I’ll take a year off.

也许我会休息一年。

It’s just I’m fine with that.

我对此很满意。

I’m fine with not being perfect.

我不介意不完美。

Lex Fridman3:26:13

All right, zero to 60, let’s talk about the perfect setup.

好吧,从 0 到 60,我们来谈谈完美的设置。

3:26:13 What’s your perfect programming setup, keyboard operating system, how many screens, chair?

您完美的编程设置、键盘操作系统、屏幕数量、椅子是什么?

ThePrimeagen3:26:24

All right, I like all these.

好吧,这些我都喜欢。

Lex Fridman3:26:27

IDE, let’s go.

IDE,我们走吧。

ThePrimeagen3:26:29

So, keyboard, you’re using my favorite keyboard right there, the Kinesis Advantage.

所以,键盘,你正在使用我最喜欢的键盘,Kinesis Advantage。

3:26:29 Saved my career.

拯救了我的职业生涯。

Beautiful keyboard.

漂亮的键盘。

Concavity and thumb clusters are just so important because if you really think about it, especially if you’re using qwerty, when you’re pressing the symbols on a standard keyboard, you’re just doing this the whole time: backspace, enter, symbols.

凹度和拇指簇非常重要,因为如果你认真考虑一下,特别是如果你使用 qwerty,当你按下标准键盘上的符号时,你就一直在这样做:退格键、回车键、符号。

You’re just doing this, and it just screws up your wrist constantly doing this.

你只是这样做,而不断这样做只会让你的手腕受伤。

And this when you’re constantly doing like ctrl and shift.

当你不断地执行 ctrl 和 shift 之类的操作时就会出现这种情况。

And it just is like messing you up, so it’s just like right here.

这就像把你搞砸了,所以就像就在这里一样。

That’s so much nicer in life.

这在生活中真是美好多了。

So, keyboard most important, I’d say.

所以,我想说,键盘最重要。

Get that one done.

把那件事做完吧。

Lex Fridman3:27:01

For people who don’t know, Kinesis keyboard, I think the thing that you experience the most is exactly the thing you just said now, which is the backspace is really easy to press versus what it is on normal keyboards.

对于不了解Kinesis键盘的人,我想你们体验最多的就是你刚才说的,就是退格键相对于普通键盘来说真的很容易按。

3:27:01 So, backspace in general symbolizes you’re deleting a thing, it symbolizes a mistake.

所以,退格键通常象征着你正在删除一个东西,它象征着一个错误。

Not symbolizes, it usually means a mistake.

不象征,通常意味着错误。

And so not only did you just make a mistake in what you were typing, you also have to take a physically painful action, annoying action to fix that mistake.

因此,您不仅在输入内容中犯了错误,而且还必须采取身体上痛苦的、烦人的动作来纠正该错误。

And for most of us, we make a lot of mistakes, so Kinesis just makes it pleasant and fast and easy physically to correct the mistake.

对于我们大多数人来说,我们会犯很多错误,因此 Kinesis 让纠正错误变得愉快、快速、轻松。

That’s probably for me the number one reason of Kinesis.

对我来说,这可能是使用 Kinesis 的首要原因。

Everything else, yeah, super plus with the macros and the positioning, the concavity like you mentioned, but their mistakes are pleasant.

其他一切,是的,超级加上宏和定位,就像你提到的凹度,但他们的错误是令人愉快的。

ThePrimeagen3:27:57

Yeah.

是的。

3:27:57 I am on that team, so that’s why I love that.

我是那个团队的一员,所以这就是我喜欢这个团队的原因。

I would say that’s one of the most important things.

我想说这是最重要的事情之一。

The next thing that I find to be very, very important is that one monitor.

我发现非常非常重要的下一件事是一台显示器。

I’m a one monitor kind of guy.

我是一个只看显示器的人。

Lex Fridman3:28:09

What?

什么?

3:28:09 Really?

真的吗?

ThePrimeagen3:28:10

So, when I program, when I do anything…

所以,当我编程时,当我做任何事情时......

3:28:10 Now, when I stream, I obviously have a second computer that runs the stream because I sometimes crash my computer, I have to restart or whatever.

现在,当我进行直播时,我显然有第二台计算机来运行直播,因为我有时会崩溃我的计算机,我必须重新启动或其他什么。

So, I do have a second screen there that I put stuff up, but most of the time you’ll notice that even when I’m streaming, you’ve been there, I have to physically switch to the streaming chat channel for me to read it, and that’s because I’m operating off of one screen.

所以,我确实有第二个屏幕,我在那里放置东西,但大多数时候你会注意到,即使当我在流媒体时,你也在那里,我必须物理切换到流媒体聊天频道才能阅读它,那是因为我是在一个屏幕上操作的。

And so I have this whole style in which I like to navigate, inspired by StarCraft, is that I believe in the press one key, go where you want to be mentality.

所以我有我喜欢的整个风格,受星际争霸的启发,我相信按一个键,去你想去的地方的心态。

And so everything about my setup is press one key.

所以我的设置的一切都是按一键即可。

So, when I want to go to Twitch chat, alt-two, Twitch chat.

所以,当我想去 Twitch 聊天时,alt-2,Twitch 聊天。

When I want to go to my browser, alt-one.

当我想进入浏览器时,按 alt-one。

That’s my browser.

那是我的浏览器。

Alt-three, that’s where I go to my programming.

Alt-3,这是我进行编程的地方。

That’s power finger, obviously.

显然,那是力量手指。

The big middle finger right there, just smash it down.

那个大中指就在那里,把它砸下来。

Alt-six is going to be gimp, so my GNU image manipulation program, so if I want to draw, I go there.

Alt-6 将成为 gimp,所以我的 GNU 图像处理程序,所以如果我想画画,我就去那里。

3:29:02 When I used to have Slack, it was alt-five.

当我使用 Slack 时,它是替代五。

If I have a spare terminal where I need to run some extra things, that’s alt-four.

如果我有一个备用终端需要运行一些额外的东西,那就是替代四。

I had all these kind of…

我有所有这些……

Everything is perfectly mapped out to single-key.

一切都完美地映射到单键。

And then when it comes down to using, say, Tmux, I have all my terminals into one single terminal.

然后,当谈到使用 Tmux 时,我将所有终端整合到一个终端中。

And now I’m able to kind of switch between there.

现在我可以在这之间切换了。

Prefix one goes to my Vim editor.

前缀一指向我的 Vim 编辑器。

Whatever project I’m in, it’s always the first Tmux tab, if you will.

无论我参与什么项目,如果您愿意的话,它始终是第一个 Tmux 选项卡。

I’m not sure…

我不确定……

They call it a session, but I’m not sure how to describe it if you’re not familiar with Tmux.

他们称之为会话,但如果您不熟悉 Tmux,我不确定如何描述它。

A tab.

一个选项卡。

Second one is like my spare terminal, third one is my long-running process terminal, my fourth one is a long-running process terminal.

第二个就像我的备用终端,第三个是我长时间运行的进程终端,我的第四个是长时间运行的进程终端。

So, I have it all set up, so every project I go to automatically spawns session one: Vim, session two: spare terminal, session three will also open it, so it’s like everything’s just ready to rock.

所以,我已经把一切都设置好了,所以我去的每个项目都会自动生成会话一:Vim,会话二:备用终端,会话三也会打开它,所以一切都准备好了。

3:29:49 Everything has been optimized to where I do that.

一切都已针对我所做的进行了优化。

If I want to go to a project, it’s ctrl-F, and any terminal will bring up a fuzzy find list of every one of my folders on my operating system in which I can go to with just a couple keystrokes and, boom, I’m in that one now.

如果我想进入一个项目,只需按 ctrl-F,任何终端都会显示操作系统上每个文件夹的模糊查找列表,我只需按几下按键即可进入其中,然后,嘭,我现在就在那个文件夹中。

And so it’s very oriented to find where I need to be as quickly as possible.

所以它非常有针对性地尽快找到我需要去的地方。

Lex Fridman3:30:06

Via keyboard.

通过键盘。

ThePrimeagen3:30:07

Via keyboard.

通过键盘。

3:30:07 Then in Vim I developed a plugin called Harpoon, which is I press one button and I can pin one of the files to like a temporary buffer.

然后在 Vim 中我开发了一个名为 Harpoon 的插件,按下一个按钮,我可以将其中一个文件固定到临时缓冲区。

I think Projectile is potentially close to this in Emacs.

我认为 Projectile 在 Emacs 中可能与此接近。

I can’t remember if Projectile…

我不记得是否有射弹……

I think Projectile is closer to my sessionizing script.

我认为 Projectile 更接近我的会话脚本。

Anyways, so now I have four pinned files in which I can go to any of those pinned files with just a single keystroke.

无论如何,现在我有四个固定文件,只需按一次键即可转到其中任何一个固定文件。

And so now it’s just like…

所以现在就像……

Because every time you develop a feature, usually you have like three files you’re kind of primarily working in.

因为每次你开发一个功能时,通常你都会有三个主要工作的文件。

And I can fuzzy find for the other files and that’s that, but usually I just have like these three power files that I’m always swapping in between.

我可以模糊地找到其他文件,就是这样,但通常我只有这三个电源文件,我总是在它们之间交换。

And so it’s like now everything is just, “I want go to the browser.” That’s one press.

所以现在一切都只是“我想进入浏览器”。只需按一下即可。

“I want to go to my workstation.” That’s one press.

“我想去我的工作站。”只需按一下即可。

“I want to go to a specific folder, I need to change folders.”

“我想要转到特定文件夹,我需要更改文件夹。”

3:30:54 Sometimes you work between two different projects, so in Tmux that’s prefix, capital L will swap between your last two.

有时你在两个不同的项目之间工作,所以在 Tmux 中,这是前缀,大写 L 将在最后两个项目之间交换。

So, I have alternate projects, so I can even swap between projects in pretty much one key.

所以,我有备用项目,所以我什至可以用几乎一键在项目之间交换。

So, it’s just like do-do-do, just trying to optimize it, so I don’t think as much, because I think search fatigue is a massive fail where you have to look for it.

所以,这就像 do-do-do 一样,只是试图优化它,所以我没有想太多,因为我认为搜索疲劳是一个巨大的失败,你必须寻找它。

When I see people on a Mac do this and then explode all the different ones, that gives me anxiety.

当我看到有人在 Mac 上这样做,然后又炸出所有不同的东西时,这让我感到焦虑。

I’m like, “Why are you using your eyeballs to search for what you want to do?” Make it into a key press and never think about it again, ever.

我想,“你为什么要用你的眼球来寻找你想做的事情?”把它变成一个按键,再也不用去想它了。

Lex Fridman3:31:28

You’re making me think a lot whether I can live with your system, whether it’s better because it feels better.

你让我思考了很多,我是否可以接受你的系统,它是否因为感觉更好而更好。

ThePrimeagen3:31:33

It at least intellectually feels better.

至少在理智上感觉更好。

3:31:33 It may not be great for some people.

对于某些人来说可能不太好。

Lex Fridman3:31:36

Well, there’s a few profound things you said, which is like really what the number of windows or tasks you’re switching between, whether it’s programming, the number of files you’re working on, it’s small at any one time, at any one space of 20 minutes or something like that.

嗯,你说了一些深刻的事情,比如你正在切换的窗口或任务的数量,无论是编程,你正在处理的文件数量,在任何时候、任何 20 分钟的时间间隔或类似的情况下,它都很小。

3:31:36 So, okay, that’s a profound truth.

所以,好吧,这是一个深刻的真理。

Sometimes we think like, “Oh I need the full freedom to search,” but you don’t.

有时我们会想,“哦,我需要完全的搜索自由”,但你不需要。

You usually work on a very small slice.

您通常只处理很小的一部分。

But I guess the trade-off there…

但我想那里的权衡......

I always have three monitors, not when I’m traveling, but my happy place is three monitors.

我总是拥有三台显示器,不是在旅行时,但我快乐的地方就是三台显示器。

It’s like, do you really need all of them to be present there?

就像,你真的需要他们所有人都在那里吗?

So, you’re turning your head.

所以,你转过头来。

Now, the monitors I have is two vertical ones, which is just better for certain kinds of content.

现在,我拥有的显示器是两个垂直的,这对于某些类型的内容来说更好。

They’re positioned vertically, so you can read.

它们垂直放置,以便您阅读。

You can use your eyes to scan quickly.

您可以用眼睛快速扫描。

ThePrimeagen3:32:29

Interesting.

有趣。

3:32:29 So, I don’t even do that.

所以,我什至不这样做。

I even have it so zoomed in that I probably only have like maybe 25 lines of code at any one time on my 27-inch monitor.

我什至把它放大到我的 27 英寸显示器上可能在任何时候都只有 25 行代码。

Lex Fridman3:32:37

Yeah, I think that’s…

是的,我认为那是……

3:32:37 I think I feel fundamentally constrained when I can’t see more because your eyes are just good at jumping.

我想,当我看不到更多东西时,我会感到从根本上受到限制,因为你的眼睛很擅长跳跃。

You could-

你可以-

ThePrimeagen3:32:52

Why not search?

为什么不搜索呢?

3:32:52 Why not press a couple of keystrokes?

为什么不按几个键呢?

Ctrl-U, ctrl-D, jump up and down by a half page.

Ctrl-U,ctrl-D,上下跳半页。

Lex Fridman3:32:58

Because the ape visual system was designed to…

因为猿类视觉系统的设计目的是……

3:32:58 You’re loading a lot of information.

您正在加载大量信息。

If every time you have to investigate this table, what’s on this table, you have to press a keystroke, you could develop the skillset that integrates that information but it’s really…

如果每次你必须调查这张桌子,这张桌子上有什么,你必须按下一个按键,你可以开发整合这些信息的技能,但这真的......

There is an effective thing where if you have a sheet of paper like this and I’m looking at it, my eyes will be able to load in the structure of the information, the topics of the information.

有一个有效的方法,如果你有一张这样的纸,我看着它,我的眼睛将能够加载信息的结构、信息的主题。

You just can do it faster, I think.

我认为你可以做得更快。

There’s a big cost because it’s an extra monitor, but there is some stuff that’s vertical when vertically positioned.

因为它是一个额外的显示器,所以成本很高,但有些东西在垂直放置时是垂直的。

See, code is an iffy one code because code, 25 lines at a time, I think you can do a lot.

看,代码是一个不确定的代码,因为代码一次 25 行,我认为你可以做很多事情。

3:33:53 This is more for like articles and especially with visual information in them or documentation, you can just jump faster.

这更适合类似的文章,尤其是其中包含视觉信息或文档的文章,您可以跳得更快。

But I’m trying to…

但我正在努力……

As you were speaking so eloquently, I was like wondering, “Am I just like deceiving myself that I need that?

当你说得如此雄辩时,我就在想,“我是不是在欺骗自己,我需要这个?

Can I just keyboard shortcut-ify everything and just have everything on one monitor?” That’s something I should probably try because I’m a big proponent of just automating everything with the keyboard because you can just move really, really fast, and you don’t have to think.

我可以通过键盘快捷键来化所有内容并将所有内容都显示在一台显示器上吗?”这可能是我应该尝试的事情,因为我非常支持用键盘将所有事情自动化,因为你可以非常非常快地移动,而且不需要思考。

Because I also do creative stuff, whether it’s recording music or video editing.

因为我也做创意工作,无论是录制音乐还是视频编辑。

It’s hard…

很难……

Some of these programs still make it super easy for you.

其中一些程序仍然让您变得超级简单。

On Windows, with AutoHotkey you can do quite a lot, but still there’s limitations on how much you can do with the keyboard.

在 Windows 上,使用 AutoHotkey 您可以执行很多操作,但使用键盘执行的操作仍然存在限制。

So, it really is a pain in the to have to use the mouse, but, man, you’re really making me think.

所以,不得不使用鼠标确实很痛苦,但是,伙计,你真的让我思考。

ThePrimeagen3:34:54

Even the text one, the reading one, fundamentally I think I agree with you, that you can see a lot more and you can kind of look up and down, and see those two things.

即使是文本,阅读,从根本上我认为我同意你的观点,你可以看到更多,你可以上下查看,看到这两件事。

3:34:54 And probably in articles or things like that, if there’s a graph down here that’s really big that take up your whole screen plus text, I could see why that would be very beneficial to zoom out, to be able to have all that information, but for me, I can only look at like a square inch.

可能在文章或类似的东西中,如果这里有一个非常大的图表,占据了整个屏幕和文本,我可以明白为什么缩小视图非常有利于获得所有这些信息,但对我来说,我只能看到一平方英寸。

Really, that’s all my eyes can actually focus on.

真的,我的眼睛能真正聚焦的就只有这些。

So, when I’m reading, I’m right here.

所以,当我读书的时候,我就在这里。

Then I have to structurally try to pattern match what I think the information looks like.

然后我必须在结构上尝试模式匹配我认为信息的样子。

Then I have to start reading it.

然后我必须开始阅读它。

3:35:24 So, I’m not exactly sure if I actually get any real benefit of having a lot of stuff on screen, as opposed to I can relax my eyes so much I don’t even have to focus.

所以,我不太确定屏幕上有很多东西是否真的能给我带来任何真正的好处,而不是我可以放松我的眼睛,我什至不需要集中注意力。

The words are so big.

字都这么大了。

I actually program pretty zoomed in.

实际上我的程序相当放大。

My text is bigger than this when I program, and so it’s just that it’s so comfortable, I don’t even have to exert any effort to read the code.

我编程的时候文字都比这个大,所以就这么舒服,我什至不用费什么力气去读代码。

Lex Fridman3:35:46

But you have to kind of train your brain to know that you can navigate spatially using keys.

但你必须训练你的大脑知道你可以使用按键进行空间导航。

ThePrimeagen3:35:53

Yeah, Neovim by the way.

是的,顺便说一句,Neovim。

Lex Fridman3:35:56

Oh, maybe it has everything to do with Neovim.

哦,也许这和 Neovim 有很大关系。

3:35:56 Okay.

好的。

ThePrimeagen3:35:58

All right.

好的。

3:35:58 And then Neovim is obviously the next big one.

Neovim 显然是下一个大的。

I love Neovim.

我爱尼奥维姆。

Reason being is that I think you can make all the arguments that you want about which editor is the best.

原因是我认为你可以就哪个编辑器是最好的进行所有你想要的争论。

I do not think you can make an argument that Vim motions aren’t superior.

我认为你不能说 Vim 动作不优越。

Lex Fridman3:36:10

Here we go.

开始了。

3:36:10 Can you explain Vim motions?

你能解释一下 Vim 的动作吗?

What is this?

这是什么?

So, Neovim…

所以,尼奥维姆……

Vim is an old school editor.

Vim 是一位老派编辑。

Neovim-

Neovim-

ThePrimeagen3:36:17

It’s a modern take on an old school editor.

这是对老派编辑的现代诠释。

Lex Fridman3:36:19

Yeah.

是的。

3:36:19 And what’s ELI5?

ELI5 是什么?

What does it take to work with Neovim?

与 Neovim 合作需要什么?

ThePrimeagen3:36:29

Oh, okay.

哦好的。

3:36:29 I thought you were talking about a Vim motion there.

我以为你在那里谈论 Vim 动作。

That’s how…

就是这样……

I know, but you know that meme that’s just like, “Hey, Jarvis, can I tell you about Vim motions?” Because they can’t fit anything else in their head because they only have Vim motions.

我知道,但你知道那个表情包就像是“嘿,Jarvis,我可以告诉你有关 Vim 动作的事吗?”因为他们的脑子里无法容纳任何其他东西,因为他们只有 Vim 动作。

You said EL5, explain it like I’m five, but in my head it’s like, “Okay, E is jump to the end of the word, L is the one more…” Dude, I’m so broken that I’m like, “Okay, Vim motion,” when I hear letters.

你说 EL5,像我五岁一样解释它,但在我的脑海里,“好吧,E 是跳到单词的末尾,L 是另一个……”伙计,我太崩溃了,当我听到字母时,我就像,“好吧,Vim 动作”。

Yeah, so, you can think of it like this is that Vim has a language to describe movements in text because its primary mode of operation is manipulating or editing text.

是的,所以,你可以这样想,Vim 有一种语言来描述文本中的运动,因为它的主要操作模式是操作或编辑文本。

So, it is a well-thought through set of movements, deleting, yanking, pasting, copying, all that kind of stuff that goes in, motions that are optimized for working with pretty much code.

因此,这是经过深思熟虑的一组动作,删除、拉动、粘贴、复制,所有这些内容,针对处理大量代码而优化的动作。

3:37:15 A good example, say you have three lines of code you want to delete.

一个很好的例子,假设您要删除三行代码。

If you’re in VS Code, take your little beautiful mouse, highlight those things, press the backspace.

如果您在 VS Code 中,请拿起您漂亮的小鼠标,突出显示这些内容,然后按退格键。

That’s lovely.

太可爱了。

Your hand left the keyboard.

你的手离开了键盘。

Very simple to do though.

虽然做起来非常简单。

It’s very beginner friendly.

这对初学者非常友好。

I was a huge Vim hater, by the way, so I just want you to know that before we go into this.

顺便说一句,我非常讨厌 Vim,所以在我们讨论这个问题之前我想让你知道这一点。

I was probably the biggest Vim hater.

我可能是最讨厌 Vim 的人。

If there was Saul to Apostle Paul, I am like the Saul to Apostle Paul of Vim, just so you can see how big the gap was.

如果有扫罗和使徒保罗,我就像扫罗和维姆的使徒保罗一样,这样你就可以看到差距有多大。

Or you can do something that’s like…

或者你可以做一些类似的事情......

I don’t know what the VS Code shortcut is, but I’m sure there’s some keys you can press to delete the current line you’re on.

我不知道 VS Code 快捷键是什么,但我确信您可以按一些键来删除当前所在的行。

Delete, delete, delete, you can just do that.

删除、删除、删除,就可以了。

In Vim, I can go DAP, delete around paragraph.

在 Vim 中,我可以使用 DAP,删除段落周围的内容。

All contiguous code in that thing.

那个东西中的所有连续代码。

I’m going to delete, so D, then I can choose my motion I want to take, AP, around paragraph.

我要删除,所以 D,然后我可以选择我想要采取的动议,AP,围绕段落。

Or maybe I want to DF, meaning jump up to the next character that matches the next character I’m going to press.

或者也许我想要 DF,意思是跳转到与我要按的下一个字符相匹配的下一个字符。

3:38:07 So, DF opening parenthesis will delete everything from your cursor up to the first opening parenthesis.

因此,DF 左括号将删除从光标到第一个左括号的所有内容。

So, you get to describe your motion in these little keystrokes.

因此,您可以通过这些小击键来描述您的动作。

And as you get really good…

当你变得非常优秀时......

You’ve seen people that can master Fortnite, it’s the same thing with mastering Vim motions.

你见过能掌握 Fortnite 的人,这和掌握 Vim 动作是一样的。

When you get so good, you no longer think about each individual movement, and instead you’re just like, “Get rid of the paragraph, jump here, jump this, highlight this, yank this, do this,” it becomes so fast that you can superiorly edit text at a very fast rate.

当你变得如此优秀时,你不再考虑每个单独的动作,而是就像,“摆脱段落,跳到这里,跳到这个,突出显示这个,拉这个,做这个,”它变得如此之快,以至于你可以以非常快的速度出色地编辑文本。

And there comes a point when you know your language really well, you know the problem you’re really working on really well, where editing text and getting code out actually becomes one of the many bottlenecks.

当你非常了解你的语言,你非常了解你真正正在解决的问题时,编辑文本和获取代码实际上会成为许多瓶颈之一。

3:38:43 People always talk about, “Well, most of the time I think…” Most of the time I’m not thinking, I’m programming.

人们总是谈论,“好吧,大多数时候我在想……”大多数时候我不思考,我在编程。

I know what I want to do, I want to go as fast as possible because I’ve been just doing it for so long and I’m so familiar with the general space that it becomes a huge problem for me.

我知道我想做什么,我想尽快去做,因为我已经这样做了很长时间,而且我对总体空间非常熟悉,这对我来说成为一个大问题。

I cannot tell you how many times that I’ve been purely bottlenecked by the fact that I just can’t type fast enough and I just need to get it out of my head onto the text editor.

我无法告诉你有多少次,我纯粹因为打字速度不够快而陷入瓶颈,而我只需要把它从我的脑海中转移到文本编辑器上。

And so that’s why I think Vim motions are superior in all aspects.

这就是为什么我认为 Vim 动作在各个方面都更优越。

Keep your hands on the keyboard, on the home row, and it can manipulate text in very wide and fast ways.

将手放在键盘上的主行上,它可以以非常宽且快速的方式操作文本。

Lex Fridman3:39:14

Oh, so, this is not just about writing text, this is about modifying text.

哦,所以,这不仅仅是编写文本,这是修改文本。

3:39:14 It’s primarily about modifying text.

它主要是关于修改文本。

ThePrimeagen3:39:19

Yes.

是的。

Lex Fridman3:39:19

And I’m sure that most editors including Emacs, including VS Code can do all those same things, but there is something…

我确信大多数编辑器(包括 Emacs、VS Code)都可以做所有这些相同的事情,但是有一些东西......

3:39:19 They just don’t encourage you to discover those things.

他们只是不鼓励你去发现这些东西。

That’s like an important thing about a lot of technologies and programming languages that a lot of them can do a lot of the stuff, but it’s something about whether it’s the community or the style of the language or anything like this that encourages you to not be lazy in the beginning and learn the fast way to edit text, in this particular example, how to use the keyboard.

这就像很多技术和编程语言一样重要,其中很多技术和编程语言可以做很多事情,但无论是社区还是语言风格或类似的东西都鼓励你一开始不要偷懒,学习编辑文本的快速方法,在这个特殊的例子中,就是如何使用键盘。

That’s a fascinating just reality of how technology is used.

这是技术如何使用的一个令人着迷的现实。

You want to be encouraged to find the fast thing as quickly as possible so that long term it’s efficient and fun to use the thing.

你希望被鼓励尽快找到快速的东西,这样从长远来看,使用该东西是高效和有趣的。

ThePrimeagen3:40:09

Yeah.

是的。

3:40:09 It takes a long time for dividends, like a long time, but on top of that, notice I didn’t say Vim.

股息需要很长时间,就像很长一段时间一样,但最重要的是,请注意我没有说 Vim。

I’m not saying, “Go use Vim,” I’m saying, “Vim motions.” Let me give you one more example.

我不是说“去使用 Vim”,而是说“Vim 动作”。让我再举一个例子。

I’m a big fan.

我是它的忠实粉丝。

Let’s say you have a line that contains some variable, some function you’re calling something that takes in a string.

假设您有一行包含一些变量,您正在调用一些接受字符串的函数。

And you need to do that again, so you would typically copy that line, you’d paste that line below, you’d go into the string and you’d change the string.

您需要再次执行此操作,因此您通常会复制该行,将该行粘贴到下面,然后进入该字符串并更改该字符串。

Let’s say it’s calling some sort of configuration, you need to call it three times with three different configuring strings.

假设它正在调用某种配置,您需要使用三个不同的配置字符串调用它三次。

In Vim, I like to do shift-V to highlight the whole line, and then Y.

在 Vim 中,我喜欢使用 shift-V 来突出显示整行,然后使用 Y。

Some people do YY, but I don’t like to do double ones.

有人YY,但我不喜欢双打。

I like to be able to do two different fingers because you can do that way faster than one finger twice.

我喜欢能够用两个不同的手指做,因为这样可以比一根手指更快地完成两次。

3:40:53 It’s just a little optimization for me because you can’t press that as fast.

这对我来说只是一个小小的优化,因为你不能按得那么快。

So, anyways, I’m very optimized in my approach, so I yank the line, paste the line.

所以,无论如何,我的方法非常优化,所以我拉动该行,粘贴该行。

CI double quotes will delete everything inside the first occurring string.

CI 双引号将删除第一个出现的字符串内的所有内容。

Then I can type the string, escape, save.

然后我可以输入字符串,转义,保存。

And so it’s like so optimized that I can just jump so fast in between that, whereas the copying and pasting line is probably the same speed, but the navigating to the string, deleting what’s currently in the string, and then…

因此,它是如此优化,以至于我可以在两者之间快速跳转,而复制和粘贴行的速度可能相同,但导航到字符串,删除字符串中当前的内容,然后......

That’s such a fast motion in Vim, and I just do that all the time.

在 Vim 中这是一个非常快的动作,我一直这样做。

Lex Fridman3:41:23

To backtrack, really dumb question, CI, what’s the difference between typing the letters and using the letters to navigate and edit?

回溯一下,这是一个非常愚蠢的问题,CI,输入字母和使用字母进行导航和编辑有什么区别?

3:41:23 How do you switch between the two modes?

如何在两种模式之间切换?

ThePrimeagen3:41:34

Okay, so insert mode means that you’re just putting in text, and then normal mode means that you’re moving your cursor.

好的,插入模式意味着您只是输入文本,然后正常模式意味着您正在移动光标。

Lex Fridman3:41:40

And how do you switch between the two?

如何在两者之间切换?

ThePrimeagen3:41:42

Escape.

逃脱。

3:41:42 Escape goes from insert mode into normal mode.

Escape 从插入模式进入正常模式。

And to go into insert mode press I to take your current cursor and go to the beginning, A to go to the end of the year Cursor, capital A to go to the end of the line, capital I to go to the beginning of line, O to put a new line below and then put your cursor at the proper intended for the language, shift-O to shift your current line down, and then put a new line in.

要进入插入模式,请按 I 获取当前光标并转到开头,按 A 转到年末光标,大写 A 转到行尾,大写 I 转到行首,O 在下面放置一个新行,然后将光标放在适合该语言的正确位置,shift-O 将当前行向下移动,然后插入新行。

You can see, there’s a lot-

你可以看到,有很多——

Lex Fridman3:42:04

So, you’re pressing escape a lot.

所以,你经常按逃避键。

ThePrimeagen3:42:05

Yeah, I mapped mine.

是的,我映射了我的。

3:42:05 I do ctrl-C.

我按ctrl-C。

Ctrl-C does the same thing except for in one edge case.

Ctrl-C 执行相同的操作,除了一种边缘情况。

People hate that.

人们讨厌这样。

I got used to it just due to the fact that I was using IntelliJ, and I really hate pressing the escape key, so I just got used to pressing escapee.

我只是因为使用IntelliJ而习惯了,而且我真的很讨厌按escape键,所以我就习惯了按escapee。

Lex Fridman3:42:17

That seems like an essential thing to do if you’re using Neovim to map escape to something.

如果您使用 Neovim 将转义映射到某物,这似乎是一件必要的事情。

ThePrimeagen3:42:22

Cap lock would be your standard go-to.

大写锁将是您的标准选择。

Lex Fridman3:42:24

Oh yeah, I map it too.

哦对了我也贴图了

3:42:24 Cool.

凉爽的。

I got you.

我接到你了。

I got you.

我接到你了。

ThePrimeagen3:42:27

Yeah, so then it’s just really easy to press it, and boom, boom, boom, not a big deal at all.

是的,所以按下它真的很容易,而且繁荣,繁荣,繁荣,根本不是什么大不了的事。

3:42:27 But yeah, I think that if you’re willing to learn it, the emotions are superior, but if you’re not willing to learn it, then they’re not superior.

但是,是的,我认为如果你愿意学习它,情感是优越的,但如果你不愿意学习它,那么它们并不优越。

You should just not do it.

你不应该这样做。

If you’re willing to endure pain, it’s good.

如果你愿意忍受痛苦,那很好。

If you’re not, it’s actually way worse.

如果你不这样做,情况实际上会更糟。

It’s 100 worse.

还差100。

Lex Fridman3:42:45

Right, so if you like pain, you use Neovim.

是的,所以如果你喜欢疼痛,你就使用 Neovim。

3:42:45 Totally.

完全。

I understand.

我明白。

ThePrimeagen3:42:45

Yeah, you’re totally on-board.

是的,你完全同意了。

Lex Fridman3:42:45

100%.

100%。

ThePrimeagen3:42:45

See, now you get it.

看,现在你明白了。

Lex Fridman3:42:51

If you like joy, you use Emacs.

如果你喜欢快乐,你可以使用 Emacs。

ThePrimeagen3:42:53

Sorry, sorry, did Emacs ever get a good text editor?

抱歉,抱歉,Emacs 有没有一个好的文本编辑器?

3:42:53 I know they’re a great operating system, but I never caught up if they got a good text editor.

我知道它们是一个很棒的操作系统,但我从来没有赶上他们是否有一个好的文本编辑器。

Lex Fridman3:43:00

Operating system?

操作系统?

3:43:00 I think you’ve been miseducated my friend.

我认为你受到了错误的教育,我的朋友。

So, at least 30 minutes on Emacs versus Neovim is what Reddit requested.

因此,Reddit 要求至少 30 分钟使用 Emacs 和 Neovim。

Have you actually used Emacs in order to be able to talk so much shit or no?

你真的用过 Emacs 才能说这么多废话吗?

ThePrimeagen3:43:13

I used it for a year.

我用了一年。

Lex Fridman3:43:16

You used it for a year?

你用了一年了?

ThePrimeagen3:43:16

Yeah, yeah.

是啊是啊。

3:43:16 Doom Emacs, Spacemacs and regular Emacs.

Doom Emacs、Spacemacs 和常规 Emacs。

Lex Fridman3:43:19

But you don’t even know Lisp, so did you really use it?

但你连Lisp都不懂,那你真的用过它吗?

ThePrimeagen3:43:21

I kind of hacked my way through kind of like, “Okay, so this is how to configure…” You can kind of get your way through and do all that.

我通过某种方式破解了我的方式,“好吧,这就是如何配置......”你可以通过自己的方式完成所有这些。

Lex Fridman3:43:28

So, you recommend to mastering Neovim and really learn the depths of it, but Emacs is okay to just kind of use before making a judgment.

所以,你建议你掌握 Neovim 并真正了解它的深度,但 Emacs 可以在做出判断之前只是使用一下。

3:43:28 I think everybody…

我认为每个人...

ThePrimeagen3:43:38

You got me on that one?

你让我上了那个吗?

Lex Fridman3:43:39

Yeah, no, and what’s Neovim written?

是的,不,Neovim 写的是什么?

3:43:39 It’s Lua?

是路亚吗?

ThePrimeagen3:43:43

Yeah, so Lua would be the configuration language, but you have…

是的,所以 Lua 将是配置语言,但你有......

3:43:43 It’s written in C, but you have Lua 4.

它是用 C 编写的,但你有 Lua 4。

And Lua is just a dead simple language.

Lua 只是一种非常简单的语言。

Anyone can program Lua.

任何人都可以编写 Lua 程序。

Lex Fridman3:43:51

I actually don’t know why…

我其实也不知道为什么……

3:43:51 I think it’s because my love for Lisp that I went with Emacs.

我想我之所以选择 Emacs 是因为我对 Lisp 的热爱。

I think you just choose a path and you walk down that path.

我认为你只需选择一条路,然后沿着这条路走下去。

And because there’s just such a vibrant, intense battle between the two communities, you just start fighting just because everybody else is fighting.

因为两个社区之间存在着如此充满活力、激烈的战斗,所以你只是因为其他人都在战斗而开始战斗。

And then one day you’re an old warrior on a horse, and you’re wondering, “What was this all for?” And it’s quite sad, in all seriousness, that I haven’t to this day tried Neovim.

然后有一天,当你成为一名骑在马上的老战士时,你会想:“这一切是为了什么?”说实话,我至今还没有尝试过 Neovim,这真是令人难过。

I think because there is a learning curve.

我认为是因为有一个学习曲线。

There’s a learning curve to a lot of these editors.

许多编辑器都有一个学习曲线。

ThePrimeagen3:44:32

Yeah.

是的。

3:44:32 To really learn it.

才能真正学会它。

Lex Fridman3:44:34

To really learn it.

才能真正学会它。

3:44:34 And I think this is some of the criticism of maybe VS Code or Sublime or Atom that it’s so easy to not learn it, to just kind of halfass use it.

我认为这可能是对 VS Code、Sublime 或 Atom 的一些批评,因为人们很容易不学习它,只是半途而废地使用它。

And there is a big benefit to having editors that force you to have some learning curve, where you take the art, the science, the procedure of editing seriously.

拥有迫使你有一定学习曲线的编辑器有一个很大的好处,你可以认真对待编辑的艺术、科学和程序。

Because you spend so much time in it, you might as well learn how to use the thing.

因为你花了这么多时间在上面,你不妨学习一下如何使用这个东西。

ThePrimeagen3:45:05

My big takeaway really, what I’m trying to say with all these words is that I honestly don’t actually think that…

我最大的收获是,我想说的是,老实说,我实际上并不认为……

3:45:05 The editor obviously does not make the programmer, but I think it says a lot about your character as a programmer if you don’t know how to use your editor well.

编辑器显然并不能造就程序员,但我认为如果你不知道如何很好地使用你的编辑器,它很大程度上说明了你作为程序员的性格。

There’s something about a person who’s willing to commit their life to programming, and spending literally 50,000 hours doing an activity over the course of their lifetime, and never take the time to learn their editor through and through.

一个人愿意将一生奉献给编程,并在一生中花费 50,000 个小时从事一项活动,却从不花时间彻底学习他们的编辑器,这是有道理的。

It just seems strange.

这看起来很奇怪。

3:45:37 You’d never see that in another world, where people would be able to build something or do something and just completely forget how these things work, and only just focus on one part of their craft.

在另一个世界里,你永远不会看到这样的情况,人们能够建造一些东西或做一些事情,却完全忘记这些东西是如何工作的,而只专注于他们手艺的一部分。

And so, to me, it’s just like it doesn’t matter how you use it, I want to see the person that just knows how to use it, and they know how to use it well.

所以,对我来说,就像你如何使用它并不重要,我想看到那些知道如何使用它的人,并且他们知道如何很好地使用它。

When there’s a problem, they can say why the problem exists, and then go and fix the problem.

当出现问题时,他们可以说出问题存在的原因,然后去解决问题。

To me, that’s like, ” There you go.

对我来说,这就像,“就这样。

You’ve done it.

你已经做到了。

You now know your tool, go forth and conquer with said tool.”

现在你知道你的工具了,用这个工具继续前进并征服吧。”

Lex Fridman3:46:04

Especially for tools you use a lot.

特别是对于您经常使用的工具。

ThePrimeagen3:46:07

[inaudible 03:46:07].

[听不清 03:46:07]。

Lex Fridman3:46:06

You have to look at your whole life, your life, whatever, if you’re a developer or anything, what is the thing you do a lot?

你必须审视你的整个生活,你的生活,无论如何,如果你是一名开发人员或其他什么,你经常做的事情是什么?

ThePrimeagen3:46:16

Meetings.

会议。

Lex Fridman3:46:17

Yeah, yeah.

是啊是啊。

ThePrimeagen3:46:20

Sorry.

对不起。

3:46:20 Keep going.

继续前进。

Lex Fridman3:46:21

Ask a question like: how can this be done a lot better?

问这样的问题:如何才能做得更好?

3:46:21 Because every single day you do this for hours a day, how many hours did you spend on thinking how to do this better or whether to do it at all, in the case of meetings?

因为每天你每天都会花几个小时来做​​这件事,所以在会议的情况下,你花了多少时间来思考如何做得更好或者是否要这样做?

People surprisingly just don’t do this enough.

令人惊讶的是,人们在这方面做得还不够。

I see this, just to go back to jujitsu, there’s a lot of people that show up and do jujitsu or martial arts, and they do it the same way over and over and over, and they invest tremendous amount of energy.

我看到这一点,回到柔术,有很多人出现并练习柔术或武术,他们一遍又一遍地以同样的方式做,他们投入了大量的精力。

And they don’t ask like, “How do I do it differently to improve faster?” In the case of jujitsu or any kind of sport, same with practicing the piano or the guitar, they just religiously put in a lot of time and derive a lot of joy from getting better.

他们不会问“我该如何做才能更快地进步?”在柔术或任何类型的运动中,就像练习钢琴或吉他一样,他们只是虔诚地投入大量时间,并从进步中获得很多快乐。

They don’t enough ask the meta question of like, “How can I do this better?” And with editors, it’s surprisingly how often people do just that.

他们没有提出足够的元问题,例如“我怎样才能做得更好?”对于编辑来说,令人惊讶的是人们经常这样做。

3:47:20 With typing, it’s surprising how many people do just that.

在打字方面,令人惊讶的是有多少人这样做。

Like you said, they’re pecking or looking down.

就像你说的,它们在啄食或低头看。

It’s like the quality of life improvement you can have by learning to touch type, by just like typing without looking.

这就像通过学习盲打可以提高生活质量,就像不看打字一样。

It’s immeasurable.

这是无法估量的。

You’re bringing a lot of joy to your life because all of us are typing a lot.

你给你的生活带来了很多乐趣,因为我们所有人都在打字。

And the reason, by the way, I was extremely efficient with Emacs…

顺便说一下,原因是我使用 Emacs 非常高效……

I’m sure you know, all jokes aside, it feels like Neovim has more room for the kind of efficiency I’ve had with Emacs to be able to move really fast as you described me to edit.

我相信你知道,抛开所有的笑话不谈,感觉 Neovim 有更大的空间来实现我在 Emacs 中所拥有的那种效率,能够像你描述的那样快速地进行编辑。

There is a real joy.

有一种真正的快乐。

It’s not just efficiency, it’s a freedom that you can get when you get really good with an editor.

这不仅仅是效率,更是当你真正熟练使用编辑器时可以获得的自由。

The reason I chose to go with VS Code is it felt like there’s going to be an acceleration of features to which Neovim or Emacs will not be able to catch up, in the…

我选择使用 VS Code 的原因是感觉 Neovim 或 Emacs 无法赶上的功能将会加速,在……

and I don’t mean in the next five years, I mean in the next 30 years.

我指的不是未来五年,而是未来三十年。

3:48:29 And it felt like I almost wanted to take the pain of learning new editors constantly and just switching and learning that, because I was getting so comfortable in Emacs, with this Kinesis keyboard, everything, all the shortcuts, I know how to program, and it felt like this is not…

感觉就像我几乎想要承受不断学习新编辑器的痛苦,只是切换和学习,因为我在 Emacs 中变得非常舒服,有了这个 Kinesis 键盘,一切,所有的快捷键,我知道如何编程,感觉这不是……

Neovim will not be here in 50 years.

Neovim 50 年后不会出现。

Possibly might be, I don’t know, but it felt like you want to learn these constant different technologies.

可能是,我不知道,但感觉你想学习这些不断不同的技术。

Cursor is a great example of that.

光标就是一个很好的例子。

I primarily am using Cursor now.

我现在主要使用 Cursor。

I go back between VS Code and Cursor.

我在 VS Code 和 Cursor 之间返回。

Just the skill of using AI is a real skill, from the shortcuts to the timing to the layout of the windows to how I think about where, when and how to use the AI that doesn’t distract me, that it empowers me, not just for the fuck of it or for the fun of it, for the actual measure of productivity.

使用人工智能的技能就是一项真正的技能,从快捷方式到时间安排,到窗口布局,再到我如何思考在哪里、何时以及如何使用不会分散我注意力的人工智能,它赋予我力量,不仅仅是为了他妈的或为了它的乐趣,而是为了实际衡量生产力。

3:49:24 It’s a skill.

这是一项技能。

And I feel like I would be stuck in a local maximum of comfort if I stayed with Emacs.

我觉得如果我继续使用 Emacs,我就会陷入局部最大的舒适之中。

And maybe the same should be true for me with Neovim.

也许对于我来说 Neovim 也应该如此。

I should try it seriously.

我应该认真尝试一下。

I’m sure there’s a plugin, like a copilot type of situation that you could set up with Neovim.

我确信有一个插件,例如您可以使用 Neovim 设置的副驾驶类型的情况。

I should possibly consider that.

我可能应该考虑一下。

But Cursor is doing a lot of really fascinating stuff on the IDE side, not just sort of generate code and edit that code manually, it’s like continuously be able to rewrite code.

但是 Cursor 在 IDE 方面做了很多非常有趣的事情,不仅仅是生成代码和手动编辑代码,它就像能够不断重写代码。

It’s the idea of tab, tab, tab, tab, move the Cursor around, but also modify parts of code and do the diff really nicely, that whether it’s Cursor or VS Code that wins that battle out with Copilot, I don’t know.

它的想法是选项卡、选项卡、选项卡、选项卡,四处移动光标,同时修改部分代码并很好地进行差异,我不知道是光标还是 VS Code 赢得了与 Copilot 的战斗。

But that feels like a fundamentally different experience than the really efficient, joyful experience that you just described in your selling me on this is Neovim.

但这感觉就像是一种与你刚才向我推销 Neovim 时所描述的真正高效、快乐的体验截然不同的体验。

That doesn’t have an AI in the picture, obviously immediately, but you can, yeah, absolutely.

图片中没有人工智能,显然是立即的,但你可以,是的,绝对可以。

ThePrimeagen3:50:30

I would 100% agree that Cursor seems like such a cool product.

我百分百同意 Cursor 看起来是一个很酷的产品。

3:50:30 I actually think there’s a lot of really neat things coming down with all of that.

事实上,我认为所有这些都带来了很多非常巧妙的事情。

And I could change from Neovim.

我可以从 Neovim 中改变。

I don’t use Neovim because I love Neovim, I use Neovim because I love the instrument I play.

我使用 Neovim 不是因为我喜欢 Neovim,而是因为我喜欢我演奏的乐器。

And so it’s like if Cursor can meet those needs, I could see myself moving over.

因此,如果 Cursor 能够满足这些需求,我就可以看到自己会搬过去。

I don’t have some sort of obsessed attachment with it.

我对它没有某种痴迷的依恋。

I am curious though that every time I use AI…

但我很好奇,每次我使用人工智能时......

I think I just have skill issues.

我想我只是有技能问题。

I think I’m just so riddled with skill issues when it comes to using AI, I have yet-

我想我在使用人工智能方面充满了技能问题,我还-

3:51:00 I think I’m just so riddled with skill issues when it comes to using AI, I have yet to be able to use it in a way that I really love it.

我认为在使用人工智能方面我遇到了很多技能问题,我还没有能够以我真正喜欢的方式使用它。

Lex Fridman3:51:06

We’ll talk about it, but before then-

我们会讨论它,但在那之前-

ThePrimeagen3:51:08

Oh, ball to sit on.

哦,坐球。

3:51:08 I forgot to say that, ball to sit on.

我忘记说了,坐球。

Desk needs to be properly heighted.

办公桌需要适当高度。

One monitor.

一台显示器。

Eyes should be two-thirds way up the screen.

眼睛应该位于屏幕上方三分之二的位置。

I don’t like to turn my head.

我不喜欢转过头。

I prefer my hands in a pistol neutral position.

我更喜欢双手处于手枪中立位置。

And there we go.

我们就这样吧。

Lex Fridman3:51:25

A ball to sit on.

一个可以坐的球。

3:51:25 Yoga ball.

瑜伽球。

ThePrimeagen3:51:26

Yoga ball.

瑜伽球。

Lex Fridman3:51:27

What’s that about?

那是关于什么的?

ThePrimeagen3:51:28

It just helps just maintain good posture, because when I have something to lean against, I do this.

它只是有助于保持良好的姿势,因为当我有东西可以依靠时,我就会这样做。

Lex Fridman3:51:33

You’re for hours sitting without…

你坐了好几个小时,却没有……

3:51:33 Wait, what are you doing?

等等,你在做什么?

ThePrimeagen3:51:37

I sit on the ball, and then I bounce.

我坐在球上,然后弹跳。

Lex Fridman3:51:40

Is your back leaning on a thing?

你的背靠在什么东西上吗?

ThePrimeagen3:51:41

No.

不。

Lex Fridman3:51:42

What the fuck?

搞什么鬼?

ThePrimeagen3:51:43

Well, how else do you-

好吧,你还能怎样-

Lex Fridman3:51:46

You’re the only person in the world sitting on a yoga ball as you program for hours.

你是世界上唯一一个坐在瑜伽球上进行数小时训练的人。

3:51:46 You do realize this, right?

你确实意识到了这一点,对吧?

ThePrimeagen3:51:52

It feels great.

感觉很棒。

3:51:52 The problem is whenever I get a back, I just slouch and I find myself just getting uncomfortable.

问题是,每当我回来时,我就会无精打采,发现自己变得不舒服。

And I’m like, “I’m uncomfortable.” My shoulders are getting goofed up.

我会说,“我不舒服。”我的肩膀快要塌陷了

I’m chicken necking constantly.

我一直在紧张。

It’s just like-

就像——

Lex Fridman3:52:10

But you’re able to keep your posture for hours on the yoga ball?

但你能在瑜伽球上保持姿势几个小时吗?

ThePrimeagen3:52:12

Yeah.

是的。

3:52:12 And so I can just do that.

所以我就可以这么做。

And then I find myself, if I slouch, I’m like, “Okay, Nope.

然后我发现自己,如果我没精打采,我会说:“好吧,不。

Got to get back.

得回去了。

Lex Fridman3:52:18

Do you have incredible back muscles or what?

你有令人难以置信的背部肌肉吗?

ThePrimeagen3:52:19

No.

不。

3:52:19 Well, I don’t think it takes incredible back muscles to-

嗯,我不认为需要令人难以置信的背部肌肉来——

Lex Fridman3:52:23

Keep posture.

保持姿势。

ThePrimeagen3:52:24

…

……

3:52:24 remain upright.

保持直立。

Yeah, I think that’s a pretty basic human function.

是的,我认为这是一项非常基本的人类功能。

I would not consider myself a strong person.

我不认为自己是一个坚强的人。

Lex Fridman3:52:29

Yeah.

是的。

3:52:29 Basic human function.

人体基本功能。

I don’t know.

我不知道。

ThePrimeagen3:52:33

Facts and logic.

事实和逻辑。

Lex Fridman3:52:34

Okay, cool.

好吧,酷。

3:52:34 With one screen.

用一个屏幕。

Neovim.

尼奥维姆。

What operating system?

什么操作系统?

ThePrimeagen3:52:41

Linux, just because I want a good window manager.

Linux,只是因为我想要一个好的窗口管理器。

3:52:41 That’s the whole press one button, bring up Chrome.

整个过程就是按一个按钮,调出 Chrome。

I just use i3.

我只用i3。

I’m sure I could use something better than i3.

我确信我可以使用比 i3 更好的东西。

People always tell me all these window managers are really great.

人们总是告诉我所有这些窗口管理器都非常棒。

But I just have those three screens I switch between, so it doesn’t really…

但我只有在这三个屏幕之间切换,所以它并不是真的……

I don’t really care what I use, just long as I can press one button and go.

我并不关心我用什么,只要我能按一个按钮就可以了。

Lex Fridman3:53:02

Yeah, I’m the same, so half and half.

是的,我也是这样,一半一半。

3:53:02 Half Linux, the other half Windows with Linux, meaning WSL.

一半是Linux,另一半是Windows,带有Linux,即WSL。

What’s that?

那是什么?

Windows Subsystem for Linux.

Linux 的 Windows 子系统。

ThePrimeagen3:53:12

Weasel.

黄鼠狼。

Lex Fridman3:53:13

Weasel.

黄鼠狼。

3:53:13 See, no, there’s got to be a better one that’s more positive.

你看,不,必须有一个更好、更积极的。

Weasel just sounds-

黄鼠狼只是听起来——

ThePrimeagen3:53:19

Seems right up Microsoft’s alley.

看起来正是微软的拿手好戏。

3:53:19 That seems perfect.

这看起来很完美。

Lex Fridman3:53:24

People often accuse me of being a shill for somebody, sometimes dictators.

人们经常指责我是某人的托儿,有时甚至是独裁者。

3:53:24 If I’m a shill for anybody, it’s for Windows.

如果说我是某个人的托儿的话,那我就是 Windows 的托儿。

There you go.

就这样吧。

I get paychecks every week from-

我每周收到的薪水来自-

ThePrimeagen3:53:35

Dang.

当当。

3:53:35 Bought by Bill Gates.

被比尔·盖茨收购。

Lex Fridman3:53:37

Well, he’s not Microsoft anymore.

好吧,他不再是微软了。

ThePrimeagen3:53:38

I know.

我知道。

Lex Fridman3:53:40

Developers, developers, develop.

开发商,开发商,开发。

3:53:40 No, I’m just joking.

不,我只是开玩笑。

I think, man, I need to try Mac.

我想,伙计,我需要尝试一下 Mac。

I need to try.

我需要尝试一下。

I’m surrounded by people with iPhones.

我周围都是拿着 iPhone 的人。

I use Android.

我使用安卓。

ThePrimeagen3:53:52

I use the Android.

我用的是安卓。

Lex Fridman3:53:53

Yeah.

是的。

3:53:53 There you go.

就这样吧。

See?

看到了吗?

Oh.

哦。

ThePrimeagen3:53:55

We’re losers together.

我们都是失败者。

Lex Fridman3:53:56

Losers on a sinking ship.

沉船上的失败者。

3:53:56 Okay, just to stay on Neovim for a sec and to give love and a shout-out to your friend, Teej.

好的,我只是在 Neovim 上停留片刻,向您的朋友 Teej 表达爱意和欢呼。

ThePrimeagen3:54:09

He Streams, by the way.

顺便说一下,他在直播。

Lex Fridman3:54:10

He’s a streamer.

他是一名主播。

3:54:10 And I subscribed.

我订阅了。

And I’ve been enjoying it.

我一直很享受。

My allegiance is slowly shifting from you to him.

我的忠诚正在慢慢地从你转向他。

The quality is far superior with him, the looks, the intelligence, the skillset, everything, just far superior.

他的素质要高得多,外貌、智力、技能,一切都高出一筹。

No.

不。

Okay, he-

好吧,他——

ThePrimeagen3:54:29

You know you’re making his day.

你知道你正在让他开心。

Lex Fridman3:54:32

All right.

好吧。

3:54:32 He mentioned that he loves Neovim because it gives him the ability to eliminate having to do things he doesn’t like.

他提到他喜欢 Neovim,因为它让他能够不必做他不喜欢的事情。

That’s just a nice way to frame what this automation process that you described of automating a way, assigning shortcuts to things that are painful, that procedure.

这只是一个很好的方式来构建您所描述的自动化过程,即自动化一种方式,为痛苦的事情分配快捷方式,该过程。

I wonder if you agree with that.

我不知道你是否同意这一点。

ThePrimeagen3:55:00

Fully agree.

完全同意。

3:55:00 We have very similar mentalities when it comes to usage of Neovim, why people should use it, all that kind of stuff, and how to even use it well.

当谈到 Neovim 的使用、为什么人们应该使用它、所有类似的东西,以及如何更好地使用它时,我们的心态非常相似。

He definitely takes it probably to a further degree.

他肯定会更进一步。

He spends more time automating and all that.

他花了更多时间进行自动化等等。

I don’t necessarily derive a lot of joy from getting the perfect setup.

我不一定会从获得完美的设置中获得很多快乐。

But a lot to learn from.

但值得学习的地方很多。

He’s very, very good at what he does.

他非常非常擅长他所做的事情。

He’s 30 years old, been programming for not too many years, and he is one of the most talented developers for sure.

他今年 30 岁,从事编程工作并不算多年,但他无疑是最有才华的开发人员之一。

It’s very shocking to see how smart someone can be.

看到一个人如此聪明真是令人震惊。

Lex Fridman3:55:33

People should check him out at teej_dv.

人们应该在 teej_dv 上查看他。

3:55:33 Teej.

蒂杰。

ThePrimeagen3:55:38

DV.

DV。

3:55:38 His last name is DeVries.

他的姓氏是德弗里斯。

DeVries.

德弗里斯。

Lex Fridman3:55:42

Oh, it’s not developer.

哦,这不是开发商。

3:55:42 Okay, cool.

好吧,酷。

ThePrimeagen3:55:42

Yeah, yeah, it’s just TJ.

是啊,是啊,这只是TJ。

That’s just his name just spelled fun.

这只是他的名字拼写的乐趣。

Lex Fridman3:55:46

All right, Teej.

好吧,蒂吉。

3:55:46 What do you love about him?

你爱他什么?

ThePrimeagen3:55:48

Wow.

哇。

3:55:48 How much did he pay you to ask these questions?

他付了你多少钱让你问这些问题?

Lex Fridman3:55:51

Thousands of dollars.

几千美元。

3:55:51 Thousands.

数千。

ThePrimeagen3:55:51

Just so many dollars.

就这么多美元。

Lex Fridman3:55:53

I can’t even count that many dollars.

我什至数不清那么多美元。

ThePrimeagen3:55:59

Trust.

信任。

3:55:59 Obviously trust is the biggest thing, especially in the, quote, unquote, “streaming” YouTube world, if you will.

显然,信任是最重要的,尤其是在 YouTube 的“流媒体”世界中。

It’s very easy to find people that will want to be a part of stuff.

很容易找到愿意参与其中的人。

People tend to latch onto things, and it’s very hard to find someone that you can really, really trust.

人们往往会执着于事物,很难找到一个你真正可以信任的人。

And so he’s just somebody whom I can genuinely trust.

所以他是我可以真正信任的人。

He will always tell the truth.

他永远都会说实话。

He’s all the right things for a good friend in this kind of endeavor.

在这种努力中,他完全适合作为一个好朋友。

Lex Fridman3:56:25

As a good friend, he told me questions I could backstab you with.

作为一个好朋友,他告诉我一些我可以用背后刺伤你的问题。

ThePrimeagen3:56:30

Okay, I hate him.

好吧,我讨厌他。

3:56:30 I forgot how much I don’t trust him.

我忘记了我有多不信任他。

Lex Fridman3:56:35

Speaking of a harpoon, you mentioned it.

说到鱼叉,你提到过。

3:56:35 He said to ask you basically how many years or decades it’s going to take to transition to Harpoon 2 to actually release it, develop it, and so on.

他说要问你基本上需要多少年或几十年才能过渡到 Harpoon 2 才能真正发布它、开发它等等。

Can you describe what Harpoon is and why your seem to be incapable of finishing a single project?

您能描述一下 Harpoon 是什么以及为什么您似乎无法完成单个项目吗?

ThePrimeagen3:56:58

That was a lovely framed question.

这是一个可爱的问题。

3:56:58 Harpoon 2 is actually done.

鱼叉2实际上已经完成了。

This is what I did: To avoid the swirl in the thousands of questions I will inevitably get, I kept the master branch as Harpoon 1, and I’ve kept Harpoon 2 as Harpoon 2 branch.

这就是我所做的:为了避免我不可避免地会遇到的数千个问题的漩涡,我将主分支保留为 Harpoon 1,并将 Harpoon 2 保留为 Harpoon 2 分支。

And people that don’t read the read me to say that I just use Harpoon 2 now, that’s their fault.

那些不读这篇文章的人读我说我现在只使用 Harpoon 2,那是他们的错。

That’s it.

就是这样。

I really don’t like answering hundreds of questions about open source stuff.

我真的不喜欢回答数百个有关开源内容的问题。

I used to love doing open source and all that, but I got my soul crushed during the Falcor years, and so I guess I’m just allergic to being a really active maintainer.

我曾经喜欢做开源之类的事情,但在 Falcor 时代我的灵魂被压垮了,所以我想我只是对成为一个真正活跃的维护者过敏。

3:57:33 I build everything just for me.

我只为我自己建造一切。

Harpoon’s just literally just built for me.

Harpoon 简直就是为我打造的。

I spent three months trying to figure out the most optimal navigation for files, and that’s what I came up with.

我花了三个月的时间试图找出最佳的文件导航方式,这就是我的想法。

Harpoon, it’s a take on alternate file.

Harpoon,这是替代文件的一种。

If you’re familiar with the alternate file, typically you’ll have this in all editors where you can go back to the file you were just in.

如果您熟悉备用文件,通常您会在所有编辑器中看到它,您可以在其中返回到刚才所在的文件。

And so that means you can have effectively two files you swap back and forth in.

这意味着您可以有效地来回交换两个文件。

You’ve probably used it a bunch; really fast way to navigate.

你可能已经用过很多次了;非常快速的导航方式。

Pretty nice thing to do.

非常好的事情。

I want alternate file, but three of them or four of them, and so that’s all Harpoon is is just being able to pin a file.

我想要备用文件,但其中三个或四个,所以 Harpoon 的全部功能就是能够固定一个文件。

And so I have one button to press to go to a file, another for another, another for another.

因此,我可以按一个按钮转到一个文件,按另一个按钮转到另一个文件,按另一个按钮转到另一个文件。

And so I can have up to four.

所以我最多可以有四个。

I just had my four power fingers.

我只有四个力量手指。

For Dvorak, what is that?

对于德沃夏克来说,那是什么?

That’s HTNS.

这就是HTNS。

If I go Ctrl H, T, N, or S, it goes to one of the four files.

如果我按 Ctrl H、T、N 或 S,它将转到四个文件之一。

And that’s it.

就是这样。

That’s all it is.

仅此而已。

3:58:21 And you can technically make it so you can add in functions and be able to execute things externally.

从技术上讲,您可以添加功能并能够在外部执行操作。

You can open up terminals, you can send requests off to servers.

您可以打开终端,可以将请求发送到服务器。

You can do anything you want with it, I just have it primarily designed for opening files.

你可以用它做任何你想做的事情,我只是将它主要设计用于打开文件。

Lex Fridman3:58:33

Since you mentioned it, what keyboard layout do you use?

既然你提到了,你使用什么键盘布局?

3:58:33 You use Dvorak?

你用德沃夏克吗?

ThePrimeagen3:58:36

I use Dvorak, but I used a custom version of Dvorak.

我使用 Dvorak,但我使用的是 Dvorak 的定制版本。

3:58:36 The reason why I used it is in 2017, we are just having my second kid, it was Christmas and I’m having so much pain in my arm and I’m sitting there freaking out like, “Oh my gosh, is this the end of my career?

我使用它的原因是在 2017 年,我们刚刚生了我的第二个孩子,那是圣诞节,我的手臂非常疼痛,我坐在那里吓坏了,“天哪,这是我职业生涯的终结吗?

Am I done programming?

我编程完成了吗?

Is this all over?” And so I decided that I was going to create my own keyboard layout optimized to prevent the pain that I’m experiencing, so I used to Dvorak as the base and then laid out the symbols in a symmetrical, reasonable way so that it’s opening, closing, opening, closing, opening, closing.

这一切都结束了吗?”所以我决定创建自己的键盘布局,优化以防止我所经历的痛苦,所以我以德沃夏克为基础,然后以对称、合理的方式布局符号,以便它打开,关闭,打开,关闭,打开,关闭。

And they all are right here.

他们都在这里。

I actually have to hold shift to press a number.

实际上我必须按住shift才能按数字。

Symbols are actually my first thing I get to press.

符号实际上是我按下的第一件事。

And so it’s very optimized for a laptop keyboard layout so I can use my laptop in a very efficient, nice way.

因此它针对笔记本电脑键盘布局进行了非常优化,因此我可以以非常高效、良好的方式使用我的笔记本电脑。

That’s how I got started on Dvorak and all that.

这就是我开始接触德沃夏克的方式。

I wouldn’t actually recommend it because I didn’t have a Kinesis at the time.

我实际上不会推荐它,因为我当时没有 Kinesis。

I didn’t even know Kinesis existed at that time.

那时我什至不知道 Kinesis 的存在。

And so when I discovered Kinesis in also 2017, that’s when I was like, “Oh, okay.”

因此,当我在 2017 年发现 Kinesis 时,我就想,“哦,好吧。”

Lex Fridman3:59:37

Would you recommend Kinesis to people?

您会向人们推荐 Kinesis 吗?

ThePrimeagen3:59:40

I’m technically sponsored by Kinesis, so it’s hard for someone to believe someone that’s sponsored by it.

从技术上讲,我是由 Kinesis 赞助的,所以很难有人相信由 Kinesis 赞助的人。

3:59:40 But I did use it before I ever became sponsored.

但在获得赞助之前我确实使用过它。

They’re the only sponsor that I reached out to and said, “I need a sponsorship from you.

他们是我联系的唯一赞助商,并说:“我需要你的赞助。

I’m going to use you either way.

不管怎样我都会利用你。

You can say no, but I really love it.” And for the first three years of using Kinesis, they gave me free Kinesises, Kenisi, as my sponsorship.

你可以说不,但我真的很喜欢它。”在使用 Kinesis 的前三年,他们为我提供了免费的 Kinesis、Kenisi 作为我的赞助。

Lex Fridman4:00:04

Kenisi.

克尼西。

4:00:04 Yeah, I’m always torn.

是的,我总是被撕裂。

I tried to leave so many times.

我曾多次尝试离开。

ThePrimeagen4:00:08

You can’t.

你不能。

4:00:08 It’s too good.

这太好了。

Lex Fridman4:00:10

But, see, I have this absurd situation of traveling with it.

但是,你看,我带着它旅行时遇到了这种荒谬的情况。

ThePrimeagen4:00:16

I relate.

我有感触。

Lex Fridman4:00:17

Yeah.

是的。

4:00:17 I’m literally going to the war zone in Ukraine, I have a Kinesis keyboard, a laptop, and just a few other small things and that’s it.

我真的要去乌克兰战区,我有一个 Kinesis 键盘、一台笔记本电脑和其他一些小东西,仅此而已。

And it’s like is Kinesis keyboard really going to be 30% of volume that you’re bringing to a war zone?

就像 Kinesis 键盘真的会占您带到战区的体积的 30% 吗?

But-

但是——

ThePrimeagen4:00:37

Looks like the answer is yes.

看来答案是肯定的。

Lex Fridman4:00:39

Yeah.

是的。

4:00:39 Do you really derive that much value?

你真的能获得那么大的价值吗?

I think it’s probably spiritual or psychological for me.

我想这对我来说可能是精神上或心理上的。

It feels like home.

感觉就像在家一样。

There’s comfort associated with it.

与之相关的是舒适感。

I try to leave.

我尝试离开。

ThePrimeagen4:00:50

I love this experience.

我喜欢这种经历。

4:00:50 It’s like a relationship you have with the thing.

这就像你与事物之间的关系。

Lex Fridman4:00:56

It is.

这是。

4:00:56 But I’m trying to figure out if it’s a toxic relationship or not.

但我想弄清楚这是否是一种有毒的关系。

I think it’s mostly love.

我想,大部分都是爱情吧。

I think it’s love.

我想这就是爱。

Like all relationship, there’s some push and pull complications, but-

就像所有的关系一样,存在一些推拉的复杂性,但是——

ThePrimeagen4:01:06

They say that distance makes the heart grow fonder, so maybe sometimes the Kinesis keyboard needs to stay at home and the laptop keyboard can be the one so that your heart grows even more fond and that connection grows even deeper.

人们说,距离让心变得更加亲密,所以有时 Kinesis 键盘可能需要留在家里,而笔记本电脑键盘可以让您的心变得更加亲密,联系也变得更加深厚。

Lex Fridman4:01:18

I already miss it as you say it, so I don’t know.

正如你所说,我已经想念它了,所以我不知道。

4:01:18 I think it’s coming along to all the trips.

我认为它会伴随着所有的旅行。

If it breaks down, though…

但如果它坏掉了……

I was worried that Kinesis was shut down as a company.

我担心 Kinesis 作为一家公司被关闭。

I’m like, what’s the business model here?

我想,这里的商业模式是什么?

Who actually uses these keyboards?

谁真正使用这些键盘?

But apparently they’re still going strong.

但显然他们仍然很强大。

ThePrimeagen4:01:33

Yeah.

是的。

4:01:33 Who uses these keyboards?

谁使用这些键盘?

As you use the keyboard “I have to take it with me everywhere.” I wonder who uses these keyboards.

当您使用键盘时,“我必须随身携带它。”我想知道谁使用这些键盘。

Lex Fridman4:01:42

Yeah.

是的。

4:01:42 Yep.

是的。

I should mention that one of the things when I first became a fan of yours, I heard you talk about coffee and term…

我应该提一下,当我第一次成为你的粉丝时,我听到你谈论咖啡和术语......

I still don’t, by the way, understand what you’re even talking about.

顺便说一句,我仍然不明白你在说什么。

I need to actually use it.

我需要实际使用它。

But you run, amongst many things, a coffee company.

但除此之外,您还经营一家咖啡公司。

Man, this smells so good.

伙计,这闻起来真香。

This one is dark mode, dark roast, whole coffee beans.

这是深色模式,深度烘焙,全咖啡豆。

There is seg origin, dash, dash location.

有段原点、破折号、破折号位置。

Brazil.

巴西。

ThePrimeagen4:02:14

Yeah, there’s a bunch of stuff on there.

是的,那里有很多东西。

Lex Fridman4:02:16

Stuff on there that’s very devy.

那里的东西非常精致。

4:02:16 Shop, server, web.

商店、服务器、网络。

Can you legit, as such, order coffee via SSH?

您可以合法地通过 SSH 订购咖啡吗?

ThePrimeagen4:02:25

As of right now, it’s the only way you can get the coffee is via SSH.

截至目前,您获取咖啡的唯一方法是通过 SSH。

4:02:25 Okay, can I just origin, origin story you?

好吧,我可以简单讲一下起源吗?起源故事吗?

Lex Fridman4:02:33

Yeah, yeah.

是啊是啊。

4:02:33 Yeah, right, I was going to do some kind of command line.

是的,对,我打算做某种命令行。

Command to request or dash dash help or something or-

请求命令或破折号帮助或其他东西-

ThePrimeagen4:02:33

Command coffee?

命令咖啡?

Lex Fridman4:02:33

Command coffee.

命令咖啡。

ThePrimeagen4:02:44

Okay.

好的。

4:02:44 TJ and I, again, same Teej, Teej TV, about…

TJ 和我,再次,相同的 Teej,Teej TV,关于……

By the way, very amazing designs done by David Hill.

顺便说一句,大卫·希尔的设计非常令人惊叹。

They’re very, very good.

他们非常非常好。

Let me give the basic ideas.

让我给出基本想法。

It must’ve been about a year and a half ago, TJ and I were talking like, “Hey, every one of these people that have some sort of following, some sort of online presence, they’re always selling a thing,” but I got nothing to sell.

大概是一年半前,TJ 和我说,“嘿,这些人中的每一个都有某种追随者,某种在线存在,他们总是在卖东西,”但我没有什么可卖的。

I don’t really want to do merch.

我真的不想做商品。

I’ve never really enjoyed doing merch.

我从来没有真正喜欢过做商品。

I just find that, I don’t know, it’s just not as much fun for me.

我只是发现,我不知道,这对我来说没那么有趣。

Lex Fridman4:03:15

Don’t want to have a tequila?

不想喝龙舌兰酒吗?

ThePrimeagen4:03:15

I don’t want a tequila.

我不想要龙舌兰酒。

4:03:15 I want something that-

我想要一些东西——

Lex Fridman4:03:19

Like The Rock.

就像岩石一样。

ThePrimeagen4:03:19

And I also want something that I really don’t feel bad about selling.

我还想要一些我真的不觉得卖掉的东西。

4:03:19 There’s a lot of people that will go on the internet and they’ll shill for a whole bunch of products like, “Oh, okay, try this, try this.” And this is why I’ve only ever really done Kinesis is because it’s like, well, I can point to something that was really bad in my life, I was very scared, and now it’s not bad anymore.

有很多人会上网,他们会推销一大堆产品,比如,“哦,好吧,试试这个,试试这个。”这就是为什么我只真正做过 Kinesis 的原因,因为它就像,好吧,我可以指出我生活中非常糟糕的事情,我非常害怕,但现在它不再那么糟糕了。

It’s like, okay, that one made sense.

就好像,好吧,那是有道理的。

But everything else always has been…

但其他一切一直都是……

It’s harder for me.

这对我来说更难。

And so we just talked for so long, and we love Neovim, so we’re just like, “Why haven’t we could do something from Neovim?” And we’re laughing about that, ordering from Neovim is just so ridiculous.

所以我们聊了很长时间,我们喜欢 Neovim,所以我们就想,“为什么我们不能从 Neovim 做点什么?”我们对此一笑置之,从 Neovim 订购真是太荒谬了。

4:03:51 And then at some point, we’re just like, “Well, wait a second.

然后在某个时候,我们就会说,“好吧,等一下。

And maybe we could do coffee.

也许我们可以喝咖啡。

Every developer loves coffee.

每个开发人员都喜欢咖啡。

Maybe we could figure out this coffee business.” And so I had a good friend named Dax, THDXR.

也许我们可以搞清楚咖啡生意。”我有一个好朋友,名叫 Dax,THDXR。

Dax, yeah, Dax.

达克斯,是的,达克斯。

The most sassiest man alive.

世上最潇洒的男人。

Lex Fridman4:04:11

Sassiest?

最时髦?

ThePrimeagen4:04:11

Oh yeah, he has a lot of sass.

哦,是的,他有很多无礼。

Lex Fridman4:04:13

Beard?

胡须?

ThePrimeagen4:04:14

Yep, he has a beard.

是的,他有胡子。

4:04:14 He does SST.

他做SST。

He does a lot of stuff.

他做了很多事情。

Very, very talented.

非常非常有才华。

We’ll call him DevOps engineer.

我们称他为 DevOps 工程师。

He’s more than that.

他不仅如此。

But very talented guy.

但非常有才华的人。

Him and another person named Adamdotdev, vegan, by the way, great guy.

他和另一个名叫 Adamdotdev 的人是素食主义者,顺便说一句,很棒的人。

We take him to Korean barbecue all the time.

我们一直带他去韩国烧烤。

He eats nothing.

他什么也不吃。

Lex Fridman4:04:33

That’s great.

那太棒了。

ThePrimeagen4:04:34

And Liz, she has been super important to the terminal coffee company.

还有莉兹,她对终端咖啡公司来说非常重要。

4:04:34 I think without her, we would not have been able to do what we have done.

我想如果没有她,我们就不可能取得现在的成就。

And then also David Hill, designer, he does Laravel.

还有设计师 David Hill,他设计了 Laravel。

He designs for Laravel.

他为 Laravel 进行设计。

Very talented designer.

非常有才华的设计师。

And so we all came together.

于是我们就走到了一起。

And we were just laughing about how could we do something that’s just ridiculous?

我们只是笑着说我们怎么能做一些荒谬的事情呢?

And that’s what we came up with.

这就是我们的想法。

Yeah, there you go.

是的,就这样。

You just open the website.

你只要打开网站。

You literally cannot order.

您实际上无法订购。

We actually do not allow you to order.

我们实际上不允许您订购。

Lex Fridman4:05:05

The website is something that looks like the terminal.

该网站看起来像终端。

4:05:05 Use command below to order your delicious whole coffee bean.

使用下面的命令订购美味的全咖啡豆。

SSH terminal.shop.

SSH 终端.shop。

ThePrimeagen4:05:14

Yeah.

是的。

4:05:14 You can only SSH into it.

您只能通过 SSH 访问它。

You have to copy that command and throw it in there.

您必须复制该命令并将其放入其中。

If you want to add in the little terminal shop for your known hosts, you could do that.

如果您想为您已知的主机添加小终端商店,您可以这样做。

Lex Fridman4:05:22

How do you handle payment?

你们如何处理付款?

ThePrimeagen4:05:24

Through Stripe.

通过条纹。

4:05:24 And so one of the things, we’ll be adding a mobile checkout to where I’ll show a QR code in the terminal and you can just check out on your phone, but right now, you enter in your credentials, it goes to Stripe.

其中一件事是,我们将添加一个移动结帐功能,我将在终端中显示二维码,您只需在手机上结帐即可,但现在,您输入您的凭据,它会转到 Stripe。

Lex Fridman4:05:34

Via all terminal, like SSH.

通过所有终端,例如 SSH。

ThePrimeagen4:05:36

Yeah, SSH, obviously it stands for Secure Shell.

是的,SSH,显然它代表 Secure Shell。

4:05:36 It uses elliptical quantum safe algorithms to ensure that your data’s not being intercepted.

它使用椭圆量子安全算法来确保您的数据不被拦截。

Lex Fridman4:05:45

Yeah, but does he use AI?

是的,但是他使用人工智能吗?

ThePrimeagen4:05:48

I’m pretty sure Dax uses AI.

我很确定 Dax 使用人工智能。

4:05:48 That-

那——

Lex Fridman4:05:50

You said quantum, so I don’t know.

你说的是量子,所以我不知道。

ThePrimeagen4:05:52

Quantum AI?

量子人工智能?

Lex Fridman4:05:53

Can this-

这可以吗——

ThePrimeagen4:05:54

Fusion quantum AI?

融合量子人工智能?

Lex Fridman4:05:55

Can this even be a company if it’s not using AI?

如果不使用人工智能,这还能算一家公司吗?

ThePrimeagen4:05:59

We have some crypto chains with some quantum AI that’s powered by Fusion, so it’s pretty wild.

我们有一些加密链,其中有一些由 Fusion 提供支持的量子人工智能,所以它非常疯狂。

4:05:59 Anyway, yeah, we just came together where we thought, what is the…

不管怎样,是的,我们只是聚在一起思考,什么是……

That was from the Mike Tyson fight.

那是来自迈克·泰森的比赛。

It was literally that night Mike Tyson kissed the reporter and then walked out without any clothes.

那天晚上,迈克·泰森亲吻了记者,然后赤身裸体地走了出去。

We did an ad for somebody.

我们为某人做了一个广告。

4:06:17 But we decided to make a coffee shop, and then we thought instead of just making it Neovim, what if we made it from SSH?

但我们决定做一家咖啡店,然后我们想,除了做 Neovim 之外,如果我们通过 SSH 做呢?

Because everybody has SSH.

因为每个人都有 SSH。

You have VS Code.

你有 VS 代码。

Launch VS Code.

启动 VS 代码。

You can order coffee from within VS Code.

您可以从 VS Code 中订购咖啡。

Because your little bottom terminal that has access to SSH, bada bing, bada boom.

因为你的小底层终端可以访问 SSH,bada bing,badaoom。

It’s fun.

这很有趣。

And so we really-

所以我们真的——

Lex Fridman4:06:39

I love this.

我喜欢这个。

ThePrimeagen4:06:39

We just wanted to do something where there’s no level and there’s no world that makes me feel bad about selling this in people buying it.

我们只是想做一些没有水平的事情,也没有让我在购买它的人中出售它感到难过的事情。

4:06:39 It’s good ethical coffee.

这是优质的道德咖啡。

We developed the entire supply chain and everything.

我们开发了整个供应链和一切。

It’s all packaged, it’s all boutique.

全部都是包装好的,都是精品。

It’s pretty high-end coffee.

这是相当高端的咖啡。

It tastes really, really good.

味道真的非常非常好。

4:06:57 At this point, I don’t like drinking other coffee.

在这一点上,我不喜欢喝其他咖啡。

I get upset about it because it’s not as good.

我对此感到不安,因为它不太好。

And so it’s funny that I’ve fallen for my own stuff.

有趣的是,我竟然爱上了自己的东西。

I’m high on my own supply pretty hard right now.

我现在对自己的供应量非常高。

I just got done ordering 16 bags and gave it out to my family to try to convince them.

我刚刚订购了 16 个袋子,并把它送给了我的家人,试图说服他们。

But it’s just something where it’s like I didn’t sell you a software product that’s going to influence your startup that could potentially lead to disaster, I didn’t convince you to do a bunch of stuff that’s going to change your career, I just said, “Hey, here’s some coffee.” And it’s like a fun experience.

但这就像我没有卖给你一个软件产品,它会影响你的初创公司,可能会导致灾难,我没有说服你做一堆会改变你职业生涯的事情,我只是说,“嘿,这是一些咖啡。”这就像一次有趣的经历。

Lex Fridman4:07:27

Yeah, it’s fun, everything.

是的,一切都很有趣。

4:07:27 The humor on it is great.

它的幽默感很棒。

People should go to terminal.shop.

人们应该去terminal.shop。

ThePrimeagen4:07:32

SSH terminal.shop.

SSH 终端.shop。

Lex Fridman4:07:34

I’m speaking to people that don’t know what SSH is.

我正在和那些不知道 SSH 是什么的人交谈。

4:07:34 And there, you can read the command and then figure out how to use SSH in order to…

在那里,您可以阅读命令,然后了解如何使用 SSH 来……

It’s a kind of documentation, right?

这是一种文档,对吗?

ThePrimeagen4:07:45

Yeah.

是的。

Lex Fridman4:07:45

On the website.

在网站上。

ThePrimeagen4:07:47

If you can’t use SSH, you probably should just not worry about buying our coffee.

如果您无法使用 SSH,您可能不必担心购买我们的咖啡。

4:07:47 That’s the whole-

这就是全部——

Lex Fridman4:07:52

Well, you can learn.

嗯,你可以学习。

ThePrimeagen4:07:53

You can learn.

你可以学习。

4:07:53 If you’re active and you’re a computer person, you’d like to launch the terminal and feel like a hacker, go for it.

如果您很活跃并且是一名计算机人员,您想启动终端并感觉自己像一名黑客,那就去做吧。

We even have subscriptions.

我们甚至还有订阅。

Lex Fridman4:07:59

What I would love to see…

我想看到什么……

4:07:59 This is how it came up I think on the cursor conversation, is that I would love it if an AI agent did this, like Anthropos computer use or something like that, actually took the action of ordering the coffee while it was programming.

这就是我在光标对话中想到的,如果人工智能代理能做到这一点,就像 Anthropos 计算机使用或类似的东西,在编程时实际采取点咖啡的动作,我会喜欢它。

ThePrimeagen4:08:17

Yeah, like, “Hey, order me some coffee,” and it actually go off.

是的,就像,“嘿,给我点杯咖啡”,然后它就真的开始了。

4:08:17 “Give me dark roast.” Order coffee.

“给我深烤。”点咖啡。

It could actually go through the whole flow of order.

它实际上可以贯穿整个订单流程。

Lex Fridman4:08:24

Yeah, the whole flow.

是的,整个流程。

4:08:24 But even better, if you didn’t ask it to order coffee, you asked it to do something, and as a tangent, as a side quest it did that.

但更好的是,如果你没有要求它点咖啡,你要求它做某事,作为一个切线,作为一个支线任务,它会这样做。

Which is computer use does that.

计算机的使用就是这样做的。

They showed off that it’s able to go to I think Google for some images, take a pause, and then continue doing other stuff.

他们展示了它可以去谷歌搜索一些图像,暂停一下,然后继续做其他事情。

Anyway, yeah, super cool idea.

不管怎样,是的,超级酷的主意。

Love it.

爱它。

Speaking of which, let’s talk AI.

说到这里,我们来谈谈AI。

ThePrimeagen4:08:50

All right.

好的。

Lex Fridman4:08:50

You’ve been both positive and negative on the role of AI in the whole programming software engineering experience.

对于人工智能在整个编程软件工程经验中的作用,您既有积极的一面,也有消极的一面。

4:08:50 As it stands today, what do you think?

就今天的情况来看,你怎么看?

What’s your general view about AI?

您对人工智能的总体看法是什么?

What is it effective at?

它有什么功效呢?

What is it not so good at?

它不擅长什么?

ThePrimeagen4:09:06

Okay, my general view is it comes down to something that’s pretty simple, which is that if you’re doing something in which is very predictable, AI is really nice.

好吧,我的总体观点是,这可以归结为非常简单的事情,那就是,如果你正在做一些非常可预测的事情,那么人工智能真的很棒。

4:09:06 When you’re doing something that is just not predictable, AI is not very nice to use.

当你做的事情是不可预测的时,人工智能就不太好用了。

If you’re using anything that’s more cutting edge, AI will not be using it, or AI won’t be very good at doing stuff with it.

如果你使用任何更前沿的东西,人工智能就不会使用它,或者人工智能不会很擅长用它来做事。

It’s not great at Zig because Zig is just, say, less documented.

Zig 的情况并不好,因为 Zig 的文档记录较少。

It’s really great at TypeScript.

TypeScript 确实很棒。

4:09:39 I think there’s a lot of interesting things that are going to come down through AI that I think a lot of people aren’t really prepared for or thinking through.

我认为人工智能将会带来很多有趣的事情,但我认为很多人并没有真正准备好或思考清楚。

TJ’s the genesis of this idea, but the idea that I think there’s going to be a lot of market manipulation, if you will, through AI.

TJ 是这个想法的起源,但我认为如果你愿意的话,通过人工智能将会有很多市场操纵。

Meaning, hey, you want to research, say, best woodworking tools.

意思是,嘿,你想研究最好的木工工具。

Someone’s going to be buying an ad spot.

有人会购买广告位。

Someone’s going to be buying premium training data.

有人会购买优质的培训数据。

They’re the ones that get the big boosts in the LLMs.

他们是那些在法学硕士课程中获得巨大提升的人。

But LLMs don’t really have to market as an advertisement because it’s not really directly an advertisement, they just had a more premium spot, per se, in the training data; a little bit extra learning to it.

但法学硕士实际上并不需要作为广告进行营销,因为它并不是真正直接的广告,他们只是在培训数据中拥有更优质的位置;对它进行一点额外的学习。

4:10:21 It’s like there’s a lot of things about AI that I fear upcoming.

就好像有很多关于人工智能的事情我担心即将发生。

A lot of it just comes down to people not learning or making the trade-off where productivity is the only thing that matters.

这很大程度上归因于人们没有学习或在生产力是唯一重要的事情上进行权衡。

And I don’t think productivity is the only thing that matters.

我不认为生产力是唯一重要的事情。

If you want to build something complex and difficult, productivity is not the only thing.

如果你想构建复杂且困难的东西,生产力并不是唯一的因素。

You actually are going to have to do deep learning and pursue it beyond the basics.

实际上,你必须进行深度学习并超越基础知识。

4:10:42 And so I see AI as this really cool thing.

所以我认为人工智能是一个非常酷的东西。

It feels like a magic trick.

感觉就像魔术一样。

I remember the first time I used it, I got early access to GitHub Copilot.

我记得第一次使用它时,我抢先访问了 GitHub Copilot。

In fact, Nat Friedman saw my Twitch clip of me asking GitHub for it, and he sent me early access himself.

事实上,纳特·弗里德曼 (Nat Friedman) 看到了我向 GitHub 请求的 Twitch 视频,他亲自向我发送了早期访问权限。

It was awesome.

太棒了。

And when I used it, it predicted an if statement correct and my mind was just absolutely blown because I had nothing before then, and now it’s just like first time ever.

当我使用它时,它预测了一个 if 语句是正确的,我的心彻底震惊了,因为在那之前我什么都没有,而现在就像第一次一样。

And I just remember thinking, man, this is going to change programming so much.

我只记得我在想,伙计,这将会极大地改变编程。

4:11:12 And then the more I used it, the more I just…

然后我用得越多,我就越……

For me personally, I kept introducing bugs, and I couldn’t figure out why.

就我个人而言,我不断引入错误,但我不明白为什么。

And what I realized is that I developed…

我意识到我发展了……

I wasn’t copiloting well, I was autopiloting much better.

我的副驾驶表现不佳,但我的自动驾驶能力要好得多。

And my ability to read code versus my ability to critically think and write code, they’re definitely different sets of skill levels.

我阅读代码的能力与我批判性思考和编写代码的能力,它们绝对是不同的技能水平。

I don’t consider as well when I just read code as opposed to what I write code.

当我只阅读代码时,我不会考虑我编写代码的内容。

And so I struggled there.

所以我在那里挣扎。

Lex Fridman4:11:38

I do think that’s a skill set.

我确实认为这是一套技能。

ThePrimeagen4:11:40

Yeah.

是的。

4:11:40 Skill issue for sure.

肯定是技能问题。

Lex Fridman4:11:42

Skill issue.

技能问题。

4:11:42 For people who are not aware, that’s a hashtag thing sometimes used mockingly in this case.

对于不知道的人来说,这是一个在这种情况下有时会被嘲笑的标签。

There’s several layers mockingly, but also seriously, meaning the criticism is grounded in the fact that you lack the skill versus some kind of fundamental truth.

有几个层次是嘲笑的,但也很严肃,这意味着批评是基于你缺乏技能而不是某种基本事实这一事实。

Yes.

是的。

I think that that’s the reason I use actually Copilot cursor a lot is for developing the skill of editing AI so I can just learn how to do that better and better.

我认为这就是我经常使用 Copilot 光标的原因是为了培养编辑 AI 的技能,这样我就可以学习如何做得越来越好。

Because I think as I do that better and better, I start to utilize AI better.

因为我认为,随着我做得越来越好,我开始更好地利用人工智能。

At this time, it is a bit of a boilerplate code thing, but you can do out of the box novel design decisions or tricky design decisions from scratch but fill out stuff using AI and then just learn the skill of modifying.

此时,它有点像样板代码,但您可以从头开始做开箱即用的新颖设计决策或棘手的设计决策,但使用人工智能填写内容,然后学习修改技巧。

4:12:43 I personally just…

我个人只是……

It’s more fun to program with AI.

用人工智能编程更有趣。

Even when I delete a lot of the code, it’s more fun.

即使我删除了很多代码,它也更有趣。

It’s less lonely.

这样就不那么孤独了。

It’s what I imagine pair programming to be.

这就是我想象中的结对编程。

And I’ve never done it, but it just feels like that friction that you get when you’re staring at an empty thing is not there.

我从来没有这样做过,但感觉就像当你盯着一个空的东西时所感受到的摩擦不存在一样。

Empty function, empty class, it’s just more fun, less lonely.

空函数,空类,只是更有趣,更少孤独。

4:13:19 And I do think that a lot of the easier type of coding, it really helps with like interacting with APIs, basic things that I would usually have to look up to stack overflow for.

我确实认为很多更简单的编码类型确实有助于与 API 交互,这是我通常需要查找堆栈溢出的基本内容。

It’s just really fast at that.

速度真的很快。

As example, just interacting with the YouTube API.

例如,仅与 YouTube API 交互。

The YouTube API documentation is not very good.

YouTube API 文档不是很好。

And you can just load it all in there and ask it to generate a set of functions that access the API, all kinds of read and write operations, and it figures it all out.

您可以将其全部加载到那里,并要求它生成一组访问 API 的函数、各种读写操作,然后它就会全部计算出来。

Well, you do have to read.

嗯,你必须读书。

You have to read and check everything.

你必须阅读并检查所有内容。

4:14:04 And you start to develop the skill of understanding where it misinterpreted the task.

然后你开始培养理解它在哪里误解了任务的技能。

What is that skill?

那个技能是什么?

I don’t even know.

我什至不知道。

You have to be empathic about what the AI, what its limitations are.

你必须了解人工智能是什么,它的局限性是什么。

A lot of the times that has to do with prompt engineering.

很多时候这与即时工程有关。

You have to at the same time understand what the AI is aware of.

你必须同时了解人工智能意识到了什么。

What did you actually give it as data to be able to generate the code?

您实际上给它什么数据作为能够生成代码的数据?

A lot of times, we don’t realize that we’re not giving it enough information.

很多时候,我们没有意识到我们没有给它足够的信息。

Okay, okay, all right.

好吧,好吧,好吧。

You have to be empathic.

你必须有同理心。

Be like, okay, these are the files it’s aware of.

就像,好吧,这些是它知道的文件。

This is the specifics of the question you asked it.

这是您提出的问题的具体情况。

You have to imagine you’re an intern that doesn’t know anything else.

你必须想象你是一个什么都不知道的实习生。

4:15:09 Oftentimes, we want the AI to just figure out the things that’s left unspoken.

通常,我们希望人工智能能够找出那些未说出口的事情。

But you can’t know those things, you have to specify those things.

但你无法知道这些事情,你必须指定这些事情。

And so you have to actually be much more deliberate and rigorous in the things you specify, is to spell it out.

所以你实际上必须在你指定的事情上更加深思熟虑和严格,也就是把它说清楚。

And so I just have this sea of prompts that I have saved up, and I’m building these library of different templates for prompts and it’s a mess.

所以我只有大量的提示,我已经保存了,我正在为提示构建这些不同模板的库,这很混乱。

And I’m sure there’s a lot of developers that have this similar kind of mess.

我确信有很多开发人员都遇到过类似的混乱。

4:15:38 A lot of it has to do long-term with the tooling that’s going to improve that.

其中很多都需要长期使用能够改善这一点的工具。

One, the systems are going to get much more intelligent when you don’t need the nuance.

第一,当你不需要细微差别时,系统将变得更加智能。

And two, there’s going to be the tooling that allows you to specify those things and load it in correctly and give all the context that the system needs in order to make the good decisions.

第二,将会有工具允许您指定这些内容并正确加载它,并提供系统所需的所有上下文,以便做出正确的决策。

And maybe the system asks you follow up questions with, “Here’s things you didn’t make clear,” all that kind of stuff.

也许系统会问你一些后续问题,“这是你没有说清楚的事情”,诸如此类的问题。

4:16:02 A lot of that has to do with the interface, with the actual design of the tools.

这很大程度上与界面和工具的实际设计有关。

Like we said with Cursor, it’s going to keep getting better and better and better.

就像我们对 Cursor 所说的那样,它会变得越来越好。

My sense is developers in general should be learning this to not be left behind, to see how that can be used as a superpower to boost their productivity, their effectiveness, their joy of programming versus be seen as a competitor to them or something like that.

我的感觉是,一般开发人员应该学习这一点,以免落后,看看如何将其用作超级大国,以提高他们的生产力、效率、编程乐趣,而不是被视为他们的竞争对手或类似的东西。

4:16:33 But for me already, it’s been a big boost to productivity.

但对我来说,这已经大大提高了生产力。

If you measure the actual how quickly you’re able to get a thing done, it’s been a big…

如果你衡量一下你完成一件事的实际速度,那就是一个很大的……

And measured not across minutes and hours but days also.

并且不是以分钟和小时来衡量,而是以天来衡量。

Sometimes there’s things I have to do that are not that important that I’ll just out of procrastination will push off.

有时候,有些事情我必须做,但并不那么重要,我会因为拖延而推迟。

ThePrimeagen4:17:03

I know that.

我知道。

Lex Fridman4:17:03

And AI helps me actually get it done, because that thing, the empty page, like I mentioned before, it helps me write the thing, get it done, get it tested, ship the thing.

人工智能实际上帮助我完成了它,因为那个东西,空白页面,就像我之前提到的那样,它帮助我编写东西,完成它,测试它,交付它。

4:17:03 Maybe it’s just because it’s just less lonely to work with an AI.

也许只是因为与人工智能一起工作不那么孤独。

I don’t know.

我不知道。

I don’t know if any of that made sense, but-

我不知道这些是否有意义,但是——

ThePrimeagen4:17:22

It all made perfect sense.

这一切都很有道理。

4:17:22 I really do like that phrase, it makes it less lonely.

我真的很喜欢这句话,它让人不那么孤独。

I think there’s something to that that’s interesting having just some level of interaction that’s not just like an LSP autocomplete, having something that’s actually a little bit more than just that where it actually is thinking through and you can see a different thought and you’re like, “Oh wow, that’s a way different approach than I would’ve taken.

我认为有一些东西是有趣的,有一定程度的交互,不仅仅是像 LSP 自动完成,有一些实际上比它实际思考的东西更多一点的东西,你可以看到不同的想法,你会想,“哦,哇,这与我采取的方法完全不同。

Hey, that’s cool.

嘿,那很酷。

I like these kind things.”

我喜欢这些善良的东西。”

4:17:43 And the thing is that I’m not a AI negative person.

问题是我并不是一个对人工智能持消极态度的人。

I can see why people really, really like it.

我明白为什么人们真的非常喜欢它。

I used Copilot from when Nat gave me the access all the way up until about six months ago.

从 Nat 授予我访问权限一直到大约六个月前,我一直在使用 Copilot。

I used it for quite some time.

我用了很长一段时间。

And I really did enjoy the things I used out of it.

我真的很喜欢我从中使用的东西。

It did the opposite for me.

它对我来说恰恰相反。

I felt like I was more reviewing than writing and I felt like I was more just letting things slide where I just didn’t really think too heavily about stuff.

我觉得我更多的是在复习而不是写作,而且我觉得我更多的是让事情顺其自然,而我并没有真正认真思考一些事情。

And just I wasn’t as engaged.

只是我没那么投入。

And so I’m like, “Okay, something’s kind wrong here.” And that’s just a me personal thing.

所以我想,“好吧,这里有点不对劲。”这只是我个人的事情。

I recognize that is not how someone should approach these things.

我认识到这不是人们处理这些事情的方式。

That’s not a good reason for why you should or should not use AI.

这并不是你应该或不应该使用人工智能的充分理由。

I just don’t think that that’s right.

我只是认为那是不对的。

I could probably correct that and figure out a better way to do it.

我也许可以纠正这个问题并找出更好的方法来做到这一点。

4:18:32 I’ve been meaning to have another AI round, and so I’ve been thinking about maybe I just need to spend two weeks in Cursor and just fully embrace what does it mean to be somebody like this?

我一直想再进行一轮人工智能,所以我一直在想,也许我只需要在 Cursor 上呆两周,然后完全接受成为这样的人意味着什么?

And what can I do with these new powers?

我能用这些新权力做什么?

Have they improved to the point where they’re actually good?

他们已经进步到真正优秀的程度了吗?

And for me, because a lot of the decisions I make, a lot of the little functions I’m writing, it’s not because trying to write this function to solve this problem, it’s because I’m writing these functions or this set not just to solve this problem but because I know in about another 2,000 lines of code of building all these other things, I’m going to need to start doing this next activity.

对我来说,因为我做出的很多决定,我正在编写的很多小函数,并不是因为试图编写这个函数来解决这个问题,而是因为我编写这些函数或这组函数不仅仅是为了解决这个问题,而是因为我知道在另外 2,000 行代码中构建所有这些其他东西,我将需要开始进行下一个活动。

It’s like I’m trying to really try to chess move myself into the exact things that, as I let things go faster, I fall apart on that chess move.

就好像我试图真正尝试让自己进入正确的棋局,当我让事情进展得更快时,我就会在棋局中崩溃。

And again, skill issues for on my behalf.

再次,代表我的技能问题。

And I mean it in the truest sense of the word where it’s like I’m making a critique because I don’t use it well enough.

我的意思是这个词最真实的含义,就像我在批评,因为我使用得不够好。

Lex Fridman4:19:23

I don’t know if this is a general rule, this is my anecdote data.

我不知道这是不是一般规则,这是我的轶事数据。

4:19:23 The better you’re programming, the less you want to use the AI, the more gets in the way.

你编程得越好,你就越不想使用人工智能,阻碍就越多。

The good programmers-

优秀的程序员——

ThePrimeagen4:19:32

It’s fair enough, as far as I can tell.

据我所知,这很公平。

Lex Fridman4:19:34

The more beginner programmers are much more happy to use AI.

越多的初学者程序员就越乐意使用人工智能。

4:19:34 When I use AI, it’s for basic for just…

当我使用人工智能时,它只是基础......

I don’t know if there’s a better term.

我不知道是否有更好的术语。

It’s not boilerplate, but it’s pretty easy programming.

它不是样板文件,但编程非常简单。

And that kind of programming is much easier to do.

而且这种编程更容易完成。

The 10 X, not to use the meme, programmers that I know that are ultra productive and brilliant people, they hate AI.

10 X,不使用模因,我所知道的程序员是非常高效和才华横溢的人,他们讨厌人工智能。

They’re like, “This is nowhere close to what’s needed.” There’s something to that.

他们的反应是,“这离我们所需要的还差得很远。”这是有原因的。

I still think they should be using AI just for the learning because it’s going to get smarter, it’s going to get better.

我仍然认为他们应该使用人工智能来学习,因为它会变得更聪明,会变得更好。

It’s the same thing, it’s like when you super optimize Neovim or super optimize Emacs, you may not discover new things that are in the pipeline, so it’s always good to be training in that way.

这是同一件事,就像当你超级优化 Neovim 或超级优化 Emacs 时,你可能不会发现正在酝酿中的新东西,所以以这种方式进行训练总是好的。

ThePrimeagen4:20:26

Let me ask you a question here just for my understanding.

我在这里问你一个问题只是为了我的理解。

4:20:26 You talked about this idea that you have all these LLM prompts, all this big backlog of messy LLM prompts that you have these templates for that you can do various actions.

你谈到了这个想法,你有所有这些 LLM 提示,所有这些大量积压的混乱的 LLM 提示,你有这些模板,你可以执行各种操作。

You have these strategies of making itself explain itself and then do the right thing.

你有这些策略来让自己解释自己,然后做正确的事情。

As far as I can tell, that’s really built into a lot of people.

据我所知,这确实是很多人的本能。

4:20:46 Well, then you make this phrase where you’re like, but then at some point, the interface is going to get better, and maybe it can do a lot of these things better where I won’t need that.

好吧,然后你就可以在你喜欢的地方使用这个短语,但在某些时候,界面会变得更好,也许它可以在我不需要的地方做得更好。

Then my question is, well, is anyone actually falling behind for not using AI then?

那么我的问题是,真的有人因为不使用人工智能而落后吗?

Because if the interface is going to change so greatly that all of your habits need to fundamentally change and it will be able to clarify and make all those statements, have I actually fallen behind at all?

因为如果界面要改变这么大,你所有的习惯都需要从根本上改变,它能够澄清并做出所有这些陈述,我真的落后了吗?

Or will the next gen actually just be so different from the current one that it’s like, yeah, you’re over there actually doing punch card AI right now.

或者下一代实际上会与当前的有所不同,就像,是的,你现在正在那里实际做打孔卡人工智能。

I’m going to come in at compiler time AI, so different that it’s like what’s a punch card?

我将在编译时引入人工智能,它是如此不同,就像打孔卡一样?

Lex Fridman4:21:23

Obviously open question.

显然是开放性问题。

4:21:23 It’s a fascinating one.

这是一件令人着迷的事。

I personally think, yes, you’re falling behind.

我个人认为,是的,你落后了。

Not you, but if you’re not-

不是你,但如果你不是——

ThePrimeagen4:21:24

It could be me, it could be me.

可以是我,也可以是我。

Lex Fridman4:21:33

…

……

4:21:33 not playing with it, you’re falling behind because the thing I’m doing with the prompts is you’re learning, you’re building up this intuition about how AI works.

不玩它,你就落后了,因为我根据提示所做的事情是你在学习,你正在建立关于人工智能如何工作的直觉。

You’re understanding what is its strengths and weaknesses?

您了解它的优点和缺点是什么吗?

Not even the current version, but the next version and so on.

甚至不是当前版本,而是下一个版本等等。

What does it mean to teach an AI system about the world?

向人工智能系统传授有关世界的知识意味着什么?

What kind of information does it need to make effective decisions?

需要什么样的信息才能做出有效的决策?

I think that does transfer to smarter and smarter models.

我认为这确实会转化为越来越智能的模型。

You’ll need to make less rigorous and specific in details instructions over time, but you still have to have that kind of thing.

随着时间的推移,你需要制定不那么严格和具体的详细说明,但你仍然必须有这样的东西。

4:22:21 I think it’s a skill of almost empathy with an AI system because it doesn’t know…

我认为这是一种几乎与人工智能系统产生共鸣的技能,因为它不知道……

You know what it’s missing?

你知道它缺少什么吗?

It’s missing common sense.

它缺乏常识。

It’s missing long- term memory.

它缺少长期记忆。

A lot of things, when we talk to other humans, they have a basic common sense about reality, and AI systems often lack that kind of common sense.

很多事情,当我们与其他人类交谈时,他们对现实有基本的常识,而人工智能系统往往缺乏这种常识。

And they also don’t remember things.

而且他们也不记得事情。

You have to realize there’s a constant blank slate happening.

你必须意识到不断出现空白。

It’s almost just a skill of talking to an AI system that I’m training.

这几乎只是与我正在训练的人工智能系统交谈的技能。

And by having to write all those prompts and communicating back and forth to understand what kind of prompts work better or not, you build up that intuition.

通过编写所有这些提示并来回沟通以了解哪种提示效果更好或哪种效果更好,您可以建立这种直觉。

And also just raw the skill of reading somebody else’s code.

并且还只是培养阅读别人代码的技能。

Maybe for people who work on large teams, that’s a skill that’s already developed.

也许对于在大型团队中工作的人来说,这是一项已经发展起来的技能。

For me, not so much, so learning how to modify the code that somebody else written is a real skill.

对我来说,没有那么多,所以学习如何修改别人编写的代码是一项真正的技能。

4:23:23 And also, the other thing you mentioned, which is considering another perspective on a piece of code is really nice, but it is also a skill to understand, okay, this is what you did.

而且,你提到的另一件事,即从另一个角度考虑一段代码确实很好,但这也是一种理解技能,好吧,这就是你所做的。

There’s a skill to asking a question that code that’s been generated such that you can have a conversation about the approach that was taken.

有一种技巧可以向生成的代码提出问题,以便您可以就所采用的方法进行对话。

I think there’s just a lot of subtle, little skills involved in a cooperative endeavor to code, kind of like there was a real skill issue between you and Teej when you guys did the video of two idiots, one keyboard.

我认为合作编码涉及到很多微妙的小技能,就像当你们制作两个白痴、一个键盘的视频时,你和 Teej 之间存在真正的技能问题。

People should go watch.

人们应该去观看。

4:24:00 You guys did the video of two idiots, one keyboard, People should go watch that video, where you guys obviously sucked at it.

你们制作了两个白痴,一个键盘的视频,人们应该去看那个视频,你们显然很烂。

ThePrimeagen4:24:07

Yeah, co-using.

是的,共同使用。

Lex Fridman4:24:08

That was pretty cool, which you guys did, which is controlling one Neovim interface from two different keyboards.

这非常酷,你们就这么做了,从两个不同的键盘控制一个 Neovim 界面。

ThePrimeagen4:24:15

Yeah.

是的。

4:24:15 And then we each get an allowance of certain characters or motions we could perform.

然后我们每个人都会获得可以执行的某些角色或动作的许可。

Lex Fridman4:24:19

Yeah.

是的。

4:24:19 And so you both had to communicate together.

所以你们俩必须一起沟通。

That’s a real skill.

这是一项真正的技能。

I’m sure you can get super efficient with that, but it just takes time to learn that kind of thing.

我相信你可以非常高效地做到这一点,但学习这类东西只是需要时间。

So yeah, I think there’s some value to it, but I think there’s a learning curve.

所以,是的,我认为它有一定的价值,但我认为有一个学习曲线。

ThePrimeagen4:24:37

One thing to be pretty clear is that I actually use AI quite a bit.

需要明确的一件事是,我实际上经常使用人工智能。

4:24:37 I just don’t use it for programming.

我只是不使用它来编程。

And so one thing I’ve been trying to get it to is to be able to have a long interview or understand what Twitch Chat is saying and become Twitch chat and be able to speak as if it is Twitch chat.

因此,我一直在努力实现的一件事是能够进行长时间采访或理解 Twitch Chat 在说什么,成为 Twitch 聊天,并且能够像 Twitch 聊天一样说话。

Try to learn how to prompt it in different ways.

尝试学习如何以不同的方式提示它。

And so I think those things for me are just really fun.

所以我认为这些事情对我来说真的很有趣。

4:24:56 I tried to get it to learn how to play tower defense.

我试图让它学习如何玩塔防。

I made a tower defense game in Zig and then made it play tower defense, and then played a Claude 3.5 against OpenAI.

我在Zig中做了一个塔防游戏,然后让它玩塔防,然后和OpenAI玩了一个Claude 3.5。

Claude 3.5 would do better during the daytimes, and OpenAI did better during the nighttimes.

Claude 3.5 在白天表现更好,而 OpenAI 在夜间表现更好。

I don’t know why, I have no idea what was going on there, but one would just start winning and the other one would start losing.

我不知道为什么,我不知道那里发生了什么,但一个人会开始赢,另一个人会开始输。

It was just very strange.

这真是太奇怪了。

And so it’s just this, I’m learning to prompt well, but I’m learning to prompt in a very different axis.

所以就是这样,我正在学习如何进行良好的提示,但我正在学习在一个非常不同的轴上进行提示。

I just don’t find it very useful yet in programming.

我只是觉得它在编程方面还不是很有用。

Lex Fridman4:25:23

In programming.

在编程中。

4:25:23 And I should also say that I’m using it in every walk of life, in every context.

我还应该说,我在各行各业、各种情况下都使用它。

I use that same kind of exploration about prompts and so on, I’m using and learning.

我对提示等进行同样的探索,我正在使用和学习。

I think it legit is a whole field in itself.

我认为它本身就是一个合法的领域。

ThePrimeagen4:25:41

Yeah.

是的。

Lex Fridman4:25:42

Prompt engineering and how to interact with AI systems, I think it’s worth the investment.

及时的工程以及如何与人工智能系统交互,我认为这是值得投资的。

4:25:42 Can you actually speak to that?

你真的能说出来吗?

Because I saw you’re basically pulling from Twitch chat and having an LLM speak.

因为我看到你基本上是从 Twitch 聊天中退出并进行法学硕士演讲。

I didn’t realize, you’re not reading the exact chat messages.

我没有意识到,您没有阅读确切的聊天消息。

ThePrimeagen4:26:04

Yeah.

是的。

Lex Fridman4:26:04

You’re doing kind of some kind of summarization?

你正在做某种总结吗?

ThePrimeagen4:26:07

Yeah.

是的。

4:26:07 So I ended up making like eight queries off to OpenAI where it’s just like the first thing is like I have it have it like a default personality.

所以我最终向 OpenAI 提出了八次查询,就像第一件事就是我拥有它就像默认个性一样。

“Hey, you’re Randall, the manager, you’re a software engineering manager.” Kind of explain their position, what they like, what they don’t like, and then be like, “These are the list of thoughts you have in your head and you need to talk to this person and ask them a question.”

“嘿,你是经理兰德尔,你是一名软件工程经理。”解释一下他们的立场,他们喜欢什么,不喜欢什么,然后说,“这些是你脑子里的想法清单,你需要和这个人谈谈并问他们一个问题。”

Lex Fridman4:26:28

This is amazing.

这太棒了。

ThePrimeagen4:26:28

“Give me 10 of these responses that you think are probably thoughts that you have and you want to ask.” Make it kind of give you a list and then be like, “Okay.” Then re-prompt and be like, “Hey, you’re Randall, you’re this, this, this, this, this.

“请给我 10 个你认为可能是你有的想法并且你想问的答案。”让它给你一个清单,然后说“好吧”。然后重新提示,“嘿,你是兰德尔,你是这个,这个,这个,这个,这个。

4:26:28 You have these 10 questions before you and now you need to select one of them and reword it in a way that sounds more like you, the engineering manager.” And I’m constantly trying to make it iterate on itself as opposed to just one-shotting it.

您面前有这 10 个问题,现在您需要选择其中一个,并以一种听起来更像您(工程经理)的方式重新表述。”我不断地尝试让它自我迭代,而不是一次性完成。

And I found if I iterate too much, it loses what it was originally trying to ask if I don’t do it enough and it’s just too degenerate from Twitch chat.

我发现,如果我迭代太多,它就会失去它最初想要询问的内容,如果我做得不够,而且从 Twitch 聊天来看,它太堕落了。

And so it’s like I have a lot of improvement to do with this idea-

所以对于这个想法我还有很多改进的地方——

Lex Fridman4:27:07

Just to clarify, you’re feeding in Twitch chat, “You’re a manager, these are the thoughts you have in your head, pick out some of the most profound thoughts”?

澄清一下,你在 Twitch 聊天中留言,“你是一名经理,这些是你脑子里的想法,挑出一些最深刻的想法”?

ThePrimeagen4:27:20

Effectively.

有效地。

4:27:20 It’s like depending on what I want it to do, I’m trying to work on a better system still for it.

这就像根据我想要它做什么,我正在努力开发一个更好的系统来实现它。

Lex Fridman4:27:20

Brilliant.

杰出的。

ThePrimeagen4:27:25

And so it’s like, “How can I give voice to Twitch chat?

就像,“我如何为 Twitch 聊天提供语音?

4:27:25 Can I make it so that I can create adversarial characters against Twitch chat or for Twitch chat?

我可以创建针对 Twitch 聊天或 Twitch 聊天的敌对角色吗?

Can I incorporate YouTube?” All that kind of stuff.

我可以合并 YouTube 吗?”所有这些东西。

And how do you describe to an LLM to role-play into its position?

您如何向法学硕士描述其职位的角色扮演?

And so just thinking through those kinds of things.

所以只是想一想这些事情。

So maybe I am having some prompt skills, but it’s just not in the coding world yet.

所以也许我拥有一些即时技能,但它还没有进入编码世界。

Lex Fridman4:27:46

Sure.

当然。

ThePrimeagen4:27:47

One day I’ll get there.

有一天我会到达那里。

Lex Fridman4:27:48

I saw that you were playing with different voices.

我看到你们在用不同的声音演奏。

4:27:48 There was like a sexy voice?

好像有性感的声音?

ThePrimeagen4:27:54

That started off as a French voice-

一开始是一个法语声音——

Lex Fridman4:27:55

French voice?

法语声音?

ThePrimeagen4:27:56

…

……

4:27:56 and then it turns out ElevenLabs just cannot do a French lady.

事实证明,ElevenLabs 无法做一位法国女士。

And when you do multilingual French lady, she starts talking.

当你做多语言法国女士时,她开始说话。

It’s like, “What?

就像,“什么?

What is this?”

这是什么?

Lex Fridman4:28:08

I tuned into one of your streams and there’s this lady in a sexualized way.

我收听了你的一个直播,发现这位女士以性感的方式出现。

ThePrimeagen4:28:16

It became too funny.

这变得太搞笑了。

4:28:16 And so we call her Not French Stormy Daniels.

所以我们称她为“非法国斯托米·丹尼尔斯”。

Lex Fridman4:28:20

Oh, nice.

哦,不错。

ThePrimeagen4:28:21

Yeah.

是的。

4:28:21 But I want to go back to the AI and some of the aspects.

但我想回到人工智能和一些方面。

Lex Fridman4:28:24

Sure.

当然。

ThePrimeagen4:28:25

And so my big gripe with AI has nothing to do with its capabilities.

因此,我对人工智能的不满与其能力无关。

4:28:25 It’s exactly capable, as it should be capable, because that’s what people programmed it as.

它完全有能力,因为它应该有能力,因为这就是人们对它的编程。

The things that I really dislike is, A, there’s a whole group of people that are just like, “The end is nigh.

我真正不喜欢的是,A,有一整群人都在说,“末日快到了。

AI is here, you just need to stop programming.” I cannot tell you, even you mentioned Peter levels earlier, he made some sort of tweet and one of the person’s responses was, “No one in 2025 or whatever should be acquiring hard skills.

人工智能已经到来,你只需要停止编程。”我不能告诉你,即使你之前提到了彼得·水平,他也发了某种推文,其中一个人的回应是,“在 2025 年或其他什么情况下,没有人应该获得硬技能。

You should rely on everything for the AI effectively.” And it’s just like these are really damning pieces of advice for young people.

你应该有效地依赖人工智能的一切。”就好像这些对年轻人来说确实是非常糟糕的建议。

Young people are being told that you should never become an expert in anything, you should always offload.

人们告诉年轻人,你永远不应该成为任何事情的专家,你应该永远卸下包袱。

4:29:04 And the problem is that anyone worth any of their salt will tell you that AI, though can produce code, is going to get it wrong in a huge number of cases.

问题是,任何有能力的人都会告诉你,人工智能虽然可以生成代码,但在很多情况下都会出错。

And as the code becomes bigger or more complex or more input, it’s going to just start kind of sloshing back and forth between bugs.

随着代码变得更大、更复杂或输入更多,它就会开始在错误之间来回晃动。

And so if you don’t have those hard skills and you’re not ultimately the driver at the end of the day, you’re going to really find some hard times, and your ability to progress will be directly bound to how good the LLMs are.

因此,如果你不具备这些硬技能,并且最终也不是最终的推动者,那么你真的会遇到一些困难,而你的进步能力将直接与法学硕士的好坏挂钩。

So if you believe that the LLMs will be vastly superior to humans in the next year, maybe that’s a good bet.

因此,如果您相信明年法学硕士将远远优于人类,也许这是一个不错的选择。

But if they aren’t, then your skill ceiling is bound to whatever they are.

但如果不是,那么你的技能上限就与它们有关。

4:29:42 And even beyond that, there’s just a level of information problem, which is like, “Do we even have enough compute power to be able to solve things at this real scale?” And even if we did, if everybody started using it right now, “Do we even have the compute power for everybody to use it right now?” There’s a lot of kind of bounding questions, there’s privacy concerns, and I just don’t want people to make the immediate, or what appears to be the obvious choice, where you don’t need hard skills, you don’t need these things, we just need to only think creatively.

除此之外,还存在一定程度的信息问题,比如“我们是否有足够的计算能力来解决如此大规模的问题?”即使我们这样做了,如果每个人现在都开始使用它,“我们是否有计算能力供每个人现在使用它?”有很多边界问题,有隐私问题,我只是不想让人们立即做出选择,或者看起来是显而易见的选择,你不需要硬技能,你不需要这些东西,我们只需要创造性地思考。

It’s like, no, I don’t think so.

就像,不,我不这么认为。

I think these hard skills are going to be around for quite some time even with a massive improvement in the AI, you’re going to really be needed to step in regularly for quite some time as far as I can tell.

我认为,即使人工智能有了巨大的进步,这些硬技能也会存在相当长一段时间,据我所知,在相当长的一段时间内,你确实需要定期介入。

Lex Fridman4:30:27

But I also think even on top of that, just even acquiring the hard skills or whether that means, programming from scratch, for example, in the context of programming, that’s going to make you better at steering the AI, not just correcting the AI, but steering the AI.

但我也认为,即使最重要的是,即使是获得硬技能,或者是否意味着从头开始编程,例如,在编程的背景下,这将使你更好地操纵人工智能,不仅仅是纠正人工智能,而是操纵人工智能。

4:30:27 I think there is some kind of, if you know how a computer works, you can program Python better.

我认为,如果你知道计算机是如何工作的,你就可以更好地编写 Python 程序。

It’s maybe counterintuitive, but if you know the low level abstractions, some intuition around that, you can steer the high level abstractions better.

这可能违反直觉,但如果您了解低级抽象,并对此有一些直觉,您可以更好地引导高级抽象。

ThePrimeagen4:31:01

Yeah.

是的。

Lex Fridman4:31:01

But that just seems to be the case.

但事实似乎只是如此。

4:31:01 Unless of course AI becomes like truly super intelligent like many levels above, but it’s very unlikely in the short term.

当然,除非人工智能变得像上面的许多级别一样真正超级智能,但短期内不太可能。

And in the long term it’s still good as it gets better and better and better to be able to ride the wave of the improvement.

从长远来看,它仍然是好的,因为它变得越来越好,能够驾驭改进的浪潮。

ThePrimeagen4:31:19

Yeah, I’m on that team very much so.

是的,我非常属于那个团队。

Lex Fridman4:31:21

A lot of people have written to me, I think a lot of developers, programmers are really concerned about the future of their profession in the context of quickly improving AI systems.

很多人写信给我,我认为很多开发人员、程序员都非常关心在快速改进人工智能系统的背景下他们职业的未来。

4:31:21 So do you think AI will eventually replace programmers?

那么你认为人工智能最终会取代程序员吗?

ThePrimeagen4:31:37

The hard part about that phrase is you use the term eventually, meaning do I think in five years, 10 years, a hundred years?

这句话最难的部分是你最终使用这个词,意思是我认为五年后、十年后、一百年后?

4:31:37 What does that term actually mean?

该术语的实际含义是什么?

I think at some point if all things continue at the current rate of improvement, there does come a point where programming as a hard skill does become unnecessary.

我认为,在某些时候,如果所有事情都按照目前的改进速度继续下去,那么编程作为一项硬技能确实会变得不必要。

At some eventual point, way, way down the road, yes.

是的,在最终的某个时刻,一路走下去。

I don’t know what that point looks like.

我不知道那个点是什么样的。

I don’t know when it’s going to happen.

我不知道什么时候会发生。

I don’t even attempt to make predictions about that.

我什至不想对此做出预测。

But there are still some leaps and bounds we need to make.

但我们仍然需要实现一些跨越。

4:32:11 I mean even just societally, there’s plenty of companies that don’t even allow you to use AI.

我的意思是,即使只是在社会上,有很多公司甚至不允许你使用人工智能。

I mean, there’s just practical problems that exist.

我的意思是,只存在实际问题。

So that’s a question I just try not to answer in the direct sense.

所以这是一个我尽量不直接回答的问题。

There will come a day if humanity continues and all things continue in a good positive direction, where a lot of skills will go out the window due to immense computing systems.

如果人类继续发展,所有事情都朝着良好的积极方向发展,那么有一天,由于巨大的计算系统,许多技能将被淘汰。

So, yeah, I’ll give you that one.

所以,是的,我会给你那个。

But it’s just like if I don’t think it has anything in the near term, there’s been no computer improvement up to this date that did not result in more jobs.

但这就像,如果我认为它在短期内没有任何作用,那么到目前为止,计算机的改进并没有带来更多的就业机会。

Lex Fridman4:32:46

Yeah, absolutely.

是的,绝对是。

4:32:46 I would say that I think it depends how you define programming also, because when the community moves from assembly to C, from C to, I don’t know, Python and JavaScript, that’s evolution.

我想说的是,我认为这也取决于你如何定义编程,因为当社区从汇编转向 C,从 C 转向(我不知道)Python 和 JavaScript,这就是进化。

That’s really painful for a lot of people who are used to programming that lower-level language, so there’s going to be a continuous evolution.

对于许多习惯于使用较低级语言进行编程的人来说,这确实很痛苦,因此将会不断发展。

And maybe that means with AI, there’s going to be more and more evolution towards natural language as part of the tool chain like being able to learn how to write proper prompts.

也许这意味着人工智能将越来越多地向自然语言发展,成为工具链的一部分,比如能够学习如何编写正确的提示。

Yeah, because natural language is still a language.

是的,因为自然语言仍然是一种语言。

And in the long term, it’s possible that a large percentage of programming is natural language.

从长远来看,很大一部分编程可能是自然语言。

There are probably still going to be some percentage that’s not, that’s going to be extremely structured language.

可能仍然有一定比例的语言不是非常结构化的语言。

ThePrimeagen4:33:45

Right now, I don’t think we are anywhere near natural language being possible because it’s ambiguous.

目前,我认为我们距离自然语言还很遥远,因为它是模棱两可的。

4:33:45 And I think what we’ll end up seeing as people push really hard into this, you’re going to see some sort of pseudo-lang, which is going to be a language for AIs in which you prompt, which is going to be less ambiguous.

我认为,当人们非常努力地推动这一点时,我们最终会看到,你会看到某种伪语言,这将是一种用于人工智能的语言,你可以在其中进行提示,这将不再那么模糊。

People keep striving towards the less ambiguous state.

人们不断努力走向不那么模糊的状态。

And at that point you’re just programming yet another evolution into a higher order language.

那时,您只是在编写向高阶语言的又一次演变。

And perhaps that is a future in which people will have a more terse language.

也许在未来,人们将拥有更简洁的语言。

I’m just not sure how much more terse it can get.

我只是不确定它还能简洁多少。

4:34:19 I mean, all I see is that if you say natural language can be used in the pipeline, you’ve just made that many more people can become programmers, which means that much more software will eventually be created, which means there’s that much more software that will need to be maintained, and just becomes a real big snowballing effect.

我的意思是,我所看到的是,如果你说自然语言可以在管道中使用,那么你就让更多的人可以成为程序员,这意味着最终将创建更多的软件,这意味着需要维护更多的软件,并且只会产生真正的滚雪球效应。

Lex Fridman4:34:37

But there’s just people who are programmers who are worried about their jobs.

但只有程序员担心自己的工作。

4:34:37 Not a complete replacement, but maybe a rapid evolution of what it means to be a programmer.

虽然不是完全替代,但也许是程序员意义的快速演变。

Like you mentioned, if natural language becomes a way that you can communicate or you can program, that means the pool of people who can get programming jobs changes rapidly, so they’re really concerned.

就像你提到的,如果自然语言成为一种沟通或编程的方式,这意味着可以获得编程工作的人会迅速变化,所以他们真的很担心。

ThePrimeagen4:35:01

And to some extent, because no matter how much we want to say how good AI is, there comes a point where there exists a bug, there exists a large piece of software in which to describe the change requires just pages and pages of description to the point where it is significantly just faster or easier for someone to just whip something out.

在某种程度上,因为无论我们多么想说人工智能有多好,总会有一个错误存在的时候,存在一个大型软件,在其中描述变化只需要一页又一页的描述,以至于人们可以更快或更容易地提出一些东西。

4:35:01 There’s definitely a balance there, it’s not like a perfect trade-off.

那里肯定有一个平衡,这并不是一个完美的权衡。

And so I think people need to quit worrying and think about how they can integrate it and try, like prove it to themselves.

所以我认为人们需要停止担心,并思考如何整合它并尝试,比如向自己证明这一点。

Do they actually make themselves irrelevant?

他们真的让自己变得无关紧要吗?

4:35:37 And if you truly make yourself irrelevant, I would challenge you that you’re just doing something that was just slightly too complicated to automate.

如果你真的让自己变得无关紧要,我会挑战你,你只是在做一些有点过于复杂而无法自动化的事情。

If you’re only writing just straight up crud apps from backend to front end and simple table displays, yeah, maybe we just couldn’t quite automate that away and now we just have something that can just do that a little bit better, so now that’s automated away, but that’s not really programming.

如果你只是直接编写从后端到前端的粗略应用程序和简单的表格显示,是的,也许我们无法完全自动化,现在我们只是有一些东西可以做得更好一点,所以现在这是自动化的,但这不是真正的编程。

That’s almost like building Legos at that point, where the designs are already set, you just simply have to move piece from bag into correct position.

这几乎就像构建乐高积木一样,设计已经确定,您只需将包中的部件移动到正确的位置即可。

Lex Fridman4:36:11

Yeah.

是的。

4:36:11 Is there something you recommend how a developer or programmer could avoid the situation where AI can automate them away?

您是否建议开发人员或程序员如何避免人工智能将其自动化的情况?

ThePrimeagen4:36:23

I think that the bigger the project you can manage, the bigger the thing you can build, the more understanding both down and up the stack you can go, the more valuable you become.

我认为你可以管理的项目越大,你可以构建的东西就越大,你对堆栈的上下了解越多,你就会变得更有价值。

4:36:23 Because if you understand how to build something in the front end, okay, well, now you kick off some LLM task of some sort, that’s going to go off and make a change to the front end.

因为如果你了解如何在前端构建某些东西,那么好吧,现在你开始某种 LLM 任务,这将会开始并对前端进行更改。

Okay, while it’s doing that, you can go and kick off something in the CLI tool, you can go and you can go kick off something somewhere else.

好的,在执行此操作时,您可以在 CLI 工具中启动某些操作,也可以在其他地方启动某些操作。

And as these things come back with results, you can review the results, make sure it’s the way you want it, change it, commit it, go to the next.

当这些事情带着结果回来时,您可以查看结果,确保它是您想要的方式,更改它,提交它,进入下一个。

You only become more, as you said in the end, more productive if we reach this state where it’s truly able to do that.

正如您最后所说,只有当我们达到真正能够做到这一点的状态时,您才会变得更加高效。

Lex Fridman4:37:00

I think there is like a skill to working together with AI, which is why I’m kind of excited to watch you keep trying to do it.

我认为与人工智能合作是一种技能,这就是为什么我很高兴看到你不断尝试这样做。

ThePrimeagen4:37:08

Yeah.

是的。

Lex Fridman4:37:09

It’s like we don’t know how it fits exactly, but it feels like AI should be a boost to productivity.

就好像我们不知道它到底是如何适应的,但感觉人工智能应该能够提高生产力。

4:37:09 And I definitely think it’s a boost to just the joy of programming.

我绝对认为这增强了编程的乐趣。

I think there’s a lot of people, yeah, it’s a job, but it’s also a source of meaning, a source of joy.

我想有很多人,是的,这是一份工作,但它也是意义的源泉,快乐的源泉。

Programming is fun, you’re creating something cool, and also potentially that a lot of people use.

编程很有趣,你正在创造一些很酷的东西,而且也可能有很多人使用。

ThePrimeagen4:37:34

There’s this one thing that just really frustrates me, and this is kind of going into the Devin category, which is that I want an intern that cares.

有一件事情真的让我很沮丧,这有点像德文类别,那就是我想要一个关心的实习生。

Lex Fridman4:37:41

Yeah.

是的。

ThePrimeagen4:37:42

You don’t get that out of an LLM.

你无法从法学硕士中得到这一点。

4:37:42 It does not care, meaning that I don’t want it just to make a UI for me that displays these icons like I asked, I want it to care, I want it to think about it, I want it to present to me and me being like, “Oh yeah, yeah, that’s great.” And then me to make changes.

它不关心,这意味着我不希望它只是为我制作一个像我要求的那样显示这些图标的 UI,我希望它关心,我希望它考虑它,我希望它呈现给我,我就像,“哦,是的,是的,那太棒了。”然后我做出改变。

And then later on it’s like, “Actually, I really rethought about this and actually it’d be way better if we change…” It doesn’t actually care about the craft.

然后后来就像,“实际上,我真的重新考虑了这一点,实际上如果我们改变的话会更好......”它实际上并不关心工艺。

But when you work with an intern or you work with somebody else, they care.

但当你与实习生或其他人一起工作时,他们会关心你。

When they factor something, they actually go over and go, “Oh yeah, this is actually kind of bad.

当他们考虑某些事情时,他们实际上会过去并说:“哦,是的,这实际上有点糟糕。

I’m going to come back to that.” They finish this, they go back over here and they make this even better.

我会回来讨论这一点。”他们完成了这个,他们回到这里,他们让这个变得更好。

They actually care about the thing itself.

他们实际上关心的是事情本身。

It’s a completely different experience.

这是一种完全不同的体验。

I just want something that also cares that wants to make the thing better, not just simply accomplish the task.

我只是想要一些也关心并想让事情变得更好的东西,而不仅仅是简单地完成任务。

4:38:24 And I know I’m asking way too much that’s not…

我知道我的要求太多了,这不是……

Now we’re getting into Blade Runner’s level AI.

现在我们正在进入《银翼杀手》的人工智能关卡。

I just want something that it just feels like I’m missing that, where it’s just like it will complete the task to whatever level it understood what I was prompting, but it doesn’t actually care about it.

我只是想要一些感觉就像我错过了的东西,就像它会完成任务到它理解我所提示的任何级别,但它实际上并不关心它。

Lex Fridman4:38:42

I mean, there’s so many aspects to caring versus the trivial version of that is a kind of restlessness where you want to keep improving, and I think that is very much AI could do, where it constantly just ask itself, “Can I make this better?” And if it keeps doing that, it probably is going to take it to some ridiculous place, so actually it’s also knowing when to stop.

我的意思是,关怀有很多方面,而琐碎的关怀是一种你想要不断改进的不安,我认为这是人工智能可以做的,它不断地问自己,“我可以做得更好吗?”如果它继续这样做,它可能会把它带到一些荒谬的地方,所以实际上它也知道何时停止。

4:38:42 I think developing something you can call taste, which is like trying, working extremely hard, constantly improving until it just feels right.

我认为培养一种你可以称之为品味的东西,就像尝试、非常努力地工作、不断改进,直到感觉合适为止。

This is it.

就是这样。

And I think that is a thing that AI is not good at where it’s just like, “Yes, this is it.”

我认为这是人工智能不擅长的事情,它就像“是的,就是这样”。

ThePrimeagen4:39:26

I’ve had write iterated three times and three was the-

我已经重复写了三次,其中三次是-

Lex Fridman4:39:27

Yeah, that’s it.

是的,就是这样。

4:39:27 We’re now there.

我们现在就在那里。

And I think ultimately that is what humans are amazing at, which is like knowing when something is right like, “This is it.” Especially as you understand, as you develop taste in a particular industry, in a particular context application, knowing like, “This is it.

我认为最终这就是人类的神奇之处,就像知道什么时候事情是正确的,就像“就是这样”。尤其是当你了解时,当你在特定行业、特定上下文应用程序中培养品味时,你会知道,“就是这样。

Yeah, the rounded corners on this button, that’s exactly that.

是的,这个按钮上的圆角,就是这样。

That’s beautiful.” So it’s just a sense of beauty, a sense of function, and efficiency, and so on.

太漂亮了。”所以就是美感、功能感、效率感等等。

Yeah, but humans could do almost like supervision of AI systems in that context.

是的,但在这种情况下,人类几乎可以对人工智能系统进行监督。

ThePrimeagen4:40:08

Yeah.

是的。

Lex Fridman4:40:09

Yeah.

是的。

4:40:09 You’ve ranted about Devin just full of rage.

你对德文的咆哮充满了愤怒。

ThePrimeagen4:40:15

I mean, first off, the people that run Devin are extremely nice.

我的意思是,首先,管理 Devin 的人都非常友善。

4:40:15 I want that to be understood.

我希望这一点能够被理解。

I don’t have some sort of upsetness against them or anything like that.

我对他们没有任何不满或类似的情绪。

Second, Devin, it’s like the full package when it comes to programming.

其次,Devin,就编程而言,它就像完整的包。

So it’s going to have, you’re going to give it a task and a repo, and it’s going to go through, it’s going to try to understand the repo and the task, make the change to the repo by exploring it, then actually make a commit to GitHub and explain what it did.

因此,你将给它一个任务和一个存储库,它会尝试理解存储库和任务,通过探索来对存储库进行更改,然后实际向 GitHub 提交并解释它做了什么。

So hopefully you have this whole offline thing, which is the other part of this AI part that I actually really like, where it’s just like, “Go fix this thing.” Then I can just go and unbroke and fix this one thing and come back and go, “Okay, good enough, merge, boom.” I want that kind of running, being able to complete things.

所以希望你能拥有整个离线的东西,这是我真正喜欢的人工智能部分的另一部分,就像“去修复这个东西”。然后我就可以去解决并修复这一件事,然后回来说:“好吧,足够好了,合并,繁荣。”我想要那种奔跑,能够完成事情。

4:41:00 I think the ideal solution is that you can start giving it small bugs and it goes and fixes these bugs and you can just come back to these backlog tickets that no one ever does, and it actually starts going through these backlog tickets, and it’s actually a really amazing experience.

我认为理想的解决方案是,你可以开始给它一些小错误,它会修复这些错误,你可以回到这些没有人做过的积压票据,它实际上开始处理这些积压票据,这实际上是一种非常惊人的体验。

So I love the idea.

所以我喜欢这个主意。

I think we can all agree that that sounds great, but every time I’ve done it and I’ve asked it for many and I try to keep narrowing down the problems, the more narrow the problem, the better it does.

我想我们都同意这听起来很棒,但每次我这样做时,我都会问很多人,我会尽力缩小问题范围,问题范围越窄,效果就越好。

So if I’m like, “Just add one singular icon.

所以,如果我想,“只需添加一个单一的图标。

And when it gets clicked, I want you to do this just console, click me.

当它被单击时,我希望您只需控制台即可执行此操作,请单击我。

At least create me an SVG and place it so it’s nicely placed.” The more narrow the task, the more likely it’s to be successful.

至少为我创建一个 SVG 并将其放置在合适的位置。”任务范围越窄,成功的可能性就越大。

4:41:39 There’s like a certain level of specifying where if you specify too much, it just like can’t do it.

就像有一定程度的指定,如果指定太多,就好像做不到一样。

If you specify too little, it just does weird things.

如果你指定的太少,它只会做奇怪的事情。

So it’s kind of like this very kind of fun, unique way you have to play the balance game.

所以这有点像这种非常有趣、独特的方式,你必须玩平衡游戏。

But so far, every time I do these things, I always end up going, “Gosh, I should just get better at Tailwind and write it myself,” because I always go back and I just rewrite it, and then it’s just like, “Dang it.

但到目前为止,每次我做这些事情时,我总是会说,“天哪,我应该在 Tailwind 上做得更好,然后自己写它,”因为我总是回去重写它,然后就像,“该死的。

What am I saving at the end?” I feel like I’m not saving anything yet.

我最后能节省什么?”我觉得我还没有保存任何东西。

And it’s just like this, “I want it so bad.” I actually want AI to be great because then I can really go fast.

就像这样,“我非常想要它。”我实际上希望人工智能变得伟大,因为这样我就能真正走得更快。

I mean, I can go amazing fast, but then I always just go, “Gosh, I should have just learned Tailwind myself to like the nth degree and just go fast.”

我的意思是,我可以跑得快得惊人,但我总是会说,“天啊,我自己应该学会 Tailwind 来喜欢第 n 度,然后跑得快。”

Lex Fridman4:42:17

Yeah.

是的。

4:42:17 We should also mention that debugging, this might be intuitive or counterintuitive, AI is really bad at.

我们还应该提到调试,这可能是直观的或违反直觉的,人工智能确实不擅长。

ThePrimeagen4:42:26

Yeah.

是的。

Lex Fridman4:42:27

Like that is one of the hardest…

就像这是最难的之一......

4:42:27 It actually makes you realize how special humans are and how difficult the task of debugging is.

它实际上让你意识到人类是多么特别,调试任务是多么困难。

Obviously, for trivial debugging, maybe you can find bugs, but that is the real art of programming is finding bugs, logical bugs, extremely complicated rare bugs, edge cases.

显然,对于琐碎的调试,也许你可以找到错误,但编程的真正艺术是发现错误、逻辑错误、极其复杂的罕见错误、边缘情况。

AI can assist, but man, the hard ones really require so much context, so much experience, so much intuition from, again, operating in a fog full of uncertainty.

人工智能可以提供帮助,但伙计,困难的事情确实需要如此多的背景、如此多的经验、如此多的直觉,再次在充满不确定性的迷雾中运作。

It’s hard.

这很难。

ThePrimeagen4:43:06

Yeah.

是的。

Lex Fridman4:43:07

Of course AI could maybe create logs and do traces and do some kind of loading a huge amount of data that humans can’t, but ultimately that just means it could be a better assistant in debugging versus the actual lead debugger.

当然,人工智能也许可以创建日志、进行跟踪,并以某种方式加载人类无法完成的大量数据,但最终这意味着它可以成为与实际的主要调试器相比更好的调试助手。

ThePrimeagen4:43:27

Yeah.

是的。

4:43:27 I mean, it’d be great if they could.

我的意思是,如果他们能的话那就太好了。

I mean, the more it can do that, the better, because as far as I can tell, correct me where I’m wrong on this, current state debugging is really, it looks at the code, it looks at the bug problem, it just kind of tries to text-predict where it’s most likely accurate, and then just tries to fix that spot.

我的意思是,它能做到的越多越好,因为据我所知,纠正我在这方面的错误,当前状态调试实际上是,它查看代码,查看错误问题,它只是尝试通过文本预测最可能准确的位置,然后尝试修复该位置。

And so it’s like it’s likely this spot, you said admin panel, it’s slightly off, this, this, this.

所以这可能是这个地方,你说的管理面板,它有点不对劲,这个,这个,这个。

It’s probably this location, which could actually be a really great way to do search, let me do semantic searching, point to me where this is, because maybe that is a really great way to navigate large code bases.

可能就是这个位置,这实际上可能是一种非常好的搜索方式,让我进行语义搜索,告诉我这是在哪里,因为也许这是导航大型代码库的一种非常好的方式。

It’s like smart intelligent search.

这就像智能搜索。

As opposed to trying to make it do the thing, ask it to just help you do the thing in pinpointing problems.

与其试图让它完成任务,不如让它帮助你找出问题。

I’d love to see more of that, because that’s for me is like the exciting part.

我很想看到更多这样的内容,因为这对我来说就像是令人兴奋的部分。

4:44:11 And there’s this really great article by creator or maintainer of curl, it’s the I in the LLM stands for intelligence.

这是由curl 的创建者或维护者写的一篇非常棒的文章,它是LLM 中的I 代表智能。

And he writes curl and maintains curl.

他写了curl并维护了curl。

Curl has been inundated with security problems and all this, and it’s all from LLMs being like, “Oh, I found a security flaw.

Curl 已经被安全问题和所有这些问题所淹没,而这一切都来自于法学硕士,“哦,我发现了一个安全漏洞。

Here’s the security flaw,” details it out in the code.

这是安全缺陷。”代码中详细说明了这一点。

And he’s just like, “Okay, how did you reproduce that?

他就像是,“好吧,你是怎么重现这个的?

Show me,” because if you look at the code right here, that’s actually an impossible situation you’re speaking of.

告诉我,”因为如果你看看这里的代码,这实际上是你所说的不可能的情况。

And it’s just like going in these circles and security right now is being inundated, these bug bounty programs are being inundated by LLM-submitted responses because they can’t actually analyze the code beyond just like basic text prediction.

就像进入这些圈子一样,现在的安全性正在被淹没,这些错误赏金计划正被 LLM 提交的响应淹没,因为他们实际上无法分析除了基本文本预测之外的代码。

“Oh, this is a stir copy.

“哦,这是一个激动人心的副本。

Stir copy is commonly referred, blah, blah, blah, blah.

搅拌复制通常被称为“blah,blah,blah,blah”。

Boom, there you go.

繁荣,就这样。

Here’s the bug.” And it’s just like, “No, that’s actually impossible because the if statement right beforehand leaves the function if the string is too long, so it’s like we don’t even run into this case.

这就是错误。”就像,“不,这实际上是不可能的,因为如果字符串太长,if 语句就会预先离开函数,所以就好像我们根本没有遇到这种情况。

It’s impossible what you’re saying.” So debugging is very interesting.

你说的这些是不可能的。”所以调试是非常有趣的。

Lex Fridman4:45:08

Yeah.

是的。

4:45:08 I mean, that for me would be the big, if it can solve that, not solve that, but improve that, that would be huge, whether it’s agents or just LLMs integrated into IDE.

我的意思是,对我来说,如果它能解决这个问题,而不是解决这个问题,而是改进这个问题,那将是巨大的,无论是代理还是只是集成到 IDE 中的法学硕士。

ThePrimeagen4:45:19

I think there’s this whole idea, I call it a denial of attention.

我认为这就是整个想法,我称之为否认关注。

4:45:19 I think there’s an entire attack vector that’s going to be happening.

我认为将会发生一个完整的攻击向量。

We’re using LLMs to generate fake bug reports, fake all these things to just actually effectively to demotivate and hurt open source maintainers.

我们使用法学硕士来生成虚假的错误报告,伪造所有这些内容,以实际上有效地打击和伤害开源维护人员。

Polykill was the first bug that kind of had this experience, is this denial of attention where an active malicious maintainer just hounded the owner.

Polykill 是第一个有这种经历的 bug,就是这种拒绝关注的行为,一个活跃的恶意维护者刚刚追赶了所有者。

And then a white knight came out and offered to buy some stuff from under them.

然后一个白衣骑士走了出来,提出要从他们手下购买一些东西。

And when they bought it, they actually replaced it with a malicious piece of code and then used it.

当他们购买它时,他们实际上用一段恶意代码替换了它,然后使用它。

So there’s this whole security world that’s developing around using these in a very aggressive format.

因此,整个安全世界正在以一种非常激进的方式围绕使用这些技术而发展。

Lex Fridman4:46:04

I mean, it’s a fascinating world we’re entering into, but I do agree with you that human developers will be a huge part of that world.

我的意思是,我们正在进入一个令人着迷的世界,但我确实同意你的观点,即人类开发人员将成为这个世界的重要组成部分。

ThePrimeagen4:46:11

Yeah.

是的。

Lex Fridman4:46:11

That the job might evolve, but it’s going to be there.

这项工作可能会发生变化,但它会一直存在。

4:46:11 If I can, I didn’t really look at this page, I thought it would be cool to go over with you.

如果可以的话,我并没有真正看过这个页面,我想和你一起看一下会很酷。

This is, again, the-

这又是——

ThePrimeagen4:46:21

Stack overflow, my favorite

堆栈溢出,我的最爱

Lex Fridman4:46:23

…

……

4:46:23 Stack Overflow Developer Survey, talking about their sentiment and usage of AI systems.

Stack Overflow 开发者调查,谈论他们对人工智能系统的看法和使用。

The general sentiment of, yes, 61% say yes, they use it and 25% say no, don’t plan to.

普遍的看法是,是的,61% 的人说是,他们使用它,25% 的人说不,不打算使用。

So majority use it, majority have a favorable sentiment over it, favorable or very favorable or indifferent.

所以大多数人使用它,大多数人对它有好感,喜欢或非常喜欢或漠不关心。

That’s like looks like over 90%.

看起来超过 90%。

ThePrimeagen4:46:52

That’s really surprising that that many people just have no plan in looking into AI.

令人惊讶的是,许多人根本没有研究人工智能的计划。

4:46:52 As much as I don’t like using it for coding, I hope one day I can use it more.

尽管我不喜欢用它来编码,但我希望有一天我可以更多地使用它。

And so it’s like, to me, I’m always looking for the next thing.

所以对我来说,我总是在寻找下一件事情。

I’m just surprised that people are, that, I guess obstinate for it.

我只是惊讶于人们对此的顽固。

Obviously, the second one, the AI tool sentiment, it must be only the users who responded to the top two of that first one just given the amount of respondents.

显然,第二个,即人工智能工具情绪,在给定受访者数量的情况下,一定只有对第一个前两个做出回应的用户。

Lex Fridman4:47:17

I wonder if no and don’t plan to are people who have tried it and quickly built up the intuition like, “This really sucks.”

我想知道是否没有或不打算尝试过并很快建立起直觉,比如“这真的很糟糕”。

ThePrimeagen4:47:25

Yeah.

是的。

Lex Fridman4:47:26

So it could be like experienced programmers.

所以这可能就像经验丰富的程序员一样。

4:47:26 They’re like, “No, this is not making me more productive.” 81% agree that increasing productivity is the biggest benefit that the developers identify for AI tools.

他们会说,“不,这并没有让我更有效率。” 81% 的人同意提高生产力是开发人员认为人工智能工具的最大好处。

Okay, so this is, what are the benefits?

好啦,就是这样,有什么好处呢?

Increased productivity, speed up learning, greater efficiency, improve accuracy in coding, make workload more manageable, improve collaborate.

提高生产力、加快学习速度、提高效率、提高编码准确性、使工作量更易于管理、改善协作。

Where’s the fun, increased fun?

乐趣在哪里,增加的乐趣在哪里?

I would say that’s like number one for me.

我想说这对我来说就像是第一。

ThePrimeagen4:47:55

Maybe speed up learning is like a subcategory of fun.

也许加速学习就像乐趣的一个子类别。

4:47:55 If you’re able to learn more and be able to become better.

如果你能够学到更多并且能够变得更好。

To me, that sounds good.

对我来说,这听起来不错。

Lex Fridman4:48:05

I don’t know.

我不知道。

4:48:05 It’s different because productivity is part of fun too.

这是不同的,因为生产力也是乐趣的一部分。

There is just a lightness.

只有一种轻盈。

I mean, maybe improved collaboration, all of these elements for sure.

我的意思是,也许可以改善协作,所有这些元素都是肯定的。

ThePrimeagen4:48:16

My time using Copilot, there was certainly a level of wonder that would happen for quite some time where it’s just like, it’s just amazing what it can do.

我在使用 Copilot 的时间里,肯定会在相当长的一段时间内产生一定程度的惊奇,就像它能做的事情一样令人惊叹。

Lex Fridman4:48:23

Yeah.

是的。

ThePrimeagen4:48:24

I’m just super impressed by what it can do, even though I don’t use it.

尽管我不使用它,但它的功能给我留下了深刻的印象。

4:48:24 It’s amazing to me that we have something that can even get that close.

让我感到惊讶的是,我们竟然能做到如此接近。

Lex Fridman4:48:31

In terms of accuracy of AI tools, only 2.7% highly trust-

就AI工具的准确性而言,只有2.7%的人高度信任——

ThePrimeagen4:48:37

I would say that you have to be very green to think that you should highly trust an AI output.

我想说的是,你必须非常环保才能认为你应该高度信任人工智能的输出。

4:48:37 You should be very skeptical.

你应该非常怀疑。

Lex Fridman4:48:43

Yeah, I don’t know where I stand.

是的,我不知道自己站在哪里。

4:48:43 Probably somewhat distrust.

大概是有些不信任吧。

Highly distrust seems aggressive.

高度不信任似乎具有攻击性。

ThePrimeagen4:48:47

It does seem a little, true.

看起来确实有一点,确实如此。

4:48:47 You should always assume that there’s something wrong, and then from there you can go and challenge it.

你应该始终假设有什么问题,然后你就可以去挑战它。

Lex Fridman4:48:57

And then estimation of whether AI can handle complex tasks, most people don’t think it can handle complex tasks.

然后估计AI是否可以处理复杂的任务,大多数人不认为它可以处理复杂的任务。

4:48:57 I mean, it seems like people have a good sense of what it’s able to handle and not.

我的意思是,人们似乎很清楚它能够处理什么,不能处理什么。

ThePrimeagen4:49:07

I would argue that people don’t have a good grasp of what complex is in programming.

我认为人们并没有很好地理解编程中的复杂性。

Lex Fridman4:49:11

Sure, yeah.

当然,是的。

ThePrimeagen4:49:12

If you say, “Write me quicksort,” some people will think quicksort’s super complex.

如果你说,“给我写快速排序”,有些人会认为快速排序非常复杂。

4:49:12 But I would argue that that’s actually probably the simplest thing you could ask an AI to do.

但我认为这实际上可能是你可以要求人工智能做的最简单的事情。

Things that are so well documented, it’s going to do a great job at that.

事情有如此详细的记录,它会做得很好。

Lex Fridman4:49:26

Yeah.

是的。

4:49:26 Probably high-level design decisions, which people don’t even use AI for right now, I guess agents are supposed to be doing that kind of stuff.

可能是高层设计决策,人们现在甚至不使用人工智能,我想代理应该做这类事情。

That’s probably the most difficult thing or the most impactful thing, or the most difficult thing is finding bugs.

这可能是最困难的事情或最有影响力的事情,或者最困难的事情就是发现错误。

ThePrimeagen4:49:42

Yeah.

是的。

Lex Fridman4:49:43

AI tools next year, writing code, and so on.

明年的人工智能工具、编写代码等等。

ThePrimeagen4:49:47

Now, this one, the ethics part.

现在,这是道德部分。

4:49:47 I’m actually super curious your take on the ethics.

我实际上非常好奇你对道德的看法。

Will we see Europe laying down some new regulations?

我们会看到欧洲制定一些新法规吗?

Lex Fridman4:49:56

Oh, boy.

哦,男孩。

ThePrimeagen4:49:56

What about artists?

那么艺术家呢?

4:49:56 What about people that are really…

那些真正……的人又怎样呢?

Because the difference between coding and artists is very, very simple.

因为编码和艺术家之间的区别非常非常简单。

If you gave me a sheet of paper, I could draw you a crab.

如果你给我一张纸,我可以给你画一只螃蟹。

You go, “That’s a crab.” But you can’t do that with coding.

你说:“那是一只螃蟹。”但你不能通过编码来做到这一点。

It’s like it’s right or it’s wrong.

就好像它是对的或它是错的。

There’s not a variation of interpretation for what a crab is.

对于螃蟹是什么,没有任何不同的解释。

It’s like, “No, you cannot make that statement.” It’s very bounded in what it can express.

就像,“不,你不能发表这样的声明。”它所能表达的内容非常有限。

And I could see why artists, that’s a very frustrating point.

我可以理解为什么艺术家,这是一个非常令人沮丧的点。

And then who gets rewarded for all that?

那么谁会因此获得奖励呢?

4:50:28 And then there’s like the whole thing with coding and licenses.

然后就是编码和许可证的整个事情。

How much of it is GPL licenses, do you think, they’ve scraped and used as training data?

您认为,其中有多少是 GPL 许可证,他们已经抓取并用作培训数据?

GPL forces open source.

GPL 强制开源。

What are you going to do with that one?

你打算用那个做什么?

That means your model might need to be open source.

这意味着您的模型可能需要开源。

OpenAI may have to get forced open, all their previous stuff if there’s any hint of GPL.

如果有任何 GPL 的暗示,OpenAI 可能不得不强行开放他们以前的所有东西。

Lex Fridman4:50:48

Yeah, that’s a weird one.

是的,这很奇怪。

4:50:48 That’s a really weird one because most of these models I think are training on data they don’t technically have rights to be training on.

这是一个非常奇怪的问题,因为我认为大多数模型都是在数据上进行训练,从技术上讲,他们无权进行训练。

ThePrimeagen4:50:56

Yeah, there’s a lot of questions.

是的,有很多问题。

Lex Fridman4:50:58

There’s an unspoken, it’s a real Wild West.

有一种不言而喻的感觉,这是真正的狂野西部。

ThePrimeagen4:51:01

Because you could imagine that, I always use Europe because they tend to have like maybe the most consumer protection laws out there.

因为你可以想象,我总是使用欧洲,因为他们往往拥有最多的消费者保护法。

4:51:01 You could imagine what happens if a law came down that said that if you used a model that produced GPL potential code, you have to open source?

你可以想象,如果一项法律规定,如果你使用生成 GPL 潜在代码的模型,你必须开源,会发生什么?

How many companies are going to be like, “Oh my gosh”?

有多少公司会说“天哪”?

Like, “You have one year to get rid of all code that was generated that’s potentially GPL-sourced from a model.” You could imagine just the sheer panic that’s going to happen.

比如,“你有一年的时间来删除可能源自模型的 GPL 生成的所有代码。”你可以想象将会发生的纯粹的恐慌。

It’d be a fire sale of code.

这将是一次代码大甩卖。

Lex Fridman4:51:31

So given all that, can you give advice to young programmers?

鉴于此,您能给年轻程序员一些建议吗?

4:51:31 This is another question from Reddit, the infinite wisdom of Reddit.

这是Reddit的另一个问题,Reddit的无限智慧。

“What should a person in their early 20s do to move forward in the tech industry?” And this is an interesting addition to the question, “And by doing it, will this be walking on someone else’s path?”

“20岁出头的人应该怎样做才能在科技行业取得进步?”这是对“这样做是否会走别人的路?”这个问题的一个有趣的补充。

ThePrimeagen4:51:59

I am going to try to answer that question, I guess the best I can, which I think that if you’re entering into the tech world, one of the hardest pieces of advice that I took a long time to learn was I became enamored and addicted.

我将尽力回答这个问题,我想我会尽力回答这个问题,我认为如果你要进入科技世界,我花了很长时间才学会的最难的建议之一就是我变得迷恋和上瘾。

4:51:59 Obviously, we talked about that I program for way too many hours, forgetting to spend the time I needed with my wife, with my friends, all that stuff, like totally wrapping myself up into one activity.

显然,我们谈到了我编程的时间太多了,忘记了花我需要的时间和我的妻子、我的朋友们在一起,所有这些事情,就像把自己完全投入到一项活动中一样。

I think though it made me who I am, it was probably an unhealthy activity and probably not a wise activity.

我认为虽然它造就了现在的我,但这可能是一项不健康的活动,而且可能不是一项明智的活动。

And so the best advice I can give is that you got to develop the love, the skill, the desire for it.

所以我能给出的最好建议是,你必须培养对它的爱、技能和渴望。

Whether that’s just only using AI agents, programming yourself, using Zig or programming JavaScript, whatever that flavor is that’s going to get you coming back every single day, getting the reps in the gym, if you will for programming.

无论是仅使用 AI 代理、自己编程、使用 Zig 还是 JavaScript 编程,无论哪种风格,都会让您每天回来,在健身房里获得代表,如果您愿意编程的话。

4:52:53 But also knowing how to value what is valuable and not getting lost in the sauce where you’re just so stuck on trying to make the next greatest startup that you sacrifice your health, you sacrifice your relationships.

但也要知道如何珍惜有价值的东西,而不是迷失在你一心致力于打造下一个最伟大的创业公司的过程中,以至于牺牲你的健康、你的人际关系。

Or even worse, you sacrifice your own morals to take certain shortcuts that you probably shouldn’t be taking in life to be able to achieve these things, because I’m sure there’s hundreds of horror stories you could hear where people definitely shortcutted their morals for monetary success.

或者更糟糕的是,你牺牲自己的道德去采取某些你在生活中可能不应该采取的捷径来实现这些目标,因为我确信你可以听到数百个恐怖故事,其中人们肯定为了金钱的成功而捷径。

Lex Fridman4:53:22

Yeah.

是的。

4:53:22 I mean, the golden handcuffs comfort can destroy the soul in some sense.

我的意思是,金手铐的安慰在某种意义上可以摧毁灵魂。

Yeah, so that’s really important to remember.

是的,所以记住这一点非常重要。

There’s young people kind of thinking, “Do I even want to be a programmer now?” It seems like AI is getting better and better at programming.

有些年轻人会想,“我现在想成为一名程序员吗?”人工智能在编程方面似乎变得越来越好。

If they were trying to make that decision, would you still say, “Yeah, if this is something that fills you with joy”?

如果他们试图做出这个决定,你还会说:“是的,如果这能让你充满快乐”?

ThePrimeagen4:53:51

I still want my kids to learn how to program if I can answer that, if that’s a good enough answer-

如果我能回答这个问题,如果这是一个足够好的答案,我仍然希望我的孩子学习如何编程——

Lex Fridman4:53:51

Yeah, that’s a really powerful answer.

是的,这是一个非常有力的答案。

ThePrimeagen4:53:57

…

……

4:53:57 in the sense that my kids are decades younger than a young person trying to learn how to program right now.

从某种意义上说,我的孩子比现在正在尝试学习如何编程的年轻人年轻几十年。

And so I’m hoping that my kid can run and build whatever he wants in Roblox.

所以我希望我的孩子能够在 Roblox 中运行和构建他想要的任何东西。

I’m showing him ChatGPT and be like, “All right, let’s ask questions.

我向他展示 ChatGPT,然后说:“好吧,我们来提问吧。

How do we do this?” It’s still extremely confusing for him to do all these things.

我们该怎么做?做所有这些事情对他来说仍然非常困惑。

And so it’s like, “Let’s do this.” I want him to learn and be effective, and maybe one day he has to throw away all those skills in 20 years.

所以就像是,“让我们这样做吧。”我希望他不断学习并变得高效,也许有一天他不得不在 20 年内扔掉所有这些技能。

But I bet you that whatever skills he threw away or whatever hard skills he had to throw away, an entirely new field that none of us have thought about, just like if you would have asked somebody in the ’70s about social networks, they’d be like, “What the heck are you even talking about?” Things will exist in the future that are going to be massively different, and crazy, and exciting.

但我敢打赌,无论他扔掉了什么技能,或者他不得不扔掉什么硬技能,这是一个我们谁都没有想过的全新领域,就像如果你向 70 年代的人询问社交网络一样,他们会说,“你到底在说什么?”未来的事物将会截然不同、疯狂且令人兴奋。

Lex Fridman4:54:40

Maybe in virtual reality.

也许在虚拟现实中。

ThePrimeagen4:54:42

There you go.

就这样吧。

Lex Fridman4:54:42

Maybe all of us actually down the line will just be building video games.

也许我们所有人实际上都只是在开发视频游戏。

ThePrimeagen4:54:46

Just entertainment for all, the brave new world of our world?

只是所有人的娱乐,我们世界的美丽新世界?

Lex Fridman4:54:51

Well, I think entertainment is a kind of trivialized version of what a video game could be.

嗯,我认为娱乐是电子游戏的一种简单化版本。

4:54:51 It’s like, what is the purpose of life anyway?

就像,人生的目的到底是什么?

I mean, it could be a deeply fulfilling video game.

我的意思是,这可能是一款令人非常满足的视频游戏。

It doesn’t have to be just like dopamine rush.

它不一定像多巴胺激增一样。

It could be educational, it could be scary, it could be challenging, forcing an evolution, the leap into adventure that it makes up a fulfilling life.

它可以是有教育意义的,它可以是可怕的,它可以是具有挑战性的,迫使人们进化,跳入冒险,它构成了充实的生活。

That could be video games.

那可能是电子游戏。

Who knows?

谁知道?

Especially in virtual reality.

尤其是在虚拟现实中。

I tend to…

我倾向于……

That’s the other thing.

那是另一回事。

I play a lot of video games.

我玩很多电子游戏。

I think there’s a lot of room to make video games deeply fulfilling, like there’s a lot of space where that can go.

我认为有很大的空间可以让电子游戏变得更加充实,就像有很大的空间可以发挥作用一样。

ThePrimeagen4:55:42

I didn’t know you played a lot of video games, because when I asked you specifically, “Should I play World of Warcraft or do Advent of Code,” you’re like, “Advent of Code, Advent of Code.”

我不知道你玩了很多电子游戏,因为当我具体问你“我应该玩《魔兽世界》还是《代码降临》时,你会说,“《代码降临》,《代码降临》。”

Lex Fridman4:55:50

Oh, well, that might mean I’ve never played World of Warcraft because there’s certain games I avoid.

哦,好吧,这可能意味着我从未玩过《魔兽世界》,因为有些游戏我会避免。

4:55:50 Fortnite, by the way, I think was one of them because I was worried it’d become too addicted.

顺便说一句,我认为《堡垒之夜》就是其中之一,因为我担心它会变得太上瘾。

ThePrimeagen4:56:00

Yeah, yeah.

是啊是啊。

Lex Fridman4:56:01

So there’s certain games I just know I won’t get super addicted to.

所以我知道有些游戏我不会超级上瘾。

4:56:01 Like for example, I’m terrified of Civilization.

例如,我害怕文明。

I have never played a Civ’s game because I’m worried.

我从来没有玩过《文明》的游戏,因为我很担心。

I’m worried the dark path in my lead because there’s some games just really pull you in.

我担心我会走上黑暗的道路,因为有些游戏真的很吸引你。

I’m much better with, that’s why I play Skyrim.

我更擅长,这就是我玩《天际》的原因。

I can play these games or a Baldur’s Gate, and moderate how much I play.

我可以玩这些游戏或博德之门,并控制我玩的时间。

And they could be like a lifelong companion versus an addiction where it’s like sunrise and you’re like, “What’s happening with my life?” And I find myself naked behind a dumpster somewhere just wondering what happened.

它们可能就像一个终生的伴侣,而不是一个瘾君子,就像日出一样,你会想,“我的生活发生了什么?”我发现自己赤身裸体地躲在某个垃圾箱后面,只是想知道发生了什么事。

Yeah, so that’s how I choose my video games.

是的,这就是我选择电子游戏的方式。

ThePrimeagen4:56:43

You’re not the first person who has specifically called out Civilization.

你不是第一个专门呼吁文明的人。

Lex Fridman4:56:48

Yeah.

是的。

ThePrimeagen4:56:48

I’ve had more than one person, also very high up in the tech world, be like, “Civilization is my downfall.

我遇到过不止一个在科技界居高位的人,他们会说:“文明是我的垮台。

4:56:48 If I get near that game, I’m done.”

如果我接近那场比赛,我就完了。”

Lex Fridman4:56:56

Yeah.

是的。

ThePrimeagen4:56:57

I’ve never even played the game.

我什至从来没有玩过这个游戏。

4:56:57 Now it makes me be like, “Dude, I got to give this a try.

现在它让我想,“伙计,我必须尝试一下。

That sounds crazy.”

这听起来很疯狂。”

Lex Fridman4:57:02

Yeah.

是的。

4:57:02 And the new one is actually supposed to be-

而新的实际上应该是——

ThePrimeagen4:57:00

Give this a try.

尝试一下。

4:57:00 That sounds crazy.

这听起来很疯狂。

Lex Fridman4:57:02

Yeah.

是的。

4:57:02 And the new one is actually supposed to be really, really good.

新的实际上应该非常非常好。

What were we talking about?

我们在说什么?

Yes.

是的。

For that same young developer, is there a trajectory through jobs that you could give advice on?

对于同一位年轻的开发人员,您是否可以提供建议的工作轨迹?

So you started out with Schedulicity?

那么您是从日程安排开始的吗?

ThePrimeagen4:57:17

Yeah, that was my first full-time….

是的,那是我第一次全职工作……

4:57:17 When I had the government contracting one before, that wasn’t quite full-time.

当我之前与政府签订合同时,那并不是全职的。

It was in C.

那是在C。

It was a lot of fun.

这很有趣。

And then building my own startup for quite some time.

然后花了相当长的一段时间建立了自己的初创公司。

So if you count either of those as full-time, then those would be the full-time.

因此,如果您将其中任何一个算作全职,那么这些就是全职。

Schedulicity was the official on the docs.

日程安排是文档中的官方内容。

Lex Fridman4:57:32

Is there some value to jumping around, working in one company and another to try to figure out what brings you joy?

跳来跳去,在一家公司和另一家公司工作,试图找出什么能给你带来快乐,这是否有价值?

ThePrimeagen4:57:41

I think there’s a lot to that because not every job you’re going to get is going to be great.

我认为这有很多原因,因为并不是你将得到的每一份工作都会很棒。

4:57:41 Now, your first job you could get could make you think you hate programming.

现在,你可能得到的第一份工作可能会让你觉得你讨厌编程。

It happened, I did an internship at a place and I keep on surprising you with more kind of things I did in the past, did an internship at-

事情发生了,我在一个地方实习,我一直用我过去做过的更多事情让你感到惊讶,实习地点是-

Lex Fridman4:57:59

Fuck.

他妈的。

4:57:59 You did so many things.

你做了很多事情。

It’s incredible.

太不可思议了。

ThePrimeagen4:58:02

…

……

4:58:02 a place called Total Information Management System.

一个叫做全面信息管理系统的地方。

Remember when I talked about that hours ago, about healthcare and that and industrial shipping and all that?

还记得我几个小时前谈到的医疗保健和工业运输等吗?

It was a C-sharp shop.

那是一家升C调的商店。

It was so bad that after I did that, I went and changed my major to mechanical engineering first semester in college.

很糟糕的是,在我这样做之后,我在大学第一学期就将专业改为机械工程。

Lex Fridman4:58:02

Oh, boy.

哦,男孩。

Oh, boy.

哦,男孩。

ThePrimeagen4:58:17

I thought I, “Okay.

我想,“好吧。

4:58:17 Actually I like computer science.

其实我喜欢计算机科学。

I hate the programming.” So just because you’ve had a job doesn’t mean it’s going to be the one.

我讨厌编程。”因此,仅仅因为你有一份工作并不意味着它就会成为这份工作。

And the thing is, here’s the best part though, if you get a job and you like it and you want to do it and it’s exciting, you don’t need to change.

问题是,这是最好的部分,如果你找到了一份工作,你喜欢它,你想做它,而且它很令人兴奋,你不需要改变。

I think a lot of people are like, “Oh, I got to find the next thing.

我想很多人都会说,“哦,我必须找到下一件事。

I’ve been here for two years.” There’s of this, you got to move around mindset.

我已经在这里两年了。”就是这样,你必须改变心态。

I don’t think you have to move around.

我认为你不必四处走动。

I don’t think it hurts your career.

我不认为这会损害你的职业生涯。

Because if anything, you’ll gain more responsibility and you’ll be able to talk with way more authority.

因为如果有的话,你将获得更多的责任,并且你将能够以更多的权威来交谈。

And the next time you interview, you’re going to be way more into like, “Oh yeah, I had to get these X people and these X people to be able to do all this stuff.”

下次你面试时,你会更多地这样想,“哦,是的,我必须让这些 X 人和这些 X 人能够做所有这些事情。”

4:58:53 And it’s like you can talk with much more authority if you stay at a place longer.

就好像如果你在一个地方停留的时间更长,你的谈话就会更有权威。

And that’s nothing but benefits in my book.

在我的书中,这只不过是好处。

It’s only if you stay at a place because you’re afraid or you don’t want to…

只有当你因为害怕或不想留在某个地方时......

You already have something that works for you and you just never want to change and you’re just like, “I get to go in and just be completely mindless.” I think if you go mindless for a couple years, you’ll find yourself…

你已经有了一些适合你的东西,但你只是不想改变,你就像是,“我可以进去,然后完全不加思索。”我想,如果你盲目几年,你会发现自己……

That’s the only real danger.

这是唯一真正的危险。

You just come out with nothing at all.

你出来的时候什么都没有。

Lex Fridman4:59:15

Especially when you’re younger, that’s the whole point.

尤其是当你还年轻的时候,这就是重点。

4:59:15 You’re like, “Take the risk.

你会说,“冒这个险吧。

Take the leap out to the next thing, to the next thing.” And not for money, but for just personal joy, joy.

跳到下一件事,下一件事。”并不是为了金钱,而是为了个人的快乐、快乐。

ThePrimeagen4:59:24

And money could get at the end, that’s the best part.

最后可以得到钱,这是最好的部分。

4:59:24 When you don’t strive for the money, sometimes the money just shows up anyways.

当你不为钱而奋斗时,有时钱无论如何都会出现。

Lex Fridman4:59:29

Yeah.

是的。

4:59:29 And some of the, what makes life worth living is the people you work with, a good team.

使生活变得有价值的一部分是与你一起工作的人,一个优秀的团队。

Some of it’s not to be generic, but culture matters.

其中一些不是通用的,但文化很重要。

It’s whatever makes you happy.

这就是任何让你快乐的事情。

For example, I just had won’t call out places, but there’s certain companies where everybody is very nine to five.

例如,我只是不会指出地点,但有些公司的每个人都是朝九晚五的。

And even if the work is exciting, they don’t work hard enough I would say.

即使工作很令人兴奋,我也会说他们工作不够努力。

I’m one of those people that likes to go all out, likes to be surrounded by people who are super passionate.

我是那些喜欢全力以赴的人之一,喜欢被超级热情的人包围。

Now to be fair, a lot of them don’t have families or don’t-

公平地说,他们中的很多人没有家庭,或者没有-

ThePrimeagen5:00:06

Yeah.

是的。

Lex Fridman5:00:07

It’s a fascinating choice.

这是一个令人着迷的选择。

5:00:07 I really don’t want to talk down on any choice like work-life balance or not, I think both are beautiful paths.

我真的不想贬低任何选择,比如工作与生活的平衡与否,我认为两者都是美好的道路。

And if you really derive a lot of value from joy from your work, going all in, at least for some stretch of your life is a beautiful thing to do.

如果你确实从工作的快乐中获得了很多价值,那么全力以赴,至少在你人生的一段时间内是一件美好的事情。

Just all out, full-on passion, sacrifice a lot of social life, all that kind of stuff.

全力以赴,充满激情,牺牲大量社交生活,诸如此类。

I don’t know.

我不知道。

That could also be beautiful.

那也可以是美丽的。

ThePrimeagen5:00:39

There could be something very, very exciting about that in some sense, especially if you’re building your own thing.

从某种意义上说,这可能是非常非常令人兴奋的事情,特别是如果你正在构建自己的东西。

5:00:39 I could imagine that would be very exciting.

我可以想象那会非常令人兴奋。

If I was Amazon, Jeff Bezos building Amazon, one could imagine that those early years were probably very rough and the amount of hours he probably put in we’re very, very rough.

如果我是亚马逊,杰夫·贝索斯(Jeff Bezos)创建亚马逊,人们可以想象,早年可能非常艰难,而他投入的时间可能非常非常艰难。

But I will say that there’s this unique aspect in our culture where we make this as an equal trade-off between family or work, like “Oh, you do or you don’t have to have kids.” And my only real notion with that one is that you will never know your capacity for love until you have kids.

但我想说的是,我们的文化中有一个独特的方面,我们将其作为家庭和工作之间的平等权衡,就像“哦,你必须生孩子,否则你就不必生孩子”。我唯一真正的想法是,除非你有了孩子,否则你永远不会知道自己爱的能力。

You just don’t know.

你只是不知道。

And some people are like, “Oh yeah, but I love my dog.” It’s just like I loved my dogs too.

有些人会说,“哦,是的,但我爱我的狗。”就像我也爱我的狗一样。

And then I had kids and now my dogs are, “They’re all right.

然后我有了孩子,现在我的狗也说:“它们都很好。

I like them.”

我喜欢他们。”

Lex Fridman5:01:26

I get it.

我得到它。

ThePrimeagen5:01:26

I could come home and I pet Indy and I’m like, “Oh, Indy.” And then I’m just like, “Okay, bye Indy.” I can’t even describe the difference between the two, it’s not even the same.

我可以回家后抚摸印迪,然后我会说:“哦,印迪。”然后我就说,“好吧,再见印地。”我什至无法描述两者之间的区别,甚至不一样。

5:01:26 And so that trade-off making is no one can tell you what it’s like because there’s a real reality that’s right now, and I’m sure, I’m 100% positive this is with my wife as well, where if right now we got news that said you have some medical procedure where if we do this, you will die, but your kid will live, there’s not a question in my soul that I wouldn’t do that.

因此,没有人可以告诉你这种权衡是什么样的,因为现在是一个真实的现实,我确信,我百分百肯定这对我的妻子来说也是如此,如果现在我们得到消息说你要做一些医疗程序,如果我们这样做,你会死,但你的孩子会活下来,我的灵魂中毫无疑问我不会这样做。

If I could look into the future and if I had to die right now knowing that my kids would’ve a better life, they would be happier, they’d be more fulfilled and all those things, I guarantee you either my wife or I would take that every single time.

如果我能展望未来,如果我现在就死,知道我的孩子们会过上更好的生活,他们会更快乐,他们会更满足,所有这些,我向你保证,无论是我的妻子还是我,每次都会接受。

5:02:08 It’s just like you’ll never be able to say that about most things.

就像你永远无法对大多数事情这么说一样。

People will jokingly say that until it’s actually on the line.

人们会开玩笑地这么说,直到它真正上线为止。

But it’s like with that, you just have this ferociousness.

但就像这样,你就有这种凶猛。

I can break out and sweat thinking about somebody fictionally pushing my kid to the ground, actually get real adrenal responses flowing through my body.

想到有人虚构地把我的孩子推倒在地,我会突然大汗淋漓,实际上我的身体会产生真正的肾上腺反应。

So it’s just such a different world and it’s hard to explain.

所以这是一个完全不同的世界,很难解释。

And you could never have convinced me when I was young that it’d be this big.

当我年轻的时候,你永远不可能让我相信它会这么大。

Lex Fridman5:02:32

Yeah, yeah.

是啊是啊。

ThePrimeagen5:02:33

Yeah.

是的。

5:02:33 I thought I knew.

我以为我知道。

I didn’t know.

我不知道。

Lex Fridman5:02:35

But to add on top of that, some of the most successful people I know, some of the most productive people I know have kids.

但除此之外,我认识的一些最成功的人,一些我认识的最有生产力的人都有孩子。

5:02:35 So I don’t know if it’s even a trade-off.

所以我不知道这是否是一种权衡。

That love you feel, it seems to be a catalyst to make sure you have less time, but you’re going to use that time better to be productive.

你感受到的爱,似乎是一种催化剂,可以确保你拥有更少的时间,但你会更好地利用这些时间来提高工作效率。

ThePrimeagen5:02:56

I would argue that it definitely changed a lot of my life and how I approach problems and everything, in a very different way.

我认为它确实改变了我的生活,以及我处理问题和一切的方式,以一种非常不同的方式。

Lex Fridman5:03:03

Let me ask some random questions from Reddit.

让我从 Reddit 上随机问一些问题。

5:03:03 On a scale of one to 10, how much do you hate every product Microsoft has ever created and why is it a 10?

按照从 1 到 10 的标准,您对 Microsoft 创造的每一款产品有多讨厌?为什么是 10 分?

I think we covered that.

我想我们已经涵盖了这一点。

ThePrimeagen5:03:16

We haven’t technically covered it.

我们还没有从技术上涵盖它。

Lex Fridman5:03:18

There you go.

就这样吧。

5:03:18 All right, go ahead.

好吧,继续吧。

Go ahead.

前进。

ThePrimeagen5:03:20

Okay.

好的。

Lex Fridman5:03:20

Use your time.

利用你的时间。

ThePrimeagen5:03:22

The only thing I’ll say is that I don’t like that Microsoft pretends to be the good guy when what they really wanted to get you addicted to their products, to get you to use their products as much as possible so they can extract as much money out of you.

我唯一要说的是,我不喜欢微软假装自己是个好人,而他们真正想让你沉迷于他们的产品,让你尽可能多地使用他们的产品,这样他们就可以从你身上榨取尽可能多的钱。

Lex Fridman5:03:32

Well, in this world, are there really good guys?

那么,这个世界上,真的有好人吗?

ThePrimeagen5:03:35

That’s a great point.

这是一个很好的观点。

5:03:35 I would argue Neovim is a great guy.

我认为 Neovim 是一个很棒的人。

There’s no way they can make money.

他们没有办法赚钱。

Justin Keyes is the benevolent dictator and he thinks deeply about the product and tries to make it the best as possible.

贾斯汀·凯斯 (Justin Keyes) 是一位仁慈的独裁者,他对产品进行了深入思考,并尽力使其成为最好的。

Whereas something like Microsoft, they made VS Code as a loss leader.

而像 Microsoft 这样的公司,他们将 VS Code 打造为亏损领导者。

Copilot’s probably operating on a loss leader.

副驾驶可能正在做亏本生意。

These things are all getting you so tied into, GitHub, remote workspaces, CI, Copilot, you become this trapped in permanent person and if that price rises, the switching cost is so great at some point that you’ll never be able to switch.

这些东西都让你如此束缚于 GitHub、远程工作空间、CI、Copilot,你被困在永久人员中,如果价格上涨,在某些时候转换成本会如此之大,以至于你永远无法转换。

That’s my only fear is that Microsoft was once accused of EEE and it feels like they’re EEEing again.

我唯一担心的是,微软曾经被指控 EEE,但感觉他们又在 EEE 了。

Lex Fridman5:04:13

Yeah, I’m nervous about criticizing a good thing because you could see an incentive to do that good thing, like Google creating all these services that don’t make money like Gmail for example, you can cynically say they’re only doing that to tie you into an ecosystem so they can basically keep you for life.

是的,我对批评一件好事感到紧张,因为你可以看到做那件好事的动机,比如谷歌创建了所有这些不赚钱的服务,例如 Gmail,你可以愤世嫉俗地说他们这样做只是为了将你束缚在一个生态系统中,这样他们基本上可以让你终身受益。

5:04:13 But also it’s awesome that they created Gmail-

但他们创建了 Gmail,这也太棒了 -

ThePrimeagen5:04:37

Yeah.

是的。

Lex Fridman5:04:38

…

……

5:04:38 and they created an incredible product, so-

他们创造了一个令人难以置信的产品,所以-

ThePrimeagen5:04:40

I can side with you on that one.

在这一点上我可以支持你。

5:04:40 It is a good product.

这是一个很好的产品。

VS Code is a good product.

VS Code 是一个好产品。

Lex Fridman5:04:44

Yeah.

是的。

ThePrimeagen5:04:45

Now, I think don’t put that on the…

现在,我想不要把它放在…

5:04:45 But it is fine.

但没关系。

They did a great job.

他们做得很好。

Lex Fridman5:04:50

Yeah.

是的。

5:04:50 So there is going to be financial incentives behind some of these companies.

因此,其中一些公司背后将会有财务激励措施。

And by the way, me defending, not defending, but saying positive things about Microsoft is just so I could talk shit to Prime.

顺便说一句,我捍卫,不是捍卫,而是说有关微软的积极正面的话,只是为了让我可以跟 Prime 说废话。

But that’s…

但那是……

ThePrimeagen5:05:02

I love that by the way.

顺便说一句,我喜欢这个。

Lex Fridman5:05:03

Yeah, Linux is my first and last love, it definitely…

是的,Linux 是我的初恋,也是最后的热爱,它绝对......

5:05:03 The spirit of Linux and open source is a beautiful thing so I do think that when you have these large corporations, even when they try to do good, oftentimes the profit imperative just takes over and they can corrupt themselves and Microsoft has a long history of doing just that to themselves.

Linux 和开源的精神是一件美好的事情,所以我确实认为,当你拥有这些大公司时,即使他们试图做好事,通常利润的驱使会占据主导地位,他们可能会腐败自己,而微软长期以来就是这样做的。

ThePrimeagen5:05:28

Yeah.

是的。

Lex Fridman5:05:28

That said, they’ve done, they have you could say for cynical reason because they want to seem like the good guy amongst developers, but they’ve done a lot to support open source.

也就是说,他们已经做到了,你可以说他们出于愤世嫉俗的原因,因为他们希望在开发人员中看起来像好人,但他们为支持开源做了很多工作。

5:05:28 It’s just like, same with Meta, Meta has done insane amount-

就像,和 Meta 一样,Meta 已经做了疯狂的事情——

ThePrimeagen5:05:43

Yeah.

是的。

Lex Fridman5:05:43

…

……

5:05:43 to support open source.

支持开源。

You can say, actually for that one, I don’t know if I can even make a financial or a cynical case for why Meta is open sourcing Llama and these-

你可以说,实际上对于那个,我不知道我是否可以提出一个财务或愤世嫉俗的案例来解释为什么 Meta 开源 Llama 和这些 -

ThePrimeagen5:05:55

Yeah, that one’s confusing.

是的,那个令人困惑。

5:05:55 It just seems great.

看起来很棒。

Lex Fridman5:05:56

Maybe for hiring.

也许是为了招聘。

5:05:56 But no, I think that’s legit, just an ethical, really powerful decision.

但不,我认为这是合法的,只是一个道德的、非常有力的决定。

And sometimes these companies, because they have a lot of cash, can make the right, do the right thing.

有时这些公司因为拥有大量现金,可以做出正确的事情,做正确的事情。

ThePrimeagen5:06:13

Yeah.

是的。

5:06:13 It’s a really positive way to look at it and I think that’s really nice.

这是一种非常积极的看待它的方式,我认为这真的很好。

Lex Fridman5:06:17

Well, we should always be skeptical.

好吧,我们应该始终保持怀疑。

ThePrimeagen5:06:18

Yeah, I mean because at the end of the day, companies, they’re not good, they’re not bad, they’re morally neutral.

是的,我的意思是因为归根结底,公司,它们不好,也不坏,它们在道德上是中立的。

5:06:18 It’s the people that are running them, the decisions those people make that are really where the bad or the good comes from.

正是这些人在管理它们,这些人做出的决定才是坏事或好事的真正根源。

Lex Fridman5:06:28

Another question, ask him if he knows how to milk a cow?

还有一个问题,问他会挤奶吗?

5:06:28 I’ve already asked that.

我已经问过了。

The answer is-

答案是——

ThePrimeagen5:06:33

No.

不。

Lex Fridman5:06:34

Oh, no, you don’t know.

哦,不,你不知道。

ThePrimeagen5:06:35

I’ve never milked a cow.

我从来没有挤过奶牛的奶。

Lex Fridman5:06:36

Never milked a cow.

从来没有挤过牛的奶。

ThePrimeagen5:06:37

Almost been killed by a cow, but never milked a cow.

差点被牛咬死,却从未给牛挤过奶。

Lex Fridman5:06:40

Did you ever ride a bull?

你骑过牛吗?

ThePrimeagen5:06:41

No.

不。

Lex Fridman5:06:42

All right.

好吧。

5:06:42 Why male models?

为什么是男模特?

ThePrimeagen5:06:46

Okay, so I can explain that one.

好的,我可以解释一下。

5:06:46 I will say something like, “I really dislike the color purple because the color purple makes me upset.” I don’t know, just something very benign.

我会说,“我真的不喜欢紫色,因为紫色让我心烦意乱。”我不知道,只是一些非常良性的事情。

But then someone right afterwards will be like, “But why don’t you like the color purple?” And it’ll just be like…

但随后有人会说,“但是你为什么不喜欢紫色呢?”它就像……

It’s just like Derek Zoolander.

就像德里克·佐兰德一样。

It’s just like I get done on a five-minute talk about it and then the next question’s like, “But seriously why though?” It was just like, “Why male models?”

就好像我五分钟的演讲结束了,然后下一个问题是,“但说真的,为什么呢?”就像,“为什么是男模特?”

Lex Fridman5:07:12

Yeah.

是的。

5:07:12 So that’s the Zoolander reference when there’s a long explanation why male models and he agrees and then forgets.

这就是《超级英雄》的参考,当时有一个很长的解释为什么男模特和他同意然后忘记了。

ThePrimeagen5:07:20

Yep.

是的。

Lex Fridman5:07:24

What is Ligma?

什么是利格马?

ThePrimeagen5:07:26

I’ve died by Ligma quite a few times.

我已经被利格玛死过好几次了。

5:07:26 So do you know the origin story of Ligma?

那么你知道Ligma的起源故事吗?

Lex Fridman5:07:30

No.

不。

ThePrimeagen5:07:31

So Ninja, famous streamer, someone got him with Ligma and said like, “Oh,” something like, “Have you heard about Ligma?” And he was like, “No.” And he’s like, “Oh, Ligma balls.” And then after that Ninja got so hurt by getting had by that, he started banning anyone in chat who’s said the word Ligma or something like that.

所以 Ninja,著名的主播,有人给他介绍了 Ligma,并对他说,“哦,”之类的话,“你听说过 Ligma 吗?”他说:“不。”他就像,“哦,利格马球。”然后,在那个 Ninja 受到如此伤害之后,他开始禁止任何在聊天中说“Ligma”或类似词语的人。

5:07:31 And so then if you don’t embrace the meme you get destroyed.

因此,如果你不接受模因,你就会被摧毁。

So of course, gets destroyed and so then the whole goal is that, can people get me with Ligma?

所以当然,被摧毁了,所以整个目标是,人们能用 Ligma 来对付我吗?

TJ did iladies.

TJ做了女士们。

He’s like, “Oh, did you hear that E-girls got renamed to iladies?” And I just didn’t even see it coming.

他说,“哦,你听说 E-girls 改名为 iladies 了吗?”我什至没有看到它的到来。

And I was just like, “What?” And he’s like, “iladies nuts on your face.” And then it’s just like, “Oh my gosh.” And then a pirate software has also got me like, “Oh, have you heard about Google SIMA,” which SEMA is a real product by Google>

我当时就想,“什么?”他说,“女士们,你们脸上都疯了。”然后就像,“哦,天哪。”然后盗版软件也让我觉得,“哦,你听说过 Google SIMA吗?”SEMA 是 Google 的真正产品>

5:08:12 And I’m like, “Oh yeah, I’ve heard about this.

我想,“哦,是的,我听说过这个。

What is this again?” He’s like, “SIMA balls,” right?

这又是什么?”他说,“SIMA 球”,对吧?

It’s just like, “Dang it,” how do I keep…?

就像“该死”,我该如何保持……?

So I’ve just had it happen live on stream many, many times.

所以我已经在现场直播了很多很多次了。

I’ve died by Ligma the most.

我死于 Ligma 的次数最多。

Lex Fridman5:08:24

Please ask him about the size of his dict.

请询问他的字典大小。

ThePrimeagen5:08:28

Okay, so that’s dict, that’s dictionary in Python.

好吧,这就是 dict,Python 中的字典。

Lex Fridman5:08:32

Who doesn’t love dicts?

谁不喜欢听写?

ThePrimeagen5:08:34

Yeah, that’s a great question.

是的,这是一个很好的问题。

5:08:34 Just a dicts party when you use Python.

当你使用 Python 时,简直就是一场听写派对。

Lex Fridman5:08:38

I love dicts.

我喜欢听写。

ThePrimeagen5:08:39

That should be a T-shirt.

那应该是一件T恤。

5:08:39 That’s actually a hilarious T-shirt.

这实际上是一件搞笑的T恤。

So on Stack Overflow, you can ask any question you want, and I decided to craft a question one day on Stack Overflow that says how to measure your dict and bytes.

因此,在 Stack Overflow 上,你可以提出任何你想要的问题,我决定有一天在 Stack Overflow 上提出一个问题,说明如何测量你的字典和字节。

And then I proceeded to really go to town and explain all the different things like, “Well, what about the cost of the strings and the references?” And when you really get both hands on your dict and really go after it, it’s very hard to, really threw in some innuendos.

然后我开始真正进城解释所有不同的事情,比如“嗯,琴弦和参考资料的成本怎么样?”当你真正掌握你的口述并真正追求它时,就很难真正加入一些暗示。

The Stack Overflow team deleted the question, and then someone hand wrote me an email explaining why they deleted the question and complimented me on how thoroughly and thoughtful the question was just to weave in innuendos and that the entire team was impressed, but it’s inappropriate and it had to be deleted and don’t do it again or we’re going to ban your account.

Stack Overflow 团队删除了这个问题,然后有人亲手给我写了一封电子邮件,解释为什么他们删除了这个问题,并称赞我这个问题是多么彻底和周到,只是为了暗示,整个团队都印象深刻,但这是不合适的,必须删除,不要再这样做,否则我们将禁止你的帐户。

5:09:31 And so it was a very funny moment and so I was like, “Oh, that’s funny that happened.” That was about six years ago.

所以这是一个非常有趣的时刻,所以我想,“哦,发生的事情很有趣。”那是大约六年前的事了。

Last year I was at a conference and there’s a guy wearing a Stack Overflow name tag and I was like, “Oh, you work at Stack Overflow?” He’s like, “Oh, yeah, I do.” I’m like, “Do I got a story for you.” And he goes-

去年我参加一个会议,有一个人戴着 Stack Overflow 名牌,我当时就想,“哦,你在 Stack Overflow 工作?”他说:“哦,是的,我愿意。”我想,“我有一个故事给你吗?”他走了——

Lex Fridman5:09:48

Oh, no.

哦,不。

ThePrimeagen5:09:49

…

……

5:09:49 “No, wait a second.

“不,等一下。

Are you the dict guy?”

你是那个听话的人吗?”

Lex Fridman5:09:51

Yeah.

是的。

ThePrimeagen5:09:51

That was his only question was that.

这是他唯一的问题。

5:09:51 And I was just like, “Let’s go.” I didn’t even say anything about me and he already knew immediately I was the dict guy.

我当时就想,“我们走吧。”我什至没有说任何关于我的事情,他立刻就知道我是那个听话的人。

Lex Fridman5:10:01

I should say in all seriousness, I think I’ve had a bunch of conversations in the Python world where I would have to mention the name of this data structure and it makes me uncomfortable every time.

我应该严肃地说,我想我在 Python 世界里进行过很多次对话,每次我都不得不提到这个数据结构的名称,这让我每次都感到不舒服。

ThePrimeagen5:10:10

It’s a very unfortunate shortening of a word.

这是一个非常不幸的单词缩写。

Lex Fridman5:10:13

Dict.

字典。

5:10:13 It’s just like when I go to the hardware store and ask for caulk and there’s always a nice old lady and I ask her where to find, and it’s very uncomfortable.

就像当我去五金店要填缝剂时,总是有一位和蔼可亲的老太太,我问她在哪里可以找到,这非常不舒服。

I try to pronounce it as hard as I can.

我尽可能努力地发音。

ThePrimeagen5:10:27

Really get that L in there, like caulk.

真的把那个L放进去,就像填缝剂一样。

Lex Fridman5:10:30

Caulk, just to be clear.

填缝剂,只是为了清楚起见。

5:10:30 And try to avoid eye contact the whole time.

并尽量避免全程目光接触。

You said that God was a big part, was a big part of your life.

你说神是很重要的一部分,是你生命中很重要的一部分。

Can you speak to that a little bit more?

您能再多谈一下吗?

Who is God and what effect, what role did he play in your life?

神是谁?他在你的生活中扮演什么角色?

ThePrimeagen5:10:47

So I did talk about that one important evening where I, for whatever reason, gained my conscious that moment.

所以我确实谈到了那个重要的夜晚,无论出于什么原因,在那一刻我获得了意识。

5:10:47 So obviously for me that I grew up with a life where I would probably argue myself as a functional atheist.

对我来说很明显,在我成长的过程中,我可能会认为自己是一个功能性无神论者。

I went to church a handful of times.

我去过教堂几次。

I can’t quite really remember actually going to church as a family in any sort of sense.

我不太记得作为一个家庭在任何意义上去教堂。

So there wasn’t some super strong tie or anything like that to it.

所以不存在某种超强的联系或类似的东西。

Pretty much anyone else growing up in America in the ’90s, you had some sort of impact or intersection with church at some point in your life, that was just a very normal thing I would probably say.

几乎所有在 90 年代在美国长大的人,都会在生命中的某个时刻与教会产生某种影响或交集,我可能会说,这只是一件非常正常的事情。

And so when that happened, it was a fairly big surprise for me.

所以当这件事发生时,对我来说是一个相当大的惊喜。

I wasn’t necessarily going that direction or deciding to do any of those things.

我不一定会朝那个方向走或决定做任何这些事情。

5:11:33 And so for me, it’s obviously the turning point of my entire life.

所以对我来说,这显然是我一生的转折点。

I cannot speak to who I would be now without that.

如果没有它,我现在无法说出我会是谁。

I can just tell you that I wouldn’t have had the drive.

我只能告诉你,我不会有这种动力。

I probably would not have completed college.

我可能无法完成大学学业。

I would’ve not have found my wife or had my kids.

我就不会找到我的妻子或生下我的孩子。

I wouldn’t know how to value people.

我不知道如何评价人。

I don’t think without that whole thing, my value for people would’ve been very, very small because I would’ve continued to just objectifying in the way I was.

我不认为如果没有这整件事,我对人们的价值会非常非常小,因为我会继续以我原来的方式物化。

And then probably the biggest thing is there’s this one verse, I don’t even know where it’s at, it effectively says that we love because he first loved us.

然后最重要的事情可能是这节经文,我什至不知道它在哪里,它有效地表明我们爱是因为他首先爱我们。

And so for me it’s like I don’t think I would’ve ever lived a life that was happy without this.

所以对我来说,如果没有这个,我就不会过上幸福的生活。

And I just didn’t even know that that was an option for me.

我什至不知道这对我来说是一个选择。

5:12:22 And I never really, it was a very tough set of years for me and I was very, very sad and just always just constantly looking for something to fulfill me.

我从来没有真正地,这对我来说是非常艰难的几年,我非常非常悲伤,而且总是不断地寻找一些东西来满足我。

And so it’s like I didn’t have any confidence, I didn’t have any joy.

所以我就好像没有任何信心,没有任何快乐。

I felt very sad.

我感到非常难过。

And so that was this moment where for the first time ever didn’t, all of a sudden I just felt like I didn’t have to live up to a standard.

就在这一刻,我第一次感觉自己不需要达到标准。

The standards have already been paid for, everything’s already, that’s the free gift, that’s the exchange.

标准已经付了,一切都已经了,那就是免费的礼物,那就是交换。

And so it’s just like for the first time, I didn’t have to be the cool guy, I didn’t have to have all the right words, I didn’t have to feel, I didn’t have to go on the conquest, the sexual conquest to find validation.

所以这就像第一次,我不必成为一个很酷的人,我不必拥有所有正确的话语,我不必感觉,我不必继续征服,性征服来寻找验证。

I didn’t have to do any of those things and it was exceptionally liberating.

我不需要做任何这些事情,这对我来说是一种特别的解放。

5:13:12 And so who is God?

那么上帝是谁?

That’s more of a catechism question perhaps.

这也许更像是一个教义问答问题。

What is man, who is God?

人是什么,神又是谁?

Those are much harder questions.

这些都是更难的问题。

I believe that anytime you try to get too deep into describing who God is, you typically fall into Christian heresy.

我相信,任何时候你试图太深入地描述上帝是谁,你通常都会陷入基督教异端。

But for you-

但对于你来说——

Lex Fridman5:13:29

He gave you a chance to be happy.

他给了你一个幸福的机会。

ThePrimeagen5:13:31

Yeah.

是的。

5:13:31 He gave me a chance not just to be happy, but also made it so that the first time I can actually feel forgiven I guess in some sense, and able to forgive people that hurt me.

他不仅给了我一个快乐的机会,还让我第一次真正感到被宽恕,我想在某种意义上,能够宽恕伤害我的人。

For a long time I had this weight I’d carry around from the things I hated about high school and all that kind of stuff.

很长一段时间以来,我一直背负着那些我讨厌高中的事情和诸如此类的事情。

And through that experience, I just wrote down every last person’s name and actually held them with me for quite some time and this was the list of people I forgave.

通过这次经历,我只是写下了最后一个人的名字,并实际上将他们随身携带了很长一段时间,这就是我原谅的人的名单。

And I read it a few times.

我读了几遍。

I couldn’t let myself be angry or consumed by that kind of stuff because hate is so sticky, it sticks for a lifetime.

我不能让自己生气或被这类事情吞噬,因为仇恨是如此粘稠,它会伴随一生。

And there really is only one cure for hate, which is forgiveness.

治疗仇恨确实只有一种方法,那就是宽恕。

I just don’t think you can get rid of it without that.

我只是认为如果没有它你就无法摆脱它。

5:14:17 And so I just had choose to forgive these people and to move on, and it really kind of freed me.

所以我选择原谅这些人并继续前进,这确实让我自由了。

And I would never have thought forgiveness as a means for that change if I didn’t first experience it myself.

如果我自己没有首先经历过宽恕,我永远不会认为宽恕是实现这种改变的一种手段。

Lex Fridman5:14:30

What’s the role of love in the human condition, to go to the philosophical, and what’s been the role of love in your life?

从哲学的角度来说,爱在人类状况中扮演着什么角色?爱在你的生活中扮演着什么角色?

ThePrimeagen5:14:40

It’s very obvious that every person wants or desires love.

很明显,每个人都想要或渴望爱。

5:14:40 My wife has recently convinced me to watch Love is Blind with her one time.

我妻子最近说服我和她一起看一次《爱情盲目》。

And you watch the show and if you’re not familiar with it, it feels like just a disaster of an experiment to just cause crazy filming.

当你观看这部剧时,如果你不熟悉它,你会觉得这只是一场导致疯狂拍摄的实验灾难。

But anyways, the idea is that if you just don’t see somebody, you can fall in love with somebody and want to marry them after 10 days or some very small period of time.

但无论如何,这个想法是,如果你只是没有见到某人,你可能会爱上某人,并想在 10 天或很短的一段时间内与他们结婚。

And what you really end up seeing is all these people who are just desperate for actually love.

而你最终真正看到的是所有这些渴望真正爱情的人。

And there’s some part of it…

其中有一部分……

I told my wife, “It’s like love gladiators.” We’re watching people battle it out for drama and really what they want is love.

我告诉我的妻子,“这就像爱情角斗士。”我们看着人们为戏剧而奋斗,而他们真正想要的是爱情。

And it’s like they’re fighting to the death and love, if you will.

如果你愿意的话,他们就像是在为爱而战至死。

And it’s this almost kind of sad aspect to watch.

这几乎是一种令人悲伤的景象。

5:15:28 And so I think that it’s hard to call, what is its role in the human experience, because I think it’s just something that we all naturally not just want, but need.

所以我认为很难说它在人类体验中的作用是什么,因为我认为这只是我们自然不仅想要而且需要的东西。

And I don’t think that you can really progress, and when I say the word love, I would like to kind of narrow it down maybe a bit more.

我不认为你能真正进步,当我说爱这个词时,我想把它的范围缩小一点。

And I don’t mean Eros, the Greek word like sexy love, I think that paternal and friendship love are extremely important.

我指的不是Eros,希腊语中的性感之爱,我认为父爱和友情是极其重要的。

And I think agape, God love is also very important.

我认为,上帝的爱也非常重要。

Agape love is the one that is superior to them all, but obviously different and also co-needed with the parental ones and all that.

圣爱是一种比所有爱都优越的爱,但又明显不同,并且与父母之爱等都是共同需要的。

And so you kind of need this mixture of them all, and each one is different for each reason and where it’s applied.

因此,您需要将它们全部混合起来,并且每种方法都因不同原因和应用场合而有所不同。

5:16:15 And so I don’t think…

所以我不认为……

I just don’t see a world in which is good of any kind without that as a very foundational piece.

如果没有它作为一个非常基础的部分,我只是认为世界上没有任何美好的事物。

Because again, I didn’t come here trying to quote any sort of scripture, but it says that it’s not the nails that hung on there, it’s love.

因为,我来这里并不是想引用任何经文,但它说,挂在那里的不是钉子,而是爱。

That’s the reason why these things happen.

这就是这些事情发生的原因。

And so if forgiveness is the requirement to kind of pay off hate in some sense, then love has to be the motivation for forgiveness.

因此,如果宽恕在某种意义上是偿还仇恨的必要条件,那么爱就必须成为宽恕的动机。

Lex Fridman5:16:48

Yeah, that’s the tragic aspect of life.

是的,这就是生活的悲惨一面。

5:16:48 I think there’s a deep loneliness in all of us and a longing to be a part of this bigger thing.

我认为我们所有人都有一种深深的孤独感,并且渴望成为这个更大的事情的一部分。

And that longing is a love and it has many names, but yeah.

这种渴望就是一种爱,它有很多名字,但是是的。

Yeah, the love aspect of it, it’s the beautiful aspect of life, the tragedies, the loneliness, and the unfortunate suffering that is a fundamental part of life and the beautiful aspect is the love.

是的,爱的一面,是生命美丽的一面,悲剧、孤独和不幸的痛苦是生命的基本组成部分,而美丽的一面就是爱。

ThePrimeagen5:17:22

Yeah.

是的。

Lex Fridman5:17:24

Which I think is a good time to mention more Reddit, the place for everlasting positivity and love.

我认为现在是更多提及 Reddit 的好时机,Reddit 是一个充满永恒积极性和爱的地方。

5:17:24 Somebody wrote, “Please thank him, you, for his everlasting positivity and give him a big hug for me.” So I won’t give you a big hug on camera because I’m afraid I’ll get a boner and that’ll be very unfortunate.

有人写道:“请感谢他,你,感谢他永远的积极性,并给我一个大大的拥抱。”所以我不会在镜头前给你一个大大的拥抱,因为我担心我会发疯,那将是非常不幸的。

ThePrimeagen5:17:51

Hey, let’s not bring dicts into this again, okay?

嘿,我们不要再把命令带入其中,好吗?

Lex Fridman5:17:53

It’s my favorite data structure.

这是我最喜欢的数据结构。

5:17:53 Like I said, I love dicts, all kinds of dicts, ordered dicts-

就像我说的,我喜欢听写,各种听写,有序的听写-

ThePrimeagen5:18:00

Unordered.

无序。

Lex Fridman5:18:01

…

……

5:18:01 unordered dicts.

无序的字典。

I don’t discriminate.

我不歧视。

Yeah, but just that to say big thank you from me.

是的,但这只是为了向我表示衷心的感谢。

I listen to you a lot and I just really enjoy…

我经常听你说话,我真的很喜欢……

I’ve been going through a lot of shit myself and just the positivity, even when you’re building the stupidest shit, it’s just the positivity radiates from you and you inspire me to be a good person.

我自己也经历过很多糟糕的事情,只有积极的态度,即使你在做最愚蠢的事情,这只是你身上散发出来的积极性,你激励我成为一个好人。

You inspire me to build stuff.

你激励我去创造东西。

So thank you.

所以谢谢你。

And I’m sure there’s many, many others who listen to you for the same reason.

我相信还有很多很多人出于同样的原因听你的。

So thank you for your positivity.

所以谢谢你的积极性。

Thank you for being the light in many people’s lives, and thank you for talking to me, brother.

感谢你成为许多人生命中的光明,也感谢你与我交谈,兄弟。

ThePrimeagen5:18:43

Dang.

当当。

5:18:43 That was very, very kind.

那是非常非常友善的。

I really do appreciate all those extremely nice words even from Reddit.

我真的很感激所有那些来自 Reddit 的非常好的话语。

That’s very surprising.

这非常令人惊讶。

But thank you.

但谢谢你。

I mean, I know you know that there’s many people’s lives, and I’m sure you’ve received the letters that have been changed from actions and things you’ve said and things you’ve done.

我的意思是,我知道你知道有很多人的生活,我相信你已经收到了那些因你的行为、你所说的和你所做的事情而改变的信件。

And so it’s one of the best parts about doing this side is that you get a chance to potentially improve somebody’s life.

因此,做这方面最好的部分之一就是你有机会潜在地改善别人的生活。

And you getting to interview a lot of people, there’s a lot of people that listened to Chris Latner and saw his excitement for Swift and probably went and learned Swift and then got really amazing jobs and it can be all origined back to back to you in that interview.

你采访了很多人,有很多人听了 Chris Latner 的演讲,看到了他对 Swift 的兴奋,并且可能去学习了 Swift,然后得到了非常出色的工作,这一切都可以追溯到你在那次采访中。

And so those are amazing things.

这些都是令人惊奇的事情。

And so same goes back to you, you’ve done a lot of good stuff.

所以同样的事情也回到你身上,你做了很多好事。

Lex Fridman5:19:34

Right back at you brother.

就回到你兄弟身边。

5:19:34 Thank you for talking today.

谢谢你今天的发言。

Thanks for listening to this conversation with Michael Paulson, aka ThePrimeagen.

感谢您收听与 Michael Paulson(又名 ThePrimeagen)的对话。

To support this podcast, please check out our sponsors in the description.

为了支持这个播客,请在说明中查看我们的赞助商。

And now let me leave you with some words from Paulo Coelho.

现在让我向你们传达保罗·科埃略的话。

“When we strive to become better than we are, everything around us becomes better too.” Thank you for listening and hope to see you next time.

“当我们努力变得比现在更好时,我们周围的一切也会变得更好。”感谢您的聆听,并希望下次再见。

文稿来自 Lex Fridman 官网公开发布的官方 Transcript(含说话人与时间戳)。
Lex Fridman (00:00:00): The following is a conversation with Michael Paulson, better known online as ThePrimeagen. He is a programmer who has entertained and inspired millions of people to have fun building stuff with software, whether you’re a newbie or a seasoned developer who has been battling it out in the software engineering trenches for decades. In short, ThePrimeagen is a legendary programmer and a great human being with an inspiring roller coaster of a life story. This is the Lex Fridman Podcast. To support it, please check out our sponsors in the description. And now, dear friends, here’s ThePrimeagen. Lex Fridman (00:00:42): What do you love most about programming? What brings you joy when you program? ThePrimeagen (00:00:46): I can tell you the first time that I ever felt love in programming, or felt that joy or that excitement- Lex Fridman (00:00:51): Sure. ThePrimeagen (00:00:52): Which was in college. It was the second class, data structures, and the teacher that was teaching Ray Babcock, he was talking about linked lists. Now you have to learn Java at Montana State University when I went, and so he’s off there explaining this whole linked list thing and all that, and then he shows code. And in the code it’s abstract class node or whatever it was, I can’t remember what it was. And then it had a private member, and that private member was of type node, and I’ve never seen that before. It is a class that is called node with a member that is of itself. And for the first time ever I was like, “Oh my gosh. There’s no end. There’s no way to iterate. This is not a set of 10 items. This is a set of infinite items.” And so my mind kind of exploded in that moment, like, “What you can express is huge. I can see what memory looks like. I can see this hopping through space.” ThePrimeagen (00:01:47): And I just remember being just so blown away, because up until that point, everything was just, “All right, I have a list of 10 items. I have a list of 20 items.” Right? It was very rigid and small, and the things I built were really small and trivial, and all of a sudden I felt like I could build anything in that one moment. And it was so amazing. I just remember sitting in class for, I don’t even remember how long those classes were or anything, but I just remember being just completely profoundly impacted by this notion. And so I just sat there and I watched, and I had the exact same experience in heaven’s forbid by a software engineering class, when we talked about the decorator pattern, where you can keep on constructing these objects in this recursive way. Not that I think that’s actually a good idea to do, but just watching that and realizing there’s so many weird and unique ways you can solve problems, and anything your mind can think of, you can just create that. And I just remember getting just so excited about the possibility that anything is possible. Lex Fridman (00:02:41): Yeah, let’s wax philosophical about a linked list. It is pretty profound. For people who don’t know, a node in a linked list doesn’t know anything about the world it’s in. It only knows about the thing it’s linked to, its neighbor. Maybe that’s symbolic. It’s a metaphor for all of us humans. There’s billions of us on this planet and we only know about our local little network. ThePrimeagen (00:03:04): Yeah. Lex Fridman (00:03:05): And it’s kind of beautiful. And you realize in that little simple data structure, you can construct arbitrarily large systems, and they’re like roots that go through memory. And then of course, that’s where you get all the programming languages that allow you to dump junk into memory and have memory leaks, and therefore create infinite pain as you try to figure out where that unfreed memory is. For me, yeah, probably… It’s so beautiful the way you put that. Linked lists are indeed beautiful. Recursion also for me, when I finally wrapped my brain around what it means to write a recursive function. ThePrimeagen (00:03:49): What was the thing? What was one that taught you? Because I think we all… You probably did factorial, where you just do a quick factorial of it. It just doesn’t hit home. What was the thing that made it hit home? Lex Fridman (00:04:01): I don’t remember the first. ThePrimeagen (00:04:05): I remember my first. How do you not remember your first? It was magic. Lex Fridman (00:04:08): I’ve had so many that it just… ThePrimeagen (00:04:11): I mean, you are a Lisp guy. You’re probably pretty used to the recursion. Lex Fridman (00:04:14): Yeah, all I remember is just surrounded by sea of parentheses. I mean that’s really, probably, when I… In high school, I think it was either Java or C++. Wow, how do I not remember that? It must have been C++. And then college, the generic bullshit software engineering classes were Java, but then the renegades, the cool kids, were all using Lisp. That’s when you’re doing the AI, the quote-unquote “AI” at that time, that that was Lisp. If you want to write a chess engine, you would use Lisp. And so for me, probably the moment I really fell in love with programming was Lisp, and writing Othello programs and chess engines, all kinds of engines that play a game, and then I could play against that thing and that thing would beat me. The joy of being destroyed by the thing you’ve created. And oh, game of life too. Cellular automata. That’s when I… Lex Fridman (00:05:19): I built that, you know, all kinds of programming languages. That’s less about programming languages and more about the system you create. And that just filled me with infinite joy, having… Now similar to the linked list situation, creating a system where each individual cell only knows about its neighbors and operates in very simple rules. But when you take that system as a whole and allow it to evolve over time, you can create infinite complexity. So I just… Man, those are many pothead moments, where I’m just looking at the beautiful complexity that can be created with cellular automata. That filled me with just infinite joy, for sure. But yeah, all I remember is parentheses. So my memories of my first are drowned in a sea of parentheses. ThePrimeagen (00:06:11): Oh man. Well, first off, mine was in Java, so my first was a little bit more rigid, kind of, you know, a corporate experience. Lex Fridman (00:06:20): Yeah. Cold, meaningless… ThePrimeagen (00:06:23): But… yeah. I was in a lab, everyone was using CentOS at that… or Cent OS or however you say. I always called it CentOS, the fresh maker. Lex Fridman (00:06:29): Yeah. ThePrimeagen (00:06:30): And so it’s just like I’m in this very cold… Lex Fridman (00:06:32): That’s nice. ThePrimeagen (00:06:33): Thank you. Lex Fridman (00:06:33): Yeah. ThePrimeagen (00:06:34): I’m in this cold, rigid environment with my Microsoft keyboard, programming away in Java. And I still have just such… this memory of despair, because I love programming, this was after the linked list, and I cannot figure out recursion. And so I go to the university store and I buy a book and it’s Deitel and Deitel learn Java and it has a section, Recursion, so I open it up and I start reading it, and it just doesn’t hit home. And I’m spiraling into this. Lex Fridman (00:06:35): Yeah. ThePrimeagen (00:07:02): Like, “Maybe I’m not a programmer. Maybe I’m not worthy enough to enter into this circle of people who can figure out what the heck recursion means.” And Deitel and Deitel’s, I still remember this, their exact phrase was, “Every young budding developer solves this recursion program,” and it was the Tower of Hanoi. And guess what? I don’t know if I can solve the Tower of Hanoi to this day. It’s a very hard recursive problem. And I just sat there and thought, ” Oh my gosh. I’m not going to make it.” And I sat there in the lab for eight hours, 10 hours doing these things, so worried. It’s the week of recursion, we have to do a lab assignment. “I’m not going to be able to do it.” And I just remember being genuinely worried about that. And then… ThePrimeagen (00:07:47): Because always my big problem was like, “Okay, do factorial.” Why not just use a for loop? “Okay, what about Fibonacci sequence?” Why not use a for loop? I don’t understand. What’s the purpose of recursion? I don’t understand it yet. It’s so powerful. Why? It looks like a really complicated for loop. And so I just could not understand it. And then lab came that day and it was, “I’m going to give you a 2D array you have to read from a file. This is what a starting position looks like. This is what an ending position looks like. This is what a wall looks like. I want you to find me a path through the maze.” So I just sat there like, “Okay, well I guess I can just go up and I can create a visited grid, so I know not to visit these places anymore.” And then all of a sudden it just started clicking. Like, “Well, wait a second. I don’t know the maze, but if I just go up, right, down, and left, and hop back every time I’ve been to that square, don’t visit it, it will just go forever.” ThePrimeagen (00:08:38): And I realized in that moment, I’m like, “I actually understand. I’ve understood recursion this whole time, I just never had a problem in which it actually made sense to use. And that was my big downfall, is that I was measuring my understanding with the problems that I had available, which were just list traversal, which is not a good use of recursion. And so I just remember that freeing… Oh, man. Recursion. It was a great moment in my life. Lex Fridman (00:09:01): I mean it does require, to be fair, a leap of faith, because people will tell you, those conformist, dogmatic, Java instructors will tell you, that this is important, to understand recursion. But it takes a leap of faith that this is a different way of looking at the world, and it’s a powerful way of looking at the world. Actually, I think I remember my first now. ThePrimeagen (00:09:37): All right. Lex Fridman (00:09:40): I think it was [inaudible 00:09:42] first search for one of the games. Maybe Othello, something like that, and for that implementing recursion. Understand that you can search trajectories through the space of states and do that recursively? That was mind blowing. ThePrimeagen (00:09:57): Yeah. Lex Fridman (00:09:57): Just imagining the possibilities. ThePrimeagen (00:10:02): You can just see it all. Yeah. Lex Fridman (00:10:02): Yeah, just numbers flying. It was like The Beautiful Mind. And that’s when I also discovered conspiracy theories, and I just saw. I saw the truth. Okay, yeah. So what were we talking about? Oh, what was the most painful aspect of programming for you? What memories do you have of deep, profound suffering in terms of programming in the early days? ThePrimeagen (00:10:27): I would say the biggest one that I can really hold on to had to be one of two experiences. The first experience was when I was at a place called Schedulicity, and… Am I not allowed to say the place [inaudible 00:10:43] Lex Fridman (00:10:42): You’re allowed. ThePrimeagen (00:10:44): I’m not sure if they’re even operating still at this point, but they’re in- Lex Fridman (00:10:47): There was something funny about the name. I’m sorry. ThePrimeagen (00:10:48): Oh, Schedulicity? Yeah. Actually, the name was so bad that when you looked at their paid-for Google ad terms that they would make sure that they’re at the top of the list, the spellings were just insane, because no one knew how to spell the word Schedulicity, and so the Google optimizing for that is just hilarious. But okay, go back to the thing. ThePrimeagen (00:11:09): The thing that kills me the most about programming, what I actually considered the worst aspect of programming, is when you know everything. And so when I was at this job, it’s just every single day I’d come in, there were no surprises, there was no questions. I didn’t understand the code base, sure, that’s fair. I didn’t understand all the things about the code base. But I knew I was going to go in, I was going to generate some sort of object from the database. I was going to take that object from the database, and I was just going to map it over and just display it on the webpage. There’s no creativity, there’s nothing to it. It’s very almost factory line kind of work. And that was a very difficult moment for me, which is… ThePrimeagen (00:11:46): I didn’t enjoy programming, because I knew everything about it. I already knew exactly what I was going to do that day. I knew all the hurdles I going to have to go over. There was no unknown unknowns, if you will. It was just knowns at all times. And for me, that is the worst part about programming, is when you already know the solution and it’s just a matter of how fast you can type and get it out from your head to your hands. Lex Fridman (00:12:10): So the absence of uncertainty, the absence of challenge, was the pain? ThePrimeagen (00:12:14): Yeah. Lex Fridman (00:12:15): That’s pretty profound, Prime. ThePrimeagen (00:12:18): I’m more than just good looks. I want you to know that. Lex Fridman (00:12:21): It’s a low bar. What do you identify as? I’m enjoying asking the general question. ThePrimeagen (00:12:27): 38, male. Lex Fridman (00:12:29): Male. ThePrimeagen (00:12:29): Husband of beautiful wife. Lex Fridman (00:12:30): Okay. You stream about all kinds of programming, but what kind of programmer are you? Are you full-stack developer, web programming? And maybe can you lay out all the different kinds of programming and then place yourself in that, in terms of your identity. Sexual identity as well. ThePrimeagen (00:12:49): Yeah, we can put it all in there. Lex Fridman (00:12:51): Okay. ThePrimeagen (00:12:52): Plus, obviously those two are very, very tightly coupled. Lex Fridman (00:12:55): I have seen you on the border of sexually aroused by certain languages. I think you got real excited about OCaml, or… ThePrimeagen (00:13:01): OCaml. Let’s go. Thank you Dillon Mulroy [inaudible 00:13:08] Lex Fridman (00:13:08): Okay, wow. ThePrimeagen (00:13:09): Yeah. Lex Fridman (00:13:09): I did not expect that. That escalated quickly. Anyway, what do you identify as? ThePrimeagen (00:13:13): Okay, so first let’s do the previous or the in-between question first, which is the different archetypes. I think that’s a really interesting question, because if you go on Twitter or you’re new, your thoughts are probably that there is just web programming, and maybe there’s some other stuff, yeah, like game programming, but you’d be like, game programming in JavaScript and on the web. There’s this very myopic view of the programming world, and I bet if you ask a lot of people these days what is the most popular form of programming, they’d probably say web. If you said what contains the most amount of repos, how many percentage of repos on GitHub are web-based, they probably say 90% or some huge number. But the reality is that there’s an entire embedded robotics world. ThePrimeagen (00:13:56): You know, you’re familiar with the ML side of things. There’s networking, there’s going to be just performance, operating systems, compilers. There’s just huge amounts of variation of all these different types of programming verticals that you can be. And so we often talk about programming in perspective of web, or something that’s pretty narrow, and I think that’s just a social construct of Twitter more than anything else, that actually I don’t believe it’s that representative of the entire programming world out there. And I think a lot of programming’s really, really fun. There’s some really great stuff. Building your own language is just a very fun experience to do. Every programmer should just do that once, just to have a completely different perspective on how things work in life. ThePrimeagen (00:14:36): But as far as what do I do, I’ve always looked at myself as a tools engineer. So at my time, at my jobs, typically I would start off on the UI, and then they’d be like, “Okay, well hey, we need a library for this thing.” So then I’d be the one writing the library. So in 2012, 2013, I was writing a UI library for the web that can behave just like an iPad, so you can pinch and zoom on it, but it’s still a web page. Because we didn’t have any of that stuff back then. It was a canvas, had to do all the matrices operations and all that stuff to… Lex Fridman (00:15:04): Nice. ThePrimeagen (00:15:05): You know, it felt like you’re on an iPad, but it actually wasn’t on an iPad. And this was iPad 2 by the way, so this is a long time ago. And so every single time I got into a job it’s like, “Okay, hey, we need to do a library. Hey, can you work on a build system?” So back then there was no Grunt, there was no gulp, there was no any of those things, so I had to hand roll my own JavaScript build system. And so I always fell into these positions of building tools for developers to be successful. And I’ve always really enjoyed that region. So as I went on to say Netflix, spent 10 years there, I’d say the majority of my 10 years were building things for developers to use that they could be successful at their job. ThePrimeagen (00:15:45): And so I’ve always really enjoyed that aspect, because your shareholders and the people that use your program understand programming and they’re going to say, “Hey, I need this.” And typically the thing that they need, they actually want. Whereas with people, people want stuff, but what they actually need versus what they actually want often are this weird separation. That’s like the old Henry Ford quote, “I just want a faster horse,” and he’s like, “No, what you actually want is a car.” And so you have to play this game of trying to really figure it out, whereas developers, it’s like, “I know you know what I’m doing. I know what you want. Let’s figure it out together.” Lex Fridman (00:16:20): Actually that gives you a really nice big-picture view of programming in general. So I love the idea of just starting at the interface, like you need to pinch and all that kind of stuff, and then figure out the entire thing that requires to make that happen, including maybe the side quest tooling, how to make it more productive and efficient, all that kind of stuff. So the entirety of the thing. That’s really cool. ThePrimeagen (00:16:43): Yeah. Lex Fridman (00:16:43): Okay, so that would be full stack? By that general definition of full stack, meaning… ThePrimeagen (00:16:49): Perhaps, yeah. Lex Fridman (00:16:50): Versus systems starting at the bottom and trying to optimize a certain kind of specific thing without seeing the big picture of what the resulting interface would look like. ThePrimeagen (00:16:50): Yeah. Lex Fridman (00:17:02): And a lot of people in web programming, they never go beyond the front end of how a thing looks. They kind of always assume there’ll be somebody, some grunt in the shadows, in the darkness of the basement, that will implement the back end. ThePrimeagen (00:17:17): Some Gilfoyle out there will be doing the back end. Lex Fridman (00:17:19): Gilfoyle. ThePrimeagen (00:17:19): Yeah, I like to call myself a generalist, just to give some ideas. At one point at Netflix I built the WebSocket connection. So for TVs, how WebSocket works is code I just wrote. And so I built the framing thing, and before that I was doing stuff with memory, and before that I built a UI for a tool. Right? I can just do the thing. You just tell me the thing to do and I’ll just go do the thing. I don’t try to get super good at one specific activity. I don’t want to be a Kubernetes engineer, who’s the world’s greatest employer, but if I had to go learn Kubernetes, I’d go learn it and learn how to deploy some things, and then hopefully move on to the next thing, if that makes sense. Lex Fridman (00:17:58): I posted about the fact that I’m talking to you on Reddit, and there’s a lot of wonderful questions. Somebody mentioned that I should ask you about DevOps. Can you explain what DevOps is? Is it a kind of special ops of programmers, is it SEAL Team Six of developers? What’s DevOps? Can you define… Are you a DevOps engineer? ThePrimeagen (00:18:14): Well, people keep telling me DevOps isn’t real. There’s actually, you want platform engineers, cloud engineers, infra engineers. I just often think the easiest way, if we’re doing just some basic nomenclature, it’s just DevOps are the people that make sure that when you launch a service and all of that, it doesn’t just disappear. Right? It’s all the backbone of being able to operate something at scale. ThePrimeagen (00:18:37): Really, if you think about it, if you’re just writing a mom-and-pa website, people that do PHP that are doing WordPress and all that, they’re going to build something, they’re going to hand it off to, I don’t know, Linode, DigitalOcean, some company. They don’t really need a really complicated build, deployment, all this. It’s just someone with a simple website so they can sell their goods. And so they don’t really need that. And so that’s kind of how I think of a DevOps, is when things need to scale, that’s the person you hire. Lex Fridman (00:19:04): Yeah, those people are actually amazing. ThePrimeagen (00:19:06): Yeah. Lex Fridman (00:19:07): The time I spent at Google, it’s like oh yeah yeah, there’s all these fancy machine learning people, but the folks that are running the infrastructure, basically that make sure that shit doesn’t go down, they’re like wizards, and they’re essential. ThePrimeagen (00:19:23): It’s a very incredible vertical of job. And obviously I’m using a very broad term to describe, I’m sure, a bunch… You know, because making sure stuff doesn’t go down, you could also say that’s an SRE, right? Site reliability engineer. Whatever, the ones that wear the bomber jackets at Google. And so when we say DevOps, I think people get very particular about terms specifically in this category. They’re like, “Well actually, you’re mentioning infrastructure engineer versus site reliability engineer.” It’s just like, “Okay, yes, I hear you,” but generally when someone thinks DevOps, they think somebody that manages the servers and their life cycles and the reliability. There’s DevOps. Is it real? I’m not sure. Lex Fridman (00:19:58): Okay. ThePrimeagen (00:19:59): Did Vercel kill DevOps? Lex Fridman (00:20:02): Question mark? ThePrimeagen (00:20:03): Question mark. Lex Fridman (00:20:04): Yeah. Wow, you’re almost a journalist. That’s a headline. Let’s go back to the beginning. ThePrimeagen (00:20:10): All right. Lex Fridman (00:20:11): Baby Prime. So you mentioned Netflix. ThePrimeagen (00:20:15): Oh, I worked at Netflix by the way. Lex Fridman (00:20:17): For people who don’t know who ThePrimeagen is, he mentions the fact that he has been very successful and has worked at Netflix in basically every other sentence. ThePrimeagen (00:20:29): Correct. Almost as much as I mention Neovim. Lex Fridman (00:20:33): Oh, great. Tell me more about Neovim. No, please don’t. So, baby Prime. At the very beginning. You’ve had one hell of a life, and I think it’s inspiring to a lot of people. You’ve gone through a lot of painful low points, including meth addiction, loss, and like you mentioned, you’ve come out of that to become a successful programmer and a person that inspires a huge number of people to get into programming, and just to find success in life. So maybe… I would love it if you laid out just your whole life journey from the beginning. ThePrimeagen (00:21:11): So I guess if we’re going to start with this whole journey, I think it’s probably best to start to when I was about four or five years old. That was the first time I was ever exposed to pornography, and it’s kind of just earwormed me for a large portion of my life. And so I don’t think there was a day that didn’t go by from when I was a very young lad all the way up until I was twenty-some years old where I didn’t think about porn on the daily basis. And so it was just every single day, even that young. And so it was just a very mind-consuming, time-consuming, thought consuming thing that plagued me, starting at a very young age. ThePrimeagen (00:21:47): When I was seven years old, my dad died. That was a really tough period of life. I still think about this time that I went over to China, and there’s some rules that we were given, and one of the rules was just like, “Hey, don’t talk about God, and if you do, use the word ‘Dad’ instead.” And I was just like, “Okay, Dad!” It was the first time I said that word in 17 years or some long time. It was so weird to say that phrase. And I was just like, “Oh, that was just the strangest thing I’ve ever said in my entire lifetime.” It just felt so weird. Lex Fridman (00:22:23): Yeah. Yeah. ThePrimeagen (00:22:24): So, kind of rewind. As I got older, obviously was very good at computers, good at accessing porn, of course, played video games on the Internet. Fun fun kind of side quest story. I think the guy’s name is Lord Toc on Twitch. I can’t quite remember his name, but he built this game called Grail, G-R-A-A-L, and Graal Online. And when I was a young lad it was just like Zelda, except for it also had a level editor and it had a C-like language, and that’s how I discovered how to program, is I looked at these symbols and figured out what they meant, and then I was able to make things happen in the game. And that’s my introduction into programming. So thank you that guy, whatever your Twitch name was. But all right, so keep on going. ThePrimeagen (00:23:08): As I got older, I was super bad socially. I was not a very great social person. High school is brutal, got made fun of a lot, really I wouldn’t say had a great time during high school. Definitely felt very out of place or offset or maybe misplaced, if you will. I’m not sure what the right word is. And so of course at that point, I just always wanted to be accepted, to fit in and all that. I did forget to say one side story. After my dad died, my older brother, he started getting into drugs, and along with that he exposed me to pot, so at eight years old I was smoking some marijuana for a while there, until maybe 11 or 12, and took a break, and then again did a lot of that as I got a little bit older, but… ThePrimeagen (00:23:55): So I got a lot of these exposures fairly young. 16, 15 through 18, lot of drinking and all that. When I graduated, or as I was graduating high school, I had such sadness, if you will. I was very sad about how everything went, tried to commit suicide, obviously it was a very poor attempt and I’m still here today. I’m very happy about that aspect. I’m glad that I didn’t follow through with anything, had to go to the hospital and all that. And when I was done, I just still remember coming out of the hospital, and at that moment it’s kind of like something broke in you. Have you ever read the book Wheel of Time? It’s 14,000 pages or something like that, but right around page 12,000, Rand has to intentionally kill a girl, the main character. And that’s the moment he breaks, and he gets into like Hard Rand. [inaudible 00:24:46] Rand, if you will, for those that know Wheel of Time will appreciate all that. For those that don’t, very confusing, and I understand. Not the Amazon movie show, not that Wheel of Time. ThePrimeagen (00:24:57): So now that we go back onto it, at that point it’s just like something kind of broke in me, and I just didn’t care anymore. So all the social awkwardness, if you will, all that, just died away with me, but also so did everything else. And so I started using a bunch of drugs. LSD, mushrooms, meth. Did a bunch of meth, did a bunch of that stuff, and then went off to college and continued to do a bunch of stuff. I took too much acid to where for quite a few years, I had little squigglies on the side of my eyes whenever I’d walk by high contrast objects. And so it’s just that whole period of life was just kind of marked by just poor decisions. ThePrimeagen (00:25:39): And then sometime when I was about 19 years old, somewhere in that range, I just had this one evening where I felt the very dramatic and real presence of God. And I kind of had this choice, like Frodo, on a razor, where it’s like if I go either way, I’m going to fall off, and I need to change my life. You get to make the choice now. Do you want to do that or not? And so I remember going, “Okay, I do want to change my life. I don’t like this experience. I don’t like what I’m living. I am still very sad, I still feel very desperate. I still feel all those things. I’m just pretending to be this other person.” And then I just went to sleep that night. Nothing changed in my life. Everything was still the way it was. I woke up the next day, the same person, and I was just like, “Oh, that’s just such a strange, weird experience.” ThePrimeagen (00:26:29): And I just went about my day. And then I remember, I think that evening, I looked at porn, and all of a sudden I just had a conscious… just this deep, profound shame. And I was like, “I’ve never felt shame in my life. I have no idea what’s happening now.” And then all of a sudden when I smoked pot, I just felt deep shame. And when I hurt somebody or did something wrong, all of a sudden… It’s just like I got a conscious from that evening. That’s what my gift was, if you will. And just at that point, I didn’t even have a choice. I had to change my life, because for whatever reason, I’ve been changed in a moment. ThePrimeagen (00:27:05): And so from there I started actually trying in school. I always joke around that I got 2.14 in high school. I had a teacher hand write me a note saying I was the worst student she’s ever had. All that kind of stuff. I was not a really great student. And then in that moment it’s just like, “Okay, now life’s changed,” and I start trying to learn, and I try to become a good student. And it turns out it’s really hard. I was really bad. I still got Cs. I went and took pre-calculus and failed pre-calculus, and I’m like, “Oh my gosh, I used to be the smart math guy, and now I’m the idiot failing.” And so I’m just questioning myself and all that, and I spent hours upon hours in a studying, math learning center, and then just at some point years into this journey, I’m like a year and a half into this journey, at this point, something clicks, and I go from being the worst person to just immediately becoming the best. ThePrimeagen (00:27:58): Everything after that is just, I don’t know what happened. All of a sudden I was the best person at math. I started going into my computer science classes. I just really got everything. Everything, at just years after trying, just all of a sudden became easier. And I’m not sure if it happened over the course of weeks or when the easier started, but it was just first predicated by just a huge amount of difficulty. And then this is where I started really desiring and loving the process of learning, was when things started getting easier after all those years. ThePrimeagen (00:28:27): Because I just was motivated by this desire to do something, not thinking it was going to get any easier, and then all of a sudden it just started getting easier, and it was great. And that’s really where I guess I started having the biggest parts of my life change at that point. I started really, really, really wanting to never look at porn again, because every single time just such shame, and I really wanted to stop. And that was by far the hardest addiction to quit. Smoking cigarettes was also a really hard addiction to quit, shockingly hard addiction to quit, but porn by far was just the worst of them all. And then I think about 22, I was finally done with all kind of addictions, if you will, and then for a year I just worked in all that, and I think right around, maybe it was 21 and three quarters, somewhere in that range, I’m not really sure where I stopped all the addictions part, but… Or at least the outwardly addictions. And then at some point, six months later, a year later, met my beautiful wife. Things just started falling more and more into place. I loved more and more work. I loved programming. I started programming 12 hours a day. I watched the Social Network movie, and after that, I was just like, “I’m doing a startup.” And so that night I started my first startup, and I was just like, so… It was in PHP by way. Lex Fridman (00:29:41): Nice. ThePrimeagen (00:29:41): PHP, yeah, 5.2 or something like that. It was great. Great times. And I was just so motivated to do that, and I would just program for… Sometimes I’d program for 24, 36 hours straight, and just nonstop, that’s all I wanted to do at all points. I think my wife got a little sick of me. She would be like, “Can you drop me off at school?” And I’d be like, “No, I’m programming.” I was not a very nice… You know, I didn’t think through things that well. Lex Fridman (00:30:04): Yeah yeah. Yeah. ThePrimeagen (00:30:05): I was just so into it and I just did it nonstop, and that’s kind of how I became me, is that story, if that makes sense. Lex Fridman (00:30:13): Let’s try to reverse engineer some of the pain and some of the triumph. You made it sound easy at times. Let’s try to understand it better, maybe when you were seven years old. What do you think about the pain you’ve experienced there, losing your dad? What do you think? What kind of impact did it have on you? What kind of memories do you have at that time? ThePrimeagen (00:30:33): The best way I can put it is that I just never knew what a dad was. I was young enough that I could maybe repress or just even have the capability of remembering things long-term. Because I know most people don’t remember a lot from when they’re young, and so I’m not exactly sure. I probably was at one of the best possible ages, if I’m going to lose a dad, to lose a dad. You know? If you’re going to lose one, if you’re 11 or 12, it’s a terrible age. That’s what my brother was, and he fell into drug addiction and never got back out. So I just have more of a fuzziness and just kind of a longing. I just wish I had a dad. Lex Fridman (00:31:10): What impact did that have on your evolution, on your life, having that longing? ThePrimeagen (00:31:16): I think that’s why I was so bad socially, in the sense that I was looking for approval, right? I needed approval. I think a lot of people desire that approval or that loving figure, and I just didn’t have that. So I think I just looked for it in everything else, right? If I were to psychoanalyze my actions. During the time, it’s not like I was actively thinking that, but yeah, I just always wanted something to fill in whatever that was I felt. Lex Fridman (00:31:44): I think a lot of people listening to this will resonate with your experience in high school. Being the outsider, being picked on, struggling through a lot of different complexities at home. What advice would you give to them? ThePrimeagen (00:31:58): The worst part about high school is that you’re surrounded by a bunch of people your age and it feels eternal. Lex Fridman (00:32:05): Yeah. ThePrimeagen (00:32:05): You don’t think… The people that are around you, you feel like are the people that will be there for the rest of your life. At least that’s what I thought. And I didn’t really even realize this until many years later, that they are going to be some of the least consequential people in your life. Lex Fridman (00:32:21): Yeah. ThePrimeagen (00:32:21): Which is very shocking to think about, especially if you’re in it right now. Lex Fridman (00:32:26): Yeah. ThePrimeagen (00:32:27): Right? Right now they are everything that your experience is, your whole reality. And then one day it all stops, and then real life starts to begin. Lex Fridman (00:32:36): Yeah. ThePrimeagen (00:32:37): That’s such a shocking thing, and if I could just tell myself that, maybe I would have been a bunch of different person. Lex Fridman (00:32:42): That’s so beautifully put. I mean, it is like a trial run. You know at the beginning of video games, there’s a little tutorial? That’s what that is. ThePrimeagen (00:32:42): Yeah. Lex Fridman (00:32:51): And actually that should be a chance to try shit out, to take risks, because real life will begin with, there is more consequences after that. ThePrimeagen (00:32:51): Yeah. Lex Fridman (00:33:00): Because real life will begin where there is more consequences after that. ThePrimeagen (00:33:03): Yeah. Lex Fridman (00:33:03): Here you can, if you like a girl, ask her out. Try, try shit. If you get picked on, hit that guy back. Try shit out. ThePrimeagen (00:33:11): I’m not going to condone punching another person. Lex Fridman (00:33:13): I will. Beat the shit out of him, and take some jiu-jitsu and learn how to take him down. And then that girl that rejected you will be like, “Hmm, maybe I’ll give that guy a second chance.” Be a bad motherfucker. It’s a chance to try stuff out. This is a very motivational speech for kicking ass. ThePrimeagen (00:33:31): It is true. I mean, there is something very true about that, that I think especially… I mean, I have no idea what the girls experience of high school would be like, but as a guy, there’s definitely a lot of like physical requirements in high school. There’s a lot of physical measurement, at least where I grew up. I think that might not be true in all high schools, but if they’re filled with boys, it’s probably true. ThePrimeagen (00:33:51): And so it’s just like, yeah, it probably does help to do those things, to go to BJJ, to do any of these activities. Because even if you don’t ever kick someone’s ass, just having some level of confidence in yourself is probably a very valuable thing. But just remembering that this is such a short, tiny moment in your life is just like a huge help. Lex Fridman (00:34:12): I mean, the way you phrased it is exactly right. That’s what it feels like. That these are the people that will be with you for the rest of your life and this is the whole world. And so that means that there’ll be just tremendous amount of impact if somebody picks on you or if you fall somewhere low in the hierarchy and the status hierarchy of this high school, that means you’ll be low in the status hierarchy of the world and you’re fucked for the rest of your life. Lex Fridman (00:34:39): And that carries a tremendous amount of weight. It’s just why psychologically it’s extremely difficult to be… I think it’s understated often by parents, by society, how difficult it is to be a high schooler, how difficult psychologically it is, how it actually makes sense that some people would suffer from depression and be on the verge of suicide; is very, very difficult. ThePrimeagen (00:35:01): Yeah, I think it’s even… People always say, “Back in my day,” blah blah blah. I think it’s genuinely harder today than it’s ever been in the sense that when I was a kid, there was a qualification to people. Meaning, this is a cool guy, this is not a cool guy. ThePrimeagen (00:35:15): Today, there’s a quantification of people. You have 32,514 people following you, you have 12. The people can visually… They can inspect your exact social value on whatever platform you’re on. And that has to be just so much harder. ThePrimeagen (00:35:31): And I can imagine that there’s a lot of just so much weight to put on that, that it’s just… it feels probably way worse and way more damning to be uncool because you have an exact number of how uncool you are. Lex Fridman (00:35:45): Yeah. The challenge there. And the task, the quest is to remember that just because your social circle on social media and in high school thinks you’re uncool, it actually might mean you are cool. And you need to find that cool and grow it and let it flourish so that when real life begins, you can fucking come out of the gate firing on all cylinders because- ThePrimeagen (00:36:15): That’s a great way to put it. Lex Fridman (00:36:16): I think if anything, high school is really bad at picking out the cool people. Whatever the system, the hierarchy that forms, it’s such a basic bitch hierarchy. You’re good at very generic shit. That’s how you rise. ThePrimeagen (00:36:33): Your parents bought you an expensive car. Lex Fridman (00:36:35): Expensive car, right? ThePrimeagen (00:36:36): Just- Lex Fridman (00:36:36): Materialistic shit. Yeah, exactly. ThePrimeagen (00:36:38): It’s a greedy search. See, they didn’t have a proper search, so they’re just hitting that local optima. Lex Fridman (00:36:42): But the… I mean, even the objective function for that greedy search is just a really shitty one, where those people that win the game of high school are very often not going to be the people that win the much more exciting, beautiful game of life. So do epic shit and try stuff out. Lex Fridman (00:37:01): The weirdos are the ones that are going to succeed, the weirdos in high school. Probably because they also get bullied and they get to be tormented more psychologically and get to explore their own mind and think through what it means to be a human being more. Lex Fridman (00:37:16): Because if you’re winning in high school, you’re not being challenged, you’re not self-reflecting, you’re not trying shit out. So there is some degree to being tormented as long as it doesn’t break you. The porn addiction, that’s another powerful one that I think will probably resonate with a lot of people. And it’s interesting that you say that’s one of the hardest addictions to overcome. ThePrimeagen (00:37:43): Let me say it this way, some addictions have a much bigger societal look and porn is just not one of them, which makes it super hard. None of your friends are going to cheer you on. If you go on Twitter and say, “I quit porn,” they’re going to be like, “Well, that’s good for you but not everybody…” ThePrimeagen (00:37:57): No one makes that argument with meth, right? No one’s going to be like, “Well, not everyone has to quit meth, okay. It’s actually a fine industry and people who are the ones producing it, they’re good also, right?” No one’s going to make that kind of argument. ThePrimeagen (00:38:08): Whereas with porn, you’re going to have a whole thing and friends are going to think you’re dumb for doing it or whatever. It’s like you have… It’s a much more difficult one in just like that. So it feels accepted. Lex Fridman (00:38:21): And I think it’s also an addiction you can practice, participate in privately and hide it from the world. There’s certain addictions that are harder to hide from the world for prolonged periods of time. Lex Fridman (00:38:31): And porn addiction is probably one you can just have for many years and then it can deepen. That’s probably a serious issue. Boy, am I glad I grew up before the internet because porn is so accessible, so easy to go deep into that addiction. I mean, what can you speak about what impact it had on your life? Maybe some of the low points, but also how to overcome it? ThePrimeagen (00:38:56): I’d say as far as impact goes is that you will have such a long and broken look at women. By the very, like I can… Again, I’m only speaking from a male’s perspective, that porn in its just most basic thing is that you use another person for your own desire or your own want. It’s not something that is deeply needed. There’s no need for porn. It’s purely a want-based activity or a lust, however you want, whatever word you can fill in there. ThePrimeagen (00:39:28): And it is purely an objectifying activity. Someone else is on display for your own enjoyment. And so I think you carry this around. I do think that the women that I dated during high school or the women after high school and college, I looked at them as a means to an end. And I think porn greatly kind of shifted that perspective in my head that I did not give the value that was desired to another person. It really devalues humanity just in general, is my perspective of it. And then it makes people into commodities. And I don’t think people are commodities. I think everyone has value. ThePrimeagen (00:40:02): And so during that, for me that’s like the great effect of porn, is that it’s just consumerism gone wild or materialism maybe, you could ask or argue, gone wild. And it’s extremely hard to quit, just like you said, because I can look at porn and then I can go out to lunch. ThePrimeagen (00:40:21): No one’s going to know. No one’s going to have any ideas. It’s a very private, it can be very short session. It doesn’t have to be something that takes… You can’t take acid then go out to lunch, right? Your whole day is going to be a very different day. And so it’s very quick, easy, accessible. ThePrimeagen (00:40:38): And then obviously there’s all the science and statistics, like men make worse decisions for some period of time after looking or being exposed to sexualized images. There’s the whole dopamine effect that’s just like you constantly need more and more dopamine. That’s why people typically don’t just watch five minutes of porn and call it a day. There’s like the hundred tab joke that’s always made on the internet. It’s because it’s just this constant dopamine cycle you’re constantly doing. ThePrimeagen (00:41:01): And all that stuff is great to say. And I’m sure statistics and science and all that stuff is really great arguments for some amount of people. But for me it just comes down to, is it really a good thing to do? Is it really actually something we want, is to value people in such a profane or just disregarding way? I just really think it’s just bad for the soul. Even if all the stats said it was great for you, I still say it’s actually bad. Lex Fridman (00:41:29): Yeah. You have to look at the long-term big picture, psychological impact it has on your relationships with human beings in general. That’s my, more generally than just porn, my problem with the quote, unquote, “sort of manosphere”, is I think sleeping with a bunch of women is great, wonderful. But the problem is making that the primary objective of your life, similar with porn, is you devalue one of the most awesome things, which is intimacy. That’s true for deep friendship, that’s true for relationships. Lex Fridman (00:42:06): And I think porn does that in its purest, darkest form, which is: the thing that matters is the sex, not the deep connection with another human being. And I think, again, going back to high school and the manosphere, the objective function if it’s to get laid, which helps with status and confidence and all… Lex Fridman (00:42:28): All that is wonderful, I think. Again, can be an addiction. But the thing that’s even more awesome for a lot of people is a deep friendship or deep intimacy with a romantic partner. That’s also fucking awesome, and both of those are great. ThePrimeagen (00:42:45): It’s objectively better to have… I would say that there’s no universe that exists or there should be no argument possible that exists that a guy who has meaningless sex has a better or a more meaningful life than, say, me and my wife who’ve been together for 15 years. ThePrimeagen (00:42:58): We have a very… I can depend on her in all circumstances. Whereas if you live that other life, it sure could be… It could feel great, but there’s no meaning to it. There’s no actual real value to it. Lex Fridman (00:43:10): That’s absolutely correct. I do think that getting laid can have a tremendous positive impact on the confidence of a young man. I think just there’s a certain number of sexual partners from which you can collect a lot of data and it can free you about, like not to be so nervous about the opposite sex, not to be so nervous about human interaction. Lex Fridman (00:43:34): And that will allow you to see the world more clearly and to actually find that one partner with whom you can be deeply intimate with. Sometimes the nervousness around this societally constructed value in getting laid can cloud your judgment. Lex Fridman (00:43:54): And if you just release that by getting laid a bunch of times, then you could see the world clearly that getting laid is not nearly as important as you said, as finding the right human, including I should put in that pile, not just a romantic partner, but friendships, deep lasting friendships. ThePrimeagen (00:44:14): Well, I mean I think you’re right that our society puts a lot of emphasis on getting laid. And I’m sure that’s true among any group of males throughout any point in history. I’m sure that’s a very common joke that’s never actually never stopped at any point. So I’m sure that exists but… And there’s probably some truth to the sense that after you’ve… Who was it? Jim Carrey. “I hope that everyone can get rich so they realize that money solves none of your problems.” The realization that this thing that society told you is hyper important is actually not the important part. It is a very important… ThePrimeagen (00:44:45): It’s a great sign that your relationship is healthy. Like if me and my wife were to have no sex at all for months on end, something’s gone wrong, which means what… we are no longer on the same plane. But it’s not also a good identifier. Just because you’re having a lot of sex, it doesn’t mean you’re having a good relationship. ThePrimeagen (00:45:03): And so it’s like a unique… I forget the right term here, but it’s a unique way at looking at the problems. And our society puts so much emphasis. And maybe that’s why porn was so hard to quit, but my guess is it’s just all the dopamine effect that it is. ThePrimeagen (00:45:21): But for me, the most important part and the thing that actually has real reward is having that… having just my wife. I do not look at… I desperately try not to look at any other woman. I’m hopefully not going to get caught… Mark Zuckerberged at the White House like that. ThePrimeagen (00:45:37): I don’t look at porn. My wife has complete confidence in me that there is not going to be a situation in which she has to question me in any kind of sense. And that builds a much more deeply, I would argue, a very deep relationship because the trust is that much bigger. I think the deepness of the relationship is probably proportional to the trust you have in each other. It’s very hard to have a deep relationship with no trust. Lex Fridman (00:45:59): Yeah. And a probably a prerequisite, maybe a component of trust is vulnerability to where you take the leap of being vulnerable with another human being. And that vulnerability when reciprocated builds this really strong trust and it’s a beautiful thing. Yeah. Lex Fridman (00:46:20): I personally just… Given my position, that’s even more challenging, being vulnerable with the world and there’s a bunch of people out there that want to hurt you for it, but I think it’s worthwhile anyway to be vulnerable. ThePrimeagen (00:46:36): It’s always worth it. The risk is always worth it in some sense. Obviously, everyone has a different life they have to filter through their actions with, right? Because the person that has no, say, social following or anything, their risk reward profile could just be local impact, which could be just as damning or harming to them. ThePrimeagen (00:46:54): And so it’s always worth the risk though, in my personal opinion, because finding my wife has been obviously the most impactful or changing thing in my life. Or second most, I’d argue that one night with God would probably be the most impactful thing that led to everything else, but then the wife would be the next most impactful. I mean, I’m cleaning up after myself and stuff now. Changed man. I’m a changed man. Lex Fridman (00:47:17): Can we try to reverse engineer that moment of you finding God. What is it at 19? Because it feels like that was a big leap for you to escape the pain, to escape the addiction or the beginning of that journey. What do you think happened there? ThePrimeagen (00:47:37): I think it just felt like I just… There was no line that I wasn’t willing to cross. Everything was fine and just like… It just all of a sudden, just in that moment, it’s just like I had I guess some sort of deep fear and understanding I am going down a path. Is this really the path you want to go down? ThePrimeagen (00:47:58): And I don’t know what the result of that path would be or anything like that. I don’t tend to speculate on things I don’t understand. I just know that in that moment I had the option and I just chose… I didn’t want it anymore. Right? ThePrimeagen (00:48:13): It’s kind of mixed in this whole thing where it’s just like I had no value. I wrapped up all my meaning or value in having sex or getting laid, I had… All that stuff, all the things we just talked about, that was where all my worth was. And that is just such a terrible place to have your worth. ThePrimeagen (00:48:28): And it was just all came to a point. And I can’t tell you the day of the week, I can’t tell you anything other than it was nighttime and I was in South Hedges in Montana State University, go Bobcats, that’s about… Yeah, that’s the sign that we do at football games. Don’t worry about it. But that’s all I can really tell you because that night was no more or less special than some other night. It’s just the specialness was I got at least a chance to make a choice. Lex Fridman (00:48:58): Because you find in that advice that you can give to others who are probably… There’s probably just an endless amount of people that are struggling with porn addiction now, young people. What advice could you give to them? How to overcome it? ThePrimeagen (00:49:15): For me to overcome it, I had to realize that I was taking something away from my future wife. Some people would be like, “Oh, well, once you get a girlfriend then you can stop.” And it’s just like, “No, because you never stopped the problem.” You don’t stop a problem by replacing it. And so I didn’t have a girlfriend, I didn’t have all that. I just realized that I was truly taking away from something from my future wife. And I didn’t even know my current wife at that time. She was not in the picture. I’m not even sure if she was at Montana State University at that point. ThePrimeagen (00:49:43): And so it’s just that’s… Once I made that realization, I think it went from my head to my heart, which they say is the greatest distance in the universe. I finally got it. And that’s really where things change. ThePrimeagen (00:49:59): The ability to say like what’s going to help you change and all that, I don’t know if there’s… I don’t think there’s silver bullets, right? If someone could offer you a drug… I forget who says this phrase, but there’s this really interesting phrase that goes something like, he was a very depressed man and he was struggling with suicide and he writes about this in this memoir. ThePrimeagen (00:50:18): And he goes to these doctors and the doctors effectively say, “Well, here’s antidepressants, it’s going to help you.” And he says that, “Well, the problem was is that scientists told me that I could just touch my brain and make myself happy, and that’s it. They could reach in, they could configure some stuff and I’ll be happy.” He’s like, “For me, it was a lot like going out into a field and being able to take a drug to see the rain. I could look out, see the rain, it would fall down, it’d be silvery, it’d be beautiful, but all the crop would still die because there’s not actually any rain. I had to discover how to be happy myself.” ThePrimeagen (00:50:48): And so for me, it’s like the reason why I looked at porn is because I was unhappy. I was trying to find meaning. I was trying to find value in something, right? Something that was supposed to finally give me this ultimate satisfaction. And it just does not, no matter how hard, and no matter how much you think it will, there is no escapade, there is no pornography that will ever give you that satisfaction you’re looking for. That’s the reason why it’s addicting. And that’s my call to why you shouldn’t do it, but how to get out of it, I only got out of it by realizing. Lex Fridman (00:51:20): I think that’s really brilliantly described. You knew that this thing you’re doing is preventing you from finding your future wife and future wife could mean more even broadly, this path to a flourishing, to a beautiful life. Lex Fridman (00:51:43): I think there’s a lot of choices we make that are just preventing us from opening the door to whatever future. I think what’s really nice to do is to imagine, just like we said with high school, that there are a bunch of trajectories in life where you’ll be truly happy and you need to construct your life in a way where you have the chance to travel down those paths. And there’s a bunch of addictions, there’s a bunch of choices that prevent us from traveling down those paths. Lex Fridman (00:52:12): So just believe that you’re going to have an awesome life and remove from your life the things that are preventing you from walking down that path, which is essentially what you did. It’s a leap of faith that if you let go of porn, that a better life is waiting for you on the other end. ThePrimeagen (00:52:32): Yeah. I definitely can’t say how long it will take, a better life. But for me, there’s no way in the universe I could have had the relationship that I have without first making those steps because I couldn’t value my wife in the way that was proper for who she was. I would have valued her through the index or the lens that I currently was looking through. Lex Fridman (00:52:58): Got to ask. So I’ve never done meth. I’ve never done meth. ThePrimeagen (00:53:03): That was a great segue by the way. Lex Fridman (00:53:05): Oh, man. I don’t know what the fuck I’m doing, honestly with this interviewing thing. But yeah, meth and LSD… I did ayahuasca. I did shrooms a bunch of times. And this topic, I should say that there’s a lot of, on Twitter and in the tech community in general, people speaking negatively about ayahuasca and some positively. I think it’s such a roll of the dice. Lex Fridman (00:53:34): I had incredible experiences, but I don’t think I want to recommend it to anyone. It’s a risk, it’s a serious risk. It really is a roll of the dice that you could meet your demons and they could destroy you or you can meet your demons and let go of them. Or you could have experiences like I did, which is never… Apparently I don’t have demons. I’m pretty sure they’re somewhere in the basement, but I’ve never met them on drugs. Lex Fridman (00:53:58): I’m always really happy. I’m happy drunk. I’m super happy on ayahuasca, just full of love. I don’t understand, I don’t understand where the demons are, but that’s my biochemistry, whatever that is. Lex Fridman (00:54:10): And for some others, one trip could be amazing and the next one could just completely destroy you and wreck your life. So I don’t know what the recommendation from that is, maybe avoid it, but then all of us die and life… Lex Fridman (00:54:25): I tend to lean into adventure but drugs is… If you fuck with the biochemistry of your brain, you can really destroy yourself in a way that it’s going to torment you. So I would generally recommend that people avoid drugs altogether, probably, unless you’re a crazy motherfucker. Hunter S. Thompson. ThePrimeagen (00:54:53): What an intro to this topic. Lex Fridman (00:54:54): I’m sorry. What’s meth like? ThePrimeagen (00:54:57): That’s a great intro. I like… You are very correct in the sense that there is, at least when it comes to hallucinogens, there is a wild variance to what you’re going to experience. And there is no guarantee, there’s no… Just because you buy the product, it doesn’t mean you’re going to have a good time, right? There’s a lot of… ThePrimeagen (00:55:14): Personally, I find that stuff to be very… I believe in the spiritual realm, right? I believe demons and angels exist. I believe God exists. And that whole realm is like… I don’t know what it opens you up to, but it’s much, much different experience. Now, some people will be like, “Oh, it’s just a bunch of chemicals in your brain. They all get mixed up. LSD just takes all of your pathways and they all go… They all get kind of scrambled up in your brain.” ThePrimeagen (00:55:37): And it’s just like, “Yeah, the experiences are profound.” I had some really bizarre, very cool, very awful… I’ve had all the experiences in them all. I can just tell you that I personally always say the same thing. It’s like, choices that I made I can never take back. I would never take that away from myself because I don’t know if I would be who I am today without all those experiences going up to it. ThePrimeagen (00:55:58): But if you have not had that experience, I’m on your team, or at least partially on your team, maybe more severely, I don’t think you need those experiences. I don’t think they’re going to… You don’t have to put yourself through that to make a good decisions or to realize that people have value, right? You don’t have to do that. ThePrimeagen (00:56:16): So as far as what is meth like? Meth is like… If you’ve ever done cocaine, cocaine starts off with like a 15-minute dance party. Just… It’s just so intense. It’s so great. And then it just followed up with like a five hour… just feeling wiggly, right? I don’t know how else to describe it. Meth is like that except for I didn’t get as much dance party or any dance party, but instead I just got that part for like 12 hours. Lex Fridman (00:56:40): Yeah. ThePrimeagen (00:56:41): So did a lot of skateboarding, did a lot of running around, staying all night. Lex Fridman (00:56:46): Would you say it’s a pleasant feeling or is it more like an escape from the loneliness of life? Is it pleasant or negative in the actual moment? Not the consequences but in the moment. ThePrimeagen (00:57:01): So I mean, this is just a very interesting kind of area, which is that not… Universally, you can’t say that. Often you’ll find that there’s kind of these two groups of drug addicts. There’s those that like the opioids and those that like the uppers. They typically don’t like… There’s very few people in the drug world that do both. They’re really just like find their side and they go for it. ThePrimeagen (00:57:25): So is meth a thing that everybody’s going to enjoy? Well, categorically, as you can see, and just how people experience drug addiction, no. But for me it’s just I had a really… It kind of feeds into the ADHD nature of this… Because you know you’re kind of high energy, you’re like always in the moment. So it’s just like you’re in the moment, but it’s just like, “Oh, I’m in the moment!” Everything’s just so intense! ThePrimeagen (00:57:48): You just want to really be in the moment. And so it’s just experiencing that constantly. And so was that great? Well, some people… My wife always tells me this, being nervous or… I forget, the anxiety of a situation can also be the same thing as like thrill. I forget the exact way. She’s probably super disappointed that I messed this up. ThePrimeagen (00:58:10): But it’s like you could perceive those two experiences in very different lights. Some people get in front of a crowd and it’s thrilling. Some people get in front of it and it’s just the worst experience of their lifetime. They would actually literally rather die, which is a crazy thing to think about than stand up and speak. ThePrimeagen (00:58:25): And so for me, meth was that thrilling side, but at the same time, it still didn’t quite give me that thing I wanted, whatever I was looking for. I’d use it to help try to get that thing I want, but it was never giving me that thing I wanted. Lex Fridman (00:58:43): Yeah. For me, I’ve had all really wonderful experiences. Do not recommend them. But like with shroom- ThePrimeagen (00:58:50): That’s a YouTube policy by the way that you have to say, “By the way, do whatever you do, do not do a illegal activity.” Lex Fridman (00:58:54): I- ThePrimeagen (00:58:54): But I had great experiences, but whatever you do, don’t do it. Lex Fridman (00:58:57): Mr. ThePrimeagen, I have no master. I don’t have YouTube or whatever. I’ll say whatever the fuck I want. I’m just- ThePrimeagen (00:59:06): But seriously, you do. Lex Fridman (00:59:10): … kind… No. No, I don’t give a shit about YouTube or anybody, honestly. I’m just careful about the words I say because just because I had positive experiences, I don’t want young people listening to this think they should try the experience. I think the much more powerful message is that life is awesome even without that. That’s something I definitely experiment with on the alcohol side. Lex Fridman (00:59:34): So for me, I’m an introvert. I’m afraid of the world. Social interaction fills me with anxiety. Alcohol is definitely a thing that helps with that sometimes, but I think honestly it’s not even the alcohol, it’s having to do something while a person is talking to me. I could just drink a liquid. “Yeah. Mm-hmm.” There’s a social thing. With a beer, it’s like… “Yeah. Uh-huh. Yeah, we’re having fun.” And I think it’s… Lex Fridman (01:00:02): For me, it works the same as… If the liquid actually looks like alcohol, it does the same purpose often because alcohol… If you have a whiskey or a beer looking thing, it kind of sends a signal that we should be having fun. So we’re socializing, right? We’re fucking getting crazy. And then that mean… Lex Fridman (01:00:24): You don’t actually need the alcohol. You can get fucking crazy without the alcohol substance, but there is some kind of social signaling that happens when you have a drink in your hand. So I’ve been to get-togethers where I’m not drinking, but just doing a fake drink situation and I can also have fun. So I’ve been… Lex Fridman (01:00:47): But that said, traveling across the world, there are times when you get to be able to down a bottle of vodka. That’s very essential for my line of work, but that’s almost like a cultural experience versus a necessary component of a successful social interaction and one that brings you happiness. Lex Fridman (01:01:05): So not drinking… I think you can have fun and not drink too. So all of this… Man, I’m so careful saying drugs have had a good effect on my life because I think for most people, no, for majority of people, they will in the long term have a negative effect. So I think if you were to choose one or the other, just no drugs and no drinking means one day you can be the President of the United States kids. And I should say… Oh, man. ThePrimeagen (01:01:42): That is- Lex Fridman (01:01:42): That means Diet Coke- ThePrimeagen (01:01:43): … his funniest line. Lex Fridman (01:01:44): Diet Coke is great. ThePrimeagen (01:01:45): That’s his funniest line, which is, “You would hate me if I drank.” Which I just like… To me, that tickles me to no end. Just like, “Oh my gosh, that is such a funny line.” Lex Fridman (01:01:52): Self-awareness and humor is wonderful there, but yeah. ThePrimeagen (01:01:55): But I am on your team. All of the reasons why I used drugs and all that, it’s some level of escapism. I’m sure that’s like… would be the archetype or the box I’d put that into or the pursuit of trying to feel something that cannot come from them. ThePrimeagen (01:02:09): It’s like trying to find meaning in your job. You can find satisfaction in what you do. That is a very good thing. You can find satisfaction and be happy with what you’ve created. You can be thrilled by the experience, but you cannot find… I doubt you can find purpose. Maybe some people in specific jobs. ThePrimeagen (01:02:26): This obviously have very broad strokes, I’m painting with. Like if you’re an EMT and you save someone’s life, maybe there can be purpose in that whole experience, right? So I’m not saying all things, but as programming goes, most programmers, you cannot just simply find your purpose. ThePrimeagen (01:02:39): And same with drugs, you cannot find that thing you’re looking for, but they are a very great distraction. And then at some point that distraction comes with a heavy cost. I think Dr. Faust would probably know the best about the heavy cost, but it’s just you’re making one trade for another and at some point the bill comes due and that bill can be very, very large. Lex Fridman (01:03:00): The other moment you mentioned that I think is really inspiring is that you failed pre-calculus. You really struggled in school. You realize that school is really hard and then eventually you’re able to sort of persevere and, I don’t know, break through that wall of struggle. Can you, by way of advice, figure out what happened and what kind of advice you can give to people who are struggling? ThePrimeagen (01:03:25): Yeah. I’ll paint it in a more clear picture, or a very fast speed run of it is that I took pre-calculus, failed. I took pre-calculus again, failed, took pre-calculus again and got a C. So I took it three times. Then I took Calc over the summer, so Calc 1. In that one at the end, the final… The final was a two-hour final. I finished it in 30 minutes and that was the highest score in all of the school. And I proceeded to be the highest score in all calculus and Diffy Q. ThePrimeagen (01:03:54): I was the only person out of 400 people to finish the Diffy Q final. And I got the highest grade. And so I was like… I got really good. So I somehow went from really bad to really good. And my only… The thing that I did is that I had to win. It was not a option. It was not like, “Oh, this would be really great.” It’s like, “I will not graduate, I will not finish my stuff if I cannot do this.” ThePrimeagen (01:04:16): And so every single day I got up, I went to my however many hour class it was. Right after that, I went straight to the math learning center, did those problems. When I got home, I just got the book and it had the odd answers in the back. And I would try to walk through the problems over and over and over and over again until I absolutely got it. And it just became this thing where it’s just I… ThePrimeagen (01:04:37): Just simple rote memory took over and the ability to just effectively have the times table, but for calculus, all stuck in my head. Inverse trig substitution, trig substitution, doing Taylor and MaClaurin series. All those things, just over and over and over and over again. Eventually they became easy. They became very easy. It’s just that I had to cram it in there. ThePrimeagen (01:04:57): And some people, you hear these stories, whether they barely show up to class and they get As, I’ve never been that person. I’ve always been the person that has to sit down, read through everything, and I’m bad at abstract concepts. I like the concrete into the abstract, not the abstract into the concrete. Very bad at talking about things theoretically, then trying to apply them. But if I can do it once literally, then it’s really easy for me to go into the abstract. ThePrimeagen (01:05:20): And so it’s just like… For me, it’s just I had… There’s no substitute for the hours. So if I were to give advice, it’s just that you have to have time in the saddle. Hour after hour will make you slowly better. And at first, it’s crushing. It’s defeating and it’s not fun because you are bad at it. ThePrimeagen (01:05:40): But then at some point you’re just not bad at it if you can just do it long enough, and you’ll start getting okay at it. And then at some point you might even get good at it. And when you get good at something, it feels amazing. ThePrimeagen (01:05:50): There’s like an exploratory thing. If you’ve ever played a musical instrument, you stop having to think about all the little teeny things you have to do to be able to play something correctly. And you start thinking about how you can explore that space. ThePrimeagen (01:06:00): …play something correctly and you start thinking about how you can explore that space. It’s like it’s a completely different problem. And same with programming, programming has an identical kind of feel to it. It’s just like you’ll cross that barrier and it becomes magical as opposed to a chore. Lex Fridman (01:06:15): Yeah. Once you cross that barrier, somehow other things become easier. But then if you want to have a truly successful life, then you find the next barrier. Yeah, I’ve always been the same. Everything’s come really hard. ThePrimeagen (01:06:27): Yeah, I’ve had no free lunches. Everything’s just been a lot of pain and struggle. Lex Fridman (01:06:35): I think somebody said that on this topic that you think work smarter not harder is a phrase that you dislike. Somebody on Reddit told me this. ThePrimeagen (01:06:47): Yeah. I don’t just dislike it. I hate that phrase. Lex Fridman (01:06:49): Okay. Tell me about your hatred. How do you feel? ThePrimeagen (01:06:54): The reason why I dislike that is that there is kind of a hidden suggestion there, which is that you already know what smarter is, so just do that. That actually things should be easy. You should just not have to try that hard. You should just do the quick, easy, obvious path and boom, it’s done. It’s like I’ve never experienced that in anything I’ve done. Everything is actually really hard and most of the time I don’t even know what I’m doing, so therefore I don’t even know what smart looks like. And so for me, the only way I can learn how to work smart is by working very, very hard and knowing that there’s no shortcuts. And then when I finally figure out what smart is, when I work smart and work hard, it is that much better. Lex Fridman (01:07:39): I think there’s a deep profound truth to that. ThePrimeagen (01:07:42): There’s a lot of these phrases that just drive me nuts in our society, Lex Fridman (01:07:45): But that one is… Sorry, that one is really accepted if you can just linger on it because it really bothers me as well. So one, which is a really nice thing you said, the presumption there is things should be easy and you’re a failure if you don’t see the easy path. That’s kind of the implied thing. ThePrimeagen (01:08:02): Just work smart, daug, why are you putting in all those hours? Lex Fridman (01:08:05): And so it makes a lot of people that struggle feel like they’re a failure because I don’t see it. And then the choice they have, well, I’ll just be lazy and then maybe the profound truth will come to me somehow. And yeah, I don’t think I’ve ever, and I don’t think I’ve met great engineers that find the smart way without the extremely hard work. The annoying thing about those great engineers is then looking back, they forget the hard work because they remember all the joy they now are experiencing from all the efficient, smart work they figured out how to do. They forget. So when they give advice they give the stupid advice of, well, just do it like the easy way Lex Fridman (01:08:53): And here’s the easy way. But no, you have to put in the hours. Musical instrument is a beautiful example of guitar and piano. I’ve put in, I don’t know how many thousands of hours. And now when I’m explaining stuff jiu-jitsu as well, I sound like one of those people just relax in jiu-jitsu. By the way, just relax is a really wonderful thing for physical endeavors like piano and so on. But to learn how to relax your hand, how to relax your mind, your body and use whatever the biomechanics of your body to apply the correct kind of leverage and the timing and all that, that takes thousands of hours of learning. Just to learn how to relax takes a lot of really hard work. In jiu-jitsu that takes many months of getting your ass beat over and over until you ride the bus home crying. Lex Fridman (01:09:55): Your ego completely shattered and destroyed. And then a little element is figured out late that night or next morning. And from the depression, there’s this little plant that grows this flower of insight. And you use that insight to then get your ass kicked again all next month and year. And then you grow and grow and grow. And from that you discover how beautifully simple jiu-jitsu is or Judo is, just speaking for myself, or piano or guitar. And then yes, the profound truth or the mastery of a skill feels simple when you finally arrive to it, but the path for most people is going to be a hard one. ThePrimeagen (01:10:46): I think I should make an addendum to the phrase, I think the phrase should be work hard, get smart. Lex Fridman (01:10:51): Nice. That’s a t-shirt. ThePrimeagen (01:10:53): That’s what it should be. Lex Fridman (01:10:54): Yeah, agreed. Okay, that was a tangent of a tangent. ThePrimeagen (01:10:57): Can I say one more cultural phrase that I absolutely hate? Lex Fridman (01:10:59): Yes. ThePrimeagen (01:11:01): The journey is better than the destination. Everyone’s heard this. Just take one second to apply what that means. That means forever starting from now, you are only going towards a place that’s worse. That literally is what it means. Enjoy the journey, celebrate the destination, that should be what it would be but no. People say these phrases, they’re everywhere. There’s these very shallow phrases that have no logical bounds to them. You’re just like, why would the journey ever be better than the destination? I think this might even be a C.S. Lewis quote is that C.S. Lewis was like, nope, this is terrible. The journey is not in fact better than the destination. Lex Fridman (01:11:43): I love the demotivational posters. Progress, moving forward is better than moving backwards even if you’re still going nowhere. There’s a lot- ThePrimeagen (01:11:54): I feel that one so much being in California for a few years, that is painful. Lex Fridman (01:12:00): Positivity, if it doesn’t break you today don’t worry, it will try again tomorrow. It’s just a lot of really great posters. ThePrimeagen (01:12:07): I didn’t even know this was a thing. Lex Fridman (01:12:09): This is a thing. ThePrimeagen (01:12:10): Oh my gosh, I want that. Lex Fridman (01:12:11): Yeah. ThePrimeagen (01:12:12): Hey. Hi, this is ThePrimeagen. One thing that I forgot to mention in this podcast, which feels just so foolish to me for forgetting, is just what a big role my mom played in my life. She had to work 18 hours a day after my dad died. She really made her house be able to survive. I always looked up to her and I always thought her amazing. And she really was the reason why when I decided to get my butt kicked back in gear, she’s just someone who I looked to as an internal inspiration for me to continuing, to keep on going because I really wanted to make her proud. And all those years of just high energy effort, I really wanted to make sure that she knew that I was just so dang appreciative for it. So hey, I just wanted to say thank you. Love you, mom. Lex Fridman (01:12:55): For people who don’t know, you worked in Netflix. ThePrimeagen (01:12:59): By the way. Lex Fridman (01:13:00): By the way. Now, how did you go from there, from the hardship that we mentioned, from the struggle, from the addictions and so on to a place where you were working at this incredible engineering company and building cool shit there? So tell the Netflix story. ThePrimeagen (01:13:21): Yeah, so I kind of alluded to it earlier that I wanted to do my own startup so for, I forget how long it was, one or two years or two and a half years, built a startup. PHP, jQuery, everyone’s favorite language is all put together. You can solve math stuff with jQuery. So I just was totally into just non-stop doing that. This is the height of Stack Overflow. I was asking really dumb questions on Stack Overflow like what is more pythonic? And then you get a bunch of up votes and try to steal a bunch of karma away, all the fun stuff to do. Good times. And I was just so into it breathing and I just breathe it in, breathe it out, and that’s what I do all day every day. And so it’s just like non-stop building of a startup. Ultimately that startup failed and so I had to go get a real job. Lex Fridman (01:14:06): Can you say what the startup was? ThePrimeagen (01:14:08): It is so wild thinking about it in the past. Before I tell you what it is, I want to tell one quick thing about my dad. My dad in the early ’90s, like ’91, ’92, was building kind of a phone card company where you’d be able to pre-purchase long-distance minutes. Now, if you remember the ’90s at about what ’97, ’98, ’99, 10-10-220, all those different things down the center, all those companies where you can pre-purchase long-distance minutes kind of came out and were very, very big. And so my dad was six years early to that notion and ultimately his startup failed. But he was just really early to something that would catch on really, really big specifically in the telecommunication space. ThePrimeagen (01:14:51): Me as I grew up and did my own startup, I did a startup where was text message marketing. This was in 2010 where you could receive, say texts about various deals, all that kind of stuff. And of course, 10 years later now you don’t stop receiving texts and text message marketing is all the rage. And so I also, much like my father had a startup in the telemarketing space in which was just like a half decade too early. Lex Fridman (01:15:15): So is it fair to say you’re almost always ahead of your time, that you’re a visionary of sorts? ThePrimeagen (01:15:20): No, in fact, I am not ahead of my time. I just got, some would say I got unlucky on that situation. But it seems so obvious to me at that time when I was doing it, 80% of phones were dumb phones. Most people had flip phones. When I went and sold Via Text, is what the name was of that specific product. And we had the short code via text too, so it was pretty clever, six digits. When I went out and sold it, I only had a flip phone during that time. I didn’t even have a smartphone because they were kind of untenable for a lot of people. So it’s kind of just wild times to think about. ThePrimeagen (01:15:56): But then after that, obviously had to get a real job. We were living in an apartment right next to campus, Bozeman, Montana. And the guy below us must’ve been on some amount of drugs. He threatened to kill us several times, would just scream and just lose his marbles all the time. Very unhinged man, angry downstairs man is what we call him. One time my wife dropped a battery, double A. Okay, so we’re not talking about a B battery or D battery. We’re just talking about a double A, drop it pa, land on the ground, “I’m going to kill you.” Like crazy, absolutely unhinged behavior down there. So I had to go get a real job, we needed to move out of there. We were going to start our life. ThePrimeagen (01:16:34): And so I worked at a small place [inaudible 01:16:38], which I kind of talked about the boredom there. Got to go to a place called WebFilings where I’m working just tons and tons of hours. During all that time I’m still trying to figure out startups. Did one where you could pre-wish your friend’s birthday messages, and then it would automatically send it via Facebook beforehand. We called it Greet Feed. It was pretty clever. Nonetheless, I say all that story because everything that I was doing was exploring, building, finishing things, working, learning about corporate life, learning how to communicate in corporate life, being able to be successful at a job, learning about a bunch of technologies that we’re about. ThePrimeagen (01:17:13): And one of the big technologies during that day, specifically 2013 was RXJS, if you remember that one, RxJS, that’s a link from C# kind of ported over to JavaScript. Lex Fridman (01:17:25): And for people who don’t know, I guess C-sharp, what is its closest neighbor? Java. Is Java- ThePrimeagen (01:17:30): They obviously just took Java and ripped it off at one point, but now it’s such a dynamic, interesting language that it seems like it could be a really cool bounds of practical versus not practical. It’s just I’m not really into wearing pleated pants and programming at a Microsoft house. Lex Fridman (01:17:42): Is pleated pants a requirement? ThePrimeagen (01:17:46): I think so. Lex Fridman (01:17:47): Okay, we’ll get back to this. ThePrimeagen (01:17:49): Can we just get back- Lex Fridman (01:17:49): All right. ThePrimeagen (01:17:49): Triggering me here. Lex Fridman (01:17:49): WebFilings. ThePrimeagen (01:17:54): So anyways, WebFilings was that’s where I had to do all the matrices stuff and build systems and just kind of all that. And it really pushed me because they also wanted me to do 60 hours a week. It was not very healthy work-life balance. It was very hard work. And kind of that really hard work going to cutting edge stuff, really understanding the world, really made it so that I was able to just be able to talk about stuff very commandingly because we had to build really complex state machines for the UI for what we’re building. And so when I went and started getting a LinkedIn and all that, inevitably just due to the fact that I’ve touched all these technologies and I had some sort of paper trail saying, I’ve touched these technologies or Microsoft. Dang it, Lex Lex Fridman (01:18:36): Pleated pants. ThePrimeagen (01:18:36): Pleated pants reached out. No, Netflix reached out and said, “Hey, I see you’ve done RxJS. We do a lot of it. You want to come and interview with us?” And I was always told that you should never reject kind of a handwritten personal invitation to interview. This was way before bots and even the bots were pretty obvious to tell they were bots. This was a manager at Netflix, Jeff Wagner, first manager ever. And he just wrote a really nice note and just like, “Hey, I see you’re doing a lot of these things. We really need help with JavaScript. I would love for you to come interview. We’re even using a lot of RxJS if you’re interested in that.” And so I was like, all right, I can come and I’ll interview. And lo and behold, interview went on and I called my wife I think halfway through the interview and I was just like defeated, absolutely crushed because I said… ThePrimeagen (01:19:28): And she might remember this but I said, ” We now have to make a decision. Are we actually going to move to California or not?” Because I already knew I had the job at that point. I was just knocking them out of the park. I was doing a great job on that. And so I just knew for a fact, I’m getting a job at Netflix. There’s this thing that people always get so freaked out about when it comes to interviews and all that. And I luckily somehow avoided this. I don’t get test anxiety, I don’t get any of that because when I go into these situations, my only goal is to show the things I already know. And so it’s like I walked into this situation, I’ve been preparing for this 80 hours a week for the last five years. So just walk in and I’m just showing the things I know. ThePrimeagen (01:20:08): And it was perfectly fitting for Netflix at that time period in the 2013, early JavaScript days on television. And so it was just awesome, just worked out perfectly. Got hired there. Lex Fridman (01:20:19): So we’re in California with Netflix. This is San Francisco. ThePrimeagen (01:20:22): Los Gatos. So if you’re familiar, so classic symbol people do which is this is San Francisco, Oakland, San Jose, Los Gatos is just kind of a little bit south of San Jose, same mega contiguous city. Lex Fridman (01:20:39): Yellowstone is in Montana, Yellowstone, the show. So is it basically like that, Kevin Costner riding on a horse? Were you riding on a horse to campus? ThePrimeagen (01:20:48): No, but I love those stereotypes. Actually to be completely fair, when I was 15 years old, I was driving around on what is now a very busy populated street shooting gophers out the window of our car with a 22. So it’s like Montana was a different place at one point than it is today. And there’s plenty of parts of Montana that’s still very rural, still kind of more of that old world. So yeah, a little bit you can get whatever you want from Montana. As far as culturally goes, I’m not really sure the best way to put the difference between California and Montana. It’s just different expectations. One thing I can really appreciate about California, or at least when I say California, I mean the Silicon Valley Because obviously LA and the Silicon Valley, very different attitudes, very different mindsets. You can’t really compare one to the other. ThePrimeagen (01:21:38): One thing I can say that’s really positive about the valley is that everybody is operating on this idea of trying to build or create something, and there’s an energy to it that’s very exciting. You meet somebody and they have a startup and they’re working on the startup. And it’s very exciting. And there’s a lot of negative aspects to that, and we can all agree that our entire life being commercialized has probably not been that great. But the kind of the experience of being there and everyone’s excited to build something, it’s a really cool experience. Lex Fridman (01:22:06): Yeah, it’s really great. The excitement, the energy. ThePrimeagen (01:22:09): Yeah, Montana doesn’t have that. Lex Fridman (01:22:11): I have a romantic admiration for the shows like Yellowstone being out on nature. It’s beautiful. I like riding horses. Somebody also said Reddit is full of wisdom about you. Some of it could be fake news, but something about horses and this kind of thing. You like horses, you like riding horses? ThePrimeagen (01:22:28): We have horses on… Our neighbor had much more hilly land and one of the horses broke its leg, so they had to put it down. And so we just said, “Hey, we are on much flatter land. You can just have your horses in our property.” And so we just have horses that run around on our- Lex Fridman (01:22:44): What about milking cows? Somebody asked about cattle and cow. ThePrimeagen (01:22:50): So I’ve only had open cows. If you don’t know, cow means girl, open means that, hey, they’ve tried to get the cow pregnant. The cow did not get pregnant first try. And so they’re calling that gene, they’re getting rid of that gene. The open cow is going to now go out to pasture for the year and then get turned into delicious T-bone steaks and various things. And so we would house open cows on our property. So no, there’s no milking of open cows. Lex Fridman (01:23:16): Okay. ThePrimeagen (01:23:16): They’d be very upset if you tried to milk an open cow because they’re not milking cows. You have to get that cow pregnant. And then once you get it pregnant, you have to kind of put it into this permanent state of milking and all that. And it’s a little bit more complicated than say what we did, which was just cows on eating grass and I didn’t have to touch them. Lex Fridman (01:23:35): Okay, well, that’s wonderful. ThePrimeagen (01:23:36): Reddit is not a great place for wisdom about me. They’re going to give you the craziest answers. Lex Fridman (01:23:41): We’ll return to Reddit time and time again, my friend. So yeah, you took the leap into Netflix. So what was that like? ThePrimeagen (01:23:52): This is one of those things where when you talk about it, people love to trivialize this because it’s like, oh, you’re taking a leap of faith by going into a fang company. And in 2013, sounds super risky. My wife was 36 weeks pregnant. We had to travel to a place where we knew not a soul. We were about to have our first kid. We didn’t even have a doctor. If you don’t know what having a baby does, you kind of want a relationship with a doctor. There’s a whole thing that goes on there. So it was a really hard and great experience. So I went to a job in which their culture deck… So during this time, this is where Netflix still had kind of that old generation X feel to it. Their culture deck was hire fast, fire fast. It was very in your face about like, “Hey, this is how we operate. You don’t meet the standards, we kick you out.” ThePrimeagen (01:24:39): So it’s like I’m leaving a place where it’s more secure to go to a place I don’t know anybody, to a job that’s bold in its claims about firing everybody with a wife that’s just about to have a baby. And I’m from Montana and every Montanan’s born with a natural dislike of California. So there’s all these things kind of flowing into it where it’s just going to be like, wow, this is a very intense experience. And it was hard for sure. It wasn’t just some easy simple experience that we were just like, oh, well, I work now at Fang. We had to kind of work through that. Having a kid was very difficult. Our first kid was very difficult. Not having any family around to ever help you took a much larger toll on my wife than me, for sure. Lex Fridman (01:25:23): What was the technical learning curve for you? You showed up in your plaid pants, dressed up? ThePrimeagen (01:25:29): Yeah. Lex Fridman (01:25:30): What did you have to learn about the Stack? Because Netflix, I imagine is this incredible infrastructure. It has to deliver just a huge amount of data. I’m just blown away by Netflix but also YouTube. These companies that have to deliver, serve a huge amount of bits. ThePrimeagen (01:25:55): Netflix has it easiest. Out of all the companies Netflix by… Even though you could say maybe we beat YouTube in view hours, I’m not sure if we do, but let’s just pretend Netflix has five x more view hours than YouTube. Whatever it is, Netflix has a fundamentally easier problem than all other companies. And let’s get back to that. I’m going to first tell you about the Stack, but I’ll tell you why it has a fundamentally easier problem. So when I first got there, they gave me my PlayStation three. My boss said, “Go learn some code. Come back to me in a couple of days and tell me what you’ve learned. And then I’m going to start giving you bugs to fix.” Lex Fridman (01:26:27): Wait, PlayStation three, what are you talking about? ThePrimeagen (01:26:30): Well, I was on the TV team. I had to go plug in a PlayStation and start launching programs onto the PlayStation three and figure out how to work Netflix on a television device. Lex Fridman (01:26:38): Oh, so you have different kinds of devices. Why PlayStation three, is other different- ThePrimeagen (01:26:43): It’s just 2013. That’s what you have. Lex Fridman (01:26:44): Any devices that plug into the TV? Okay, cool. ThePrimeagen (01:26:46): Yeah, not as many TVs had Netflix, let alone what they called their Darwin app, which is their new application. So if you bought a VIZIO earlier that year, you’d get their older one there. It’s called Plus UI. You get their older version. And so not many had the newer version. We no longer supported Plus or we never actively developed on Plus, we only did stuff on Darwin. And so I had to learn that whole stack, the backend or the middle end, the middle layer between the actual backend and the front end was written in Groovy. And as I went around, Groovy is if you’re not familiar with Jenkins, then you’ve probably never interacted with Groovy. But Groovy is a JVM language. It’s a very interesting language, but here’s how it got started at Netflix. Lex Fridman (01:27:30): Oh, it’s Apache. Apache Groovy is a powerful object-oriented programming language that runs on the Java virtual machine released in 2007. It has evolved to become a versatile language that combines both static and dynamic typing capabilities. ThePrimeagen (01:27:43): All right, so the AI is kind of lying to you. Groovy is not a powerful great language. That statement makes it seem way cooler than it actually is. You’ll meet one out of 100 people that have touched Groovy that said, “Oh yeah, Groovy’s great.” The other 99 will be like, “Heavens forbid, you ever have to touch that language.” So when I got there, nobody, not a single soul at Netflix, those 40-some engineers had any idea how Groovy pretty much worked. Somehow people just hacked together these scripts and put them all on there and it worked. And this was before there was a Groovy RX port. We wrote our own version called WX. It was a nightmare, observables, all these things. I remember one time they told me that, “Oh yeah, with RX it’s really easy. You just say what you need to do. It maps out and boom, boom, everything will run and all that.” And I was like, “Oh wow, really?” ThePrimeagen (01:28:33): So all I did was go like observable.sleep one because I just wanted to see it sleep and then do the next thing. And it turns out when a thread sleeps itself, no thread can wake it up. And I just turned off all of staging because I ran it like 10 times. Like, oh, it’s not responding. Oh, it’s not responding. Oh, now it’s not even coming back. Broke all of staging for everybody. So no developer could work for the rest of the afternoon because I locked up all the instances because it turns out no, it was in fact not multi-threaded. Every assumption we’ve been told is a lie. No one had any idea what they were doing. It was a wild time. And so I just simply naturally gravitated towards that because I’m good at print off debugging. I’m good at doing those things. ThePrimeagen (01:29:12): So I was like, yeah, I’ll just figure this out here. I will do this. So I had the rewrite how we do the data structure on the front end for the TV from what is called a LoLoMo, list of list of movies into LoLoRoMo, which is a list of list of recommendation objects for movie. Why would we need to do that? Think about this. You have two lists, one has Live Free Die Hard, Bruce Willis because you love Bruce Willis. The other one has Live Free Die Hard because you want tough men doing tough jobs. Well, during those days we’d only have one way we could show evidence why you wanted it. So we couldn’t say, “Oh, because you liked this other movie.” You’d go to that one and say the same thing. So we had to add one level of indirection where we could decorate the video with the recommendation information. Lex Fridman (01:29:52): Okay. So you can abstract away into the space of recommendation versus the space of movies directly. ThePrimeagen (01:29:56): Yeah. So you can’t hang it off the video because obviously then it would be the same for everything that shows that same video. Lex Fridman (01:30:01): That’s amazing. ThePrimeagen (01:30:02): I had to do all this and I wrote it in Groovy and I just did it- Lex Fridman (01:30:02): Such a funny name. ThePrimeagen (01:30:06): And people were like, “How did you write this in Groovy?” And I was just like, “Well, I read the language reference for a day and then programmed it.” Well, what do you mean? It was a very radical language, shall we say. And so I just simply became the person that knew these things, so they just give me more and more jobs with that. And so that’s kind of how I excelled, being the person that was willing to do the thing that no one else was. Lex Fridman (01:30:28): Yeah. Can you actually speak to the print off debugging. You walk into a system and there’s a lot of systems in the world like this. Twitter was like this, when Elon acquired Twitter and the rolls in and there’s this old junky code base that’s just like a giant mess, and you have to basically do print off debugging. What’s the process of going into a code base and figuring out what the fuck? Well, how does this work? What are the flaws? What are the assumptions? You have to reverse engineer what all these other engineers did in the past and the mess across the space of months and years, and you have to figure out how all that works in order to make improvements. ThePrimeagen (01:31:06): I’ve always just been good at print off debugging because one of my first kind of side quest jobs that I got was writing robots for the government when I was still at school. And so I’d kind of do this contractually for so many hours a week. And my boss, Hunter Lloyd, great professor by the way, he just said, “Hey, here’s your computer, here’s the robot, here’s how you plug it in. Here’s how you run the code. Can you write the flash driver, the ethernet driver. Can you write the planetary pancake motor? Here’s some manuals, I’m missing some. Just figure it out, I’ll be back.” So that was government work for me. So I was like, okay, I’ll figure all these things out. And I figured them all out and the only way to really get anything out of the machine was to print. And so it’s like I had to become really good at printing my way through problems. And so that kind of became this skill I guess I adopted is that I can just kind of print off debug my way through a lot of these problems. ThePrimeagen (01:31:56): Obviously I’m not a game developer, probably a different world probably should use… I think John Carmack was on here and talked to how great the debugger is, different world. Because when I was at Netflix, there’s machines that exist somewhere on AWS, I’m not logged into them. I don’t even know how to log into them. I’m not even sure if I have credentials to log into them. They run once somewhere and I have to figure out what happened and why it’s happening. So it’s like I’m going to become… This is what I’ve trained for. I’m a print off debugging champion. So it’s just like I could just run through these things really quickly and figure out why they’re happening the way they’re happening. Lex Fridman (01:32:26): You’re a special human. I think that’s an incredible skill set to have to be able to drop in into any code base, drop into any situation, and do print off debugging. Meaning you’re in a dark room and you’re feeling around that room to try to figure out what the room is. ThePrimeagen (01:32:40): Well, I had the code so it’s like I can kind of blueprint what’s happening. I don’t understand the services or anything, but you can start guessing pretty quick as to what’s going wrong. Lex Fridman (01:32:48): Right. But then the print side of that helps you confirm your intuitions, test your intuitions and build up more and more information. And then you start to accumulate this bigger picture from that, what the edge cases are that break the system and not. I think that just that kind of situation is intimidating for a lot of engineers. They break down at that point. I think it really is a powerful thing to be able to come into a code base, that’s generally a skillset of very few of us start from scratch. And actually this is the fundamental problem of web development and in general where they’re like, I don’t know what’s going on. I’m going to write my own thing from scratch. As opposed to actually doing print off debugging on the space of languages, on the space of problems, because there’s a lot of wisdom and solved problems already in this code base. Lex Fridman (01:33:50): It’s a much more important skillset to understand, to learn from the mistakes and the wisdom of the past, of the ancestors that came before and build on them as opposed to throw it all out and start from scratch. This is something obviously you see a lot with a JavaScript framework that comes out and you won every single day. ThePrimeagen (01:34:12): I have a very great story about that, that this is what I think has shaped me the most about my perspective of other devs. There’s this dev and he always just wrote things in just what I thought was such a bizarre and weird way, and this had to do with Falcor. So our data fetching library for Netflix, This would run on mobile. So I had to write in Objective-C. It had to run on television and it had to also run on web. So it ran on everything. And me and one other person were responsible for this thing working. And the request side where we’d have to de-dupe the information that we already have, the requests that were pending and the new data. ThePrimeagen (01:34:45): So I had to figure all that out based on what someone’s requesting, and then just only optimally request the stuff that we don’t have. He wrote in such a goofy way and I’m thinking, man, this guy is just… What a goofball. So I delete it all and I start writing and I’m like, look at how much nicer this is. It’s looking so good. I’m like, Ooh, there’s that one edge case. Okay, I can see why he wrote it this one way. That’s not a big deal though. The rest of my code’s really great. By the end of it, I’m like, I literally almost line for line just reproduced what he already wrote. It’s slightly different towards my style, but I just wrote the same code. I’m like, I’m an idiot. ThePrimeagen (01:35:20): I am the idiot in this situation because it was already a solved problem. I just didn’t take the time to learn what he did. Instead, I relearned what he did by rewriting the entire thing. Lex Fridman (01:35:29): I think that’s a skill set that is extremely important for people to learn. I see that in myself. That’s a constant struggle for myself when facing a code base, for example. But this applies generally in life, where somebody did a lot of work to do a thing, you should invest a huge amount of time and get really good at figuring out what they did, why they did it. Do a lot of print off debugging to understand what they did. It’s a much more efficient way to understand a problem deeply than to start from scratch. Even though there’s a constant temptation to start from scratch, because starting from scratch is fun. You do get the puzzle solved and all that kind of stuff. It’s just not going to be the right thing to do. Usually pain is the right thing to do, and it is for most people painful to understand other people’s code bases. ThePrimeagen (01:36:21): I highly recommend starting from scratch if you want to understand a concept. You don’t know how an HTTP server works, create a TCP socket, learn how to parse HTTP. It’ll become very easy and you’ll go, this is the reason why whenever I get a request, I have to await the text. I now understand why the text is for whatever reason not there. I get it. I now understand it. And so you kind of gain these new perspectives just by simply parsing something out. Lex Fridman (01:36:50): All right. Back to the wisdom of Reddit. Apparently there are memes and legends about your programming arc in Netflix. This Falcor system you mentioned, somebody, I think it was Teej, how do you pronounce his name by the way? ThePrimeagen (01:36:50): Teej. Lex Fridman (01:37:05): Okay, Teej. ThePrimeagen (01:37:06): TJ would be his name, but we call it Teej or Telescopic Johnson. Lex Fridman (01:37:10): Oh wow, so many names. DDoS, distributed denial of service attacks, you apparently were able to accomplish the simplified version of that of just DoS. That’s a legend. So you basically broke down the system somehow. ThePrimeagen (01:37:25): Yeah. Lex Fridman (01:37:26): Can you tell the story of that? ThePrimeagen (01:37:28): I’d be glad to. So there’s this Falcor business, and I did discover the bug before anybody else and I did report it to security and it was so bad. It actually got its own name, Repulsive Grizzly Attack, and they even give examples of how to do it. Effectively what it means is that there is a request that targets both memory and CPU and will destroy. There you go. Look, how Netflix… The next one down was the article that was actually written. I don’t get mentioned, which is a little bit upsetting considering I was the one that discovered it and told everybody how bad it was. ThePrimeagen (01:38:01): Anyways, and had the right to fix for it or the first fix. So this is how it works, is that you can do something pretty similar, I believe with GraphQL as well. It has the same kind of danger. Any of these kinds of RPC request as much or as little of the data as you would like frameworks, are vulnerable to this kind of attack. So with Falcor, what you do is you give it an array. That’s an array is called a path, and that’s the path to the data. But sometimes you don’t want to have to write out, I want movie, I want row zero or list zero or row zero column zero title. I want row zero column zero description. You don’t want to have to write out all that. ThePrimeagen (01:38:42): So instead you could just be like, I want rows zero through 10, columns zero through 10, titles and descriptions. So you can write in a very compact, nice little format and it’ll give you all that data. It’ll go to the server. The server will fill that all in and give it to you. Oh, dang it, list three, it only had three videos in it. So what happens when I try- ThePrimeagen (01:39:00): Three, it only had three videos in it. So what happens when I try to re-request the data? Well, I need a way to be able to tell my system that you’d have requested the data and there’s nothing there. So call this like a boxed value. So it’s going to be like type, something, value, there’s nothing there. We’ve already requested it and there’s nothing there. It’s like a sentinel value, if you will, a boxed value. And we have this little special flag weed pass called materialize. Meaning that when you ask for a path, we will make sure we fill it out so we don’t accidentally erase anything. And at the very end we’ll say okay, the thing does, the request you’ve made has already been made and there’s nothing there. Well, what happens if I request rows zero through 10,000 columns through 10,000, one more item through 10,000 and then a whole bunch of properties and then ask it to materialize? ThePrimeagen (01:39:49): Well, I’m about to go create billions of objects in the JVM, and what happens to the machine? It stops running. And then if we try to JSON… Even if it could create a mall, we then ask it that JSON serialize, it’s not going to do it. It’s impossible. And so that was the attack vector, is a simple wild loop would’ve taken down and held down Netflix for a very long time. Because one request would kill one machine on AWS. And so that means it would just turn it all off. And this was on the website? This was on TV, this was on mobile. This was profound. And here’s the worst part, it was in production for years so we couldn’t even roll it back. There was no like, “Oh crap, let’s just roll back to two weeks ago and we’ll fix forward and figure out.” No, it’s like we could roll back to 2011. That’s our option is 2011 and that’s it. So we had to figure out a way forward and all that. And so it was like… The amount of problems that would’ve happened if someone would’ve discovered this is unstatable. Lex Fridman (01:40:55): Just to be clear, the infrastructure that’s serving the videos would shut down. ThePrimeagen (01:41:00): Yeah, the UI, you couldn’t perform any actions in the UI. You surprisingly could still stream video but you would never be able to get to a video to stream. Because every action you would take would be completely shut down. And so it wasn’t a DDoS because you didn’t need a bunch of computers to try to overwhelm the system by making a bunch of requests, one request, one machine. If we had 50 machines serving the millions of requests, it’d only take 50 requests to shut down the entire UI. Lex Fridman (01:41:23): Isn’t it possible to do DoS or DDoS on basically any software system Like defending against all the closing all those attack factors is probably really difficult. If you take any sufficiently complicated software system, there’s probably so many ways to overwhelm it. ThePrimeagen (01:41:42): Yeah, this is why people use CloudFlare. I think d HH said it best, which is like we have our website and we have a strong bodyguard on the outside. So CloudFlare has a bunch of utilities all built in. Because obviously this is why everyone hates all these Bluetooth devices that connect to the internet because they just turn into attack vectors where people use those to DoS or DDoS other sites. And so you don’t need something sophisticated, you just need a bunch of requests to come in and you can take down websites. And so that’s why these fronts are really good at discovering where these problems are. ThePrimeagen (01:42:13): But DoS is a bit different, because it doesn’t have to be overwhelming by using resources with a whole bunch of requests. It really just means simply that there’s a denial of service attack. One of them could be there’s a RegEx attack that existed where CloudFlare actually did it to itself and shut itself down, which is there’s a RegEx expansion attack where given the right RegEx, if you know someone’s running a specific RegEx, you can actually provide input that is maximally bad and that thing goes to super processing. It takes 10 seconds to process a single request, then you only need to make hundreds of requests and you shut down the whole service. It’s not like you need some giant machinery to make one trillion requests. You only need just some small amount to completely destroy a service. And so there’s… The web is an extremely difficult place to do it correct. Lex Fridman (01:42:59): This is super fascinating. I do also wonder how many ultra competent, what is it, black hat hackers there are, versus the good guys versus the bad guys. How many bad guys there are and what is the average… What is the distribution of skillset on the bad guy side that are constantly trying to attack? ThePrimeagen (01:43:23): I assume there’s probably a huge number of just really simple ones, script kitties, right? Just people trying to just do things. And then there’s a huge amount of social engineering that just goes in where hacking’s done, not with a computer but just by one of the classic ones. Kevin Mitnick had this one in his book which was you’d call up somebody pretending to be like, “Charlene, we’re doing some auditing and I think your pin’s out of date on file. Is it 2323, still?” And they’re like, “No, it’s 4747.” You’re like, “Oh, thanks Sharon.” Boom. You just hacked him. Right? The classic people love correcting bad information. ThePrimeagen (01:43:57): This is like a standard. So there’s all these ways people hack. And so my assumption is that there are really great white hat hackers, there’s really great black hat hackers. But the vulnerability space, the harp, the thing is that discovering a vulnerability and you don’t let anyone know, the white hat hacker still has to make that same discovery. And that’s where I think the real thing is that black hat hacking in some sense has a fundamentally easier job or at least a job in which they can take advantage of for much longer periods of time. One’s the process of discovering who’s breaking the system. The other one’s trying to figure out how to break the system. And it seems like most software is held together by toothpicks and glue and there is a lot of dangers in every piece. Lex Fridman (01:44:40): And also the social engineering aspect, that’s a real attack vector. I think that’s the attack vector that will do in the longterm the most damage in the world. Especially as AI tooling becomes easier and easier to convince people at scale, sort of do that email Grandma. I think that’s a really serious attack vector, like human psychology and all that. I assume whenever there’s a girl that approaches me, it’s some kind of social engineering project, some attack vector, some intelligence agency. In fact, I’m pretty sure- ThePrimeagen (01:45:12): We’re back to A Beautiful Mind, aren’t we? Lex Fridman (01:45:14): Beautiful mind? Yeah. I have a whiteboard upstairs that I calculate everything, everybody’s trajectory and move. ThePrimeagen (01:45:20): You’re not wrong though with the attack vector, especially in the day of AI. One thing that I don’t think a lot of people are talking about as we integrate more and more AI is that prompt injection is an extremely hard thing to defend against because it’s not really clear how you defend against it. If it’s just a, at the end of the day word calculator make word come out. If you can figure out the proper word calculator input, it might just break its bounds and start doing something it’s not supposed to do. And there’s a whole future word. ThePrimeagen (01:45:49): There’s all these products that are going to be vulnerable to things they never thought about. It’s one thing where you forget an edge case while you’re programming. Now you have to guess what people might be able to think of making something that has access to a system be able to do. Right. And you don’t have a way to reason about it. Its reasoning came from Reddit, and other words that it’s read and how to put things together. This is a very… It’s a massive space that’s going to be happening. It’s why I’m personally thinking don’t give too many powers yet. We don’t know the attacks that are about to happen. Lex Fridman (01:46:21): Yeah, the more power we give to software systems, the more damage they can do. That certainly is the case. But the more awesome they could do, and that’s the knife’s edge that we all walk along as a human civilization together, hand in hand. Will we flourish or destroy ourselves? Question mark. Folks on Reddit, the good folks on Reddit, demanded that I ask you about the time you broke production. Is this related to Falco? Did you break production? Is this fake news? ThePrimeagen (01:46:48): I’ve broke production quite a few times. I’ve broken productions for so many stupid reasons. One time I broke production because I came up in the PHP and PHP. Static means static for the lifetime of the PHP and PHP was the lifetime of every request, right? That’s why PHP was so inefficient was that every request was its own instance, and therefore static memory was for the lifetime. I guess I never put that together. And so I had some objects that I made static because I was like, oh I just need this for the lifetime of the request. And lo and behold, those weren’t lifetime. A whole bunch of bad data got all over the place. People were showing up saying they were from all these different countries and everything was all wrong because I just… “Whoopsie-daisies.” ThePrimeagen (01:47:25): I just made a whole conundrum with that. So that was one time I did it. Another time is I took down, if you were on the homepage on the website waiting for Lady Gaga’s video to come out and you were watching the countdown go down, if it reached zero, the billboard would freeze and it wouldn’t work. If you refreshed it, it would work. But the reveal, the big reveal, I screwed that up and my boss got real upset and so did other people in Hollywood got upset about that one. That was like a, “My bad. Sorry, Jeff Wagner, again.” I remember that one. I remember that one specifically. One time I released a bug where again on the billboard, if you pressed add to my list, I accidentally programmed in an infinite loop, and your whole webpage would just freeze. Lex Fridman (01:48:12): Are some of these bugs difficult to discover until you started- ThePrimeagen (01:48:14): That one seems really easy looking back at it. Lex Fridman (01:48:17): In for a loop? Yeah. ThePrimeagen (01:48:18): And we actually, during those days we had manual QA that are supposed to go through everything. So I didn’t feel as bad because my manual QA counterpart also missed it. We all missed it. But it was just so simple. Just press that button, boom. It just completely freezes the website. Lex Fridman (01:48:33): Polluting the code with global variables that are holding values, SPHP I think allows you to do, that’s a tricky one to discover, because you rely on it, then there could be somebody else assigns a value to it. ThePrimeagen (01:48:47): Yeah, it’s a data race everywhere. And I just didn’t understand… In my head static was like, “Oh, this is for the life.” I was just so locked into the PHP world at that time that I just made just such a, looking back on it’s so obvious. But during the time, it’s hard. Lex Fridman (01:49:04): So in general, pushing to production, I talked to Peter levels about this. He, obvious he’s operating as mostly a solo developer, but he often on the website said thousands, not hundreds of thousands of people use. He often ships to production, pushes to production, meaning just no testing, just like push to fix. What are the pros and cons of that approach in general to you? What do you think? ThePrimeagen (01:49:31): It’s obviously much easier the smaller your organization is. I think no one would argue that sentiment. If it’s just you working on a singular project, it is obviously much easier for you to push directly to production because you are the only one working. You know all the ins and outs and if something were to break, you would discover it. So to me that makes sense. I think the way he operates is perfect for what he does. You couldn’t take what he does and move it to say Microsoft or Netflix or Google because that would obviously… It would just be a disaster, just due to the amount of people all pushing to production. And so I personally love that. I think that you have to gauge both the application you’re building and its complexity and what you’re pushing, and how many people are working on it. ThePrimeagen (01:50:15): I think those all go into how you can do that. Because not all applications are created equal either. That application I was making was zooming and scrolling where we had all of our own everything. It was a very deep heavy logic app, and that was regardless of what was happening on the website, most of the code was library code. And that becomes way harder if you don’t have a good test suite and stuff to run before you push it out. Because when you squeeze that ball, different things come popping out in different areas. And that’s a very harder problem than say if you’re doing more of a heavy visual one because a heavy visual one, you’re affecting just this one area’s visual stuff and you can test it and that’s normally the end of it. ThePrimeagen (01:50:57): Whereas, you know… So it depends on the coupling and everything. So I love his approach by the way. I have such mad respect for anyone that operates that way because I think is a great way, it just is so good because it breaks this notion that tech Twitter has that oh well you have to use all these expensive services, you need to use all these things because if you don’t use all this stuff, “If you’re not using the latest version of React, if you’re not using the latest version of this, you’re simply not going to make it as a startup. It’s impossible.” And it’s just like, “No, no, that’s not software.” Most of software isn’t the new stuff. Most of software is old crappy software that someone has to maintain, and it actually is really, really great and has lots of really hard problems. And if you look at it differently, it’s actually fantastic. Lex Fridman (01:51:38): For people who don’t know his tech stack, in terms of web development is PHP, jQuery and SQL. ThePrimeagen (01:51:45): Yeah, all great stuff. I’m just surprised he still uses jQuery just given the fact that at this point on the modern web, everything is, you have document query selector and ad event listener click, right? It pretty much has everything you already need. It had DOM content load, all the reasons I used jQuery back in the day was adding a click on a button was hard. You had to deal with IE7, IE8, IE9. Those are hard differences. Whereas now, it’s just so easy. I’m just surprised it’s even that. Lex Fridman (01:52:13): That’s definitely a trade-off. I still use the exact same stack, PHP, jQuery and different flavors of SQL. But the question there is you keep using jQuery because you can get the job done really fast and there’s no significant performance hit that you detect. So like why swish to something else? But it’s always probably as we’ll talk about good to explore and to learn. ThePrimeagen (01:52:39): Not all tools are great at solving all problems. And so what you think is really the problem is you run into this trade off, which is you have some tool belt that you’re very adept with, you know all the ins and outs. There’s no unknown unknowns, but there’s no surprises in this. You know what you’re building, you know what you’re getting into. You will go through and you’ll be able to solve the problem. But if you ever use a different language or a different experience, you can find that some things are able to represent states way easier, in a way more efficient way. And you can solve problems really efficiently in some versus the other. And so it’s like if you don’t take the time to explore as well, you could be missing out on something that makes you twice as good on this one specific problem like subset. And so I value being able to look at all problems. And so I don’t want to get stuck on one thing though. I see why people do, which is for the efficiency sake. Lex Fridman (01:53:34): Let’s just return to the infrastructure of the platform of Netflix and, speak more generally, Netflix, Twitch, YouTube. Anytime I use any of these services, I’m just blown away by the infrastructure it takes to deliver this service. YouTube and Twitch are unique, versus Netflix where the creators can roll in themselves and upload stuff. So on the consumption side, YouTube has over 100 billion views a day, over one billion hours watch time. But on the creator side, one million hours of videos are uploaded every day. One million hours. It’s like you have to service both and you have to deliver everything… It’s just incredible to me. Can you maybe speak to your own intuition, just zooming out on it, what it takes to deliver that kind of infrastructure? ThePrimeagen (01:54:25): For me, the thing that I find vastly complicated and I can’t imagine the engineering hours, is how do you even create an edge in that situation? And what I mean by an edge, when people say this phrase, if you’re unexperienced, an edge is where you deliver data. You want that edge to be as close to the customer as possible because that’s where the data lives. And then the communication between the customer and what you’re doing is really, really small. Obviously the speed of light adds up, the amount of hops adds up, the amount of services that you have to remotely call adds up. ThePrimeagen (01:54:54): They all add up and they all add inefficiencies to the system. So something like YouTube, they want to be able to serve that data as quick as possible, but their data changes constantly and relevance is almost directly tied with the newness of the item. So it’s like how do you even cache these things out? How are you doing this? So they must have such an incredible caching network that I can’t even… I can’t even fathom what it takes to do that. That just to me is just so impressive. A million view hours in how many different resolutions with how much data? What is a million view hours? Is it 4K million view hours, along with 1080p, along with 720p, along with 1440p? That number is an insane number. Lex Fridman (01:55:33): Actually, it is brilliant what you said, which is for YouTube often the new thing is extremely important to show to everybody. And so, you can’t rely on caching or trivial kind of caching. ThePrimeagen (01:55:34): Yeah. Lex Fridman (01:55:48): You have to deliver the new thing as quickly as possible. Yeah, it’s incredible. So there’s the entire system, the recommendation system that knows each individual human watching YouTube and it has to integrate into that the new thing, while also caching this incredible cluster of possible videos that you’re potentially interested in. And integrate into that ads in the case of YouTube and so on. ThePrimeagen (01:56:19): It’s a really tough problem because you have to think what is the cash hit rate on this? Because the problem now actually comes down to space, space actually becomes a real problem. How many hundreds of petabytes do they have that they have for like, “Okay, what do we cache and where do we cache this?” The number, I think in the terms of gigabytes or maybe megabytes, they have to think in probably versions of bytes I don’t even know the name for right? It’s such a different problem and that’s why I said Netflix. Netflix has a much easier job when it comes to caching. So if you’ve never looked it up, it’s called OCA and that we know what videos we’re releasing, we know what videos are hot in specific areas. It’s a very limited set. We’re not going to all of a sudden get, “Oopsies, we got a million new view hours.” We don’t even have to worry about that as a problem. So it’s like, “Okay, we know Stranger Things season five’s about to drop, we’re going to pre-cash Stranger Things season five in every single OCA across the world because that thing’s about to get hammered.” And so it’s like it’s able to do such a different decision-making than what you have to do with something like YouTube. And then Twitch is even more wild because now you’re actually ingesting video and trying to make it go out all at the exact same time for all video and you have to transform that video from whatever format and whatever the bit rate is into something that’s more efficient in the system like that. Hats off to Twitch engineering, because that’s some serious work. Lex Fridman (01:57:44): And here’s some asshole, Lex, coming out and tweeting about YouTube features. Listen… ThePrimeagen (01:57:53): You’re not wrong on the features you asked for, though. Lex Fridman (01:57:56): I think this is an engineering problem of how do you allow fast iteration and addition of features that shouldn’t have to be integrated or impact the whole code base. So at the edges of the code base improve on certain features, without having to consult the mothership of the code. ThePrimeagen (01:58:19): It’s the large team, right? That’s the fundamental problem. When you get into YouTube size, there is the team/organization that deals with data warehousing. There’s the team slash organization that deals with delivery. There’s a team slash organization that’s like the middle layer, how you even… They’re going to be like the little micro-surfaces to talk to these places. Then you have this front-end engine. So for a small feature, you have to get middle team, you have to get backend team, you have to get all these things. Quick example, Netflix. Are you familiar with the dystopian, Black Mirror? Lex Fridman (01:58:19): Yeah. ThePrimeagen (01:58:51): Okay. Season one, episode one. Do you know season one, episode one? Everyone who watches Black Mirror typically knows this episode. Lex Fridman (01:58:57): Okay, yeah. I don’t remember what it is. ThePrimeagen (01:58:58): Forgive my language, but they call it the pig-fucker episode. Lex Fridman (01:59:01): Oh yeah, of course. ThePrimeagen (01:59:02): Once you’ve seen the episode, you will then know this episode. Well, when Netflix adopted it, I got pulled into a room, there’s like a VP, a product designer, a VP, and they said, Hey, we’re about to release our own version of Black Mirror, season three, I think at that time. We need episode one, season one to not be the first thing people see. So let’s just reverse the season order. That required me… I had like 20 engineers I had to gather together to be able to have this happen. And that’s just the problem of big companies is that eventually every little thing has to become its own team. And so even small… There’s no such thing as a small feature. Lex Fridman (01:59:42): Reversing the order of the dropdown that selects the seasons is a meeting with a bunch of VPs and engineers. That’s really interesting. ThePrimeagen (01:59:50): Yeah. Lex Fridman (01:59:50): There’s got to be a way to accelerate that. The natural scaling of a company and the bureaucracy that grows, yes, slows that down. But just having seen Elon work a lot, his teams are able to still keep it very fast, even as the company grows. There’s got to be a process to doing that, especially for the pig-fucker episode. I don’t know where that’s in the priority list, but for important things like that, you should be able to do that quickly. I don’t know. Can you speak to how would you do that? ThePrimeagen (02:00:25): Well, I can tell first how it was done. Remember… So at a place like Netflix, there would be… I think that at that point it’s called a product called Dexter. I can’t remember. There’s our actual movie metadata warehouse that’s going to be highly integrated with Hollywood, where that side is able to manage all that. So I’m like, “Hey, you need the ability to mark things that need to be reversed because we’re going to run into this a bunch.” And we did. We ran into quite a few topical shows that all need to be reversed and all that. And so it’s like, “We need to be able to reverse episode numbers, season numbers. We need to be able to hide season or episode numbers.” ThePrimeagen (02:00:58): In the case of the Chelsea Handler Show, it was like a daily show, so it’s like you don don’t need episode numbers, you just need the latest one. And so there’s this whole problem that exists. And so it’s like, “Okay, you need to work on that for your UI over there, then you need to be able to store that data. Then we need to be able to go to the people that can actually get the video data out of that and provide it to our service layer. I need to go talk to them and convince them they need to be able to give me the new methods and everything to do that. Then I need to be able to go write the methods to get it down, and then I need to go to the UI and make that accessible. Now I need to go to the website people, I need to go to the mobile people, I need to go to the TV people.” Lex Fridman (02:01:31): Yeah. ThePrimeagen (02:01:32): And so it’s like, you could see this thing like snowballing. And for us, the big thing that Netflix did that was so well is after I met with these people that were high level, I was the captain. “I’m the captain now.” So I went to all these teams and said, “Hey manager, I need an engineer. We need to get this done within the next couple of months because we got Black Mirror coming out.” So she would go, “Okay, here you go.” “The map team, I need someone to help me with being able to get data out of the lomo for this.” And so it’s like, “All right, you’re working with this engineering.” ThePrimeagen (02:01:59): I’d go to the BMS team, “Okay, I need this engineer.” I’d go to the billboard team, “I need this engineer.” I go to all these little places to get all these little pieces of data. And then I was the captain, I was like, “You’re working on this, you’re doing this, you’re doing this, you’re doing this, I’m doing this. Let’s go.” It’s like that worked. And we were able to go pretty fast for a big company. And the fact that it required 20 engineers to do such a simple task, we were able to do it in, gosh, I’d say about three weeks worth of effort. But that was still… I thought that was amazing, comparatively, to how many people move. Lex Fridman (02:02:29): Well, because you have the freedom of the agency to do it. You said the captain of the ship. That’s really powerful. For big companies, that’s a risk. Because you can fuck it up. You might not see the bigger context legally the bigger context of the impact on the industry or all the contracts that are made, all that. So it’s a risk, it’s a risk, but it’s a risk you have to keep taking. And then when you fuck up, you fix, and then maybe pay the cost legally for that, whatever. But the long term, that risk pays off because you’re going to keep creating a better and better product, evolving where the industry is going, constantly innovating ahead of where the industry is going and so on. Yeah. ThePrimeagen (02:03:08): And not only that, I think one thing that is just so important is that yes, the product will get better, but the people that you hire and the people that you keep around are better because they’re the ones that show maturity. They’re the ones that can just… You give them something and they can rally the troops and make something happen. That’s a very great group of people to hire. And so you also naturally select out great engineers that aren’t just simply good at coding, they’re good at coding and they’re good at explaining and they’re good at convincing. And you have to create a very lean audience that can move fast. Lex Fridman (02:03:40): And I think for great engineers, having to wait for like, “Okay, let’s schedule a meeting for next Wednesday with the VPs and…” That destroys their soul. And they either don’t want to contribute anymore or they leave the companies or they just tune out and take the golden handcuffs and just buy a nice house and focus on a family. ThePrimeagen (02:04:04): Yeah. I feel like I would die under that… Honestly, that is my death sentence is where it’s just that there’s no reason to try, there’s no reason to do anything. I’m just going to go in there, effectively zombie through my day and call it… I don’t want to live like that. I want to feel like I’m trying to do something. Lex Fridman (02:04:22): I should also mention on top of that, so you’ve brilliantly laid out how incredible the challenge that Netflix has to solve. On top of that with YouTube, the metadata thing, because users are able to upload video and there’s an API where they can upload automatically and change all this kind of stuff automatically. Every one of those things is an attack vector, as we mentioned. That’s something they have to consider seriously on the engineering side. And on the legal side, they can get into trouble all kinds of ways. So they have to consider all of that, which is fascinating. ThePrimeagen (02:04:59): The legal side is obvious, but it’s not really like… I would never have initially thought someone would, say, upload images that you’re not allowed to own or have. But that guarantee you that happens. Then you have the whole kid side, right? I think about when you mark something as kid-friendly, how many times have they snuck porn into a Taylor Swift video or whatever? That was like a few years back, there was that whole Taylor Swift or whatever. I forget what it was, I thought it was Taylor Swift. But there’d be these mock videos that’d come up and then, boom. It’s like, that is such an awful problem and I’m so happy that is not a problem. I have to try to figure out. Lex Fridman (02:05:32): Okay. So yes, YouTube and Twitch and Netflix are doing an incredible job. You eventually chose, the madman you are, to leave Netflix and to start on a new journey of being a wolf pack of one, start streaming. What was that? What was the story of that? ThePrimeagen (02:05:52): So I was streaming for almost seven years now. It started actually at Netflix. We did a charity, Extra Life, shout out to Extra Life for starting my streaming career, effectively is just you stream and whatever money you raise, it goes to Kids with Cancer research. They are a great charity in the sense that they take no overhead and they raise their own donations for their website and everything. And so it’s a very great, straightforward charity. Really love what they’ve done. It was super cool because I live in South Dakota now, but I actually could choose a hospital directly where the money goes to. So there’s a direct impact from A to B. So it’s a pretty cool organization. And so my friend, Guy Cirino, Nice Try Guy is what I like to call him, he was probably the single greatest engineer I’ve ever met in my lifetime. ThePrimeagen (02:06:37): And he was just like, “Hey, come do this. We’re going to all do this.” So I played Fortnite. So before I did that, I was like, oh, I better learn how to stream first. I better get affiliated so I can take subscriptions. And then if anyone gives me a subscription, I’ll also pay that forward. So June 2018 or something like that, I start, I start streaming and I start streaming some Fortnite. End up getting affiliated, end up doing the whole extra life thing. I end up really enjoying it. I’m like, “This is a lot of fun.” I’m playing Fortnite at that point. Okay, so mind you, I’m a Fortnite streamer at that point, and I start really enjoying it. I keep doing it and then one day I decide I’m going to do some programming. Because I really love Vim and I think I’m fast at Vim, and maybe people think programming is cool. Because there was no really programming section at that point. ThePrimeagen (02:07:22): And I did it. I had like 30 people show up, which was just… And it felt like incredible numbers at that point. So I was like, “Oh my gosh, there’s like 30 people watching me program.” So it just kept on going and it kept on happening and it just kept on growing. And I did it for year after year. I would do my job, I would come home, I’d eat dinner with the kiddos, I would read them Lord of the Rings and the Hobbit during that time, I’d read to them for a half an hour, then I’d set that down. And then three nights a week I would program until like 2:00 in the morning or play video games until 2:00 in the morning streaming and building up this whole side thing. And I did this for a long, long time, and then eventually it just kept working out so well and I started making YouTube videos. And then that started getting better. And it was just a long, long grind until April of last year. ThePrimeagen (02:08:08): I went to the Streamer Awards and I got to announce the programming category and Pirate SoftwareOne. It was awesome. It was a great time. And during that time he gave me a challenge coin and just said, “You just got to go for it. Just go full time.” And so I just sat there and my wife can attest to it. It was like an emotional turmoil thing and it just took a lot of, it was pretty awful because Netflix is very safe option. It was both very fun. It was challenging. I liked a lot of the people worked with, it was overall a really great thing. I had a really great boss, really appreciated him. I still have text him now and then he’s really great guy. So it’s just like I’m leaving all these things for something that’s unsure. And the reality is that streaming and all these things, people love you one day, they could hate you the next day. There’s all this stuff that goes into being on the public side. ThePrimeagen (02:09:04): And I had Netflix as the backing, so it’s like if public hated me the next day I’d be like, deuces, I’m out. I don’t care now it’s like, now I’m going to do this as a job. And so there’s a whole huge turmoil to this whole thing that went through it. And eventually I just said, okay, I’m going to make this. It resonated with me when I first made the decision to join Netflix. I’m getting older. There’s not a lot of chances to do something unusual. Those chances go down constantly. As you get older, this might be the last crazy thing I get to do. Let’s just try it. So in April I went full-time and I guess I haven’t looked back. I’m only not even a year into doing this as a full-time gig. And it’s just been a lot of fun. And the biggest thing is just being able to really explore and do these things on stream where people really enjoy watching and engaging. It’s been a great, hard, fun, amazing, difficult experience. Lex Fridman (02:10:02): It’s a really inspiring leap. It’s a really hard one to take for many reasons, like you outlined, but also the loneliness of it, I think it’s a pretty lonely pursuit. ThePrimeagen (02:10:14): It is. Lex Fridman (02:10:15): Just you and the camera and the audience and the ups and downs of that. And there’s not really a team. ThePrimeagen (02:10:21): I do have one lucky thing I’d say that, my editor, Flip, shout out Flip. Lex Fridman (02:10:25): Flip, shout out. ThePrimeagen (02:10:26): He said it would mean the world to him if I said, “Shout out, Flip.” Lex Fridman (02:10:28): I love you, Flip. We all love you. ThePrimeagen (02:10:31): Oh, man. He had, as he would say, he had nothing going for him. He had a really hard growing up. A lot of rough life decisions have gone into his life and he’s crawling back out of it. And he just said, Hey, I’ll edit full-time for you. So I just said, “All right, like 50/50, whatever I make on YouTube, you get. We’re going to do this together.” And we did that for years, making $0 a month pretty much. And so it’s just like that was an incredible jump and now we get to work together. So I do get that one team aspect that I think is really nice. But it’s not like it was at Netflix where I could hear about stuff people are building, I don’t have a team, I don’t have product or cycles, I don’t have a manager that I have to try to make happy. It’s just like… It is very lonely. And I don’t think a lot of people realize how lonely it actually can be. Lex Fridman (02:11:19): Yeah. So combine that loneliness with, in my case, I don’t know how many people attack you. ThePrimeagen (02:11:24): I have a shockingly low amount of attack rate, I feel like. Lex Fridman (02:11:28): Yeah, people generally… It’s sometimes fun sort of teasing, that kind of thing, but it’s mostly just really… You give so much love to the world and inspire so many people, even when you’re making fun of stuff, yeah. But with me taking the loneliness of it combined with just really intense attacks, it’s tough. It can be rough. Psychologically, really a tough journey. You miss working with a team, just from even a software engineering side, where you can share code or talk over code? ThePrimeagen (02:12:01): Yeah. Lex Fridman (02:12:02): Yeah, the collab… Lex Fridman (02:12:00): Or talk over code or the collaborative aspect of it. ThePrimeagen (02:12:05): Yeah, multiple things there. One, hey, we love you Lex, so don’t let the things get you down. Lex Fridman (02:12:12): Thank you. Thank you. I love you too. ThePrimeagen (02:12:15): Thank you. Hey, little bonding moment here going on. But one thing I really miss- Lex Fridman (02:12:20): Not in a sexual way, just to be clear. ThePrimeagen (02:12:21): The tension is a little tense. Lex Fridman (02:12:23): I’m getting uncomfortable. Yeah. Anyway, team. ThePrimeagen (02:12:27): It’s just the one thing I really miss is just, even when I hated how people did it, just seeing how other people solved things, it’s really amazing just the raw creative power so many people have, and just being like, oh, wow, I would’ve never done it this way. Crazy, right? Wow, this is awesome. And then you kind of internally process this and you’re like, oh, I now have a new little tool in my tool belt. Because at some point it’s really hard to find a mentor when you’re first, young and you’re just starting out programming. I mean, anyone with a couple years of experience will be not just a little bit better than you, but infinitely better than you. It feels like crazy how much better people are. And so you have to get mentors and you learn from people. And then as you get better, that amount of availability gets really small. And so it’s something that I really do miss is that forced hard problem solving together. Lex Fridman (02:13:19): I think there’s also a skill to mining the wisdom from other people. I generally try to approach even junior people, young folks. It’s just mentally, at least for me, it works as a hack to assume they’re the smartest person in the world, way smarter than me. And so I take every single word they say as potential wisdom, and that helps me sort of mine for potential wisdom there. Because it’s so easy once you get older to judge, to be like, yeah, okay, okay. I’ve been through that. I remember feeling like that. I remember thinking that. That’s incorrect, whatever. But just kind of assume that I don’t know what the fuck I’m doing, and the other person is this sage. And in that kind of interaction, I think you could actually learn a lot. And my favorite interactions is when we both think that way. So from there, I think that’s a catalyst for a great collaboration and interaction. ThePrimeagen (02:14:19): It just also makes everything much nicer. It really stinks to work with someone that’s combative and negative. I don’t mind combativeness if it’s like I’m trying to figure out what’s best to do right now, versus combativeness just because you’re a negative person and things have to be this one particular way, because if they’re not this one particular way, it’s the end of the world. And that’s actually really hard for me to work with. Lex Fridman (02:14:43): What’s the origin story of ThePrimeagen name? ThePrimeagen (02:14:47): The origin story of ThePrimeagen name was, are you familiar with a video game called Turok? Nintendo 64. Turok had Turok I and then Turok II. Turok II was a brutally hard game. This is back when first-person shooters, they would only give you a certain amount of health, and you had to go discover health and get that health. And you had to beat the whole game without effectively dying. That’s the first version right there. That’s like Turok I and Turok II. Lex Fridman (02:15:16): Turok is a renowned first-person shooter video game series featuring dinosaurs, action, and sci-fi elements. The franchise has evolved significantly since its inception in 1997. ThePrimeagen (02:15:27): There you go. So in 1998, there, you can see it right there. Lex Fridman (02:15:30): Turok II, Seed of Evil followed in 1998 featuring larger levels, more challenging puzzles, and deadlier enemies. ThePrimeagen (02:15:37): The notable difficulty, it was very, very, very difficult. So I spent, when I got it, it came in a black cartridge, not like your standard gray Nintendo 64, the black cartridge. Badass game. And I got it and I put it in and I played, and I played every day for 10 hours a day, for a month straight. And I beat it. And it was such an incredible, great experience. And the last leader of Turok II is called the Primeagen. And so when I was a kid, when you’re in fifth grade, that’s super cool, named after the bad guy. And so for a long time on any internet thing, like Grail Online that I mentioned earlier, the name was ThePrimeagen. It was great. And then I became an adult eventually, and it’s just like, okay, I’m an adult. My name’s Michael Paulson underscore. And that’s what I was on the internet for a long time was that. And I remember it was like 2017, 2018, somewhere in there. ThePrimeagen (02:16:36): I remember just how bad the tech world had kind of become. It was just like this super pretentious place, tons of dick measuring, just everything that just was the worst. Ken Wheeler got canceled over playing the Circle game. It was just like, it is so hard to describe to people that weren’t there, but it was just the worst place to be. Tech was extremely unfun. It was extremely awful. Everything was just so, it wasn’t academic because it was research. It was like we’re building the most sophisticated things, and this is for the smart people and everyone else is the dumb people. Don’t worry. We’ll design for you, dummy. We’ll show you how to make the perfect architecture. And I remember changing my Twitter handle because I got so upset and just went back to my video game name. I was like, I want things to be fun. ThePrimeagen (02:17:24): I want this to stop. And so when I started streaming tech, my goal became to destroy whatever that tech mentality was, because it includes nobody. Everyone thinks that they’re the smart people and they design for the dummies. And it’s just like, no, I want tech to be this place where people feel like they can be creative, and excited, and actually build something. And if you’re new, it’s okay to be dumb and ask dumb questions. Learn from your dumbness. No one’s expecting you to be smart. Pick whatever you want. Actually do something and have fun and build your crazy ideas. Oh, you’re going to reinvent the wheel, reinvent the wheel, understand what you’re doing, learn it really good, and interact and stuff. And it was just so different than what was out there. And the name… Arnold Schwarzenegger talks about this thing where, when he first started acting, his name was the thing that people hated. ThePrimeagen (02:18:14): As he once said, you have a strange voice, you have a strange body, and your name, your name’s unpronounceable. No one’s going to Schneitzinfinitzel, no one’s going to remember that. And he said, but now the name is the strong part. And for me, I’ve always felt akin to that, though my name’s not nearly as cool, nor am I as popular as Arnold, nor am I as tough or good-looking or successful. But nonetheless, it’s just the name represented this counterculture movement within myself, in which I just hated what was there and I wanted to defeat it. And so this has been the thing. And now people remember me so well because of how weird my name is. And so it’s just like for whatever reason, it became its own thing. And so that’s the… Now I would never change it, and back then I would never change it because it was my rage against the machine moment, if you will. Lex Fridman (02:19:01): Yeah, I love that as a symbol of rage against the machine and the rage being fun. ThePrimeagen (02:19:07): Yeah. I just want people to be creative and have fun again. It’s okay. Lex Fridman (02:19:11): What about the mustache? It’s an epic mustache. It’s an epic stash. It has a life of its own. Is there an origin story or did you guys discover each other at some point? Or did it emerge from the darkness of the struggle that is your life, or where does it come from? ThePrimeagen (02:19:29): Well, the original mustache is that it was no-shave November back before it became Movember. It was no-shave November back in the day. And after no-shave November, you had all this hair. And so what’s the natural thing you got to do? You got to sport a mustache for a day. So whenever I’d forget to not shave for a long time, and then I’d let it start growing out really big, I just go, oh, this is kind of funny. I’ll have a mustache. So one day when I was streaming, it’s just one of those times I just didn’t shave, and then I started just letting it go, and then I got kind of a beard, and then I just had a mustache. When I did it, people were just like, yeah, it’s mustache time. And I was just like, heck yeah, it feels like a lifestyle decision. ThePrimeagen (02:20:07): This is the fun times. And so all of a sudden it was just exciting to have a mustache. And I shaved it off and I was like, oh, okay. But then part of me is like there’s this weird energy that comes from just having a mustache. So I was like, I’m going back. Told my wife, forgive her. She was very not as thrilled about my decisions to have a mustache long-term, but I just decided to have it back and it was the right thing. It’s always been the energy that I had was the mustache. It was always been there. It just never was visible until later on it feels like. Lex Fridman (02:20:40): Yeah, we’re chatting offline how one of the components of a successful relationship is sacrifice and your wife was willing to take the sacrifice of allowing you to have a mustache. ThePrimeagen (02:20:48): I clearly was not willing to sacrifice not having one. Lex Fridman (02:20:53): You do this incredible thing where you tried a bunch of different programming languages when you stream. You go all out on certain programming languages like Rust and then go and then try to pick a new one, but also are experimenting constantly. So maybe one question I could ask is about learning. What’s your approach to learning a new programming language, and maybe what’s your advice on learning a new programming language when you begin that journey? ThePrimeagen (02:21:26): So I’ve kind of done a bunch of different ways to go through this learning process, and I’ve tried a lot of different ones. Something that is obviously successful is just start building something. Just put your hands on the keyboard, especially if you already know how to program. You’re like, okay, I’m now using Zig. How do I do a main function so I can just run the program? Okay, now I know how to build. Okay, how do I do an if statement? What does it look like? Okay, how do I declare my own functions? How do I do modules, right? You just kind of Google your way through it, if you will, to get to the end product and build something. It’s a great way to do things because I find that repetition, rote learning is obviously the best way to do this. You have to kind of go over it a bunch and you can definitely get out and build a lot of stuff with that. I like that initial kind of get used to things. ThePrimeagen (02:22:12): But on top of it, I find that, by doing that, you also fall into traps. You kind of Google and you try to solve a problem in the language based on all of your previous experience. And so you don’t have what makes that language special. You have what all the other languages make special. And so you end up not really being able to use it very effectively, but you can certainly kind of learn it and get kind of good at it. And so the second approach I’ve been doing lately, and this has been inspired by the creator of Ghosty, Mitchell Hashimoto, is to just start by reading the language reference, the whole thing. And so lately I’ve been just kind of going through and just reading the entire manual for these languages. Like Zig, I’m almost done with that one. It’s like eight to 10 hours of just sitting down reading, and I’ll whip out my computer and kind of practice a couple of the things from the actual docs, and that way I can learn all the things. ThePrimeagen (02:23:01): So then when I start building again, I’ll remember, okay, I know there’s a thing over here, let me go reread about it because now I have it indexed in my brain somewhere that will remember. And so I don’t think there’s a right or wrong way. I mean at the end of the day, the right way is always that you have to build something eventually. You cannot just read about it. You have to put your hands on the keyboard, you have to build something out. And then once you do that, that’s where you really discover what makes it painful or what makes it great. And if you don’t have the breadth of what the language offers, you just may make it painful by simply being bad at it. Lex Fridman (02:23:30): Where exactly are you reading this- ThePrimeagen (02:23:35): Language reference. Lex Fridman (02:23:38): The language reference. ThePrimeagen (02:23:38): So it just goes through every feature top to bottom, right? Lex Fridman (02:23:38): That’s a lot. Yeah. ThePrimeagen (02:23:39): Every way it’s described, all the different things. I think Zig’s is, it’s a decent size, but it’s not just simply read the words. You want to internalize each concept as well. So it takes a long time. So I’m a slow reader. Lex Fridman (02:23:51): So you’re building, in AI terms, like a background model. I don’t think you can just start building once you’re done reading because you probably forgot how to do a for loop. You kind of forget the specifics. You just are building up the design choices, the set of features available, what are the strengths and weaknesses, all that kind of stuff. And then you start building. That’s really interesting. Probably not the thing you would recommend to a junior developer, somebody who’s just starting out at first. ThePrimeagen (02:24:24): If you don’t know what an if statement is, that’s not a good way to learn. To me, the best way to learn that is really hands on the keyboard and building extremely simple things, and slowly growing in complexity. Because understanding what a class and methods and instances versus the blueprint, which is the class versus functions versus modules versus all that stuff. That just takes time to learn. And so that’s a completely different style of learning. Lex Fridman (02:24:46): I wonder because for me, learning right now, AI is a huge help, but I already have a lot of experience. I wonder, if you’re starting from scratch, whether that’s a good idea. But I still think it’s probably a really good idea, but basically generate some code using AI and figure out what it’s doing by playing with different parts. Maybe can you comment on that aspect, like the use of AI as part of the learning process? ThePrimeagen (02:25:15): This is where I have both the hopeful and the doomer take at the exact same time, and it’s the same thing with Google or Stack Overflow, it’s all the same kind of take, which is it’s just making things more democratized in some sense. I get to ask questions in probably the most personal possible way with my own voice, in my own words, and it’s able to produce out answers and hopefully help guide me. Now, regardless of just say the errors and the incorrectness of it, ultimately just using it as a learning tool and being able to just formulate and read answers in your own voice, I think is super powerful. And I think it’s super amazing. But the part that I think is going to be really difficult is that we don’t value remembering things anymore as a society. Since the internet came about, I can just look that up. I can just look that up. You don’t need to memorize your times tables. ThePrimeagen (02:26:12): You can just use a calculator. You can just do all that. I remember I just was sitting on the airplane and I watched someone do the world’s most simple addition and subtraction like 10 times on their phone. And why are you not just… You should already know, you should be able to do these things. And I realized that we kind of offload our brains, right? Oh, I don’t need to know these things because I can look them up. And that’s not a bad answer in some sense. I can understand that. I don’t need them to remember every last thing, but then it also makes me realize that you kind of develop this learned helplessness, that a new error comes up. I’ll just ask the AI. ThePrimeagen (02:26:46): AI says, oh, okay, I got to fix this line. I fix the line. You didn’t actually learn anything. You kind of just used it as a quick means to get something out and move on. And so you sacrifice knowledge for speed, which is a great thing in some… We have to make those trade-offs all the time in engineering. Sometimes you have to move fast at the sacrifice of knowledge, and I’m totally on board for that, but I worry that what we’ll create is an entire generation of incompetent programmers who can do some amount of things well, but anything that is unique, bespoke, or requires some extra like little elbow grease, might become very difficult. It might cause a whole chasm where juniors remain juniors forever. ThePrimeagen (02:27:26): And I don’t want to see that. I want to see people grow. I want to see people actually be able to take this as a craftsmanship thing. And so that’s both my hope and my worry is that AI think can do both really. If you could ask whatever question you want and you don’t have to rely on, say, a book to give you that exact answer. And if the book just said it wrong and you can’t understand it, it’s just like, sorry, you don’t get to learn what this is. Like recursion for me, I spent way too much time until someone gave me the right problem to understand recursion. You could imagine AI could have solved that for me way faster because it could have gave me the right problem and walked me through much better. But what happened if I just always have recursion solved by them and not actually learn it myself? Lex Fridman (02:28:03): So if I ask AI to generate code to do a certain thing, actually a large percentage of time, most of what AI generates is going to be correct for me, but some percent of time it’s not, fundamentally not. And for me to recognize the difference between those two, I think it takes a lot of experience. I think to learn that skill of knowing, no, no, no, a different new out of the box solution is needed here than the one you’re providing. You’re missing the point. That’s a skill, and how do you learn that? You learn that by building from scratch. So both are probably really necessary. Lex Fridman (02:28:44): But I think as a first step of learning how to program, it’s pretty nice to generate a function, to generate for loops and all that kind of stuff, and then just fuck with the different lines and modify them to try to adjust the behavior of the program, and from the way the behavior of the program adjusts or bugs are created, you learn about the syntax of the language, the behavior of the language, all that kind of stuff. So I think it’s a super powerful way to learn. But yeah, you need to also write from scratch. ThePrimeagen (02:29:17): At some point you have to take off the training wheels, because I think what you’re really spotting is the difference between reading and writing code. I can read a lot of languages very well. I can see what’s happening. I can understand it, but I would not be very good at writing it. I can understand a lot of things about C++ and I can read it, but I’m just not that because I just don’t done it in so long. I can’t remember where all the semicolons, and colons and you do public and private, and how should you do naming conventions? All those things kind of add all together, and then you’re just like, oh, I’m really bad at writing it, though I can read it. And so there’s a skill gap chasm that exists between those two. Lex Fridman (02:29:56): All right. Well, let me talk about the various languages. The cheesy, ridiculous question of what’s the best programming language? Let’s say, what’s the best programming language that everybody should learn? Maybe let’s go with the top five. I’m going to pull up the Stack Overflow developer survey, because I think we have… You don’t like them? ThePrimeagen (02:30:21): You got to remember, because I mean, you’re a data guy. You know about biases and data. What does Stack Overflow naturally bias towards? Lex Fridman (02:30:28): Well, they have the different slices of professional developers, junior developers, they have different slices. Okay, what is the bias? ThePrimeagen (02:30:36): I hear you, but who fills out a Stack Overflow survey? Someone who participates on Stack Overflow. Who’s participating on Stack Overflow? Largely very, very new people, and that one guy that loves answering questions. And so I’m not sure if Stack Overflow is a great place to get data. It could be a very biased set of data. Lex Fridman (02:30:52): Is it really only new people? ThePrimeagen (02:30:55): I mean that’s who’s using Stack Overflow. Lex Fridman (02:30:58): All right. Most popular technologies. On this… ThePrimeagen (02:31:02): JavaScript, HTML, Python, SQL. Lex Fridman (02:31:05): SQL is the more general kind of… I’m sure they’re not doing the individual sort of flavors of SQL. By the way, pronounce SQL versus SQL? ThePrimeagen (02:31:15): It’s squeal. Lex Fridman (02:31:16): Squeal? You squeal? ThePrimeagen (02:31:19): Squeal, I think is the correct way. Lex Fridman (02:31:19): Squeal. ThePrimeagen (02:31:20): I did SQL because I didn’t know the audience. I don’t know if they can handle the truth, which is its squeal. Lex Fridman (02:31:25): The squeal of joy, squeal… ThePrimeagen (02:31:27): Squeal light, my squeal, Postgres squeal. Lex Fridman (02:31:31): By the way, I had a lot of joy from earlier saying pigfucker, for some reason. ThePrimeagen (02:31:34): It’s such a [inaudible 02:31:36]. I mean, can you believe that was a real conversation that I had? Lex Fridman (02:31:38): Yeah, that was. TypeScript, BAS, Java, C Sharp, C++, C-PHP. ThePrimeagen (02:31:45): It largely kind of aligns with the world you’d expect, but Assembly, why is Assembly more popular than Ruby? Who’s writing just Assembly by… No one writes Assembly by hand other than maybe that one guy that’s developing TLS 1.3 and hand rolling a cryptography algorithm to be the fastest possible algorithm. Lex Fridman (02:32:02): Yeah. Assembly is a weird one. Maybe people write it maybe in school, but even in school now for a operating systems course or something like that, or system engineering. I don’t know if they write Assembly anymore. I don’t think so anyway. ThePrimeagen (02:32:18): And Swift and Ruby being less popular than Assembly seems ridiculous. But nonetheless, okay, so you get my ideas behind that, but as far as top five languages go, that’s probably too broad because you could just name so many. I think you should probably archetype it by what do you want to do? So if you want to get into game development, perhaps C Sharp, C++ could be good choices. Or JavaScript and doing Canvas games, I could see that also working. But you’re limited by doing JavaScript obviously, because you can’t do as much because the language is just not fast enough to do as much. So it’s like a good thing to remember. If you’re going to be doing backend stuff, if you want a job, if you’re looking for a job, maybe C Sharp slash Java, or JavaScript, or Go would be great choices. If you’re looking to do embedded, you probably want to do C, C++, like that would probably be a good choice. And so I think you have to first determine what do you really want to get out. Lex Fridman (02:33:14): If you’re just curious about programming, which I talked to a lot of people who are, yeah, you can consider jobs, but basically their question is, okay, what’s the first language I should learn, and maybe what are the several languages I should explore? ThePrimeagen (02:33:28): Can I say something that’s going to make a lot of people angry? Lex Fridman (02:33:30): Yeah, sure. ThePrimeagen (02:33:30): I think the first language people should learn if they have no idea about anything is JavaScript. Lex Fridman (02:33:35): Yeah. Why would that make people angry? ThePrimeagen (02:33:37): Oh, because people just, first off, I’m not supposed to say anything nice about JavaScript. Lex Fridman (02:33:41): Yeah, usually that’s the meme, that you hate JavaScript, right? ThePrimeagen (02:33:44): Yeah. No, JavaScript’s a beautiful language, and it has a lot of things that are very great for it, and one of them is that you can express anything with very little effort. And so someone that’s new, I think it’s really great to be able to draw a box and move a box. That’s great. You get to see it visually. I think that’s one thing that’s really great about JavaScript is that you can do that. Then you can go, okay, I want to learn about the backend. I want to make a request now. ThePrimeagen (02:34:08): You can write a quick backend in it. Now you’re starting to get familiar with programming a little bit. I can save this to a database. I can bring it down. I can put it on a screen and I can animate it all around, and I can even put it on a canvas and render it in 2D or 3D. So it’s like there’s so much variety of what you can do with JavaScript. It’s a great way to get introduced into programming. But then at some point you have to go, okay, I now need to learn more about this whole thing. Lex Fridman (02:34:31): I mean, yeah, just like you said, you can make games, you can do front end, backend for web development. ThePrimeagen (02:34:37): You can even do embedded. They actually have… Like there’s Wes Bos is building his Roomba or something and programming it with JavaScript and React, which is just the world’s worst language to choose for embed, but you can still do it. Lex Fridman (02:34:51): Also, we mentioned sort of in terms of applications, anything that relates to data or machine learning, Python is the sort of the leader there, so that’s a great one. ThePrimeagen (02:35:01): It seems like Python, CUDA stuff and C++ would be a dynamite in that, because a lot of these Python libraries are assumed you’re just smuggling in C++ underneath the hood or C. Lex Fridman (02:35:11): Okay, so JavaScript. I’ll say Python. ThePrimeagen (02:35:14): Python’s a great one too. You can get quite far with it, but you can’t write the front end. What happened if you love the front end? What happened if you really just want to design things and you just didn’t know that? Lex Fridman (02:35:24): Well, it’s okay. So for that, JavaScript. ThePrimeagen (02:35:26): But Python’s a good choice because you can’t do the ML stuff in JavaScript nearly as easy. Lex Fridman (02:35:30): Do we count HTML and CSS as programming languages? ThePrimeagen (02:35:33): I think there’s some technical definition that it is. If you use this certain amalgamation of CSS plus HTML, it actually has, it can be a Turing complete language. But I mean for practical purposes, no. HTML is not a language. For me, yes, the Turing test is a good one, but for those that are just not wanting to be as academic, if I can’t write a function and an if statement, I don’t feel like that’s… If I can’t loop, if, and function, I don’t feel like that’s a good, that’s a programming language. Lex Fridman (02:36:03): Although modern HTML has a lot of features. ThePrimeagen (02:36:05): It’s crazy how much it has, but it’s more of a specification than anything else. I specify it to be a pop-up. I specify it to have this kind of accessibility, this kind of look. Under these conditions look like this, transform like this, move down here. Lex Fridman (02:36:21): I don’t know. I kind of like these popular programming languages in this list. I like JavaScript. ThePrimeagen (02:36:25): You like Bash? Lex Fridman (02:36:26): Oh, yeah. I like Bash a lot. Yeah. Why? ThePrimeagen (02:36:28): Okay. Bash is kind of one of those ones where it’s like, do you really like it? I like it up until I need an array. Lex Fridman (02:36:34): Oh, as a programming language, just no, but I like the command line. ThePrimeagen (02:36:35): Okay. Lex Fridman (02:36:39): Do you like Bash? No, nobody likes Bash. Do you mean- ThePrimeagen (02:36:39): Someone is so offended right now. Lex Fridman (02:36:45): It means do you use it a lot? Yes. I mean, it’s good to learn, right? It is good to- ThePrimeagen (02:36:55): It is. Lex Fridman (02:36:55): … Be comfortable in the command line because it’s a bit of a superpower. It’s like, I think I follow on Twitter, FFMPEG. ThePrimeagen (02:37:02): Great account. Lex Fridman (02:37:05): There’s certain Twitter accounts that are just legit. And I think FFMPEG, they have all these sort of parameters that you can add on the command line, that it’s like one of those cryptic languages that only very few wizards understand. But once you begin to slowly understand, and I’m only at the very sort of beginning stage of that journey to mastery, the powers you gain at every step, it grows exponentially, it feels like. I mean, FFMPEG is just this incredible, what would you call a library system? There’s just the people behind them must be just brilliant masterminds because they have to work with all these codecs, with all these containers, with all the mysteries of the media codec universe they’re masters of. And they understand compression, which is another super fascinating technical set of problems that, I don’t know, just FFMPEG just fills me with joy that it exists. But you need kind of Bash type comfort, command line comfort, to work with it to really unlock its power. Yeah. ThePrimeagen (02:38:12): I think FFMPEG is probably one of the most consequential libraries of our day, and the Twitter account is so unhinged. It is the most amazing thing to see because I think FFMPEG does not get the love it deserves. Every single application, OBS, probably FFMPEG underneath the hood. Everything, FFMPEG underneath the hood, and yet they do not get the love they deserve. I just love it. I just think they’re the best. Lex Fridman (02:38:39): Yeah, I would say JavaScript, HTML, CSS, Python, SQL, I mean that is SQL Squeal is a programming language. It’s an incredibly sophisticated programming language. Yeah? ThePrimeagen (02:38:52): SQL is interesting. I believe you can classify it as a programming language. It does have, if. You have case statements and it’s pretty crazy what you can do with it. Lex Fridman (02:39:00): You could do functions, you can do all that stuff. You shouldn’t. ThePrimeagen (02:39:02): Yeah, for stored procedures, that’s how you make your life hell. I will say that all the top languages there, none of them are strict static typed languages. And so even TypeScript, I don’t like this any. And so for people that are learning, doing something that’s much more strict would be great. Something like Go, Rust, I mean even C Sharp, C++. Anything that kind of changes your perspective of types I think is really helpful to kind of go through. They’re not getting nearly as much love on this most popular language list, but I think they’re very fantastic. Lex Fridman (02:39:38): All right, well, if I put a gun to your head, top five languages, let’s list them out. There’s a bright-eyed 20-year-old asking you, what are the top languages, five languages to learn? ThePrimeagen (02:39:51): If I were to pick five languages that I think people should learn, or at least, let’s restate it this way, I’m going to say a couple languages and you should at least explore some of them. I think you should explore a loosey language, so Python slash JavaScript, where there is truly only one type, which is a boxed value, which is a multivariate, different types underneath the hood. Lex Fridman (02:40:12): What did you call it? A loosey language? ThePrimeagen (02:40:13): A loosey-goosey language. It’s a dynamic language, and so I think it’s really good to explore one of those too. So I’d put Python or JavaScript right there. Even Lua, throw Lua in the bunch. I think you should explore a strict language, so I’d do something like Rust, Go. I think those are both really, really great. Lex Fridman (02:40:31): C++? ThePrimeagen (02:40:32): You can do C++. You can do some type erasure in C++. You can do it with Go as well, but for the most part it’s a great language to do that in. It can get a little wild. New C++ seems great. Everyone keeps telling me new C++ is great. It has every feature you’ve ever wanted and all the features you don’t want. Lex Fridman (02:40:47): Yeah, exactly. I mean there’s smart pointers, there’s dumb pointers, there’s all kinds of pointers. There’s no memory leaks. That’s not an issue. ThePrimeagen (02:40:55): Foot guns, face guns, soft beds. There’s everything in there. Lex Fridman (02:40:58): Unless you like memory leaks, it has that too if you want that kind of thing. It’s great. ThePrimeagen (02:41:02): Okay. How about this one? Languages that I actually want to really learn, that at least sit in my curiosity bank. There’s three languages, which is going to be Swift, Elixir, OCaml, and then I’m going to throw Odin in there, just because Ginger Bill is great. But Elixir and OCaml, I don’t have a strong functional language underneath my belt. That’s something that I just genuinely lack. Lex Fridman (02:41:26): Yeah, I’ve heard incredible things about Elixir, about Odin, about OCaml. Obviously, I’m a person, as you know, who loves Lisp. ThePrimeagen (02:41:33): I have never done Lisp. Lisp could be in that category too, just, or Closure I think at this point is what everyone tells you to use. Lex Fridman (02:41:39): So in the case of Lisp, I don’t want to speak negatively about Lisp, but it’s important about modern community, what the community looks like. It seems like there’s an excited, maybe small, but an excited community around Elixir, Odin, and OCaml, so that helps. Because then you can post shit on Twitter that you’re like, I accomplished this. People get excited and it’s nice. It’s a good feeling. ThePrimeagen (02:42:01): You can post something on Twitter and you’ll get a thousand likes if you do something cool on Elixir, which is that’s a pretty big amount of people to like a post for such a niche topic. Programming’s already a pretty small topic. Then you get into functional program. That’s a small topic in a small topic. Lex Fridman (02:42:17): Yeah. I don’t get that much. If I post something about Emacs, I’ll get crickets if I post something about… If I proudly use Neovim, there’d be a lot of people like, good job. ThePrimeagen (02:42:27): Because it is the best editor. Lex Fridman (02:42:29): Yeah, maybe it’s just hype. ThePrimeagen (02:42:31): Come back to the Civil War, Lex. Lex Fridman (02:42:33): Yeah. Sometimes you have to sacrifice and go from the superior editor that is Emacs and choose Neovim just to be popular. You sacrifice integrity and values and quality for just popularity. It’s a choice you made. ThePrimeagen (02:42:45): Absolutely. I love how you put it. Lex Fridman (02:42:49): Okay. Anyway, what were we talking about? I like how you’re doing this in bunches. That’s great. ThePrimeagen (02:42:53): Right now, my kind of side honeys that I’m exploring- Lex Fridman (02:42:57): Side honey? ThePrimeagen (02:42:57): Yeah, side honeys. They’re not my mainstay. Right now Go’s kind of my favorite one to build a web app in. If I’m going to build some sort of backend with a lot of complicated logic, Go’s just so convenient. But I get really frustrated with its ability to express everything that I need. If you have a list, a heterogeneous list, a list that contains two types, Go’s just really not that fun to use. And I could see, so the ones I’m exploring is Jai or J, or the language as Jonathan Blow says, and Zig. And both of them have a lot of power to them. They’re both very interesting. They definitely have foot guns in them. They’re definitely more, they don’t take it easy on you. Zig seems like it’s a really amazing language, and so does Jai. They’re both very cool. Lex Fridman (02:43:42): Yeah. Actually, I saw Dave Plummer’s testing of close to 100 languages for speed, and Zig came out on top. ThePrimeagen (02:43:51): That was a mistake. I mean, when I say mistake, nothing against Dave Plummer. He’s an extremely talented engineer. It’s just that Zig, C, C++, all those languages that were being tested, they’re all LLVM backends, right? That’s the one that actually turns the thing into the executable part. And if there’s a variation in speed, it just means in one language you didn’t quite express what you are supposed to correctly. There’s the language ball test that’s been bouncing around on Twitter. Zig was like sixth or seventh below I forget what language it is. I played around with the example, added the word “no alias” to the argument, which means that the piece of memory that’s coming into this function, there’s no global pointers, there’s nothing to it, and so the compiler can make these really cool optimizations. And I made it faster than the C version. So it just means that it’s just not correctly specified is all that means. Lex Fridman (02:44:40): Yeah, but it’s still exciting. To me, the competition between Zig, Rust, and C++ is really interesting. Part of it’s for speed. Part of it’s how easy it is to write performant code. ThePrimeagen (02:44:51): I’ll say something. That’s the reason why I think Zig is so interesting comparatively to say C or Rust. C is the ultimate language. It can do anything, have pre-process or macros. You can do quite a bit with it, but it’s also really difficult. ThePrimeagen (02:45:00): So macros, you can do quite a bit with it, but it’s also really difficult and it’s also really simple and you can learn it. So it’s kind of its own unique beast. And when you get really good at C, C is a magical language and people are really great at it and people speak very highly of it. Rust is like this ultra safe language. What you can do in C, you just can’t even express in Rust. Rust is going to be the safe man that holds you at night, keeping you warm, right? It’s going to be just the greatest. ThePrimeagen (02:45:24): But somewhere in the middle lies Zig. Zig has optionals. If you’re not familiar with optionals, that just simply means there’s a value here or there’s not, but you first have to check that before you can use it. So it prevents that whole null pointer dereferencing segfault problem. And that’s not available in C, just by default, you have to kind of build that thing in. It is the only option in Rust, but Zig says, “Hey, if you have a pointer, you can’t express it as null unless if you market that it can be null.” ThePrimeagen (02:45:48): There’s ways around it, there’s other types of pointers and stuff like that that can do that. But for the most part, Zig will give you safety for the most part. So it’s like a little bit of safety, but more like C. So it kind of gives you everything you want in that region where you can express safe code and unsafe code. It’s very easy to write. It’s very pretty. Or at least the idea behind it is very pretty. The language itself is bland, but. Lex Fridman (02:46:12): Wow, there’s beauty in everything, Prime. ThePrimeagen (02:46:14): Yeah. Lex Fridman (02:46:15): You’ve programmed in Rust a lot. What do you love about Rust? What are the strengths? What are the weaknesses? Maybe you can speak about memory management that you already mentioned, the challenge of memory management that several of these languages address, but yeah, what do you love about Rust? ThePrimeagen (02:46:31): What I love about Rust, I love the ability to free the memory that you’re using is directly tied to the stack. So whenever you create something, there’s a stack variable or there’s some amount of stack memory, whether it’s a pointer off to the heap, a pointer and a length. So some amount of memory on the stack and then some memory on the heap because a string is not all on the stack, it’s some on the heap, some on the stack. And when that stack variable goes out of scope and gets cleaned up, it also cleans up what’s on the heap. So it kind of simplifies this whole idea of, whoops, I forgot to free my memory. It just does it for you. ThePrimeagen (02:47:07): So it’s not a garbage collector, which will do it sometime later. It’s not like C where you have to call it yourself, it’s somewhere in between. Now, there’s a lot of strategies people use, arenas and all that that make that C part much easier. I’m just not even mentioning it, but it just makes it a lot easier. But Rust does that really beautifully and it’s just like a really cool idea about it and I really like that. And the second thing that I think Rust does really, is such a good thing is that mutability of something is you have to specify it. So you don’t just create a variable and then mutate it. You have to say this is not only a variable, it’s a mutable variable. And I think that just makes code really readable and really understandable. Because anything that does not have the word mute next to it, you know for a fact it cannot change. There’s some rules around that, but you get the general idea. Lex Fridman (02:47:57): Unlike most programming languages, you have to explicitly state that this is going to be changed. ThePrimeagen (02:47:57): Yeah. Lex Fridman (02:48:03): Yeah. That’s really interesting. I mean it’s safe, it’s trying to be, and the safety might be, create limitations. Let us consult the AI overlords. Rust is a blazing fast memory efficient systems programming language that emphasizes performance, type safety and concurrency. The language enforces memory safety without using a garbage collector, as you said, instead utilizing the unique, quote, “borrow checker” that tracks object lifetimes at compile time. This prevents common programming errors like null point or dereferencing and memory leaks and so on. Yeah. Lex Fridman (02:48:43): So you’ve also spoken about metaprogramming. Which of these languages do you like for the metaprogramming? I love metaprogramming in C++, but it’s a giant mess. At least when I program C++ 17 standard, I believe, it’s just a mess, especially a mess to debug. ThePrimeagen (02:49:00): Yeah, I would consider myself kind of a metaprogramming newbie. I have only solved some amount of problems with it. That’s kind of like what this year is for, is for me to really, I want to see where the ends can go in that. So I don’t have a strong opinion on this one. Zig, one thing I really like about Zig is that the metaprogramming is also the language itself. So you don’t have to, there’s not an alternative. So with Rust there’s an alternative. When you create a macro, you have to do the macro syntax. With Zig, it’s just, it is the thing, you just program it and you add the word comp time if you want it to be a compile time only. ThePrimeagen (02:49:33): So you can create the list of prime numbers at compile time in Zig, which is kind of an interesting, unique thing. So you have code that executes at compile time and then you can take advantage of the result of it at runtime. So neat, right? That’s how I’d look at it. But again, I haven’t used it to the point where I feel like I can super authoritatively talk about it. Lex Fridman (02:49:55): You have been undecided, what language are you going for this year? ThePrimeagen (02:49:59): I’m going to keep Go as my mainstay, my two side honeys, Jai and Zig. I’m going to explore and try to build out a service in them that can do a bunch of talking to, say, ChatGPT and ElevenLabs and send stuff down to client and work with web sockets. And I want to make sure that, I just want to see how do they perform in this realm. And I may be using the language incorrectly, like Jai, it’s not really been designed for the web world. I just got done writing the ability to read Twitch Chat and it required me to do Berkeley sockets. ThePrimeagen (02:50:29): So if you’re unfamiliar with Berkeley sockets, it’s like the old way of doing it, it’s how you do it in C. So you have to kind of go through the whole nine yards of creating your own connection. I had to create my own connection, I have to read from the socket, then I have to parse out all the IRC, right? You have to kind of build it from scratch. There’s not like a new TCP connection to this server. You have to be like, “I’m creating a socket.” You’re going to be of the IPv4 family and TCP and you’re going to do, you know, I’m going to now have to take your address and go look up your address with DNS, get that address back and then connect to a TCP. So it’s a lot more manual still. It’s a lot more raw in that area, but it’s fun. Lex Fridman (02:51:03): What are some epic projects you’ve built on stream that jump to memory? ThePrimeagen (02:51:08): My most favorite, sorry for interrupting you. So I’m really jazzed right now. Lex Fridman (02:51:13): Let’s go. ThePrimeagen (02:51:14): Okay. So jazzed. Lex Fridman (02:51:15): Jazz hands. ThePrimeagen (02:51:17): My most favorite project was the one I did last year. Someone built a Doom ASCII port. So you could play Doom with ASCII. So that means you could play it in your terminal. Very, very fun, very excite. So I made a Go program that could spawn out the Doom ASCII, then I took that Doom ASCII and I sent it to the browser so that people could play Doom ASCII in the browser, but then I made it so that Twitch chat could control that instance of Doom ASCII by piping in Twitch chat, taking the average of the movements over so much time and replaying it as if it was a controller. And I had Twitch chat beat level one by spamming it. ThePrimeagen (02:51:55): But the fun part was I used a bunch of fun encoding techniques. I used quad trees to be able to take smaller amounts to use run length in coding. Tried to create my own compression algorithm because if you’re sending out a bunch of ASCII stuff, it’s still pretty expensive because you have to represent color, color’s not cheap. On top of it you have to represent what does it look like? What does the ASCII look like? ThePrimeagen (02:52:15): Well, I realized there’s all these fun techniques you can do for compression like the shape of the ASCII you send down in a lot of these engines are actually just proportional to the lumosity of that pixel. So you’d use an eight to represent or a pound sign to represent white, but black, you’re going to want to do a period or a comma or a bar, something smaller. So it’s like I then developed all these different compression algorithms that turn a bunch of data, which would take, I forget how much it would take. It’d take gigabytes upon gigabytes to be able to send out to thousands of people to all see the same image at the same time, to all be able to interact with Doom at the same time. I turned it from gigabytes into kilobytes by just trying to figure out how to make it as small as possible and send it all out. It was super fun. Absolutely had a great time. Lex Fridman (02:53:00): So you’re actually sending it to all the people in chat. So where’s that pipeline, how chat is able to control the Doom thing? ThePrimeagen (02:53:09): Twitch chat. Yeah, so they would go, people would spam W and if you said W, it would hold down W for 150 milliseconds if the majority of people during that time period said W. Lex Fridman (02:53:21): Nice. Okay. And how are they getting the input of where you are on screen? ThePrimeagen (02:53:26): So originally I was going to send that through Twitch, but Twitch is like five seconds behind, so that’s why I piped it out to a website so everybody could see from my computer to the website and typical lag was right around 70 milliseconds. So it’s like they could mostly see what was happening in that short period of time. It was pretty exciting. So we had 1,000 people, or I had somewhere between 1,000 to 1,400 people smashing Ws and pressing F to fire and turning and we killed some zombies. We blew up the barrel at the very end of level one to kill the imp. Lex Fridman (02:53:57): How are you getting the Ws from the Twitch chat? Is there an API? ThePrimeagen (02:54:03): I was using IRC, so just a little TCP socket and then you just parse out IRC. Lex Fridman (02:54:06): Okay. And there’s very little lag there. Okay. ThePrimeagen (02:54:08): Yeah, I think it’s a couple hundred milliseconds though. It’s enough that it actually made it a little bit difficult because people would often overturn and then go forward and miss the door and then they had to go back and… Lex Fridman (02:54:19): That’s awesome. ThePrimeagen (02:54:20): It was awesome. So that was my favorite I think project of all time just because I never got to do a lot of encoding. Encoding’s kind of like, what do you normally do? Okay, I need to send something down. I don’t know, gzip it, server will just do it. Server just does the right thing. I don’t need to think about it. So instead it’s like I think about it, I’m going to send the right thing. Lex Fridman (02:54:37): Yeah, you have to think about the compression. Yeah. And there you go. That’s some more love towards FFmpeg because they have to think about that a lot. ThePrimeagen (02:54:44): Ultimately inspired by FFmpeg and their awesomeness. Lex Fridman (02:54:49): So can you speak to just the chat community in general? A big part of what you do in terms of streaming is the humans that are communicating with you live. Can you talk to the different chat communities? First of all, which is the best chat community, YouTube, Twitch, or X? ThePrimeagen (02:55:11): This is where I feel bad for YouTube, because I do think it’s technically the worst, but it’s not YouTube’s fault. And let me kind of explain why. Lex Fridman (02:55:19): And then I will explain why you’re wrong. But go ahead. YouTube is great. ThePrimeagen (02:55:22): I know you love YouTube but let explain why, is that when you go on Twitch, you go to anyone’s channel, they have this cultural human centipede thing that’s happening where as the memes flow in, all of Twitch reacts and morphs to all those memes. So every channel you go to has this same culture. There’s a lot of similar emotes and everything, so it’s very tight-knit. So when I stream, I get all the same jokes that you would pretty much see if you saw, I don’t know, Sodapoppin or some big streamer, Asmongold, whoever, [inaudible 02:55:56] software streaming. All the same memes would all flow through the exact same kind of pipe. And so it’s a very holistic kind of community. ThePrimeagen (02:56:04): So every time you’re making jokes, you’re making jokes that are in the ether. Twitter kind of has that too. Tech Twitter kind of has a set of jokes and so you can kind of see it. The problem with Twitter chat is that there’s just nobody there right now. Typically just to put it into perspective, I have somewhere between… somewhere between like 1,500 to 3,000 people on Twitch, somewhere between 800 to 2,000 on YouTube, and like 50 people on Twitter. So the difference is massive. ThePrimeagen (02:56:34): But Twitter has that same thing that’s developing where there’s memes that are constantly flowing through it. And so they’re very highly connected. YouTube just doesn’t seem to have that. They’re just a bunch of people and people go to YouTube for various reasons. I’m going to YouTube to learn. So they come in and they want to learn. So they’re not on the meme train, they’re not in this cultural zeitgeist train. They’re just like, “But why would you use this if statement when a switch statement in this one particular case?” And you’re just like, well that’s not what I’m trying to do here. Lex Fridman (02:57:02): Yeah, you want to captain the meme train or you want to ride on the meme train. ThePrimeagen (02:57:07): Yeah. Or you just want to be able to create a culture on your chat because your chat’s going to be some variation of that kind of zeitgeist that’s flowing through Twitch. And it kind of is very contiguous between X and Twitch. It just feels really out of sync with YouTube. And then YouTube particularly does a bad job. And some people would argue a good job because you can swim. Swim being, you can actually change what timestamp you’re at. So all of a sudden you’ll be like, oh yeah, something about driving to soccer in my minivan. And then 20 minutes later you’ll be talking about Zig and then someone’s like, “I personally use whatever to drive to soccer.” And you’re like, “What are we talking about?” So YouTube is a very disjointed chat as well because it depends on where they’re at within the video. Swim comes from Netflix, by the way, call it swim. Lex Fridman (02:57:53): The term? ThePrimeagen (02:57:56): Yeah, people said swim. Lex Fridman (02:57:57): Oh, so you’re, okay. ThePrimeagen (02:57:59): Swimming through- Lex Fridman (02:58:00): Yeah. So you’re not just making up the term. Thank you. Wow. ThePrimeagen (02:58:02): Yeah, but it’s probably made up and probably only 10 people said it at Netflix, so no one’s going to know it and they’re going to be like, “Yeah, right. That doesn’t happen on Netflix.” Lex Fridman (02:58:11): So going back to projects, what projects on stream or in general? ThePrimeagen (02:58:14): No, you need to answer why YouTube chat’s the best chat. Lex Fridman (02:58:18): Well you kind of convinced me. Okay, why YouTube is the best chat. Well, I think I’m just a hater. That’s basically what it boils down to and I’m just talking shit. ThePrimeagen (02:58:18): Love it. Lex Fridman (02:58:29): And I’m probably just from the outside shooting in because Twitch is such a fun culture of memes. And so it’s just fun to shoot from the outside to egg the house of Twitch. And then I just sit back on my lawn chair with the small YouTube community just talking shit. No, you’re absolutely right. There’s a real sense of community that Twitch can form. But I just like the openness of YouTube. It’s just better at opening to the world. It’s more accessible, it’s easier to share. It’s just a more established platform, that’s all. ThePrimeagen (02:59:08): Fully on that team. Lex Fridman (02:59:14): For the open world. I can send it to people that don’t usually watch video game streaming or that kind of stuff. ThePrimeagen (02:59:19): Yeah. If you send a Twitch link, they’re like, “I don’t like video games.” And you’re like, “Well actually it’s not video games.” That talk happens every single time you mention Twitch because Twitch does have a perspective about it that YouTube does not. Lex Fridman (02:59:32): I was just on Joe Rogan’s podcast and I think it came up, he asked something like, “Is Twitch still a thing?” So that just gives you an example. And then Jamie said, “Yeah, yeah, it’s definitely still a thing. It’s still growing and so on.” And so yeah, there’s just a big slice of humans that don’t participate in the Twitch Twitch sphere. Yeah, I just like talking shit so yeah. ThePrimeagen (03:00:00): That’s a beautiful answer. Lex Fridman (03:00:01): But it’s cool that you sort of make it accessible on all these different platforms. And I have high hopes for X, but yeah, it’s feature-wise still has a lot of growing up to do. ThePrimeagen (03:00:11): And just why do people use X? You typically are going there for a text-based interaction you want to look through. So I also think they just have a user expectation change that needs to happen. And that just takes a while. That’s going to take a little bit before people get to it. I think their idea of audio first is a great first step where people can listen to it and have the phone away maybe. There’s a lot of changes that have to happen before X can be successful in that. Lex Fridman (03:00:37): I mean, X has this incredible comment section just like Reddit, right? So it’s like- ThePrimeagen (03:00:43): You said incredible. That’s not Reddit. Comment section, correct. Lex Fridman (03:00:46): Comment, yeah. Incredibly dynamic and vibrant even if it’s… Yeah. What is the technological platform? How does the interface and the technology shape the discourse? It’s fascinating because X has a different style than Reddit, different style than Facebook, different style than Instagram. It’s interesting. And all those common sections are different technologically, like how the sorting is done, how easy it is to sort of build a community around it? Because YouTube is not really a community. Every single video on YouTube has its own mini community. You’re all talking on just that one video. But you can’t jump across. ThePrimeagen (03:01:40): There’s not like, “Hey Bill, hey George.” There’s no crosstalk that happens in multiple videos. Lex Fridman (03:01:44): Yeah. But the community is awesome. I love community. I love the feeling of community and I guess that’s what Twitch really provides. ThePrimeagen (03:01:52): YouTube also does have it though. They have an aggregate community. There’s a lot of fun comments and all that on the videos and a lot of thumbs up and then you see the fun discourse that happens and it’s like that’s the community, it’s just only a certain slice sees it. Lex Fridman (03:02:06): I think that’s even more so on YouTube for live-streaming. All the same folks show up and they talk shit, they celebrate, the meme train arrives. ThePrimeagen (03:02:16): Yeah. Lex Fridman (03:02:17): Okay. So now, what projects shape you as a programmer? Whether the ones you streamed or offline. ThePrimeagen (03:02:27): For me, I don’t know if there’s a one project I can point to, but I can point to a specific spot where I think it happens and where I think you can learn a lot from. Any small program you write will be somewhere between 1,000 to 5,000 lines of code I consider a pretty dang small project. You can correlate this to any feature within a larger system as well. A specific feature on a website could be a thousand lines, a couple thousand lines. ThePrimeagen (03:02:51): There’s a point in which all of your choices add up. And I typically find that right around 5 to 10,000 lines of code. The choices you’ve made either weigh you down or kind of free you up. And so it’s right in that, that I feel like I learned the most is because I love getting to that point in a project or in some small part of the code base because at that point I get to test, A, how good were my initial gut decisions about how I designed the software, but B, now I need to go back and think about how am I going to do testing across this in a more effective way? How can I scale this out to 20,000 lines of code? How can I do all these things with what I’ve got or do I need to kind of rethink it? ThePrimeagen (03:03:28): And I find that that’s really where the best learning happens is that everybody has probably a different number that exists, and as you go to each one of these numbers or how well or holistic you want your project to be, I think that you’ll come up with different numbers. And I think that number should just get bigger as you get more experienced. Because there’s projects that are a million lines of code, but they’re most certainly not holistic, right? Every part of the code base is some age at some capsule of time with some sort of programming style. Some is more functional, more class-based, more, God help your soul if it’s pre-processor macros in C++. There’s all these different kind of things you’ll find throughout time. ThePrimeagen (03:04:08): And so that’s why I try to think about it as the feature or the thing you’re working on. It’s usually about 5,000 lines is where I find that things get kind of, did I make good or bad decisions? And that’s where I do all my learning is right on that phase. I’m trying to get it to the point where I should be able to shoot from the hip and do 20,000 lines and not be upset about it. Lex Fridman (03:04:27): So first of all, just enjoying the thing you create part, yeah. About there you can sit back and see all the parts dancing together. For me, also debugging, you get to see the choices you make materialize as how easy it is to debug. I’m a big proponent, I think you’ve mentioned this in the past, I put asserts everywhere. ThePrimeagen (03:04:51): No, you are the reason why I do that. Lex Fridman (03:04:53): Yeah. ThePrimeagen (03:04:54): You were like the first one. Keep on going, sorry. Lex Fridman (03:04:56): Really? Okay. So for me, one of the joys, whether it’s try catch box, whether it’s assert, whether it’s with the testing, I get to see the payoff of all the minefield of asserts I’ve laid out before me in my kingdom by how quickly I can debug a system as it grows larger. And I can first of all discover errors before they become real bugs and also how quickly I can solve those errors. And that brings me joy. For me, a lot of the joys of programming is creating powerful systems that don’t break down, that work correctly, that work correctly in majority of the cases. And there, sort of the stress testing the system and getting all of the signals from that system that everything is working correctly is something that fills me with joy and makes sure that the system actually works. So yeah, that, I don’t know if it’s 5, 10,000 lines of code, if it’s Java or C++ it’s millions lines of code. But yeah, in Python, yeah, I would say 10,000 lines of code. That’s when you first get to see the magic. But anyway, you were saying? ThePrimeagen (03:06:11): Okay, so you and John Carmack had a conversation about asserts. Lex Fridman (03:06:14): Yes. ThePrimeagen (03:06:14): You talked about this idea of putting asserts everywhere that effectively crash the program when you have some state in your program that should not be represented and you have made this choice actively. And so I’ve never done that before. And I know this is like an old technique and I obviously must be too young or too dumb to know that this was a thing people did. I grew up in Java and I think that’s probably why I didn’t run into this. ThePrimeagen (03:06:38): So I saw that and I was like, I’m curious about how to use asserts more. And then I ran into a person named Joran. He’s the CEO and creator of TigerBeetle. It’s like the world’s fastest, greatest financial database. And it was spawned out of a company that needed to do a bunch of financial transactions. And it’s written in Zig and what they do is they do deterministic simulation testing and they just use NASA’s kind of guarantee for creating really great software. So don’t use U size, specify your exact size of int you expect everywhere. All these kind of things they do to be very specific. ThePrimeagen (03:07:10): And one of them is that every function should contain two asserts. Whether it’s positive space like these things should happen or negative space, like this pointer should never be null. You’re programming into things that should never happen. Normally, you would just never specify that. You’d never think about that. So every single function everywhere has all these asserts and these asserts run both in production and in testing. They’re always on. ThePrimeagen (03:07:35): And then they take deterministic simulation testing and run like 200 years of just random data, just complete slop going through the system and seeing how far it goes. And when an assert happens, they’re like, here’s the input that caused it, here’s every last little bit that happened, and now you can identify where this went wrong. And it was so cool. So between you, John Carmack and Joran, that’s where I got like, okay, I got to really… And NASA, I’ll throw NASA a bone as well. NASA can join in on that one. ThePrimeagen (03:08:04): I was like, okay, I want to try this. And I did try it. I built this big reverse proxy for me trying to do some game development stuff. And I just went ham on the asserts. And then I built the whole simulation testing thing that could do everything deterministically. So even the result of requests would all come in specific orders. And I found a bunch of bugs that I just would never have found. And then I did it for a game I was making. I found some bugs where my cursor went off-screen, it would cause all these different problems because I just never tested them. And it’s super fun and it’s like a really great way to program. Lex Fridman (03:08:33): Yeah, I think it’s a skillset you grow over time. It’s not just that you have to specify the preconditions, everything that has to be true, it’s also adding things that are like, you might not even think about. You have to sort of anticipate really weird things. And if you add asserts, especially in complicated functions or in complicated classes that are able to catch really weird things, that’s going to save you so many headaches and it’s going to help you learn about your own code. Lex Fridman (03:09:10): This is one of the things, I think it was Jonathan Blow that either in conversation with you or was it in a presentation, he said that when he’s starting in a project, he usually doesn’t know how to implement it, how it’s going to work. And I think he was saying that he wants a programming language. This might have been a criticism of C++, I’m not sure, where he wants a programming language that makes it as painless as possible for him to not know what he’s doing, how he’s going to implement it, and to quickly get to a place where he figures it out. Lex Fridman (03:09:50): I think there’s a fundamental part of programming is building stuff while not really knowing what the next thing you’re doing is. You kind of have a loose design, maybe a strict design, but really you’re solving puzzles that are not… It is a dark room in a fundamental sense. And there you have to anticipate the kind of weirdnesses that might emerge while not really knowing everything. Just this full fog, fog of war. And there that’s a real skill to anticipate the kind of issues that might arise and put a asserts on top of them. Lex Fridman (03:10:30): And it’s also like spiritually, for me, been a really nice way of programming a building of living life as having very strict asserts that say, “You’re going to fix this problem if it ever arises. You can’t just look the other way.” This idea of treating warnings as errors. Make sure your code compiles without any warnings. That was a big leap for me. It’s like, but there’s so many of them and it’s not really that important. It’s like, no, no, no warnings. Make sure you treat every single problem, even fuzzy problems seriously, because that’s actually long-term is going to create code that’s much easier to work with, much more fun to work with, much more robust, resilient to all kinds of weirdnesses, all that kind of stuff. Lex Fridman (03:11:21): So it’s a different way of approaching coding, probably more NASA-like versus web programming style. But yeah, it has made programming for me personally, much more fun because one of the most painful things about programming is creating when you get past 10,000, 20,000 lines of code and you have to find a bug. And that bug can take hours, it could take days to find, and that’s torture. ThePrimeagen (03:11:50): Yeah. When your system gets sufficiently large, some of these bugs are just, they are very difficult. Bless anyone’s soul that’s working on million line code bases, because it does. I can’t tell you how many times I’ve spent multiple days just trying to figure out the root cause of the bug. Not even the fix. Just like why does this happen? And that’s hard. ThePrimeagen (03:12:09): So I love that. I just love the asserts because I’m not good at them, I can see it’s definitely a skill that I don’t put into practice constantly, which means it’s just not like a muscle memory type thing. And so it’s just one of those things I just love. It’s such a fascinating way to approach a problem, because I would’ve never thought, you know what I’m going to do? If I’m wrong, I’m going to crash this thing and I’m going to crash it right here because I should never be wrong. But instead you’re like, “Oh, actually that makes perfect sense. I should crash this thing. I’ve done something terribly wrong here. Why would this ever exist?” And then you’re like, “This is going to solve a whole class of problems.” Lex Fridman (03:12:42): Yeah. And especially if it’s in production, it’s like, well a user’s going to see this crash. It’s like, yeah, well you should minimize the number of times any user ever sees the crash, not by having a nice blue screen or whatever the fuck, but actually stopping everything. And that’s going to create an incentive for you to never have that happen. You’re actually going to put in the time to make sure it never happens. ThePrimeagen (03:13:09): And the nice part is with the web and all that, you can always pop up something and say, “Hey, things have gone very, very wrong or unable to recover.” You can give them a nice message and then log it off so you can see it, and then measure how often are you doing it. I understand that there’s a bit of interestingness to a web project like do you want to always crash a server? There’s a bit of a gamble if you release a bad version and you crash all your servers constantly. That’s a pain you’re going to have to accept. Lex Fridman (03:13:36): I think this is more applicable for single systems like robots and so on. You have struggled with ADHD. I think a lot of people are really inspired by the fact that you’re able to be productive and flourish while having ADHD. How’d you overcome it? ThePrimeagen (03:13:57): Well, there’s a lot of things that ADHD affects and so I’ll start with some of the easiest things, because there’s directly applicable, then these kind of collateral damage applicable things that happen. So one thing that has really helped me with ADHD is maturity. I think that’s just a thing that everyone needs more of. Meaning that I found myself getting so wiggly and so out of control when I would try to sit down and read, and I just couldn’t handle it. I just felt like I’d read a page and didn’t read anything. The part of me that just went, “Oh man, gosh, I just can’t even do this.” I had to just simply quit listening to it and said, “Nope, I’m rereading this page.” I remember reading some pages in college like 18 times in a row, just like I’m going to force myself to just do this the correct way. ThePrimeagen (03:14:43): And so there’s an aspect of maturity that really helps, no matter what, I will do the thing I’m going to do and I’m going to do it well and maybe it takes me a lot longer and that’s okay. That’s not the point of it. It’s that I’m doing it and that’s the point. And so that’s one thing that I think just generally helps. And ADHD, no ADHD, the resilience, emotional resilience is just a really important aspect that just helps. And so I think that has been a large part that really helps me. ThePrimeagen (03:15:11): There’s things that I still obviously struggle with. It’s clear where I’m really bad at stuff, and just trying to think through all the different things that I’m bad at. There’s more things I’m bad at than I’m good at. And so programming obviously has something that just allows me to remain focused and it’s like a strength of mine. And so I started off where I could just do it for a little bit and then just through kind of that emotional resilience, I was able to start doing it more and more. And so now I can just do it for like 10, 12, 15 hours at a time and I absolutely love it. And so it’s become kind of like a joy. It’s like playing a musical instrument. I’m really into it. ThePrimeagen (03:15:51): But then if it came down to, “Hey, you need to go schedule your own dentistry and go do all these other things or make sure the kids have this type of stuff ready for the meals you need to pack throughout the week.” I’m historically very bad at that and will probably continue to be very bad at that. And so I must say that one of the reasons why I excel so much is because I also have a wife who is so good to me and she helps clear out a lot of the things in my life that cause a lot of me kind of getting snowballed into a weird spot where I’m just distracted getting nothing done. And so she’s really helped me. ThePrimeagen (03:16:30): So it would be foolish of me to claim that I’ve defeated the ADHD by myself, but instead I find that the places that I can really control I’ve done a very good job at, and the things that I obviously need to do much better at, my wife has helped me a whole bunch. And so I’ve kind of cheated. Maybe I found a cheat code, a loving wife. But that has been the thing that has really helped. Lex Fridman (03:16:50): You said a lot of interesting things. So on the reading and for me it’s also audiobook side, I do the same thing and I’ve gotten much better at it, which is I tune out mentally and I read a page and you don’t understand anything on the page. You didn’t actually read it. And yeah, I forced myself to just reread it or re-listen to an audiobook, which is a much more common problem for me now, and forcing myself to really pay attention. Because I listen to audiobooks often when I run and it’s so easy to just tune out. Lex Fridman (03:17:26): It’s a skill. I didn’t realize how much of a skill listening to an audiobook is, especially when there’s other sensory inputs when you run. So I have to force myself to really pay attention to every single word. And if I don’t, like tune out and don’t remember what I just listened to in the past 30 seconds, I force myself to re-listen to it. And sometimes that means five times until, it’s like punishing myself to like, “You’re going to listen to this boring shit over and over until you get good at that little skill of like zoom in.” And you’re like, yeah, there’s people, they’re doing stuff, there’s nature, it doesn’t matter… Lex Fridman (03:18:00): Yeah, there’s people, they’re like doing stuff, there’s nature, it doesn’t matter. You’re listening to every single word and loading it in and trying to stay focused, even there’s just so many distractions all around you. Yeah. ThePrimeagen (03:18:10): It’s definitely a learned skill and it takes a lot of time. And when I say, “Oh, I was able to do from here to here,” I’m speaking over the course of like five years of doing this every day. It’s not some small… There’s no… The nice part about that decision though is you can make that decision today. You can make it right now. You’re going to be like, “From here on out, I’ll never make that mistake again. I will say I’m going to read 50 pages, I will sit down and read 50 pages, and when I get distracted I’ll go back to the last place I remember and I’ll start again.” And like that’s a decision you can make. That’s a mature, non-emotional decision to make. And you can do that, it just may be really painful for the first couple years of making said decisions. And then it gets easier and then it gets easier, and then it becomes more natural to change yourself. Lex Fridman (03:18:53): Yeah. And with every medium, with every platform, I think it’s like a new skill. For me, like using social media has been that, just like I end up like doom scrolling too easily on platforms. And one solution is not to look at all, which is kind of what I lean on mostly these days, but I feel like I should be able to check, just read, okay, feel a thing, learn a thing, and then put it down, versus you have this glazed look over your eye and you’re not really paying attention anymore and you’re dead inside and you feel horrible afterwards. I don’t understand. ThePrimeagen (03:19:33): The horrible afterwards is real serious. I’ve definitely… I can 100% notice that I am a more anxious person the more time I spend scrolling. Lex Fridman (03:19:41): Yeah, yeah. ThePrimeagen (03:19:42): I can just feel it. It’s like something inside of me that’s kind of… I don’t know how to say it other than it like wants to get out but I don’t really know what that is. It’s not anger, but it’s not… It’s very anxious. Lex Fridman (03:19:52): It’s like the opposite of the feeling I have when I wake up in the morning and I’m feeling good, and I look out in nature and look at the sun and just, and there’s like a bird chirping and this kind of thing. Scrolling through social media, even if it’s like super positive stuff or whatever, it’s still not the same feeling as the bird chirping. Bird chirping on Instagram is a different bird chirping than in real life, cause bird chirping on Instagram, I’ll start swiping until there’s demons of different types fighting inside my head and then different anxiety, insecurity, whatever the hell. Just the mixture of chaos versus the bird chirping in real life. That is beautiful. But again, that’s the same thing as with the audiobook. It boils down to… Man, these people that talk about meditation, I think that’s probably… they’re onto something, because that’s what it is be able to like focus calmly and deliberately on a thing, whether it’s reading or audiobook or existence. When they sort of observe the breath, you’re able to silent out everything else and remove everything else from focus. Yeah. That’s a skill. That’s a skill. ThePrimeagen (03:21:05): I heard it put really beautifully, which is that we in America really have misunderstood liberty because we typically have liberty as just the freedom to do whatever you want. And the argument was that it’s not the freedom to do whatever you want, it’s the freedom to be able to do what you will. And how often is what you actually want to do, you don’t do because you get trapped doing something that you’ve convinced yourself in this quick moment you want to do? And so it’s like, “I want liberty. I want the ability to control my energy and to be able to do the thing I want to do, not to get distracted and destroyed in all the millions of distractions.” And some of us get handed a worse deck of cards, some of us get a better deck of cards, but I don’t think there’s anybody that doesn’t struggle with it in the technological age. Lex Fridman (03:21:48): Yeah, and that’s the skill. What can you say to the skill of achieving focus in programming? Do you have a process of how you sit down and try to sort of approach a problem? So, all the different, not just distractions but the challenges of starting a project, of thinking through the design, how to maintain real focus, because it’s really difficult intellectual endeavor. ThePrimeagen (03:22:15): At this point I’m lucky, but when I first started I can remember that every last part of programming. I had to go look up, I had to go read, I had side quests at all time. Every step was a side quest. Why is my screen blinking when I’m trying to render this thing out? Oh, I didn’t know about double buffering. Why is this happening? How do I even write to the screen? How do I… Everything was a question. I had more questions than answers. And so I constantly had the problem of side quests, and I find that to be a very exhausting thing. But as I learned my instrument very, very well, I don’t have as many side quests. I become more and more able to just focus on the thing I want to do. And I find that to be something that is just super, super useful. So, when I say I’m kind of lucky, meaning that I’ve spent so much of my life preparing for this moment that now when I have the opportunity to do something, I can just do that thing and I don’t… ThePrimeagen (03:23:08): Like I can be just on an airplane and I can just program for hours. I don’t have to look up a single thing. I don’t have to do anything. I don’t even have to test the code. I can write 1,000 lines of code on an airplane and I’m very confident that it’s going to be 98% pretty dang good. And I’m very happy about that because that allows me just to be in the moment solving the problem I’m trying to solve. Then I have 100% of my brain power solving a problem. And this is why I also… It’s the same reason why I recommend learning how to type and learning your editor so well you don’t even have to think about the action because the people that have to… Even if you just look down, that’s still mental processing power you have to spend looking at a keyboard in which you already know where the key is. You do. At this point, if you’ve been typing for thousands of hours, you know where the key is, just stop looking down, you’ll learn really quickly. ThePrimeagen (03:23:51): And so it’s like this thing where it’s like, “I’m not going to spend all that time and all that mental effort looking up the thing. I’m going to just memorize… I’m just going to get it in me, and then I can go fast.” And it feels good. And so that’s how I’d kind of defeat that is because now I get to do something where it’s like there’s no more questions. It’s now me just expressing myself into this medium and it feels really good. Lex Fridman (03:24:15): I’m sure there’s still like things that pull at you, like curiosities, distractions, like, “Ooh, I wonder how…” Anytime you have access to the internet, you’re going to get- ThePrimeagen (03:24:26): Twitter’s a big one on that one. Yeah. Lex Fridman (03:24:28): … you’re going to get curious about stuff, including, I guess you’re speaking about everything in the editors optimize, but, okay, you can always improve stuff. You can always find better plugins and macros and, “Oh, let me… You know what, this thing that took this pain point, I just found this tiny pain point, let me spend the next five days creating a plugin for my editor or whatever the fuck to remove that one pain point,” when you should have just kept going as opposed to taking side quests. ThePrimeagen (03:24:59): So, I have a rule which is I do not edit my RC other than some kind of cataclysmic thing, like someone updates a plugin, I didn’t know they updated it and now there’s like a hard error in my editor and I have to move forward. But I have a rule where I will edit my RC, my Neovim RC or anything once a year. Something that bothers me, I’ll write it down, I’ll remember it. I’ll be like, “Okay, I want to change that,” but I will just not go back to it. Now, every now and then I’ll break that rule if I know, if like, “Oh, I want a new remap to be able to do this one command and that takes literally 13 seconds, like copy paste, do this, bop-bop-bop, done. Okay, I have this new remap, it made perfect sense in this situation, but I don’t go plug-in exploring. I don’t try to solve every problem. ThePrimeagen (03:25:39): I don’t want a perfect editor because that is a pursuit that will never stop. I just go, “This is good, good breakpoint, I won’t do it again.” So, last month I probably spent a hundred hours just editing every possible thing I could about how I start up my system and make… I can have a computer from zero to 60 in almost no time now everything the way I exactly want it, Neovim and everything all perfectly set up. Happy enough, I’m not going to touch that system again. Maybe I’ll touch it next year. Maybe I’ll take a year off. It’s just I’m fine with that. I’m fine with not being perfect. Lex Fridman (03:26:13): All right, zero to 60, let’s talk about the perfect setup. What’s your perfect programming setup, keyboard operating system, how many screens, chair? ThePrimeagen (03:26:24): All right, I like all these. Lex Fridman (03:26:27): IDE, let’s go. ThePrimeagen (03:26:29): So, keyboard, you’re using my favorite keyboard right there, the Kinesis Advantage. Saved my career. Beautiful keyboard. Concavity and thumb clusters are just so important because if you really think about it, especially if you’re using qwerty, when you’re pressing the symbols on a standard keyboard, you’re just doing this the whole time: backspace, enter, symbols. You’re just doing this, and it just screws up your wrist constantly doing this. And this when you’re constantly doing like ctrl and shift. And it just is like messing you up, so it’s just like right here. That’s so much nicer in life. So, keyboard most important, I’d say. Get that one done. Lex Fridman (03:27:01): For people who don’t know, Kinesis keyboard, I think the thing that you experience the most is exactly the thing you just said now, which is the backspace is really easy to press versus what it is on normal keyboards. So, backspace in general symbolizes you’re deleting a thing, it symbolizes a mistake. Not symbolizes, it usually means a mistake. And so not only did you just make a mistake in what you were typing, you also have to take a physically painful action, annoying action to fix that mistake. And for most of us, we make a lot of mistakes, so Kinesis just makes it pleasant and fast and easy physically to correct the mistake. That’s probably for me the number one reason of Kinesis. Everything else, yeah, super plus with the macros and the positioning, the concavity like you mentioned, but their mistakes are pleasant. ThePrimeagen (03:27:57): Yeah. I am on that team, so that’s why I love that. I would say that’s one of the most important things. The next thing that I find to be very, very important is that one monitor. I’m a one monitor kind of guy. Lex Fridman (03:28:09): What? Really? ThePrimeagen (03:28:10): So, when I program, when I do anything… Now, when I stream, I obviously have a second computer that runs the stream because I sometimes crash my computer, I have to restart or whatever. So, I do have a second screen there that I put stuff up, but most of the time you’ll notice that even when I’m streaming, you’ve been there, I have to physically switch to the streaming chat channel for me to read it, and that’s because I’m operating off of one screen. And so I have this whole style in which I like to navigate, inspired by StarCraft, is that I believe in the press one key, go where you want to be mentality. And so everything about my setup is press one key. So, when I want to go to Twitch chat, alt-two, Twitch chat. When I want to go to my browser, alt-one. That’s my browser. Alt-three, that’s where I go to my programming. That’s power finger, obviously. The big middle finger right there, just smash it down. Alt-six is going to be gimp, so my GNU image manipulation program, so if I want to draw, I go there. ThePrimeagen (03:29:02): When I used to have Slack, it was alt-five. If I have a spare terminal where I need to run some extra things, that’s alt-four. I had all these kind of… Everything is perfectly mapped out to single-key. And then when it comes down to using, say, Tmux, I have all my terminals into one single terminal. And now I’m able to kind of switch between there. Prefix one goes to my Vim editor. Whatever project I’m in, it’s always the first Tmux tab, if you will. I’m not sure… They call it a session, but I’m not sure how to describe it if you’re not familiar with Tmux. A tab. Second one is like my spare terminal, third one is my long-running process terminal, my fourth one is a long-running process terminal. So, I have it all set up, so every project I go to automatically spawns session one: Vim, session two: spare terminal, session three will also open it, so it’s like everything’s just ready to rock. ThePrimeagen (03:29:49): Everything has been optimized to where I do that. If I want to go to a project, it’s ctrl-F, and any terminal will bring up a fuzzy find list of every one of my folders on my operating system in which I can go to with just a couple keystrokes and, boom, I’m in that one now. And so it’s very oriented to find where I need to be as quickly as possible. Lex Fridman (03:30:06): Via keyboard. ThePrimeagen (03:30:07): Via keyboard. Then in Vim I developed a plugin called Harpoon, which is I press one button and I can pin one of the files to like a temporary buffer. I think Projectile is potentially close to this in Emacs. I can’t remember if Projectile… I think Projectile is closer to my sessionizing script. Anyways, so now I have four pinned files in which I can go to any of those pinned files with just a single keystroke. And so now it’s just like… Because every time you develop a feature, usually you have like three files you’re kind of primarily working in. And I can fuzzy find for the other files and that’s that, but usually I just have like these three power files that I’m always swapping in between. And so it’s like now everything is just, “I want go to the browser.” That’s one press. “I want to go to my workstation.” That’s one press. “I want to go to a specific folder, I need to change folders.” ThePrimeagen (03:30:54): Sometimes you work between two different projects, so in Tmux that’s prefix, capital L will swap between your last two. So, I have alternate projects, so I can even swap between projects in pretty much one key. So, it’s just like do-do-do, just trying to optimize it, so I don’t think as much, because I think search fatigue is a massive fail where you have to look for it. When I see people on a Mac do this and then explode all the different ones, that gives me anxiety. I’m like, “Why are you using your eyeballs to search for what you want to do?” Make it into a key press and never think about it again, ever. Lex Fridman (03:31:28): You’re making me think a lot whether I can live with your system, whether it’s better because it feels better. ThePrimeagen (03:31:33): It at least intellectually feels better. It may not be great for some people. Lex Fridman (03:31:36): Well, there’s a few profound things you said, which is like really what the number of windows or tasks you’re switching between, whether it’s programming, the number of files you’re working on, it’s small at any one time, at any one space of 20 minutes or something like that. So, okay, that’s a profound truth. Sometimes we think like, “Oh I need the full freedom to search,” but you don’t. You usually work on a very small slice. But I guess the trade-off there… I always have three monitors, not when I’m traveling, but my happy place is three monitors. It’s like, do you really need all of them to be present there? So, you’re turning your head. Now, the monitors I have is two vertical ones, which is just better for certain kinds of content. They’re positioned vertically, so you can read. You can use your eyes to scan quickly. ThePrimeagen (03:32:29): Interesting. So, I don’t even do that. I even have it so zoomed in that I probably only have like maybe 25 lines of code at any one time on my 27-inch monitor. Lex Fridman (03:32:37): Yeah, I think that’s… I think I feel fundamentally constrained when I can’t see more because your eyes are just good at jumping. You could- ThePrimeagen (03:32:52): Why not search? Why not press a couple of keystrokes? Ctrl-U, ctrl-D, jump up and down by a half page. Lex Fridman (03:32:58): Because the ape visual system was designed to… You’re loading a lot of information. If every time you have to investigate this table, what’s on this table, you have to press a keystroke, you could develop the skillset that integrates that information but it’s really… There is an effective thing where if you have a sheet of paper like this and I’m looking at it, my eyes will be able to load in the structure of the information, the topics of the information. You just can do it faster, I think. There’s a big cost because it’s an extra monitor, but there is some stuff that’s vertical when vertically positioned. See, code is an iffy one code because code, 25 lines at a time, I think you can do a lot. Lex Fridman (03:33:53): This is more for like articles and especially with visual information in them or documentation, you can just jump faster. But I’m trying to… As you were speaking so eloquently, I was like wondering, “Am I just like deceiving myself that I need that? Can I just keyboard shortcut-ify everything and just have everything on one monitor?” That’s something I should probably try because I’m a big proponent of just automating everything with the keyboard because you can just move really, really fast, and you don’t have to think. Because I also do creative stuff, whether it’s recording music or video editing. It’s hard… Some of these programs still make it super easy for you. On Windows, with AutoHotkey you can do quite a lot, but still there’s limitations on how much you can do with the keyboard. So, it really is a pain in the to have to use the mouse, but, man, you’re really making me think. ThePrimeagen (03:34:54): Even the text one, the reading one, fundamentally I think I agree with you, that you can see a lot more and you can kind of look up and down, and see those two things. And probably in articles or things like that, if there’s a graph down here that’s really big that take up your whole screen plus text, I could see why that would be very beneficial to zoom out, to be able to have all that information, but for me, I can only look at like a square inch. Really, that’s all my eyes can actually focus on. So, when I’m reading, I’m right here. Then I have to structurally try to pattern match what I think the information looks like. Then I have to start reading it. ThePrimeagen (03:35:24): So, I’m not exactly sure if I actually get any real benefit of having a lot of stuff on screen, as opposed to I can relax my eyes so much I don’t even have to focus. The words are so big. I actually program pretty zoomed in. My text is bigger than this when I program, and so it’s just that it’s so comfortable, I don’t even have to exert any effort to read the code. Lex Fridman (03:35:46): But you have to kind of train your brain to know that you can navigate spatially using keys. ThePrimeagen (03:35:53): Yeah, Neovim by the way. Lex Fridman (03:35:56): Oh, maybe it has everything to do with Neovim. Okay. ThePrimeagen (03:35:58): All right. And then Neovim is obviously the next big one. I love Neovim. Reason being is that I think you can make all the arguments that you want about which editor is the best. I do not think you can make an argument that Vim motions aren’t superior. Lex Fridman (03:36:10): Here we go. Can you explain Vim motions? What is this? So, Neovim… Vim is an old school editor. Neovim- ThePrimeagen (03:36:17): It’s a modern take on an old school editor. Lex Fridman (03:36:19): Yeah. And what’s ELI5? What does it take to work with Neovim? ThePrimeagen (03:36:29): Oh, okay. I thought you were talking about a Vim motion there. That’s how… I know, but you know that meme that’s just like, “Hey, Jarvis, can I tell you about Vim motions?” Because they can’t fit anything else in their head because they only have Vim motions. You said EL5, explain it like I’m five, but in my head it’s like, “Okay, E is jump to the end of the word, L is the one more…” Dude, I’m so broken that I’m like, “Okay, Vim motion,” when I hear letters. Yeah, so, you can think of it like this is that Vim has a language to describe movements in text because its primary mode of operation is manipulating or editing text. So, it is a well-thought through set of movements, deleting, yanking, pasting, copying, all that kind of stuff that goes in, motions that are optimized for working with pretty much code. ThePrimeagen (03:37:15): A good example, say you have three lines of code you want to delete. If you’re in VS Code, take your little beautiful mouse, highlight those things, press the backspace. That’s lovely. Your hand left the keyboard. Very simple to do though. It’s very beginner friendly. I was a huge Vim hater, by the way, so I just want you to know that before we go into this. I was probably the biggest Vim hater. If there was Saul to Apostle Paul, I am like the Saul to Apostle Paul of Vim, just so you can see how big the gap was. Or you can do something that’s like… I don’t know what the VS Code shortcut is, but I’m sure there’s some keys you can press to delete the current line you’re on. Delete, delete, delete, you can just do that. In Vim, I can go DAP, delete around paragraph. All contiguous code in that thing. I’m going to delete, so D, then I can choose my motion I want to take, AP, around paragraph. Or maybe I want to DF, meaning jump up to the next character that matches the next character I’m going to press. ThePrimeagen (03:38:07): So, DF opening parenthesis will delete everything from your cursor up to the first opening parenthesis. So, you get to describe your motion in these little keystrokes. And as you get really good… You’ve seen people that can master Fortnite, it’s the same thing with mastering Vim motions. When you get so good, you no longer think about each individual movement, and instead you’re just like, “Get rid of the paragraph, jump here, jump this, highlight this, yank this, do this,” it becomes so fast that you can superiorly edit text at a very fast rate. And there comes a point when you know your language really well, you know the problem you’re really working on really well, where editing text and getting code out actually becomes one of the many bottlenecks. ThePrimeagen (03:38:43): People always talk about, “Well, most of the time I think…” Most of the time I’m not thinking, I’m programming. I know what I want to do, I want to go as fast as possible because I’ve been just doing it for so long and I’m so familiar with the general space that it becomes a huge problem for me. I cannot tell you how many times that I’ve been purely bottlenecked by the fact that I just can’t type fast enough and I just need to get it out of my head onto the text editor. And so that’s why I think Vim motions are superior in all aspects. Keep your hands on the keyboard, on the home row, and it can manipulate text in very wide and fast ways. Lex Fridman (03:39:14): Oh, so, this is not just about writing text, this is about modifying text. It’s primarily about modifying text. ThePrimeagen (03:39:19): Yes. Lex Fridman (03:39:19): And I’m sure that most editors including Emacs, including VS Code can do all those same things, but there is something… They just don’t encourage you to discover those things. That’s like an important thing about a lot of technologies and programming languages that a lot of them can do a lot of the stuff, but it’s something about whether it’s the community or the style of the language or anything like this that encourages you to not be lazy in the beginning and learn the fast way to edit text, in this particular example, how to use the keyboard. That’s a fascinating just reality of how technology is used. You want to be encouraged to find the fast thing as quickly as possible so that long term it’s efficient and fun to use the thing. ThePrimeagen (03:40:09): Yeah. It takes a long time for dividends, like a long time, but on top of that, notice I didn’t say Vim. I’m not saying, “Go use Vim,” I’m saying, “Vim motions.” Let me give you one more example. I’m a big fan. Let’s say you have a line that contains some variable, some function you’re calling something that takes in a string. And you need to do that again, so you would typically copy that line, you’d paste that line below, you’d go into the string and you’d change the string. Let’s say it’s calling some sort of configuration, you need to call it three times with three different configuring strings. In Vim, I like to do shift-V to highlight the whole line, and then Y. Some people do YY, but I don’t like to do double ones. I like to be able to do two different fingers because you can do that way faster than one finger twice. ThePrimeagen (03:40:53): It’s just a little optimization for me because you can’t press that as fast. So, anyways, I’m very optimized in my approach, so I yank the line, paste the line. CI double quotes will delete everything inside the first occurring string. Then I can type the string, escape, save. And so it’s like so optimized that I can just jump so fast in between that, whereas the copying and pasting line is probably the same speed, but the navigating to the string, deleting what’s currently in the string, and then… That’s such a fast motion in Vim, and I just do that all the time. Lex Fridman (03:41:23): To backtrack, really dumb question, CI, what’s the difference between typing the letters and using the letters to navigate and edit? How do you switch between the two modes? ThePrimeagen (03:41:34): Okay, so insert mode means that you’re just putting in text, and then normal mode means that you’re moving your cursor. Lex Fridman (03:41:40): And how do you switch between the two? ThePrimeagen (03:41:42): Escape. Escape goes from insert mode into normal mode. And to go into insert mode press I to take your current cursor and go to the beginning, A to go to the end of the year Cursor, capital A to go to the end of the line, capital I to go to the beginning of line, O to put a new line below and then put your cursor at the proper intended for the language, shift-O to shift your current line down, and then put a new line in. You can see, there’s a lot- Lex Fridman (03:42:04): So, you’re pressing escape a lot. ThePrimeagen (03:42:05): Yeah, I mapped mine. I do ctrl-C. Ctrl-C does the same thing except for in one edge case. People hate that. I got used to it just due to the fact that I was using IntelliJ, and I really hate pressing the escape key, so I just got used to pressing escapee. Lex Fridman (03:42:17): That seems like an essential thing to do if you’re using Neovim to map escape to something. ThePrimeagen (03:42:22): Cap lock would be your standard go-to. Lex Fridman (03:42:24): Oh yeah, I map it too. Cool. I got you. I got you. ThePrimeagen (03:42:27): Yeah, so then it’s just really easy to press it, and boom, boom, boom, not a big deal at all. But yeah, I think that if you’re willing to learn it, the emotions are superior, but if you’re not willing to learn it, then they’re not superior. You should just not do it. If you’re willing to endure pain, it’s good. If you’re not, it’s actually way worse. It’s 100 worse. Lex Fridman (03:42:45): Right, so if you like pain, you use Neovim. Totally. I understand. ThePrimeagen (03:42:45): Yeah, you’re totally on-board. Lex Fridman (03:42:45): 100%. ThePrimeagen (03:42:45): See, now you get it. Lex Fridman (03:42:51): If you like joy, you use Emacs. ThePrimeagen (03:42:53): Sorry, sorry, did Emacs ever get a good text editor? I know they’re a great operating system, but I never caught up if they got a good text editor. Lex Fridman (03:43:00): Operating system? I think you’ve been miseducated my friend. So, at least 30 minutes on Emacs versus Neovim is what Reddit requested. Have you actually used Emacs in order to be able to talk so much shit or no? ThePrimeagen (03:43:13): I used it for a year. Lex Fridman (03:43:16): You used it for a year? ThePrimeagen (03:43:16): Yeah, yeah. Doom Emacs, Spacemacs and regular Emacs. Lex Fridman (03:43:19): But you don’t even know Lisp, so did you really use it? ThePrimeagen (03:43:21): I kind of hacked my way through kind of like, “Okay, so this is how to configure…” You can kind of get your way through and do all that. Lex Fridman (03:43:28): So, you recommend to mastering Neovim and really learn the depths of it, but Emacs is okay to just kind of use before making a judgment. I think everybody… ThePrimeagen (03:43:38): You got me on that one? Lex Fridman (03:43:39): Yeah, no, and what’s Neovim written? It’s Lua? ThePrimeagen (03:43:43): Yeah, so Lua would be the configuration language, but you have… It’s written in C, but you have Lua 4. And Lua is just a dead simple language. Anyone can program Lua. Lex Fridman (03:43:51): I actually don’t know why… I think it’s because my love for Lisp that I went with Emacs. I think you just choose a path and you walk down that path. And because there’s just such a vibrant, intense battle between the two communities, you just start fighting just because everybody else is fighting. And then one day you’re an old warrior on a horse, and you’re wondering, “What was this all for?” And it’s quite sad, in all seriousness, that I haven’t to this day tried Neovim. I think because there is a learning curve. There’s a learning curve to a lot of these editors. ThePrimeagen (03:44:32): Yeah. To really learn it. Lex Fridman (03:44:34): To really learn it. And I think this is some of the criticism of maybe VS Code or Sublime or Atom that it’s so easy to not learn it, to just kind of halfass use it. And there is a big benefit to having editors that force you to have some learning curve, where you take the art, the science, the procedure of editing seriously. Because you spend so much time in it, you might as well learn how to use the thing. ThePrimeagen (03:45:05): My big takeaway really, what I’m trying to say with all these words is that I honestly don’t actually think that… The editor obviously does not make the programmer, but I think it says a lot about your character as a programmer if you don’t know how to use your editor well. There’s something about a person who’s willing to commit their life to programming, and spending literally 50,000 hours doing an activity over the course of their lifetime, and never take the time to learn their editor through and through. It just seems strange. ThePrimeagen (03:45:37): You’d never see that in another world, where people would be able to build something or do something and just completely forget how these things work, and only just focus on one part of their craft. And so, to me, it’s just like it doesn’t matter how you use it, I want to see the person that just knows how to use it, and they know how to use it well. When there’s a problem, they can say why the problem exists, and then go and fix the problem. To me, that’s like, ” There you go. You’ve done it. You now know your tool, go forth and conquer with said tool.” Lex Fridman (03:46:04): Especially for tools you use a lot. ThePrimeagen (03:46:07): [inaudible 03:46:07]. Lex Fridman (03:46:06): You have to look at your whole life, your life, whatever, if you’re a developer or anything, what is the thing you do a lot? ThePrimeagen (03:46:16): Meetings. Lex Fridman (03:46:17): Yeah, yeah. ThePrimeagen (03:46:20): Sorry. Keep going. Lex Fridman (03:46:21): Ask a question like: how can this be done a lot better? Because every single day you do this for hours a day, how many hours did you spend on thinking how to do this better or whether to do it at all, in the case of meetings? People surprisingly just don’t do this enough. I see this, just to go back to jujitsu, there’s a lot of people that show up and do jujitsu or martial arts, and they do it the same way over and over and over, and they invest tremendous amount of energy. And they don’t ask like, “How do I do it differently to improve faster?” In the case of jujitsu or any kind of sport, same with practicing the piano or the guitar, they just religiously put in a lot of time and derive a lot of joy from getting better. They don’t enough ask the meta question of like, “How can I do this better?” And with editors, it’s surprisingly how often people do just that. Lex Fridman (03:47:20): With typing, it’s surprising how many people do just that. Like you said, they’re pecking or looking down. It’s like the quality of life improvement you can have by learning to touch type, by just like typing without looking. It’s immeasurable. You’re bringing a lot of joy to your life because all of us are typing a lot. And the reason, by the way, I was extremely efficient with Emacs… I’m sure you know, all jokes aside, it feels like Neovim has more room for the kind of efficiency I’ve had with Emacs to be able to move really fast as you described me to edit. There is a real joy. It’s not just efficiency, it’s a freedom that you can get when you get really good with an editor. The reason I chose to go with VS Code is it felt like there’s going to be an acceleration of features to which Neovim or Emacs will not be able to catch up, in the… and I don’t mean in the next five years, I mean in the next 30 years. Lex Fridman (03:48:29): And it felt like I almost wanted to take the pain of learning new editors constantly and just switching and learning that, because I was getting so comfortable in Emacs, with this Kinesis keyboard, everything, all the shortcuts, I know how to program, and it felt like this is not… Neovim will not be here in 50 years. Possibly might be, I don’t know, but it felt like you want to learn these constant different technologies. Cursor is a great example of that. I primarily am using Cursor now. I go back between VS Code and Cursor. Just the skill of using AI is a real skill, from the shortcuts to the timing to the layout of the windows to how I think about where, when and how to use the AI that doesn’t distract me, that it empowers me, not just for the fuck of it or for the fun of it, for the actual measure of productivity. Lex Fridman (03:49:24): It’s a skill. And I feel like I would be stuck in a local maximum of comfort if I stayed with Emacs. And maybe the same should be true for me with Neovim. I should try it seriously. I’m sure there’s a plugin, like a copilot type of situation that you could set up with Neovim. I should possibly consider that. But Cursor is doing a lot of really fascinating stuff on the IDE side, not just sort of generate code and edit that code manually, it’s like continuously be able to rewrite code. It’s the idea of tab, tab, tab, tab, move the Cursor around, but also modify parts of code and do the diff really nicely, that whether it’s Cursor or VS Code that wins that battle out with Copilot, I don’t know. But that feels like a fundamentally different experience than the really efficient, joyful experience that you just described in your selling me on this is Neovim. That doesn’t have an AI in the picture, obviously immediately, but you can, yeah, absolutely. ThePrimeagen (03:50:30): I would 100% agree that Cursor seems like such a cool product. I actually think there’s a lot of really neat things coming down with all of that. And I could change from Neovim. I don’t use Neovim because I love Neovim, I use Neovim because I love the instrument I play. And so it’s like if Cursor can meet those needs, I could see myself moving over. I don’t have some sort of obsessed attachment with it. I am curious though that every time I use AI… I think I just have skill issues. I think I’m just so riddled with skill issues when it comes to using AI, I have yet- ThePrimeagen (03:51:00): I think I’m just so riddled with skill issues when it comes to using AI, I have yet to be able to use it in a way that I really love it. Lex Fridman (03:51:06): We’ll talk about it, but before then- ThePrimeagen (03:51:08): Oh, ball to sit on. I forgot to say that, ball to sit on. Desk needs to be properly heighted. One monitor. Eyes should be two-thirds way up the screen. I don’t like to turn my head. I prefer my hands in a pistol neutral position. And there we go. Lex Fridman (03:51:25): A ball to sit on. Yoga ball. ThePrimeagen (03:51:26): Yoga ball. Lex Fridman (03:51:27): What’s that about? ThePrimeagen (03:51:28): It just helps just maintain good posture, because when I have something to lean against, I do this. Lex Fridman (03:51:33): You’re for hours sitting without… Wait, what are you doing? ThePrimeagen (03:51:37): I sit on the ball, and then I bounce. Lex Fridman (03:51:40): Is your back leaning on a thing? ThePrimeagen (03:51:41): No. Lex Fridman (03:51:42): What the fuck? ThePrimeagen (03:51:43): Well, how else do you- Lex Fridman (03:51:46): You’re the only person in the world sitting on a yoga ball as you program for hours. You do realize this, right? ThePrimeagen (03:51:52): It feels great. The problem is whenever I get a back, I just slouch and I find myself just getting uncomfortable. And I’m like, “I’m uncomfortable.” My shoulders are getting goofed up. I’m chicken necking constantly. It’s just like- Lex Fridman (03:52:10): But you’re able to keep your posture for hours on the yoga ball? ThePrimeagen (03:52:12): Yeah. And so I can just do that. And then I find myself, if I slouch, I’m like, “Okay, Nope. Got to get back. Lex Fridman (03:52:18): Do you have incredible back muscles or what? ThePrimeagen (03:52:19): No. Well, I don’t think it takes incredible back muscles to- Lex Fridman (03:52:23): Keep posture. ThePrimeagen (03:52:24): … remain upright. Yeah, I think that’s a pretty basic human function. I would not consider myself a strong person. Lex Fridman (03:52:29): Yeah. Basic human function. I don’t know. ThePrimeagen (03:52:33): Facts and logic. Lex Fridman (03:52:34): Okay, cool. With one screen. Neovim. What operating system? ThePrimeagen (03:52:41): Linux, just because I want a good window manager. That’s the whole press one button, bring up Chrome. I just use i3. I’m sure I could use something better than i3. People always tell me all these window managers are really great. But I just have those three screens I switch between, so it doesn’t really… I don’t really care what I use, just long as I can press one button and go. Lex Fridman (03:53:02): Yeah, I’m the same, so half and half. Half Linux, the other half Windows with Linux, meaning WSL. What’s that? Windows Subsystem for Linux. ThePrimeagen (03:53:12): Weasel. Lex Fridman (03:53:13): Weasel. See, no, there’s got to be a better one that’s more positive. Weasel just sounds- ThePrimeagen (03:53:19): Seems right up Microsoft’s alley. That seems perfect. Lex Fridman (03:53:24): People often accuse me of being a shill for somebody, sometimes dictators. If I’m a shill for anybody, it’s for Windows. There you go. I get paychecks every week from- ThePrimeagen (03:53:35): Dang. Bought by Bill Gates. Lex Fridman (03:53:37): Well, he’s not Microsoft anymore. ThePrimeagen (03:53:38): I know. Lex Fridman (03:53:40): Developers, developers, develop. No, I’m just joking. I think, man, I need to try Mac. I need to try. I’m surrounded by people with iPhones. I use Android. ThePrimeagen (03:53:52): I use the Android. Lex Fridman (03:53:53): Yeah. There you go. See? Oh. ThePrimeagen (03:53:55): We’re losers together. Lex Fridman (03:53:56): Losers on a sinking ship. Okay, just to stay on Neovim for a sec and to give love and a shout-out to your friend, Teej. ThePrimeagen (03:54:09): He Streams, by the way. Lex Fridman (03:54:10): He’s a streamer. And I subscribed. And I’ve been enjoying it. My allegiance is slowly shifting from you to him. The quality is far superior with him, the looks, the intelligence, the skillset, everything, just far superior. No. Okay, he- ThePrimeagen (03:54:29): You know you’re making his day. Lex Fridman (03:54:32): All right. He mentioned that he loves Neovim because it gives him the ability to eliminate having to do things he doesn’t like. That’s just a nice way to frame what this automation process that you described of automating a way, assigning shortcuts to things that are painful, that procedure. I wonder if you agree with that. ThePrimeagen (03:55:00): Fully agree. We have very similar mentalities when it comes to usage of Neovim, why people should use it, all that kind of stuff, and how to even use it well. He definitely takes it probably to a further degree. He spends more time automating and all that. I don’t necessarily derive a lot of joy from getting the perfect setup. But a lot to learn from. He’s very, very good at what he does. He’s 30 years old, been programming for not too many years, and he is one of the most talented developers for sure. It’s very shocking to see how smart someone can be. Lex Fridman (03:55:33): People should check him out at teej_dv. Teej. ThePrimeagen (03:55:38): DV. His last name is DeVries. DeVries. Lex Fridman (03:55:42): Oh, it’s not developer. Okay, cool. ThePrimeagen (03:55:42): Yeah, yeah, it’s just TJ. That’s just his name just spelled fun. Lex Fridman (03:55:46): All right, Teej. What do you love about him? ThePrimeagen (03:55:48): Wow. How much did he pay you to ask these questions? Lex Fridman (03:55:51): Thousands of dollars. Thousands. ThePrimeagen (03:55:51): Just so many dollars. Lex Fridman (03:55:53): I can’t even count that many dollars. ThePrimeagen (03:55:59): Trust. Obviously trust is the biggest thing, especially in the, quote, unquote, “streaming” YouTube world, if you will. It’s very easy to find people that will want to be a part of stuff. People tend to latch onto things, and it’s very hard to find someone that you can really, really trust. And so he’s just somebody whom I can genuinely trust. He will always tell the truth. He’s all the right things for a good friend in this kind of endeavor. Lex Fridman (03:56:25): As a good friend, he told me questions I could backstab you with. ThePrimeagen (03:56:30): Okay, I hate him. I forgot how much I don’t trust him. Lex Fridman (03:56:35): Speaking of a harpoon, you mentioned it. He said to ask you basically how many years or decades it’s going to take to transition to Harpoon 2 to actually release it, develop it, and so on. Can you describe what Harpoon is and why your seem to be incapable of finishing a single project? ThePrimeagen (03:56:58): That was a lovely framed question. Harpoon 2 is actually done. This is what I did: To avoid the swirl in the thousands of questions I will inevitably get, I kept the master branch as Harpoon 1, and I’ve kept Harpoon 2 as Harpoon 2 branch. And people that don’t read the read me to say that I just use Harpoon 2 now, that’s their fault. That’s it. I really don’t like answering hundreds of questions about open source stuff. I used to love doing open source and all that, but I got my soul crushed during the Falcor years, and so I guess I’m just allergic to being a really active maintainer. ThePrimeagen (03:57:33): I build everything just for me. Harpoon’s just literally just built for me. I spent three months trying to figure out the most optimal navigation for files, and that’s what I came up with. Harpoon, it’s a take on alternate file. If you’re familiar with the alternate file, typically you’ll have this in all editors where you can go back to the file you were just in. And so that means you can have effectively two files you swap back and forth in. You’ve probably used it a bunch; really fast way to navigate. Pretty nice thing to do. I want alternate file, but three of them or four of them, and so that’s all Harpoon is is just being able to pin a file. And so I have one button to press to go to a file, another for another, another for another. And so I can have up to four. I just had my four power fingers. For Dvorak, what is that? That’s HTNS. If I go Ctrl H, T, N, or S, it goes to one of the four files. And that’s it. That’s all it is. ThePrimeagen (03:58:21): And you can technically make it so you can add in functions and be able to execute things externally. You can open up terminals, you can send requests off to servers. You can do anything you want with it, I just have it primarily designed for opening files. Lex Fridman (03:58:33): Since you mentioned it, what keyboard layout do you use? You use Dvorak? ThePrimeagen (03:58:36): I use Dvorak, but I used a custom version of Dvorak. The reason why I used it is in 2017, we are just having my second kid, it was Christmas and I’m having so much pain in my arm and I’m sitting there freaking out like, “Oh my gosh, is this the end of my career? Am I done programming? Is this all over?” And so I decided that I was going to create my own keyboard layout optimized to prevent the pain that I’m experiencing, so I used to Dvorak as the base and then laid out the symbols in a symmetrical, reasonable way so that it’s opening, closing, opening, closing, opening, closing. And they all are right here. I actually have to hold shift to press a number. Symbols are actually my first thing I get to press. And so it’s very optimized for a laptop keyboard layout so I can use my laptop in a very efficient, nice way. That’s how I got started on Dvorak and all that. I wouldn’t actually recommend it because I didn’t have a Kinesis at the time. I didn’t even know Kinesis existed at that time. And so when I discovered Kinesis in also 2017, that’s when I was like, “Oh, okay.” Lex Fridman (03:59:37): Would you recommend Kinesis to people? ThePrimeagen (03:59:40): I’m technically sponsored by Kinesis, so it’s hard for someone to believe someone that’s sponsored by it. But I did use it before I ever became sponsored. They’re the only sponsor that I reached out to and said, “I need a sponsorship from you. I’m going to use you either way. You can say no, but I really love it.” And for the first three years of using Kinesis, they gave me free Kinesises, Kenisi, as my sponsorship. Lex Fridman (04:00:04): Kenisi. Yeah, I’m always torn. I tried to leave so many times. ThePrimeagen (04:00:08): You can’t. It’s too good. Lex Fridman (04:00:10): But, see, I have this absurd situation of traveling with it. ThePrimeagen (04:00:16): I relate. Lex Fridman (04:00:17): Yeah. I’m literally going to the war zone in Ukraine, I have a Kinesis keyboard, a laptop, and just a few other small things and that’s it. And it’s like is Kinesis keyboard really going to be 30% of volume that you’re bringing to a war zone? But- ThePrimeagen (04:00:37): Looks like the answer is yes. Lex Fridman (04:00:39): Yeah. Do you really derive that much value? I think it’s probably spiritual or psychological for me. It feels like home. There’s comfort associated with it. I try to leave. ThePrimeagen (04:00:50): I love this experience. It’s like a relationship you have with the thing. Lex Fridman (04:00:56): It is. But I’m trying to figure out if it’s a toxic relationship or not. I think it’s mostly love. I think it’s love. Like all relationship, there’s some push and pull complications, but- ThePrimeagen (04:01:06): They say that distance makes the heart grow fonder, so maybe sometimes the Kinesis keyboard needs to stay at home and the laptop keyboard can be the one so that your heart grows even more fond and that connection grows even deeper. Lex Fridman (04:01:18): I already miss it as you say it, so I don’t know. I think it’s coming along to all the trips. If it breaks down, though… I was worried that Kinesis was shut down as a company. I’m like, what’s the business model here? Who actually uses these keyboards? But apparently they’re still going strong. ThePrimeagen (04:01:33): Yeah. Who uses these keyboards? As you use the keyboard “I have to take it with me everywhere.” I wonder who uses these keyboards. Lex Fridman (04:01:42): Yeah. Yep. I should mention that one of the things when I first became a fan of yours, I heard you talk about coffee and term… I still don’t, by the way, understand what you’re even talking about. I need to actually use it. But you run, amongst many things, a coffee company. Man, this smells so good. This one is dark mode, dark roast, whole coffee beans. There is seg origin, dash, dash location. Brazil. ThePrimeagen (04:02:14): Yeah, there’s a bunch of stuff on there. Lex Fridman (04:02:16): Stuff on there that’s very devy. Shop, server, web. Can you legit, as such, order coffee via SSH? ThePrimeagen (04:02:25): As of right now, it’s the only way you can get the coffee is via SSH. Okay, can I just origin, origin story you? Lex Fridman (04:02:33): Yeah, yeah. Yeah, right, I was going to do some kind of command line. Command to request or dash dash help or something or- ThePrimeagen (04:02:33): Command coffee? Lex Fridman (04:02:33): Command coffee. ThePrimeagen (04:02:44): Okay. TJ and I, again, same Teej, Teej TV, about… By the way, very amazing designs done by David Hill. They’re very, very good. Let me give the basic ideas. It must’ve been about a year and a half ago, TJ and I were talking like, “Hey, every one of these people that have some sort of following, some sort of online presence, they’re always selling a thing,” but I got nothing to sell. I don’t really want to do merch. I’ve never really enjoyed doing merch. I just find that, I don’t know, it’s just not as much fun for me. Lex Fridman (04:03:15): Don’t want to have a tequila? ThePrimeagen (04:03:15): I don’t want a tequila. I want something that- Lex Fridman (04:03:19): Like The Rock. ThePrimeagen (04:03:19): And I also want something that I really don’t feel bad about selling. There’s a lot of people that will go on the internet and they’ll shill for a whole bunch of products like, “Oh, okay, try this, try this.” And this is why I’ve only ever really done Kinesis is because it’s like, well, I can point to something that was really bad in my life, I was very scared, and now it’s not bad anymore. It’s like, okay, that one made sense. But everything else always has been… It’s harder for me. And so we just talked for so long, and we love Neovim, so we’re just like, “Why haven’t we could do something from Neovim?” And we’re laughing about that, ordering from Neovim is just so ridiculous. ThePrimeagen (04:03:51): And then at some point, we’re just like, “Well, wait a second. And maybe we could do coffee. Every developer loves coffee. Maybe we could figure out this coffee business.” And so I had a good friend named Dax, THDXR. Dax, yeah, Dax. The most sassiest man alive. Lex Fridman (04:04:11): Sassiest? ThePrimeagen (04:04:11): Oh yeah, he has a lot of sass. Lex Fridman (04:04:13): Beard? ThePrimeagen (04:04:14): Yep, he has a beard. He does SST. He does a lot of stuff. Very, very talented. We’ll call him DevOps engineer. He’s more than that. But very talented guy. Him and another person named Adamdotdev, vegan, by the way, great guy. We take him to Korean barbecue all the time. He eats nothing. Lex Fridman (04:04:33): That’s great. ThePrimeagen (04:04:34): And Liz, she has been super important to the terminal coffee company. I think without her, we would not have been able to do what we have done. And then also David Hill, designer, he does Laravel. He designs for Laravel. Very talented designer. And so we all came together. And we were just laughing about how could we do something that’s just ridiculous? And that’s what we came up with. Yeah, there you go. You just open the website. You literally cannot order. We actually do not allow you to order. Lex Fridman (04:05:05): The website is something that looks like the terminal. Use command below to order your delicious whole coffee bean. SSH terminal.shop. ThePrimeagen (04:05:14): Yeah. You can only SSH into it. You have to copy that command and throw it in there. If you want to add in the little terminal shop for your known hosts, you could do that. Lex Fridman (04:05:22): How do you handle payment? ThePrimeagen (04:05:24): Through Stripe. And so one of the things, we’ll be adding a mobile checkout to where I’ll show a QR code in the terminal and you can just check out on your phone, but right now, you enter in your credentials, it goes to Stripe. Lex Fridman (04:05:34): Via all terminal, like SSH. ThePrimeagen (04:05:36): Yeah, SSH, obviously it stands for Secure Shell. It uses elliptical quantum safe algorithms to ensure that your data’s not being intercepted. Lex Fridman (04:05:45): Yeah, but does he use AI? ThePrimeagen (04:05:48): I’m pretty sure Dax uses AI. That- Lex Fridman (04:05:50): You said quantum, so I don’t know. ThePrimeagen (04:05:52): Quantum AI? Lex Fridman (04:05:53): Can this- ThePrimeagen (04:05:54): Fusion quantum AI? Lex Fridman (04:05:55): Can this even be a company if it’s not using AI? ThePrimeagen (04:05:59): We have some crypto chains with some quantum AI that’s powered by Fusion, so it’s pretty wild. Anyway, yeah, we just came together where we thought, what is the… That was from the Mike Tyson fight. It was literally that night Mike Tyson kissed the reporter and then walked out without any clothes. We did an ad for somebody. ThePrimeagen (04:06:17): But we decided to make a coffee shop, and then we thought instead of just making it Neovim, what if we made it from SSH? Because everybody has SSH. You have VS Code. Launch VS Code. You can order coffee from within VS Code. Because your little bottom terminal that has access to SSH, bada bing, bada boom. It’s fun. And so we really- Lex Fridman (04:06:39): I love this. ThePrimeagen (04:06:39): We just wanted to do something where there’s no level and there’s no world that makes me feel bad about selling this in people buying it. It’s good ethical coffee. We developed the entire supply chain and everything. It’s all packaged, it’s all boutique. It’s pretty high-end coffee. It tastes really, really good. ThePrimeagen (04:06:57): At this point, I don’t like drinking other coffee. I get upset about it because it’s not as good. And so it’s funny that I’ve fallen for my own stuff. I’m high on my own supply pretty hard right now. I just got done ordering 16 bags and gave it out to my family to try to convince them. But it’s just something where it’s like I didn’t sell you a software product that’s going to influence your startup that could potentially lead to disaster, I didn’t convince you to do a bunch of stuff that’s going to change your career, I just said, “Hey, here’s some coffee.” And it’s like a fun experience. Lex Fridman (04:07:27): Yeah, it’s fun, everything. The humor on it is great. People should go to terminal.shop. ThePrimeagen (04:07:32): SSH terminal.shop. Lex Fridman (04:07:34): I’m speaking to people that don’t know what SSH is. And there, you can read the command and then figure out how to use SSH in order to… It’s a kind of documentation, right? ThePrimeagen (04:07:45): Yeah. Lex Fridman (04:07:45): On the website. ThePrimeagen (04:07:47): If you can’t use SSH, you probably should just not worry about buying our coffee. That’s the whole- Lex Fridman (04:07:52): Well, you can learn. ThePrimeagen (04:07:53): You can learn. If you’re active and you’re a computer person, you’d like to launch the terminal and feel like a hacker, go for it. We even have subscriptions. Lex Fridman (04:07:59): What I would love to see… This is how it came up I think on the cursor conversation, is that I would love it if an AI agent did this, like Anthropos computer use or something like that, actually took the action of ordering the coffee while it was programming. ThePrimeagen (04:08:17): Yeah, like, “Hey, order me some coffee,” and it actually go off. “Give me dark roast.” Order coffee. It could actually go through the whole flow of order. Lex Fridman (04:08:24): Yeah, the whole flow. But even better, if you didn’t ask it to order coffee, you asked it to do something, and as a tangent, as a side quest it did that. Which is computer use does that. They showed off that it’s able to go to I think Google for some images, take a pause, and then continue doing other stuff. Anyway, yeah, super cool idea. Love it. Speaking of which, let’s talk AI. ThePrimeagen (04:08:50): All right. Lex Fridman (04:08:50): You’ve been both positive and negative on the role of AI in the whole programming software engineering experience. As it stands today, what do you think? What’s your general view about AI? What is it effective at? What is it not so good at? ThePrimeagen (04:09:06): Okay, my general view is it comes down to something that’s pretty simple, which is that if you’re doing something in which is very predictable, AI is really nice. When you’re doing something that is just not predictable, AI is not very nice to use. If you’re using anything that’s more cutting edge, AI will not be using it, or AI won’t be very good at doing stuff with it. It’s not great at Zig because Zig is just, say, less documented. It’s really great at TypeScript. ThePrimeagen (04:09:39): I think there’s a lot of interesting things that are going to come down through AI that I think a lot of people aren’t really prepared for or thinking through. TJ’s the genesis of this idea, but the idea that I think there’s going to be a lot of market manipulation, if you will, through AI. Meaning, hey, you want to research, say, best woodworking tools. Someone’s going to be buying an ad spot. Someone’s going to be buying premium training data. They’re the ones that get the big boosts in the LLMs. But LLMs don’t really have to market as an advertisement because it’s not really directly an advertisement, they just had a more premium spot, per se, in the training data; a little bit extra learning to it. ThePrimeagen (04:10:21): It’s like there’s a lot of things about AI that I fear upcoming. A lot of it just comes down to people not learning or making the trade-off where productivity is the only thing that matters. And I don’t think productivity is the only thing that matters. If you want to build something complex and difficult, productivity is not the only thing. You actually are going to have to do deep learning and pursue it beyond the basics. ThePrimeagen (04:10:42): And so I see AI as this really cool thing. It feels like a magic trick. I remember the first time I used it, I got early access to GitHub Copilot. In fact, Nat Friedman saw my Twitch clip of me asking GitHub for it, and he sent me early access himself. It was awesome. And when I used it, it predicted an if statement correct and my mind was just absolutely blown because I had nothing before then, and now it’s just like first time ever. And I just remember thinking, man, this is going to change programming so much. ThePrimeagen (04:11:12): And then the more I used it, the more I just… For me personally, I kept introducing bugs, and I couldn’t figure out why. And what I realized is that I developed… I wasn’t copiloting well, I was autopiloting much better. And my ability to read code versus my ability to critically think and write code, they’re definitely different sets of skill levels. I don’t consider as well when I just read code as opposed to what I write code. And so I struggled there. Lex Fridman (04:11:38): I do think that’s a skill set. ThePrimeagen (04:11:40): Yeah. Skill issue for sure. Lex Fridman (04:11:42): Skill issue. For people who are not aware, that’s a hashtag thing sometimes used mockingly in this case. There’s several layers mockingly, but also seriously, meaning the criticism is grounded in the fact that you lack the skill versus some kind of fundamental truth. Yes. I think that that’s the reason I use actually Copilot cursor a lot is for developing the skill of editing AI so I can just learn how to do that better and better. Because I think as I do that better and better, I start to utilize AI better. At this time, it is a bit of a boilerplate code thing, but you can do out of the box novel design decisions or tricky design decisions from scratch but fill out stuff using AI and then just learn the skill of modifying. Lex Fridman (04:12:43): I personally just… It’s more fun to program with AI. Even when I delete a lot of the code, it’s more fun. It’s less lonely. It’s what I imagine pair programming to be. And I’ve never done it, but it just feels like that friction that you get when you’re staring at an empty thing is not there. Empty function, empty class, it’s just more fun, less lonely. Lex Fridman (04:13:19): And I do think that a lot of the easier type of coding, it really helps with like interacting with APIs, basic things that I would usually have to look up to stack overflow for. It’s just really fast at that. As example, just interacting with the YouTube API. The YouTube API documentation is not very good. And you can just load it all in there and ask it to generate a set of functions that access the API, all kinds of read and write operations, and it figures it all out. Well, you do have to read. You have to read and check everything. Lex Fridman (04:14:04): And you start to develop the skill of understanding where it misinterpreted the task. What is that skill? I don’t even know. You have to be empathic about what the AI, what its limitations are. A lot of the times that has to do with prompt engineering. You have to at the same time understand what the AI is aware of. What did you actually give it as data to be able to generate the code? A lot of times, we don’t realize that we’re not giving it enough information. Okay, okay, all right. You have to be empathic. Be like, okay, these are the files it’s aware of. This is the specifics of the question you asked it. You have to imagine you’re an intern that doesn’t know anything else. Lex Fridman (04:15:09): Oftentimes, we want the AI to just figure out the things that’s left unspoken. But you can’t know those things, you have to specify those things. And so you have to actually be much more deliberate and rigorous in the things you specify, is to spell it out. And so I just have this sea of prompts that I have saved up, and I’m building these library of different templates for prompts and it’s a mess. And I’m sure there’s a lot of developers that have this similar kind of mess. Lex Fridman (04:15:38): A lot of it has to do long-term with the tooling that’s going to improve that. One, the systems are going to get much more intelligent when you don’t need the nuance. And two, there’s going to be the tooling that allows you to specify those things and load it in correctly and give all the context that the system needs in order to make the good decisions. And maybe the system asks you follow up questions with, “Here’s things you didn’t make clear,” all that kind of stuff. Lex Fridman (04:16:02): A lot of that has to do with the interface, with the actual design of the tools. Like we said with Cursor, it’s going to keep getting better and better and better. My sense is developers in general should be learning this to not be left behind, to see how that can be used as a superpower to boost their productivity, their effectiveness, their joy of programming versus be seen as a competitor to them or something like that. Lex Fridman (04:16:33): But for me already, it’s been a big boost to productivity. If you measure the actual how quickly you’re able to get a thing done, it’s been a big… And measured not across minutes and hours but days also. Sometimes there’s things I have to do that are not that important that I’ll just out of procrastination will push off. ThePrimeagen (04:17:03): I know that. Lex Fridman (04:17:03): And AI helps me actually get it done, because that thing, the empty page, like I mentioned before, it helps me write the thing, get it done, get it tested, ship the thing. Maybe it’s just because it’s just less lonely to work with an AI. I don’t know. I don’t know if any of that made sense, but- ThePrimeagen (04:17:22): It all made perfect sense. I really do like that phrase, it makes it less lonely. I think there’s something to that that’s interesting having just some level of interaction that’s not just like an LSP autocomplete, having something that’s actually a little bit more than just that where it actually is thinking through and you can see a different thought and you’re like, “Oh wow, that’s a way different approach than I would’ve taken. Hey, that’s cool. I like these kind things.” ThePrimeagen (04:17:43): And the thing is that I’m not a AI negative person. I can see why people really, really like it. I used Copilot from when Nat gave me the access all the way up until about six months ago. I used it for quite some time. And I really did enjoy the things I used out of it. It did the opposite for me. I felt like I was more reviewing than writing and I felt like I was more just letting things slide where I just didn’t really think too heavily about stuff. And just I wasn’t as engaged. And so I’m like, “Okay, something’s kind wrong here.” And that’s just a me personal thing. I recognize that is not how someone should approach these things. That’s not a good reason for why you should or should not use AI. I just don’t think that that’s right. I could probably correct that and figure out a better way to do it. ThePrimeagen (04:18:32): I’ve been meaning to have another AI round, and so I’ve been thinking about maybe I just need to spend two weeks in Cursor and just fully embrace what does it mean to be somebody like this? And what can I do with these new powers? Have they improved to the point where they’re actually good? And for me, because a lot of the decisions I make, a lot of the little functions I’m writing, it’s not because trying to write this function to solve this problem, it’s because I’m writing these functions or this set not just to solve this problem but because I know in about another 2,000 lines of code of building all these other things, I’m going to need to start doing this next activity. It’s like I’m trying to really try to chess move myself into the exact things that, as I let things go faster, I fall apart on that chess move. And again, skill issues for on my behalf. And I mean it in the truest sense of the word where it’s like I’m making a critique because I don’t use it well enough. Lex Fridman (04:19:23): I don’t know if this is a general rule, this is my anecdote data. The better you’re programming, the less you want to use the AI, the more gets in the way. The good programmers- ThePrimeagen (04:19:32): It’s fair enough, as far as I can tell. Lex Fridman (04:19:34): The more beginner programmers are much more happy to use AI. When I use AI, it’s for basic for just… I don’t know if there’s a better term. It’s not boilerplate, but it’s pretty easy programming. And that kind of programming is much easier to do. The 10 X, not to use the meme, programmers that I know that are ultra productive and brilliant people, they hate AI. They’re like, “This is nowhere close to what’s needed.” There’s something to that. I still think they should be using AI just for the learning because it’s going to get smarter, it’s going to get better. It’s the same thing, it’s like when you super optimize Neovim or super optimize Emacs, you may not discover new things that are in the pipeline, so it’s always good to be training in that way. ThePrimeagen (04:20:26): Let me ask you a question here just for my understanding. You talked about this idea that you have all these LLM prompts, all this big backlog of messy LLM prompts that you have these templates for that you can do various actions. You have these strategies of making itself explain itself and then do the right thing. As far as I can tell, that’s really built into a lot of people. ThePrimeagen (04:20:46): Well, then you make this phrase where you’re like, but then at some point, the interface is going to get better, and maybe it can do a lot of these things better where I won’t need that. Then my question is, well, is anyone actually falling behind for not using AI then? Because if the interface is going to change so greatly that all of your habits need to fundamentally change and it will be able to clarify and make all those statements, have I actually fallen behind at all? Or will the next gen actually just be so different from the current one that it’s like, yeah, you’re over there actually doing punch card AI right now. I’m going to come in at compiler time AI, so different that it’s like what’s a punch card? Lex Fridman (04:21:23): Obviously open question. It’s a fascinating one. I personally think, yes, you’re falling behind. Not you, but if you’re not- ThePrimeagen (04:21:24): It could be me, it could be me. Lex Fridman (04:21:33): … not playing with it, you’re falling behind because the thing I’m doing with the prompts is you’re learning, you’re building up this intuition about how AI works. You’re understanding what is its strengths and weaknesses? Not even the current version, but the next version and so on. What does it mean to teach an AI system about the world? What kind of information does it need to make effective decisions? I think that does transfer to smarter and smarter models. You’ll need to make less rigorous and specific in details instructions over time, but you still have to have that kind of thing. Lex Fridman (04:22:21): I think it’s a skill of almost empathy with an AI system because it doesn’t know… You know what it’s missing? It’s missing common sense. It’s missing long- term memory. A lot of things, when we talk to other humans, they have a basic common sense about reality, and AI systems often lack that kind of common sense. And they also don’t remember things. You have to realize there’s a constant blank slate happening. It’s almost just a skill of talking to an AI system that I’m training. And by having to write all those prompts and communicating back and forth to understand what kind of prompts work better or not, you build up that intuition. And also just raw the skill of reading somebody else’s code. Maybe for people who work on large teams, that’s a skill that’s already developed. For me, not so much, so learning how to modify the code that somebody else written is a real skill. Lex Fridman (04:23:23): And also, the other thing you mentioned, which is considering another perspective on a piece of code is really nice, but it is also a skill to understand, okay, this is what you did. There’s a skill to asking a question that code that’s been generated such that you can have a conversation about the approach that was taken. I think there’s just a lot of subtle, little skills involved in a cooperative endeavor to code, kind of like there was a real skill issue between you and Teej when you guys did the video of two idiots, one keyboard. People should go watch. Lex Fridman (04:24:00): You guys did the video of two idiots, one keyboard, People should go watch that video, where you guys obviously sucked at it. ThePrimeagen (04:24:07): Yeah, co-using. Lex Fridman (04:24:08): That was pretty cool, which you guys did, which is controlling one Neovim interface from two different keyboards. ThePrimeagen (04:24:15): Yeah. And then we each get an allowance of certain characters or motions we could perform. Lex Fridman (04:24:19): Yeah. And so you both had to communicate together. That’s a real skill. I’m sure you can get super efficient with that, but it just takes time to learn that kind of thing. So yeah, I think there’s some value to it, but I think there’s a learning curve. ThePrimeagen (04:24:37): One thing to be pretty clear is that I actually use AI quite a bit. I just don’t use it for programming. And so one thing I’ve been trying to get it to is to be able to have a long interview or understand what Twitch Chat is saying and become Twitch chat and be able to speak as if it is Twitch chat. Try to learn how to prompt it in different ways. And so I think those things for me are just really fun. ThePrimeagen (04:24:56): I tried to get it to learn how to play tower defense. I made a tower defense game in Zig and then made it play tower defense, and then played a Claude 3.5 against OpenAI. Claude 3.5 would do better during the daytimes, and OpenAI did better during the nighttimes. I don’t know why, I have no idea what was going on there, but one would just start winning and the other one would start losing. It was just very strange. And so it’s just this, I’m learning to prompt well, but I’m learning to prompt in a very different axis. I just don’t find it very useful yet in programming. Lex Fridman (04:25:23): In programming. And I should also say that I’m using it in every walk of life, in every context. I use that same kind of exploration about prompts and so on, I’m using and learning. I think it legit is a whole field in itself. ThePrimeagen (04:25:41): Yeah. Lex Fridman (04:25:42): Prompt engineering and how to interact with AI systems, I think it’s worth the investment. Can you actually speak to that? Because I saw you’re basically pulling from Twitch chat and having an LLM speak. I didn’t realize, you’re not reading the exact chat messages. ThePrimeagen (04:26:04): Yeah. Lex Fridman (04:26:04): You’re doing kind of some kind of summarization? ThePrimeagen (04:26:07): Yeah. So I ended up making like eight queries off to OpenAI where it’s just like the first thing is like I have it have it like a default personality. “Hey, you’re Randall, the manager, you’re a software engineering manager.” Kind of explain their position, what they like, what they don’t like, and then be like, “These are the list of thoughts you have in your head and you need to talk to this person and ask them a question.” Lex Fridman (04:26:28): This is amazing. ThePrimeagen (04:26:28): “Give me 10 of these responses that you think are probably thoughts that you have and you want to ask.” Make it kind of give you a list and then be like, “Okay.” Then re-prompt and be like, “Hey, you’re Randall, you’re this, this, this, this, this. You have these 10 questions before you and now you need to select one of them and reword it in a way that sounds more like you, the engineering manager.” And I’m constantly trying to make it iterate on itself as opposed to just one-shotting it. And I found if I iterate too much, it loses what it was originally trying to ask if I don’t do it enough and it’s just too degenerate from Twitch chat. And so it’s like I have a lot of improvement to do with this idea- Lex Fridman (04:27:07): Just to clarify, you’re feeding in Twitch chat, “You’re a manager, these are the thoughts you have in your head, pick out some of the most profound thoughts”? ThePrimeagen (04:27:20): Effectively. It’s like depending on what I want it to do, I’m trying to work on a better system still for it. Lex Fridman (04:27:20): Brilliant. ThePrimeagen (04:27:25): And so it’s like, “How can I give voice to Twitch chat? Can I make it so that I can create adversarial characters against Twitch chat or for Twitch chat? Can I incorporate YouTube?” All that kind of stuff. And how do you describe to an LLM to role-play into its position? And so just thinking through those kinds of things. So maybe I am having some prompt skills, but it’s just not in the coding world yet. Lex Fridman (04:27:46): Sure. ThePrimeagen (04:27:47): One day I’ll get there. Lex Fridman (04:27:48): I saw that you were playing with different voices. There was like a sexy voice? ThePrimeagen (04:27:54): That started off as a French voice- Lex Fridman (04:27:55): French voice? ThePrimeagen (04:27:56): … and then it turns out ElevenLabs just cannot do a French lady. And when you do multilingual French lady, she starts talking. It’s like, “What? What is this?” Lex Fridman (04:28:08): I tuned into one of your streams and there’s this lady in a sexualized way. ThePrimeagen (04:28:16): It became too funny. And so we call her Not French Stormy Daniels. Lex Fridman (04:28:20): Oh, nice. ThePrimeagen (04:28:21): Yeah. But I want to go back to the AI and some of the aspects. Lex Fridman (04:28:24): Sure. ThePrimeagen (04:28:25): And so my big gripe with AI has nothing to do with its capabilities. It’s exactly capable, as it should be capable, because that’s what people programmed it as. The things that I really dislike is, A, there’s a whole group of people that are just like, “The end is nigh. AI is here, you just need to stop programming.” I cannot tell you, even you mentioned Peter levels earlier, he made some sort of tweet and one of the person’s responses was, “No one in 2025 or whatever should be acquiring hard skills. You should rely on everything for the AI effectively.” And it’s just like these are really damning pieces of advice for young people. Young people are being told that you should never become an expert in anything, you should always offload. ThePrimeagen (04:29:04): And the problem is that anyone worth any of their salt will tell you that AI, though can produce code, is going to get it wrong in a huge number of cases. And as the code becomes bigger or more complex or more input, it’s going to just start kind of sloshing back and forth between bugs. And so if you don’t have those hard skills and you’re not ultimately the driver at the end of the day, you’re going to really find some hard times, and your ability to progress will be directly bound to how good the LLMs are. So if you believe that the LLMs will be vastly superior to humans in the next year, maybe that’s a good bet. But if they aren’t, then your skill ceiling is bound to whatever they are. ThePrimeagen (04:29:42): And even beyond that, there’s just a level of information problem, which is like, “Do we even have enough compute power to be able to solve things at this real scale?” And even if we did, if everybody started using it right now, “Do we even have the compute power for everybody to use it right now?” There’s a lot of kind of bounding questions, there’s privacy concerns, and I just don’t want people to make the immediate, or what appears to be the obvious choice, where you don’t need hard skills, you don’t need these things, we just need to only think creatively. It’s like, no, I don’t think so. I think these hard skills are going to be around for quite some time even with a massive improvement in the AI, you’re going to really be needed to step in regularly for quite some time as far as I can tell. Lex Fridman (04:30:27): But I also think even on top of that, just even acquiring the hard skills or whether that means, programming from scratch, for example, in the context of programming, that’s going to make you better at steering the AI, not just correcting the AI, but steering the AI. I think there is some kind of, if you know how a computer works, you can program Python better. It’s maybe counterintuitive, but if you know the low level abstractions, some intuition around that, you can steer the high level abstractions better. ThePrimeagen (04:31:01): Yeah. Lex Fridman (04:31:01): But that just seems to be the case. Unless of course AI becomes like truly super intelligent like many levels above, but it’s very unlikely in the short term. And in the long term it’s still good as it gets better and better and better to be able to ride the wave of the improvement. ThePrimeagen (04:31:19): Yeah, I’m on that team very much so. Lex Fridman (04:31:21): A lot of people have written to me, I think a lot of developers, programmers are really concerned about the future of their profession in the context of quickly improving AI systems. So do you think AI will eventually replace programmers? ThePrimeagen (04:31:37): The hard part about that phrase is you use the term eventually, meaning do I think in five years, 10 years, a hundred years? What does that term actually mean? I think at some point if all things continue at the current rate of improvement, there does come a point where programming as a hard skill does become unnecessary. At some eventual point, way, way down the road, yes. I don’t know what that point looks like. I don’t know when it’s going to happen. I don’t even attempt to make predictions about that. But there are still some leaps and bounds we need to make. ThePrimeagen (04:32:11): I mean even just societally, there’s plenty of companies that don’t even allow you to use AI. I mean, there’s just practical problems that exist. So that’s a question I just try not to answer in the direct sense. There will come a day if humanity continues and all things continue in a good positive direction, where a lot of skills will go out the window due to immense computing systems. So, yeah, I’ll give you that one. But it’s just like if I don’t think it has anything in the near term, there’s been no computer improvement up to this date that did not result in more jobs. Lex Fridman (04:32:46): Yeah, absolutely. I would say that I think it depends how you define programming also, because when the community moves from assembly to C, from C to, I don’t know, Python and JavaScript, that’s evolution. That’s really painful for a lot of people who are used to programming that lower-level language, so there’s going to be a continuous evolution. And maybe that means with AI, there’s going to be more and more evolution towards natural language as part of the tool chain like being able to learn how to write proper prompts. Yeah, because natural language is still a language. And in the long term, it’s possible that a large percentage of programming is natural language. There are probably still going to be some percentage that’s not, that’s going to be extremely structured language. ThePrimeagen (04:33:45): Right now, I don’t think we are anywhere near natural language being possible because it’s ambiguous. And I think what we’ll end up seeing as people push really hard into this, you’re going to see some sort of pseudo-lang, which is going to be a language for AIs in which you prompt, which is going to be less ambiguous. People keep striving towards the less ambiguous state. And at that point you’re just programming yet another evolution into a higher order language. And perhaps that is a future in which people will have a more terse language. I’m just not sure how much more terse it can get. ThePrimeagen (04:34:19): I mean, all I see is that if you say natural language can be used in the pipeline, you’ve just made that many more people can become programmers, which means that much more software will eventually be created, which means there’s that much more software that will need to be maintained, and just becomes a real big snowballing effect. Lex Fridman (04:34:37): But there’s just people who are programmers who are worried about their jobs. Not a complete replacement, but maybe a rapid evolution of what it means to be a programmer. Like you mentioned, if natural language becomes a way that you can communicate or you can program, that means the pool of people who can get programming jobs changes rapidly, so they’re really concerned. ThePrimeagen (04:35:01): And to some extent, because no matter how much we want to say how good AI is, there comes a point where there exists a bug, there exists a large piece of software in which to describe the change requires just pages and pages of description to the point where it is significantly just faster or easier for someone to just whip something out. There’s definitely a balance there, it’s not like a perfect trade-off. And so I think people need to quit worrying and think about how they can integrate it and try, like prove it to themselves. Do they actually make themselves irrelevant? ThePrimeagen (04:35:37): And if you truly make yourself irrelevant, I would challenge you that you’re just doing something that was just slightly too complicated to automate. If you’re only writing just straight up crud apps from backend to front end and simple table displays, yeah, maybe we just couldn’t quite automate that away and now we just have something that can just do that a little bit better, so now that’s automated away, but that’s not really programming. That’s almost like building Legos at that point, where the designs are already set, you just simply have to move piece from bag into correct position. Lex Fridman (04:36:11): Yeah. Is there something you recommend how a developer or programmer could avoid the situation where AI can automate them away? ThePrimeagen (04:36:23): I think that the bigger the project you can manage, the bigger the thing you can build, the more understanding both down and up the stack you can go, the more valuable you become. Because if you understand how to build something in the front end, okay, well, now you kick off some LLM task of some sort, that’s going to go off and make a change to the front end. Okay, while it’s doing that, you can go and kick off something in the CLI tool, you can go and you can go kick off something somewhere else. And as these things come back with results, you can review the results, make sure it’s the way you want it, change it, commit it, go to the next. You only become more, as you said in the end, more productive if we reach this state where it’s truly able to do that. Lex Fridman (04:37:00): I think there is like a skill to working together with AI, which is why I’m kind of excited to watch you keep trying to do it. ThePrimeagen (04:37:08): Yeah. Lex Fridman (04:37:09): It’s like we don’t know how it fits exactly, but it feels like AI should be a boost to productivity. And I definitely think it’s a boost to just the joy of programming. I think there’s a lot of people, yeah, it’s a job, but it’s also a source of meaning, a source of joy. Programming is fun, you’re creating something cool, and also potentially that a lot of people use. ThePrimeagen (04:37:34): There’s this one thing that just really frustrates me, and this is kind of going into the Devin category, which is that I want an intern that cares. Lex Fridman (04:37:41): Yeah. ThePrimeagen (04:37:42): You don’t get that out of an LLM. It does not care, meaning that I don’t want it just to make a UI for me that displays these icons like I asked, I want it to care, I want it to think about it, I want it to present to me and me being like, “Oh yeah, yeah, that’s great.” And then me to make changes. And then later on it’s like, “Actually, I really rethought about this and actually it’d be way better if we change…” It doesn’t actually care about the craft. But when you work with an intern or you work with somebody else, they care. When they factor something, they actually go over and go, “Oh yeah, this is actually kind of bad. I’m going to come back to that.” They finish this, they go back over here and they make this even better. They actually care about the thing itself. It’s a completely different experience. I just want something that also cares that wants to make the thing better, not just simply accomplish the task. ThePrimeagen (04:38:24): And I know I’m asking way too much that’s not… Now we’re getting into Blade Runner’s level AI. I just want something that it just feels like I’m missing that, where it’s just like it will complete the task to whatever level it understood what I was prompting, but it doesn’t actually care about it. Lex Fridman (04:38:42): I mean, there’s so many aspects to caring versus the trivial version of that is a kind of restlessness where you want to keep improving, and I think that is very much AI could do, where it constantly just ask itself, “Can I make this better?” And if it keeps doing that, it probably is going to take it to some ridiculous place, so actually it’s also knowing when to stop. I think developing something you can call taste, which is like trying, working extremely hard, constantly improving until it just feels right. This is it. And I think that is a thing that AI is not good at where it’s just like, “Yes, this is it.” ThePrimeagen (04:39:26): I’ve had write iterated three times and three was the- Lex Fridman (04:39:27): Yeah, that’s it. We’re now there. And I think ultimately that is what humans are amazing at, which is like knowing when something is right like, “This is it.” Especially as you understand, as you develop taste in a particular industry, in a particular context application, knowing like, “This is it. Yeah, the rounded corners on this button, that’s exactly that. That’s beautiful.” So it’s just a sense of beauty, a sense of function, and efficiency, and so on. Yeah, but humans could do almost like supervision of AI systems in that context. ThePrimeagen (04:40:08): Yeah. Lex Fridman (04:40:09): Yeah. You’ve ranted about Devin just full of rage. ThePrimeagen (04:40:15): I mean, first off, the people that run Devin are extremely nice. I want that to be understood. I don’t have some sort of upsetness against them or anything like that. Second, Devin, it’s like the full package when it comes to programming. So it’s going to have, you’re going to give it a task and a repo, and it’s going to go through, it’s going to try to understand the repo and the task, make the change to the repo by exploring it, then actually make a commit to GitHub and explain what it did. So hopefully you have this whole offline thing, which is the other part of this AI part that I actually really like, where it’s just like, “Go fix this thing.” Then I can just go and unbroke and fix this one thing and come back and go, “Okay, good enough, merge, boom.” I want that kind of running, being able to complete things. ThePrimeagen (04:41:00): I think the ideal solution is that you can start giving it small bugs and it goes and fixes these bugs and you can just come back to these backlog tickets that no one ever does, and it actually starts going through these backlog tickets, and it’s actually a really amazing experience. So I love the idea. I think we can all agree that that sounds great, but every time I’ve done it and I’ve asked it for many and I try to keep narrowing down the problems, the more narrow the problem, the better it does. So if I’m like, “Just add one singular icon. And when it gets clicked, I want you to do this just console, click me. At least create me an SVG and place it so it’s nicely placed.” The more narrow the task, the more likely it’s to be successful. ThePrimeagen (04:41:39): There’s like a certain level of specifying where if you specify too much, it just like can’t do it. If you specify too little, it just does weird things. So it’s kind of like this very kind of fun, unique way you have to play the balance game. But so far, every time I do these things, I always end up going, “Gosh, I should just get better at Tailwind and write it myself,” because I always go back and I just rewrite it, and then it’s just like, “Dang it. What am I saving at the end?” I feel like I’m not saving anything yet. And it’s just like this, “I want it so bad.” I actually want AI to be great because then I can really go fast. I mean, I can go amazing fast, but then I always just go, “Gosh, I should have just learned Tailwind myself to like the nth degree and just go fast.” Lex Fridman (04:42:17): Yeah. We should also mention that debugging, this might be intuitive or counterintuitive, AI is really bad at. ThePrimeagen (04:42:26): Yeah. Lex Fridman (04:42:27): Like that is one of the hardest… It actually makes you realize how special humans are and how difficult the task of debugging is. Obviously, for trivial debugging, maybe you can find bugs, but that is the real art of programming is finding bugs, logical bugs, extremely complicated rare bugs, edge cases. AI can assist, but man, the hard ones really require so much context, so much experience, so much intuition from, again, operating in a fog full of uncertainty. It’s hard. ThePrimeagen (04:43:06): Yeah. Lex Fridman (04:43:07): Of course AI could maybe create logs and do traces and do some kind of loading a huge amount of data that humans can’t, but ultimately that just means it could be a better assistant in debugging versus the actual lead debugger. ThePrimeagen (04:43:27): Yeah. I mean, it’d be great if they could. I mean, the more it can do that, the better, because as far as I can tell, correct me where I’m wrong on this, current state debugging is really, it looks at the code, it looks at the bug problem, it just kind of tries to text-predict where it’s most likely accurate, and then just tries to fix that spot. And so it’s like it’s likely this spot, you said admin panel, it’s slightly off, this, this, this. It’s probably this location, which could actually be a really great way to do search, let me do semantic searching, point to me where this is, because maybe that is a really great way to navigate large code bases. It’s like smart intelligent search. As opposed to trying to make it do the thing, ask it to just help you do the thing in pinpointing problems. I’d love to see more of that, because that’s for me is like the exciting part. ThePrimeagen (04:44:11): And there’s this really great article by creator or maintainer of curl, it’s the I in the LLM stands for intelligence. And he writes curl and maintains curl. Curl has been inundated with security problems and all this, and it’s all from LLMs being like, “Oh, I found a security flaw. Here’s the security flaw,” details it out in the code. And he’s just like, “Okay, how did you reproduce that? Show me,” because if you look at the code right here, that’s actually an impossible situation you’re speaking of. And it’s just like going in these circles and security right now is being inundated, these bug bounty programs are being inundated by LLM-submitted responses because they can’t actually analyze the code beyond just like basic text prediction. “Oh, this is a stir copy. Stir copy is commonly referred, blah, blah, blah, blah. Boom, there you go. Here’s the bug.” And it’s just like, “No, that’s actually impossible because the if statement right beforehand leaves the function if the string is too long, so it’s like we don’t even run into this case. It’s impossible what you’re saying.” So debugging is very interesting. Lex Fridman (04:45:08): Yeah. I mean, that for me would be the big, if it can solve that, not solve that, but improve that, that would be huge, whether it’s agents or just LLMs integrated into IDE. ThePrimeagen (04:45:19): I think there’s this whole idea, I call it a denial of attention. I think there’s an entire attack vector that’s going to be happening. We’re using LLMs to generate fake bug reports, fake all these things to just actually effectively to demotivate and hurt open source maintainers. Polykill was the first bug that kind of had this experience, is this denial of attention where an active malicious maintainer just hounded the owner. And then a white knight came out and offered to buy some stuff from under them. And when they bought it, they actually replaced it with a malicious piece of code and then used it. So there’s this whole security world that’s developing around using these in a very aggressive format. Lex Fridman (04:46:04): I mean, it’s a fascinating world we’re entering into, but I do agree with you that human developers will be a huge part of that world. ThePrimeagen (04:46:11): Yeah. Lex Fridman (04:46:11): That the job might evolve, but it’s going to be there. If I can, I didn’t really look at this page, I thought it would be cool to go over with you. This is, again, the- ThePrimeagen (04:46:21): Stack overflow, my favorite Lex Fridman (04:46:23): … Stack Overflow Developer Survey, talking about their sentiment and usage of AI systems. The general sentiment of, yes, 61% say yes, they use it and 25% say no, don’t plan to. So majority use it, majority have a favorable sentiment over it, favorable or very favorable or indifferent. That’s like looks like over 90%. ThePrimeagen (04:46:52): That’s really surprising that that many people just have no plan in looking into AI. As much as I don’t like using it for coding, I hope one day I can use it more. And so it’s like, to me, I’m always looking for the next thing. I’m just surprised that people are, that, I guess obstinate for it. Obviously, the second one, the AI tool sentiment, it must be only the users who responded to the top two of that first one just given the amount of respondents. Lex Fridman (04:47:17): I wonder if no and don’t plan to are people who have tried it and quickly built up the intuition like, “This really sucks.” ThePrimeagen (04:47:25): Yeah. Lex Fridman (04:47:26): So it could be like experienced programmers. They’re like, “No, this is not making me more productive.” 81% agree that increasing productivity is the biggest benefit that the developers identify for AI tools. Okay, so this is, what are the benefits? Increased productivity, speed up learning, greater efficiency, improve accuracy in coding, make workload more manageable, improve collaborate. Where’s the fun, increased fun? I would say that’s like number one for me. ThePrimeagen (04:47:55): Maybe speed up learning is like a subcategory of fun. If you’re able to learn more and be able to become better. To me, that sounds good. Lex Fridman (04:48:05): I don’t know. It’s different because productivity is part of fun too. There is just a lightness. I mean, maybe improved collaboration, all of these elements for sure. ThePrimeagen (04:48:16): My time using Copilot, there was certainly a level of wonder that would happen for quite some time where it’s just like, it’s just amazing what it can do. Lex Fridman (04:48:23): Yeah. ThePrimeagen (04:48:24): I’m just super impressed by what it can do, even though I don’t use it. It’s amazing to me that we have something that can even get that close. Lex Fridman (04:48:31): In terms of accuracy of AI tools, only 2.7% highly trust- ThePrimeagen (04:48:37): I would say that you have to be very green to think that you should highly trust an AI output. You should be very skeptical. Lex Fridman (04:48:43): Yeah, I don’t know where I stand. Probably somewhat distrust. Highly distrust seems aggressive. ThePrimeagen (04:48:47): It does seem a little, true. You should always assume that there’s something wrong, and then from there you can go and challenge it. Lex Fridman (04:48:57): And then estimation of whether AI can handle complex tasks, most people don’t think it can handle complex tasks. I mean, it seems like people have a good sense of what it’s able to handle and not. ThePrimeagen (04:49:07): I would argue that people don’t have a good grasp of what complex is in programming. Lex Fridman (04:49:11): Sure, yeah. ThePrimeagen (04:49:12): If you say, “Write me quicksort,” some people will think quicksort’s super complex. But I would argue that that’s actually probably the simplest thing you could ask an AI to do. Things that are so well documented, it’s going to do a great job at that. Lex Fridman (04:49:26): Yeah. Probably high-level design decisions, which people don’t even use AI for right now, I guess agents are supposed to be doing that kind of stuff. That’s probably the most difficult thing or the most impactful thing, or the most difficult thing is finding bugs. ThePrimeagen (04:49:42): Yeah. Lex Fridman (04:49:43): AI tools next year, writing code, and so on. ThePrimeagen (04:49:47): Now, this one, the ethics part. I’m actually super curious your take on the ethics. Will we see Europe laying down some new regulations? Lex Fridman (04:49:56): Oh, boy. ThePrimeagen (04:49:56): What about artists? What about people that are really… Because the difference between coding and artists is very, very simple. If you gave me a sheet of paper, I could draw you a crab. You go, “That’s a crab.” But you can’t do that with coding. It’s like it’s right or it’s wrong. There’s not a variation of interpretation for what a crab is. It’s like, “No, you cannot make that statement.” It’s very bounded in what it can express. And I could see why artists, that’s a very frustrating point. And then who gets rewarded for all that? ThePrimeagen (04:50:28): And then there’s like the whole thing with coding and licenses. How much of it is GPL licenses, do you think, they’ve scraped and used as training data? GPL forces open source. What are you going to do with that one? That means your model might need to be open source. OpenAI may have to get forced open, all their previous stuff if there’s any hint of GPL. Lex Fridman (04:50:48): Yeah, that’s a weird one. That’s a really weird one because most of these models I think are training on data they don’t technically have rights to be training on. ThePrimeagen (04:50:56): Yeah, there’s a lot of questions. Lex Fridman (04:50:58): There’s an unspoken, it’s a real Wild West. ThePrimeagen (04:51:01): Because you could imagine that, I always use Europe because they tend to have like maybe the most consumer protection laws out there. You could imagine what happens if a law came down that said that if you used a model that produced GPL potential code, you have to open source? How many companies are going to be like, “Oh my gosh”? Like, “You have one year to get rid of all code that was generated that’s potentially GPL-sourced from a model.” You could imagine just the sheer panic that’s going to happen. It’d be a fire sale of code. Lex Fridman (04:51:31): So given all that, can you give advice to young programmers? This is another question from Reddit, the infinite wisdom of Reddit. “What should a person in their early 20s do to move forward in the tech industry?” And this is an interesting addition to the question, “And by doing it, will this be walking on someone else’s path?” ThePrimeagen (04:51:59): I am going to try to answer that question, I guess the best I can, which I think that if you’re entering into the tech world, one of the hardest pieces of advice that I took a long time to learn was I became enamored and addicted. Obviously, we talked about that I program for way too many hours, forgetting to spend the time I needed with my wife, with my friends, all that stuff, like totally wrapping myself up into one activity. I think though it made me who I am, it was probably an unhealthy activity and probably not a wise activity. And so the best advice I can give is that you got to develop the love, the skill, the desire for it. Whether that’s just only using AI agents, programming yourself, using Zig or programming JavaScript, whatever that flavor is that’s going to get you coming back every single day, getting the reps in the gym, if you will for programming. ThePrimeagen (04:52:53): But also knowing how to value what is valuable and not getting lost in the sauce where you’re just so stuck on trying to make the next greatest startup that you sacrifice your health, you sacrifice your relationships. Or even worse, you sacrifice your own morals to take certain shortcuts that you probably shouldn’t be taking in life to be able to achieve these things, because I’m sure there’s hundreds of horror stories you could hear where people definitely shortcutted their morals for monetary success. Lex Fridman (04:53:22): Yeah. I mean, the golden handcuffs comfort can destroy the soul in some sense. Yeah, so that’s really important to remember. There’s young people kind of thinking, “Do I even want to be a programmer now?” It seems like AI is getting better and better at programming. If they were trying to make that decision, would you still say, “Yeah, if this is something that fills you with joy”? ThePrimeagen (04:53:51): I still want my kids to learn how to program if I can answer that, if that’s a good enough answer- Lex Fridman (04:53:51): Yeah, that’s a really powerful answer. ThePrimeagen (04:53:57): … in the sense that my kids are decades younger than a young person trying to learn how to program right now. And so I’m hoping that my kid can run and build whatever he wants in Roblox. I’m showing him ChatGPT and be like, “All right, let’s ask questions. How do we do this?” It’s still extremely confusing for him to do all these things. And so it’s like, “Let’s do this.” I want him to learn and be effective, and maybe one day he has to throw away all those skills in 20 years. But I bet you that whatever skills he threw away or whatever hard skills he had to throw away, an entirely new field that none of us have thought about, just like if you would have asked somebody in the ’70s about social networks, they’d be like, “What the heck are you even talking about?” Things will exist in the future that are going to be massively different, and crazy, and exciting. Lex Fridman (04:54:40): Maybe in virtual reality. ThePrimeagen (04:54:42): There you go. Lex Fridman (04:54:42): Maybe all of us actually down the line will just be building video games. ThePrimeagen (04:54:46): Just entertainment for all, the brave new world of our world? Lex Fridman (04:54:51): Well, I think entertainment is a kind of trivialized version of what a video game could be. It’s like, what is the purpose of life anyway? I mean, it could be a deeply fulfilling video game. It doesn’t have to be just like dopamine rush. It could be educational, it could be scary, it could be challenging, forcing an evolution, the leap into adventure that it makes up a fulfilling life. That could be video games. Who knows? Especially in virtual reality. I tend to… That’s the other thing. I play a lot of video games. I think there’s a lot of room to make video games deeply fulfilling, like there’s a lot of space where that can go. ThePrimeagen (04:55:42): I didn’t know you played a lot of video games, because when I asked you specifically, “Should I play World of Warcraft or do Advent of Code,” you’re like, “Advent of Code, Advent of Code.” Lex Fridman (04:55:50): Oh, well, that might mean I’ve never played World of Warcraft because there’s certain games I avoid. Fortnite, by the way, I think was one of them because I was worried it’d become too addicted. ThePrimeagen (04:56:00): Yeah, yeah. Lex Fridman (04:56:01): So there’s certain games I just know I won’t get super addicted to. Like for example, I’m terrified of Civilization. I have never played a Civ’s game because I’m worried. I’m worried the dark path in my lead because there’s some games just really pull you in. I’m much better with, that’s why I play Skyrim. I can play these games or a Baldur’s Gate, and moderate how much I play. And they could be like a lifelong companion versus an addiction where it’s like sunrise and you’re like, “What’s happening with my life?” And I find myself naked behind a dumpster somewhere just wondering what happened. Yeah, so that’s how I choose my video games. ThePrimeagen (04:56:43): You’re not the first person who has specifically called out Civilization. Lex Fridman (04:56:48): Yeah. ThePrimeagen (04:56:48): I’ve had more than one person, also very high up in the tech world, be like, “Civilization is my downfall. If I get near that game, I’m done.” Lex Fridman (04:56:56): Yeah. ThePrimeagen (04:56:57): I’ve never even played the game. Now it makes me be like, “Dude, I got to give this a try. That sounds crazy.” Lex Fridman (04:57:02): Yeah. And the new one is actually supposed to be- ThePrimeagen (04:57:00): Give this a try. That sounds crazy. Lex Fridman (04:57:02): Yeah. And the new one is actually supposed to be really, really good. What were we talking about? Yes. For that same young developer, is there a trajectory through jobs that you could give advice on? So you started out with Schedulicity? ThePrimeagen (04:57:17): Yeah, that was my first full-time…. When I had the government contracting one before, that wasn’t quite full-time. It was in C. It was a lot of fun. And then building my own startup for quite some time. So if you count either of those as full-time, then those would be the full-time. Schedulicity was the official on the docs. Lex Fridman (04:57:32): Is there some value to jumping around, working in one company and another to try to figure out what brings you joy? ThePrimeagen (04:57:41): I think there’s a lot to that because not every job you’re going to get is going to be great. Now, your first job you could get could make you think you hate programming. It happened, I did an internship at a place and I keep on surprising you with more kind of things I did in the past, did an internship at- Lex Fridman (04:57:59): Fuck. You did so many things. It’s incredible. ThePrimeagen (04:58:02): … a place called Total Information Management System. Remember when I talked about that hours ago, about healthcare and that and industrial shipping and all that? It was a C-sharp shop. It was so bad that after I did that, I went and changed my major to mechanical engineering first semester in college. Lex Fridman (04:58:02): Oh, boy. Oh, boy. ThePrimeagen (04:58:17): I thought I, “Okay. Actually I like computer science. I hate the programming.” So just because you’ve had a job doesn’t mean it’s going to be the one. And the thing is, here’s the best part though, if you get a job and you like it and you want to do it and it’s exciting, you don’t need to change. I think a lot of people are like, “Oh, I got to find the next thing. I’ve been here for two years.” There’s of this, you got to move around mindset. I don’t think you have to move around. I don’t think it hurts your career. Because if anything, you’ll gain more responsibility and you’ll be able to talk with way more authority. And the next time you interview, you’re going to be way more into like, “Oh yeah, I had to get these X people and these X people to be able to do all this stuff.” ThePrimeagen (04:58:53): And it’s like you can talk with much more authority if you stay at a place longer. And that’s nothing but benefits in my book. It’s only if you stay at a place because you’re afraid or you don’t want to… You already have something that works for you and you just never want to change and you’re just like, “I get to go in and just be completely mindless.” I think if you go mindless for a couple years, you’ll find yourself… That’s the only real danger. You just come out with nothing at all. Lex Fridman (04:59:15): Especially when you’re younger, that’s the whole point. You’re like, “Take the risk. Take the leap out to the next thing, to the next thing.” And not for money, but for just personal joy, joy. ThePrimeagen (04:59:24): And money could get at the end, that’s the best part. When you don’t strive for the money, sometimes the money just shows up anyways. Lex Fridman (04:59:29): Yeah. And some of the, what makes life worth living is the people you work with, a good team. Some of it’s not to be generic, but culture matters. It’s whatever makes you happy. For example, I just had won’t call out places, but there’s certain companies where everybody is very nine to five. And even if the work is exciting, they don’t work hard enough I would say. I’m one of those people that likes to go all out, likes to be surrounded by people who are super passionate. Now to be fair, a lot of them don’t have families or don’t- ThePrimeagen (05:00:06): Yeah. Lex Fridman (05:00:07): It’s a fascinating choice. I really don’t want to talk down on any choice like work-life balance or not, I think both are beautiful paths. And if you really derive a lot of value from joy from your work, going all in, at least for some stretch of your life is a beautiful thing to do. Just all out, full-on passion, sacrifice a lot of social life, all that kind of stuff. I don’t know. That could also be beautiful. ThePrimeagen (05:00:39): There could be something very, very exciting about that in some sense, especially if you’re building your own thing. I could imagine that would be very exciting. If I was Amazon, Jeff Bezos building Amazon, one could imagine that those early years were probably very rough and the amount of hours he probably put in we’re very, very rough. But I will say that there’s this unique aspect in our culture where we make this as an equal trade-off between family or work, like “Oh, you do or you don’t have to have kids.” And my only real notion with that one is that you will never know your capacity for love until you have kids. You just don’t know. And some people are like, “Oh yeah, but I love my dog.” It’s just like I loved my dogs too. And then I had kids and now my dogs are, “They’re all right. I like them.” Lex Fridman (05:01:26): I get it. ThePrimeagen (05:01:26): I could come home and I pet Indy and I’m like, “Oh, Indy.” And then I’m just like, “Okay, bye Indy.” I can’t even describe the difference between the two, it’s not even the same. And so that trade-off making is no one can tell you what it’s like because there’s a real reality that’s right now, and I’m sure, I’m 100% positive this is with my wife as well, where if right now we got news that said you have some medical procedure where if we do this, you will die, but your kid will live, there’s not a question in my soul that I wouldn’t do that. If I could look into the future and if I had to die right now knowing that my kids would’ve a better life, they would be happier, they’d be more fulfilled and all those things, I guarantee you either my wife or I would take that every single time. ThePrimeagen (05:02:08): It’s just like you’ll never be able to say that about most things. People will jokingly say that until it’s actually on the line. But it’s like with that, you just have this ferociousness. I can break out and sweat thinking about somebody fictionally pushing my kid to the ground, actually get real adrenal responses flowing through my body. So it’s just such a different world and it’s hard to explain. And you could never have convinced me when I was young that it’d be this big. Lex Fridman (05:02:32): Yeah, yeah. ThePrimeagen (05:02:33): Yeah. I thought I knew. I didn’t know. Lex Fridman (05:02:35): But to add on top of that, some of the most successful people I know, some of the most productive people I know have kids. So I don’t know if it’s even a trade-off. That love you feel, it seems to be a catalyst to make sure you have less time, but you’re going to use that time better to be productive. ThePrimeagen (05:02:56): I would argue that it definitely changed a lot of my life and how I approach problems and everything, in a very different way. Lex Fridman (05:03:03): Let me ask some random questions from Reddit. On a scale of one to 10, how much do you hate every product Microsoft has ever created and why is it a 10? I think we covered that. ThePrimeagen (05:03:16): We haven’t technically covered it. Lex Fridman (05:03:18): There you go. All right, go ahead. Go ahead. ThePrimeagen (05:03:20): Okay. Lex Fridman (05:03:20): Use your time. ThePrimeagen (05:03:22): The only thing I’ll say is that I don’t like that Microsoft pretends to be the good guy when what they really wanted to get you addicted to their products, to get you to use their products as much as possible so they can extract as much money out of you. Lex Fridman (05:03:32): Well, in this world, are there really good guys? ThePrimeagen (05:03:35): That’s a great point. I would argue Neovim is a great guy. There’s no way they can make money. Justin Keyes is the benevolent dictator and he thinks deeply about the product and tries to make it the best as possible. Whereas something like Microsoft, they made VS Code as a loss leader. Copilot’s probably operating on a loss leader. These things are all getting you so tied into, GitHub, remote workspaces, CI, Copilot, you become this trapped in permanent person and if that price rises, the switching cost is so great at some point that you’ll never be able to switch. That’s my only fear is that Microsoft was once accused of EEE and it feels like they’re EEEing again. Lex Fridman (05:04:13): Yeah, I’m nervous about criticizing a good thing because you could see an incentive to do that good thing, like Google creating all these services that don’t make money like Gmail for example, you can cynically say they’re only doing that to tie you into an ecosystem so they can basically keep you for life. But also it’s awesome that they created Gmail- ThePrimeagen (05:04:37): Yeah. Lex Fridman (05:04:38): … and they created an incredible product, so- ThePrimeagen (05:04:40): I can side with you on that one. It is a good product. VS Code is a good product. Lex Fridman (05:04:44): Yeah. ThePrimeagen (05:04:45): Now, I think don’t put that on the… But it is fine. They did a great job. Lex Fridman (05:04:50): Yeah. So there is going to be financial incentives behind some of these companies. And by the way, me defending, not defending, but saying positive things about Microsoft is just so I could talk shit to Prime. But that’s… ThePrimeagen (05:05:02): I love that by the way. Lex Fridman (05:05:03): Yeah, Linux is my first and last love, it definitely… The spirit of Linux and open source is a beautiful thing so I do think that when you have these large corporations, even when they try to do good, oftentimes the profit imperative just takes over and they can corrupt themselves and Microsoft has a long history of doing just that to themselves. ThePrimeagen (05:05:28): Yeah. Lex Fridman (05:05:28): That said, they’ve done, they have you could say for cynical reason because they want to seem like the good guy amongst developers, but they’ve done a lot to support open source. It’s just like, same with Meta, Meta has done insane amount- ThePrimeagen (05:05:43): Yeah. Lex Fridman (05:05:43): … to support open source. You can say, actually for that one, I don’t know if I can even make a financial or a cynical case for why Meta is open sourcing Llama and these- ThePrimeagen (05:05:55): Yeah, that one’s confusing. It just seems great. Lex Fridman (05:05:56): Maybe for hiring. But no, I think that’s legit, just an ethical, really powerful decision. And sometimes these companies, because they have a lot of cash, can make the right, do the right thing. ThePrimeagen (05:06:13): Yeah. It’s a really positive way to look at it and I think that’s really nice. Lex Fridman (05:06:17): Well, we should always be skeptical. ThePrimeagen (05:06:18): Yeah, I mean because at the end of the day, companies, they’re not good, they’re not bad, they’re morally neutral. It’s the people that are running them, the decisions those people make that are really where the bad or the good comes from. Lex Fridman (05:06:28): Another question, ask him if he knows how to milk a cow? I’ve already asked that. The answer is- ThePrimeagen (05:06:33): No. Lex Fridman (05:06:34): Oh, no, you don’t know. ThePrimeagen (05:06:35): I’ve never milked a cow. Lex Fridman (05:06:36): Never milked a cow. ThePrimeagen (05:06:37): Almost been killed by a cow, but never milked a cow. Lex Fridman (05:06:40): Did you ever ride a bull? ThePrimeagen (05:06:41): No. Lex Fridman (05:06:42): All right. Why male models? ThePrimeagen (05:06:46): Okay, so I can explain that one. I will say something like, “I really dislike the color purple because the color purple makes me upset.” I don’t know, just something very benign. But then someone right afterwards will be like, “But why don’t you like the color purple?” And it’ll just be like… It’s just like Derek Zoolander. It’s just like I get done on a five-minute talk about it and then the next question’s like, “But seriously why though?” It was just like, “Why male models?” Lex Fridman (05:07:12): Yeah. So that’s the Zoolander reference when there’s a long explanation why male models and he agrees and then forgets. ThePrimeagen (05:07:20): Yep. Lex Fridman (05:07:24): What is Ligma? ThePrimeagen (05:07:26): I’ve died by Ligma quite a few times. So do you know the origin story of Ligma? Lex Fridman (05:07:30): No. ThePrimeagen (05:07:31): So Ninja, famous streamer, someone got him with Ligma and said like, “Oh,” something like, “Have you heard about Ligma?” And he was like, “No.” And he’s like, “Oh, Ligma balls.” And then after that Ninja got so hurt by getting had by that, he started banning anyone in chat who’s said the word Ligma or something like that. And so then if you don’t embrace the meme you get destroyed. So of course, gets destroyed and so then the whole goal is that, can people get me with Ligma? TJ did iladies. He’s like, “Oh, did you hear that E-girls got renamed to iladies?” And I just didn’t even see it coming. And I was just like, “What?” And he’s like, “iladies nuts on your face.” And then it’s just like, “Oh my gosh.” And then a pirate software has also got me like, “Oh, have you heard about Google SIMA,” which SEMA is a real product by Google> ThePrimeagen (05:08:12): And I’m like, “Oh yeah, I’ve heard about this. What is this again?” He’s like, “SIMA balls,” right? It’s just like, “Dang it,” how do I keep…? So I’ve just had it happen live on stream many, many times. I’ve died by Ligma the most. Lex Fridman (05:08:24): Please ask him about the size of his dict. ThePrimeagen (05:08:28): Okay, so that’s dict, that’s dictionary in Python. Lex Fridman (05:08:32): Who doesn’t love dicts? ThePrimeagen (05:08:34): Yeah, that’s a great question. Just a dicts party when you use Python. Lex Fridman (05:08:38): I love dicts. ThePrimeagen (05:08:39): That should be a T-shirt. That’s actually a hilarious T-shirt. So on Stack Overflow, you can ask any question you want, and I decided to craft a question one day on Stack Overflow that says how to measure your dict and bytes. And then I proceeded to really go to town and explain all the different things like, “Well, what about the cost of the strings and the references?” And when you really get both hands on your dict and really go after it, it’s very hard to, really threw in some innuendos. The Stack Overflow team deleted the question, and then someone hand wrote me an email explaining why they deleted the question and complimented me on how thoroughly and thoughtful the question was just to weave in innuendos and that the entire team was impressed, but it’s inappropriate and it had to be deleted and don’t do it again or we’re going to ban your account. ThePrimeagen (05:09:31): And so it was a very funny moment and so I was like, “Oh, that’s funny that happened.” That was about six years ago. Last year I was at a conference and there’s a guy wearing a Stack Overflow name tag and I was like, “Oh, you work at Stack Overflow?” He’s like, “Oh, yeah, I do.” I’m like, “Do I got a story for you.” And he goes- Lex Fridman (05:09:48): Oh, no. ThePrimeagen (05:09:49): … “No, wait a second. Are you the dict guy?” Lex Fridman (05:09:51): Yeah. ThePrimeagen (05:09:51): That was his only question was that. And I was just like, “Let’s go.” I didn’t even say anything about me and he already knew immediately I was the dict guy. Lex Fridman (05:10:01): I should say in all seriousness, I think I’ve had a bunch of conversations in the Python world where I would have to mention the name of this data structure and it makes me uncomfortable every time. ThePrimeagen (05:10:10): It’s a very unfortunate shortening of a word. Lex Fridman (05:10:13): Dict. It’s just like when I go to the hardware store and ask for caulk and there’s always a nice old lady and I ask her where to find, and it’s very uncomfortable. I try to pronounce it as hard as I can. ThePrimeagen (05:10:27): Really get that L in there, like caulk. Lex Fridman (05:10:30): Caulk, just to be clear. And try to avoid eye contact the whole time. You said that God was a big part, was a big part of your life. Can you speak to that a little bit more? Who is God and what effect, what role did he play in your life? ThePrimeagen (05:10:47): So I did talk about that one important evening where I, for whatever reason, gained my conscious that moment. So obviously for me that I grew up with a life where I would probably argue myself as a functional atheist. I went to church a handful of times. I can’t quite really remember actually going to church as a family in any sort of sense. So there wasn’t some super strong tie or anything like that to it. Pretty much anyone else growing up in America in the ’90s, you had some sort of impact or intersection with church at some point in your life, that was just a very normal thing I would probably say. And so when that happened, it was a fairly big surprise for me. I wasn’t necessarily going that direction or deciding to do any of those things. ThePrimeagen (05:11:33): And so for me, it’s obviously the turning point of my entire life. I cannot speak to who I would be now without that. I can just tell you that I wouldn’t have had the drive. I probably would not have completed college. I would’ve not have found my wife or had my kids. I wouldn’t know how to value people. I don’t think without that whole thing, my value for people would’ve been very, very small because I would’ve continued to just objectifying in the way I was. And then probably the biggest thing is there’s this one verse, I don’t even know where it’s at, it effectively says that we love because he first loved us. And so for me it’s like I don’t think I would’ve ever lived a life that was happy without this. And I just didn’t even know that that was an option for me. ThePrimeagen (05:12:22): And I never really, it was a very tough set of years for me and I was very, very sad and just always just constantly looking for something to fulfill me. And so it’s like I didn’t have any confidence, I didn’t have any joy. I felt very sad. And so that was this moment where for the first time ever didn’t, all of a sudden I just felt like I didn’t have to live up to a standard. The standards have already been paid for, everything’s already, that’s the free gift, that’s the exchange. And so it’s just like for the first time, I didn’t have to be the cool guy, I didn’t have to have all the right words, I didn’t have to feel, I didn’t have to go on the conquest, the sexual conquest to find validation. I didn’t have to do any of those things and it was exceptionally liberating. ThePrimeagen (05:13:12): And so who is God? That’s more of a catechism question perhaps. What is man, who is God? Those are much harder questions. I believe that anytime you try to get too deep into describing who God is, you typically fall into Christian heresy. But for you- Lex Fridman (05:13:29): He gave you a chance to be happy. ThePrimeagen (05:13:31): Yeah. He gave me a chance not just to be happy, but also made it so that the first time I can actually feel forgiven I guess in some sense, and able to forgive people that hurt me. For a long time I had this weight I’d carry around from the things I hated about high school and all that kind of stuff. And through that experience, I just wrote down every last person’s name and actually held them with me for quite some time and this was the list of people I forgave. And I read it a few times. I couldn’t let myself be angry or consumed by that kind of stuff because hate is so sticky, it sticks for a lifetime. And there really is only one cure for hate, which is forgiveness. I just don’t think you can get rid of it without that. ThePrimeagen (05:14:17): And so I just had choose to forgive these people and to move on, and it really kind of freed me. And I would never have thought forgiveness as a means for that change if I didn’t first experience it myself. Lex Fridman (05:14:30): What’s the role of love in the human condition, to go to the philosophical, and what’s been the role of love in your life? ThePrimeagen (05:14:40): It’s very obvious that every person wants or desires love. My wife has recently convinced me to watch Love is Blind with her one time. And you watch the show and if you’re not familiar with it, it feels like just a disaster of an experiment to just cause crazy filming. But anyways, the idea is that if you just don’t see somebody, you can fall in love with somebody and want to marry them after 10 days or some very small period of time. And what you really end up seeing is all these people who are just desperate for actually love. And there’s some part of it… I told my wife, “It’s like love gladiators.” We’re watching people battle it out for drama and really what they want is love. And it’s like they’re fighting to the death and love, if you will. And it’s this almost kind of sad aspect to watch. ThePrimeagen (05:15:28): And so I think that it’s hard to call, what is its role in the human experience, because I think it’s just something that we all naturally not just want, but need. And I don’t think that you can really progress, and when I say the word love, I would like to kind of narrow it down maybe a bit more. And I don’t mean Eros, the Greek word like sexy love, I think that paternal and friendship love are extremely important. And I think agape, God love is also very important. Agape love is the one that is superior to them all, but obviously different and also co-needed with the parental ones and all that. And so you kind of need this mixture of them all, and each one is different for each reason and where it’s applied. ThePrimeagen (05:16:15): And so I don’t think… I just don’t see a world in which is good of any kind without that as a very foundational piece. Because again, I didn’t come here trying to quote any sort of scripture, but it says that it’s not the nails that hung on there, it’s love. That’s the reason why these things happen. And so if forgiveness is the requirement to kind of pay off hate in some sense, then love has to be the motivation for forgiveness. Lex Fridman (05:16:48): Yeah, that’s the tragic aspect of life. I think there’s a deep loneliness in all of us and a longing to be a part of this bigger thing. And that longing is a love and it has many names, but yeah. Yeah, the love aspect of it, it’s the beautiful aspect of life, the tragedies, the loneliness, and the unfortunate suffering that is a fundamental part of life and the beautiful aspect is the love. ThePrimeagen (05:17:22): Yeah. Lex Fridman (05:17:24): Which I think is a good time to mention more Reddit, the place for everlasting positivity and love. Somebody wrote, “Please thank him, you, for his everlasting positivity and give him a big hug for me.” So I won’t give you a big hug on camera because I’m afraid I’ll get a boner and that’ll be very unfortunate. ThePrimeagen (05:17:51): Hey, let’s not bring dicts into this again, okay? Lex Fridman (05:17:53): It’s my favorite data structure. Like I said, I love dicts, all kinds of dicts, ordered dicts- ThePrimeagen (05:18:00): Unordered. Lex Fridman (05:18:01): … unordered dicts. I don’t discriminate. Yeah, but just that to say big thank you from me. I listen to you a lot and I just really enjoy… I’ve been going through a lot of shit myself and just the positivity, even when you’re building the stupidest shit, it’s just the positivity radiates from you and you inspire me to be a good person. You inspire me to build stuff. So thank you. And I’m sure there’s many, many others who listen to you for the same reason. So thank you for your positivity. Thank you for being the light in many people’s lives, and thank you for talking to me, brother. ThePrimeagen (05:18:43): Dang. That was very, very kind. I really do appreciate all those extremely nice words even from Reddit. That’s very surprising. But thank you. I mean, I know you know that there’s many people’s lives, and I’m sure you’ve received the letters that have been changed from actions and things you’ve said and things you’ve done. And so it’s one of the best parts about doing this side is that you get a chance to potentially improve somebody’s life. And you getting to interview a lot of people, there’s a lot of people that listened to Chris Latner and saw his excitement for Swift and probably went and learned Swift and then got really amazing jobs and it can be all origined back to back to you in that interview. And so those are amazing things. And so same goes back to you, you’ve done a lot of good stuff. Lex Fridman (05:19:34): Right back at you brother. Thank you for talking today. Thanks for listening to this conversation with Michael Paulson, aka ThePrimeagen. To support this podcast, please check out our sponsors in the description. And now let me leave you with some words from Paulo Coelho. “When we strive to become better than we are, everything around us becomes better too.” Thank you for listening and hope to see you next time.

本集资源与出处