Theprimeagen

Theprimeagen · 63,678 词 · 查看原文 ↗
技术与编程数学心理与人性音乐与艺术生物与进化
📋 章节目录
0:00 Introduction · 介绍
0:42 Love for programming · 对编程的热爱
10:15 Hardest part of programming · 编程中最难的部分
12:31 Types of programming · 编程类型
20:08 Life story · 人生故事
30:12 Hardship · 困难
31:44 High school · 中学
37:30 Porn addiction · 色情成瘾
47:16 God · 上帝
1:02:59 Perseverance · 毅力
1:12:55 Netflix · Netflix
1:25:23 Groovy · 格罗维
1:30:27 Printf() debugging · Printf() 调试
1:36:49 Falcor · 法尔科
1:46:19 Breaking production · 打破生产
1:49:04 Pieter Levels · 彼得·莱弗斯
1:53:34 Netflix, Twitch, and YouTube infrastructure · Netflix、Twitch 和 YouTube 基础设施
2:05:36 ThePrimeagen origin story · ThePrimeagen 起源故事
2:20:52 Learning programming languages · 学习编程语言
2:29:55 Best programming languages in 2025 · 2025 年最佳编程语言
🔑 关键词
theprimeagendongoingprogrammingcodestuffabledoingbettergotlanguagesaidsurewholeharddidnfunnetflixyoutubeskill
💬 精彩语录
"Host of Lex Fridman Podcast. Research Scientist at MIT, working on human-AI interaction, robotics, and machine learning. View all posts by Lex Fridman →"
莱克斯·弗里德曼播客的主持人。麻省理工学院的研究科学家,致力于人机交互、机器人和机器学习。查看莱克斯·弗里德曼发表的所有帖子 →
— About Lex Fridman
🎙️ 完整对话(1168 条)
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. Love for programming
以下是与迈克尔·保尔森 (Michael Paulson) 的对话,迈克尔·保尔森在网上更为人所知的名字是 ThePrimeagen。他是一位程序员,他娱乐并激励了数百万人享受用软件构建东西的乐趣,无论您是新手还是在软件工程战壕中奋战了数十年的经验丰富的开发人员。简而言之,ThePrimeagen 是一位传奇的程序员,也是一位伟大的人类
Lex Fridman (00:00:42)
What do you love most about programming? What brings you joy when you program? ThePrimeagen
编程中你最喜欢什么?编程时什么给你带来快乐?普里梅根
Lex Fridman (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
当然。普里梅根
Lex Fridman (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.”
那是在大学里。这是第二节课,数据结构,老师正在教Ray Babcock,他正在讲链表。现在,当我去蒙大拿州立大学时,你必须学习 Java,所以他在那里解释了整个链表的事情以及所有这些,然后他展示了代码。在代码中它是抽象类节点或其他什么,我不记得它是什么
Lex Fridman (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.
我只记得当时我非常震惊,因为在那之前,一切都只是,“好吧,我有一个包含 10 项的清单。我有一个包含 20 项的清单。”正确的?它非常僵化和小,我建造的东西真的又小又琐碎,突然间我觉得我可以在那一刻建造任何东西。真是太神奇了。我只记得坐在课堂上,我什至不记得
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
是的,让我们对链表进行哲学思考。这是相当深刻的。对于不知道的人来说,链表中的节点对它所在的世界一无所知。它只知道它链接到的东西,即它的邻居。也许这是象征性的。这是我们所有人的隐喻。这个星球上有数十亿人,但我们只了解我们当地的小网络。普里梅根
Lex Fridman (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
这很漂亮。你意识到,在这个简单的小数据结构中,你可以构建任意大的系统,它们就像穿过内存的根。当然,这就是你获得所有允许你将垃圾转储到内存中并存在内存泄漏的编程语言的地方,因此当你试图找出未释放的内存在哪里时会产生无限的痛苦。佛
Lex Fridman (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
我不记得第一个了。普里梅根
Lex Fridman (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
我已经喝了太多了,以至于……ThePrimeagen
Lex Fridman (00:04:11)
I mean, you are a Lisp guy. You’re probably pretty used to the recursion.
我的意思是,你是一个 Lisp 人。您可能非常习惯递归。
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…
是的,我所记得的只是被括号海洋包围。我的意思是,这真的很可能是当我……在高中时,我认为要么是 Java,要么是 C++。哇,我怎么不记得了?一定是C++。然后到了大学,通用的废话软件工程课程是 Java,但后来的叛逆者、酷孩子都在使用 Lisp。那就是当你做人工智能的时候,引用-反引用
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
我构建了各种编程语言。这与编程语言无关,更多与您创建的系统有关。这让我充满了无限的喜悦,拥有……现在类似于链表情况,创建了一个系统,其中每个单独的细胞只知道其邻居并按照非常简单的规则运行。但是当你把这个系统作为一个整体并允许它发挥作用时
Lex Fridman (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.
噢,伙计。嗯,首先,我的是 Java,所以我的第一个有点严格,你知道,是一种公司体验。
Lex Fridman (00:06:20)
Yeah. Cold, meaningless… ThePrimeagen
是的。冰冷、毫无意义……ThePrimeagen
Lex Fridman (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.
但是……是的。我当时在一个实验室,每个人都在使用 CentOS……或者 Cent OS,或者不管你怎么说。我一直称它为 CentOS,新鲜制造者。
Lex Fridman (00:06:29)
Yeah. ThePrimeagen
是的。普里梅根
Lex Fridman (00:06:30)
And so it’s just like I’m in this very cold…
Lex Fridman (00:06:32)
That’s nice. ThePrimeagen
Lex Fridman (00:06:33)
Thank you.
Lex Fridman (00:06:33)
Yeah. ThePrimeagen
Lex Fridman (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
Lex Fridman (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…
Lex Fridman (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.”
Lex Fridman (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
查看原始文字稿 ↗
🔗 相关节目