How to be a great programmer | John Carmack and Lex Fridman - https://www.youtube.com/watch?v=xzPuGf89vpI Given that you are once again one of the greatest programmers ever, what do you think makes a good programmer maybe a good modern programmer? So I just gave a long rant lecture at Meta to the TPM organization and my biggest point was everything that we're doing really should flow from user value. All the good things that we're doing. It's like we, we're not technical people. It's like you shouldn't be taking pride just in the specific thing. Like Code Golf is the sort of thing, it's a fun puzzle game, but that really should not be a major motivator for you. It's like we're solving problems for people or we're providing entertainment to people. We're doing something of value to people that's displacing something else in their life. So we want to be providing a net value over what they could be doing, but instead they're choosing to use our products. And that's where, I mean, it sounds trite or corny, but I fundamentally do think that's how you make the world a better place. If you have given more value to people than it took you and your team to create, then the world's a better place. People have, they've gone from something of lesser value, chosen to use your product, and their life feels better for that. And if you've produced that economically, that's a really good thing. On the other hand, if you spent ridiculous amounts of money, you've just kind of shoveled a lot of cash into a wood chipper there, and you should maybe, you know, not feel so good about what you're doing. So being proud about like a specific architecture or specific technology or a specific code sequence that you've done, it's great to get a little smile, like a tiny little dopamine hit for that. But the top level metric should be that you're building things of value. Now you can get into the argument about how you, you know, what is user value? How do you actually quantify that? And there can be big arguments about that, but it's easy to be able to say, okay, this pissed off user there is not getting value from what you're doing. This user over there with the big smile on their face, I am the moment of delight when something happened. There's a value that's happened there. I mean, if you, you have to at least accept that there is a concept of user value, even if you have trouble exactly quantifying it, you can usually make relative arguments about it. Well, this was better than this. We've improved things. So being a servant to the user is your job. When you're a developer you want to be producing something that other people are going to find valuable and if you are technically inclined then finding the right levers to be able to pull to be able to make a design that's going to produce the most value for the least amount of effort. And it always has to be kind of divide. There's a ratio there where you. It's a problem at the big tech companies, whether it's Meta, Google, Apple, Microsoft, Amazon, companies that have almost infinite money, I mean I know their CFO will complain that it's not infinite money but from most developers standpoints it really does feel like it. And it's almost counterintuitive that if you're working hard as a developer on something, there's always this thought if only I had more resources, more people, more ram, more megahertz, I then my product will be better. And that sense that at certain points it's certainly true that if you are really hamstrung by this, removing an obstacle will make a better product, make more value. But if you're not making your core design decisions in this fiercely competitive way where you're saying feature A or feature B, you can't just say let's do both because then you're not making a value judgment about them. You're just saying, well they both seem good. I don't want to necessarily have to pick out what which one is better or how much better and tell Team B that sorry, we're not going to do this because A is more important. But that notion of always having to really critically value what you're doing, your time, the resources you expend, even the opportunity cost of doing something else, that's super important. Well, let me ask you about the big debates that you're mentioning of how to measure value. Is it possible to measure it kind of numerically or can you do the sort of. Jony I've the designer route of imagining sort of somebody using a thing and imagining a smile on their face, imagining the experience of love and joy that you have when you use the thing that's from a design perspective or if you're building more like a lower level thing for like Linux, you imagine a device developer that might come across this and use it and become happy and better off because of it. So where do you land on those things? Is it measurable? So I imagine like Meta and Google will probably try to measure the thing. They'll try to. It's like you try to optimize engagement or something, let's measure engagement. And then I think there is a kind of, I mean, I admire the designer ethic of like think of a future that's immeasurable and you try to make somebody in that future that's different from today happy. So I do usually favor, if you can get any kind of a metric that's good, by all means, listen to the data. But you can go too far there where we've had problems where it's like, hey, we had a performance regression because our fancy new telemetry system is doing a bazillion file writes to kind of archive this stuff because we needed to collect information to determine if we were doing, if our plans were good. So, so when information is available, you should never ignore it. I mean from actual users using the thing, human beings using the thing, large number of human beings and you get to see sort of. So there's the zero to one problem of when you're doing something really new, you do kind of have to make a guess. But one of the points that I've been making at Meta is we have more than enough users now that anything somebody wants to try in VR or we have users that will be interested in that. You do not get to make a completely greenfield blue sky pitch and say, I'm going to do this because I think it might be interesting. I challenge everyone. There are going to be people, whether it's, you know, working in VR like on your desktop replacement, or communicating with people in different ways or playing the games. There are going to be probably millions of people. Or at least if you pick some tiny niche that we're not in right now, there's still going to be thousands of people out there that have the headsets that would be your target market. And I tell people, pay attention to them, don't invent fictional users. Don't, you know, make an Alice, Bob, Charlie that fits whatever matrix of tendencies that you want to break the market down to. Because it's a mistake to think about imaginary users when you've got real users that you could be working with. But on the other hand, there is value to having a kind of wholeness of vision for a product. And companies like Meta have, you know, they understand the trade offs where you can have a company like SpaceX or Apple in the Steve Jobs era, where you have a very powerful leading personality that, you know, that can micromanage at a very low level and can say, it's like, no, that handle needs to be different. Or that that icon needs to change the tint there. And they clearly get a lot of value out of it. They also burn through a lot of employees that have horror stories to tell working there afterwards. My position is that you're at your best when you've got a leader that is at their limit of what they can kind of comprehend of everything below them, and they can have an informed opinion about everything that's going on. And you take somebody, you've got to believe that somebody that has 30, 40 years of experience, you would hope that they've got wisdom that the just out of boot camp person contributing doesn't have. And that if they're like, well, that's wrong there, you probably shouldn't do it that way or even just, just don't do it that way, do it another way. So there's value there, but it can't go beyond a certain level. I mean, I have Steve Jobs stories of him saying things that are just wrong right in front of me about technical things because he was not operating at that level. But when it does work and you do get that kind of passionate leader that's thinking about the entire product and just really deeply cares about not letting anything slip through the cracks. I, I think that's got a lot of value. But the other side of that is the people saying that, well, we want to have these independent teams that are bubbling up the ideas because like it's, it's almost, it's anti capitalist or anti free market to say it's like, I want my grand, you know, my great leader to go ahead and dictate all these points there where clearly free markets bring up things that, you know, you don't expect. Like in VR, we, we saw a bunch of things like it didn't turn out at all the way the early people thought were going to be the key applications and things that would not have been approved by the dark cabal making the decisions about what gets into the store turn out to in some cases be extremely successful. So yeah, I definitely kind of wanted to be. There was a point where I did make a pitch. It's like, hey, make me VR dictator and I'll go in and get shit done. And that's just, it's not in the culture at Meta and they understand the trade offs and that's just not the way, that's not the company that they want, the team that they want to do. Sam.