Skip to content
Lex Fridman PodcastLex Fridman Podcast

Jeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7

Lex Fridman and Jeff Atwood on jeff Atwood on puzzles, people, and building strict online communities.

Lex FridmanhostJeff Atwoodguest
Nov 29, 20181h 20mWatch on YouTube ↗

EVERY SPOKEN WORD

  1. 0:0015:00

    The following is a…

    1. LF

      The following is a conversation with Jeff Atwood. He is the co-founder of Stack Overflow and Stack Exchange, websites that are visited by millions of people every single day. Much like with Wikipedia, it is difficult to understate the impact on global knowledge and productivity that these networks of sites have created. Jeff is also the author of the famed blog Coding Horror, and the founder of Discourse, an open source software project that seeks to improve the quality of our online community discussions. This conversation is part of the MIT course on Artificial General Intelligence, and the Artificial Intelligence Podcast. If you enjoy it, subscribe on YouTube, iTunes, or your podcast provider of choice, or simply connect with me on Twitter @lexfrid. Spelled F-R-I-D. And now, here's my conversation with Jeff Atwood. Having co-created and managed for a few years the world's largest community of programmers in Stack Overflow, 10 years ago, what do you think, uh, motivates most programmers? Is it fame, fortune, glory, process of programming itself, or is it the sense of belonging to a community?

    2. JA

      I think it's, uh, puzzles really. I think it's this idea of working on puzzles independently of other people and just solving a problem, sort of like on your own almost. Although, you don't, nobody really works alone in programming anymore. But I will say there's a, there's an aspect of sort of hiding yourself away and just sort of beating on a problem til you solve it. Like, brute force basically, to me is what a lot of programming is, is like the computer's so fast, right, that you can do things that would take forever for a human, but you can just do 'em like so many times and so often that you, you get the answer, right?

    3. LF

      You're saying just the pure act of tinkering with the code-

    4. JA

      Yes.

    5. LF

      ... is, is the thing that drives most programmers. The, the joy, the struggle balanced within the joy of overcoming the, the brute force process of pain and suffering that eventually leads to something that actually works? That-

    6. JA

      Well data's fun too. Like there's this thing called the, uh, the shuffling problem. Like the naïve shuffle that most programmers write has a huge flaw, and there's a (laughs) lot of articles online about this 'cause it can be really bad if you're like a casino and you have an unsophisticated programmer writing your shuffle algorithm. There are surprising ways to get this wrong, but the neat thing is, the way to figure that out is just to run your shuffle a bunch of times and see, like, how many orientations of cards you get. You should get a l- an equal distribution of all the cards. And with the naïve method of shuffling, if you just look at the data, if you just brute force and say, "Okay, I don't know what's gonna happen." Um, you just writ- write a program that does it a billion times and then see what the buckets look like of the data. And the Monty Hall problem is another example of that, where you have three doors and somebody gives you information about another door. So the an- correct answer is you should always switch, in the Monty Hall problem, which is not intuitive and peop- it freaks people out all the time, right? But, you can solve it with data. If you write a program that does the Monty Hall, you know, game, and then never switches then always switches and just compare, you would immediately see that you don't have to be smart, right? You don't have to figure out the answer algorithmically, you can just brute force it out with data and say, "Well I know the answer is this because I ran the program a billion times and these are the data buckets that I got from it." Right?

    7. LF

      So empirically find it's, but, uh, what's the joy of that? What, what, so for you, for you personally, uh, outside of family, what motivates you in this process, if at all-

    8. JA

      Well to be honest, like I don't really write a lot of code anymore. Like what I do at Discourse is like manager-y stuff, which I always kinda despised, right? Like (laughs) as a programmer you think of managers as people who don't really do anything themselves. Uh, but the weird thing about code is like you realize that like language is code, like the ability to direct other people lets you get more stuff than y- done than you could by yourself anyway. Right?

    9. LF

      You said language is code?

    10. JA

      Language is code.

    11. LF

      Meaning communication-

    12. JA

      Yes.

    13. LF

      ... with other humans?

    14. JA

      Yes. It is.

    15. LF

      You, you can think of it as a systematic... So what, what, what is it like to be, what makes, before we get into programming, what makes a good manager? What makes a good leader?

    16. JA

      Well, I think a leader, it's, it's all about leading by example first of all. Like, sort of doing and being the things that you want to be. Now this can be kind of exhausting, particularly when you have kids 'cause you realize that your kids are watching you like all the time, like even w- in ways that you've stopped seeing yourself. Like the hardest person to see on the planet is really yourself, right? It's funny to see other people and, and, and make judgments about them but yourself like, you're super biased. (laughs) You don't actually see yourself the way other people see you. Often you're very, very hard on yourself in a way that other people aren't going to be. So you know, that's one of the insights is, you know, you gotta be really diligent about thinking like am I behaving in a way that represents how I want other people to behave, right? Like leading through example. There's a lot of examples (laughs) of leaders that really mess this up, right? Like (laughs) they make decisions that are like wow, that's, why would... You know, it just a, uh, it's, it's, it's a bad example for other people. So I think leading by example is one. Uh, the other one I believe i- is working really hard, and I don't mean like working exhaustively but like showing a real passion for the problem, like you know, not necessarily your solution to the problem but the problem itself is just one that you really believe in. Like with Discourse for example, the problem (laughs) that we're looking at which is my current project is how do you get people in groups to communicate in a way that doesn't like break down into the howling of wolves, right? Like how do you deal with trolling? Not like technical problems of how do I get people to post paragraphs, how do I get people to use bold, how to get people to use complete sentences, although those are problems as well, but like how do I get people to get along with each other, right? Like and then solve whatever problem it is they set out to solve, or you know, reach some consensus on discussion, or just like not hurt each other even, right? Like maybe it's a discussion that doesn't really matter but are people like yelling at each other, right? And why, right? Like, that's not the purpose of this kind of communication. So, I would say, you know, leadership is about, you know, setting an example, you know, doing the things that represent what you want to be and making sure that you're actually doing those things. And there's a trick to that too because the, the things you don't do also say a lot about what you are.

    17. LF

      Yeah, so let's- let's pause on that one because those two things are fascinating. So how do you have, as a leader, is that self-awareness? So you just said it's really hard to be self-aware, so for you personally or maybe for other leaders you've seen or look up to, how do you know the- both of the things you're doing are the wrong things to be doing? The way you speak to others, the way you behave, and the things you're not doing. How do you- how do you get that signal?

    18. JA

      I think there's- there's two aspects to that. One is, like, processing feedback that you're getting. So...

    19. LF

      How do you get feedback?

    20. JA

      Well, right-

    21. LF

      (laughs)

    22. JA

      So are- are you- are you getting feedback, right? Like, so one way we do it, for example, at Discourse, we have three co-founders, and we periodically talk about decisions before we make them. So it's not like one person can make a mistake or, like, wow, that's, you know, there can be misunderstandings, things like that. So it's part of, like, group consensus of leadership is, like, it's good to have... I think systems where there's one leader and that leader has the rule of absolute law are just really dangerous in my experience. For communities, for example, like, if you have a community that's run by one person, that one person makes all the decisions, that person's gonna have a bad day (laughs) . Something could happen to that person, you know, something, you know... there's a lot of variables. So, like, at first, when you think about leadership, have- have multiple people doing leadership and have them talk amongst each other so you're giving each other feedback about the decisions, uh, that they're making. And then when you do get feedback, I think there's that little voice in your head, right? Like, or your gut or wherever you want to put it in your body. Uh, I think that voice is really important. Like, I think most people who have any kind of moral compass or, like, want to do... Most people want to do the right thing. I do believe that. I mean, there might be a- a handful of sociopaths out there that don't, but most people, they want other people to think of them as a good person.

    23. LF

      Yeah.

    24. JA

      And why wouldn't you, right? Like, do you want people to despise you? I mean, that's just weird, right? So you have that little voice that's sort of the- the angel and devil on your shoulder sort of talking to you about, like, what you're doing, how you're doing, how does it make you feel to make these decisions, right? And I think having some attunement to that voice (laughs) is important.

    25. LF

      But you said that voice also for... I think this is a programmer situation, too, where sometimes the devil on the shoulder is a little- a little too loud. So you're a little too self-critical, uh, for a lot of developers, uh, especially when you have introverted personality. How do you struggle with the self-criticism or the criticism of others? So, uh, one of the things of leadership is to do something that's, uh, potentially unpopular or- or people doubt you and you still go through with the decision. So what's that balance like?

    26. JA

      I think you have to walk people through your decision-making, right? Like, you have to... This is where blogging is really important and communication is so important. Again, code language is just another kind of code, is like, "Here is the program by which I arrived at the conclusion that I'm going to reach," right?

    27. LF

      Mm-hmm.

    28. JA

      Uh, it's one thing to say, like, "This is a decision, it's final. Deal with it." Right? That's not usually satisfying to people. But if you say, "Look, you know, we've been thinking of this problem for a while. Here's some stuff that's happened. Here's what we think is right. Here's our goals. Here's what we want to achieve. And we've looked at these options and we think this of the available options is the best option." People will be like, "Oh, okay. All right, maybe I don't totally agree with you, but I can kind of see where you're coming from." And, like, I see it's not just arbitrary decision delivered from a- a cloud of flames in the sky (laughs) , right? It's like a human trying to reach some kind of consensus about, you know, goals. And their goals might be different than yours. That's completely legit, right? But if you're making that clear, it's like, "Oh, well, the reason we don't agree is because we have totally different goals," right? Like, how could we agree? It's not that you're a bad person, it's that we have radically different goals in mind when we started looking at this problem.

    29. LF

      And the other one you said is passion, so... or, uh, hard work, sorry. Uh...

    30. JA

      Well, those are tied together to me-

  2. 15:0030:00

    Mm-hmm. …

    1. JA

      people don't like to see other people get reputation for stuff as they view, they view as frivolous, which I can actually understand because if you saw a programmer got like 500 up votes for funniest programming cartoon or funniest comment they had seen in code, it's like, well why do they have that reputation? Is it because they wrote the joke? Probably not. I mean, if they did maybe, or the cartoon, right?

    2. LF

      Mm-hmm.

    3. JA

      They're getting a bunch of reputation based on someone else's work that's not even like programming, it's just-

    4. LF

      Right.

    5. JA

      ... a joke, right? It's a-

    6. LF

      Yeah.

    7. JA

      ... related program. So you, you begin to resent that. You're like, "Well that's not fair." And it isn't. At some level they're correct. I mean, I empathize 'cause like it's not correct to get reputation for that versus here's a really gnarly regular expression problem and here's a really, you know, clever insightful, you know, detailed answer l- laying out, oh, here's why you're seeing the behavior that you're seeing and here let me teach you some things about how to avoid that in the future. That's, that's great. Like that's gold, right? You want people to get reputation for that and not so much for, "Wow, look at this funny thing I saw." Right?

    8. LF

      Great. So there's this very specific Q&A format and then take me through the journey towards Discourse and Facebook and Twitter. So you start at the beginning that StackOverflow evolved to have a purpose. So where does Discourse, this, uh, passion you have for, uh, creating community for discussion, what, where does that... when was that born and how?

    9. JA

      Well, part of it is based on the realization that StackOverflow is only good for very specific subjects where there's sort of a... it's, it's based on data, facts and science where answers can be kind of verified to be true. Another form of that is there's the book of knowledge, like the tome of, of knowledge that defines like whatever it is, you can refer to that book and it'll give you the answer. There has to be... it only works on subjects where there's like semi-clear answers to things-

    10. LF

      Mm-hmm.

    11. JA

      ... that can be verified in some form. Uh, now again, there's always more than one way to do it. Uh, there's complete flexibility in the system around that, but where it falls down is, is stuff like Poker and Lego. Like we had... if you go to stackexchange.com, we have an engine that, that tries to launch different Q&A topics, right?

    12. LF

      Mm-hmm.

    13. JA

      And people can propose, uh, Q&A topics, um, sample questions and, and if it gets enough support within the network, we launch that Q&A site. So some of the ones we launched were Poker and Lego and they did horribly, right? Because, um, I mean they might still be there lingering on in some form, but it was an experiment. This is like a test, right? And some subjects work super well in the stack engine and some don't. But the reason Lego and Poker don't work is because they're so social, really. It's not about, you know, what's the rule here in Poker? It's like well, you know, what kind of cigars do we like to, to, to smoke while playing Poker or, you know, what's, what's a cool set of cards to use when I'm playing Poker or, you know, what's some strategies... Like say I have this hand come up with some strategies I could use. It's more of a discussion around like what's happening, like with Lego-

    14. LF

      Right.

    15. JA

      ... you know, same thing like here's this cool Lego set I found. Look how awesome this is. And like yeah, that's freaking awesome. Right?

    16. LF

      Mm-hmm.

    17. JA

      It's not a question, right? There's all these social components to discussions that don't fit at all. Like we literally have to disallow those in StackOverflow 'cause it's not about being social. It's about problems that you're facing in your work that you need concrete answers for, right? Like you have a real demonstrated problem that's sort of blocking you in something. Nobody's blocked by...... you know, what should I do when I have a straight flush, right?

    18. LF

      (laughs)

    19. JA

      Like, it's not a blocking problem in the world.

    20. LF

      Yeah, that's right.

    21. JA

      It's just an opportunity to hang out and, and discuss. So Discourse was a way to address that and say, "Look, you know," uh, discussion forum software had, was very, very bad. And when I came out of Stack Overflow in tw- late tw- early 20- early 2013, early, early 2012, um, it was still very, very bad. I expected it improved in, in, in the four years since I last looked, but it had not improved at all. And I was like, "Well, that's kinda terrible because I love these communities of people talking about things that they love," you know? That, that they're just communities of interest, right? And there's no good software for them. Like, startups would come to me and say, "Hey, Jeff, I wanna, you know, have this startup. Here's my idea." And, uh, the first thing I would say to them is like, "Well, first, why are you asking me? Like, I don't really know your, your field, right, like, necessarily." Like, "Why aren't you asking, like, the community, like, the people that are interested in this problem, the people that are using your product, why aren't you talking to them?" And then they'd say, "Oh, great idea," like, "How do I do that?"

    22. LF

      Mm-hmm.

    23. JA

      And then that's when I started playing sad trombone 'cause I realized all the software involving talking to your users, customers, audience, patrons, whatever it is, it was all really bad. You know?

    24. LF

      Mm-hmm.

    25. JA

      It was, like, stuff that I would be embarrassed to recommend to other people, and yet that's where I felt they could get the biggest and strongest, most effective input for what they should be doing with their product, right, is from their users, from their community, right? That's what we did on Stack Overflow.

    26. LF

      So what we're talking about with forums, the, what is it, the dark matter of the internet, uh, it's still... I don't know if it's still, but for the longest time, it has some of the most passionate and fascinating discussions. And what's the usual structure? There's usually, what, it's a, it's linear, so it's sequential, so you're posting one after the other, and there's pagination, so it's every... There's, uh, 10 posts, then you go to the next page, and th- that format still is used by, like, um, uh, we're doing a lot of research with Tesla, of vehicles, and there's a Tesla Motors Club forum, which is extremely pop-

    27. JA

      We really wanted to run that, actually. (laughs) They pinged us about it, I don't think we got it, but I really would've liked to get on that one.

    28. LF

      But they started before even 2012, I believe. I mean, they've been running for a long time. It's still an extremely rich source of information. So what, what's broken about that system and how are you trying to fix it?

    29. JA

      I think there's a lot of power in, in connecting people that love the same stuff around that specific topic, meaning Facebook's idea of connection is just any human that's related to another human-

    30. LF

      Mm-hmm.

  3. 30:0045:00

    Mm-hmm. …

    1. JA

      "I'm selfish in the sense that I have to do this for me."... you know, you mentioned Stephen King, like, his book on writing, but like one of the things I do, for example, when- when writing is like I- I read it out loud. One of the best pieces of advice for writing anything is read it out loud-

    2. LF

      Mm-hmm.

    3. JA

      ... like multiple times. And make it sound like you're talking, because that is the goal of good writing. It should sound like you said it, with- with slightly better phrasing because you have more time to think about what you're saying. But like, it should sound natural when you say it. And I think that's probably the single best writing advice I can give anyone is just- just read it over and over out loud, make sure it sounds like something you would normally say-

    4. LF

      So-

    5. JA

      ... and it sounds good.

    6. LF

      And what's your process of writing? Say there's usually a pretty good idea behind the blog post.

    7. JA

      So ideas, right. So I think you gotta (laughs) have the concept that there's so many interesting things in the world. Like, I mean, my God, the world is amazing, right? Like, i- i- i- it's-

    8. LF

      (laughs)

    9. JA

      ... you can never write about everything that's going on because it- it's so incredible, but if you can't come up with like, let's say, one interesting thing per day to talk about, then you're not trying hard enough, because the world is full of just super interesting stuff. And one great way to- to like mine stuff is go back to old books, because they bring up old stuff that's still super relevant. And I- I did that a lot because I was like reading classic programming books and a lot of the early blog posts were like, "Oh, I was reading this programming book and they brought up this really cool concept-"

    10. LF

      Mm-hmm.

    11. JA

      "... and I want to talk about this more." And you get the- I mean, you're not claiming credit for the idea, but it gives you something interesting to talk about that's kind of evergreen, right?

    12. LF

      Right.

    13. JA

      Like you don't have to go, "What should I talk about?" It's like well, just go dig up some old classic programming books and-

    14. LF

      Mm-hmm.

    15. JA

      ... find something that, "Oh wow, that's interesting," or "How does that apply today?" Or "What about X and Y?" Or compare these two concepts.

    16. LF

      So pull a couple sentences from that book and then, uh, sort of play off of it, almost like-

    17. JA

      Yeah.

    18. LF

      ... agree or disagree. It's so, in 2007, uh, you wrote that you were offered a significant amount of money to sell the blog. You chose not to. What were all the elements you were thinking about? Because I'd like to take you back. It seems like there's a lot of nonlinear decisions you made through life, uh, that's-

    19. JA

      (laughs)

    20. LF

      ... it's- it's, so what was that decision like?

    21. JA

      Right. So I, one of the things I love is the, uh, Choose Your Own Adventure books, which I loved as a kid and I feel like they're early programmer books because they're- they're all about if/then statements, right? If this, then this and they're also very, very unforgiving, like there's all these sites that map the- the- the classic Choose Your Own Adventure books and how many outcomes are bad. (laughs)

    22. LF

      Mm-hmm.

    23. JA

      There's a lot of bad outcomes. So part of the game is like, "Oh, I got a bad outcome. Go back one step, go back one further step." It's like, "How did I get here," right? Like it's a sequence of decisions that... (laughs) And this is true of life, right? Like every decision is- is a sequence, right? I- i- i- individually, n- any individual decision is not necessarily right or wrong, but they- they lead you down a path, right? So I- I do think there's some truth to that. So this particular decision, uh, the blog had gotten fairly popular. There was a lot of RSS readers that I discovered.

    24. LF

      Mm-hmm.

    25. JA

      And this guy contacted me out of the- out of the blue from this like bug tracking company. He's like, "Oh, I really want to buy your blog," for like, uh, I think it was around, it was $100,000, might have been like $80,000 but it was- it was a lot, right?

    26. LF

      Mm-hmm.

    27. JA

      Like and that's, you know, at the time like I would have a- a year's worth of salary all at once so I had to really think about like, "Well," you know, and I remember talking to people at the time. I was like, "Wow, that's a lot of money." But then on the other hand, like I really liked my blog, right? Like do I want to sell my blog? Because it wouldn't really belong to me anymore at that point. And, uh, one of the guidelines that I like to... I don't like to give advice to people a lot, but one of the pieces of advice I do give because I do think it's really true and it- it's generally helpful is whenever you're looking at a set of decisions like, "Oh gosh, should I do A, B or C?" You've got to pick the thing that's a little scarier in that list because not, you know, not like jump off a cliff scary but the thing that makes you nervous. Because if you pick the safe choice, it's usually you're not really pushing.

    28. LF

      Mm-hmm.

    29. JA

      You're not pushing yourself. You're not choosing the thing that's going to help you grow. So for me, the scarier choice was to say no and I was like, "Well no, let's just see where this is going," right?

    30. LF

      Mm-hmm.

  4. 45:001:00:00

    Mm-hmm. …

    1. JA

      answer, but somebody else already gave that answer, so why are you getting reputation for the same answer as the other guy who gave it four years ago? People get offended by that, right? So the reputation system itself adds tension to the system-

    2. LF

      Mm-hmm.

    3. JA

      ... in that the people that... who have a lot of reputation become very incentivized to enforce the reputation system. (laughs) Um, and for the most part, that's good. I know it sounds weird, but for the most part, it's like, look, strict systems, I think to use Stack Overflow, you have to have the idea that, okay, strict systems ultimately work better. And I do think in programming, uh, you're familiar with, um, loose typing versus strict typing, right?

    4. LF

      Mm-hmm.

    5. JA

      The idea that you can declare a variable... not declare a variable, rather. Just start using a variable and, "Okay, I see it's implicitly an integer. Bam, awesome. Duck equals five." Well, duck is now an integer of five, right? And you're like, "Cool, awesome." Simpler, right? "Why would I wanna worry about typing?" And for a long time, like, in the Ruby community, they're like, "Yeah, this is awesome." Like, you just do a bunch of unit testing, which is testing your program's validity after the fact-

    6. LF

      Mm-hmm.

    7. JA

      ... to catch any bugs that, that, that strict typing of variables would have caught. And now you have this thing called TypeScript from Microsoft, from the guy who built C# Anders, who's one of the greatest minds in, in software development, right? Like, in terms of language design, and says, "No, no, no. We wanna bolt on a strict type system to JavaScript 'cause it makes things better." And now everybody's like, "Oh my God, we, we deployed TypeScript and found 50 latent bugs that we didn't know about," right? Like, this is super common. So, I think there is a truth in programming, that strictness, it's not the goal. We're not saying, "Be super strict 'cause strictness is correct." No, it's no, no. Strictness produces better results. That's what I'm saying, right? So, strict typing of variables, I would say you almost universally have consensus now, is basically correct. Should be that way (laughs) in every language, right? Duck equals five should generate an error 'cause no, you didn't declare... You didn't tell me that duck was an integer, right? That's a bug, right? Or maybe you mistyped it. You typed deck, right? Instead of duck, right? You never know. This happens all the time, right?

    8. LF

      Mm-hmm.

    9. JA

      So, with that in mind, I will say that the strictness of the system is correct. Now, that doesn't mean cruel. That doesn't mean mean. That doesn't mean angry. It just means strict, okay? So, I think where there's misunderstanding is... and people get cranky, right? Like, another question you asked is like, "Why are programmers kind of mean sometimes?"

    10. LF

      (laughs)

    11. JA

      Well, who do programmers work with all day long? So I have a theory that if you're at a job and you work with assholes all day long, what do you eventually become? An-

    12. LF

      An asshole.

    13. JA

      An asshole. And what is the computer, except the world's biggest asshole?

    14. LF

      Hm.

    15. JA

      Because the computer has no time for your bullshit. The computer... (laughs) The minute you make a mistake, everything comes crashing down, right?

    16. LF

      Hm.

    17. JA

      O- one semicolon has crashed space missions, right? So that's normal. So you begin to internalize that. You begin to think, "Oh, my coworker, the computer, is super strict and kind of a jerk about everything, so that's kinda how I'm gonna be, because I work with this computer and I have to accede to its terms on everything." So therefore, you start to absorb that and you start to think, "Oh, well, being really strict..."... arbitrarily, is really good. An error of error code 56249 is a completely good error message, 'cause that's what the computer gave me.

    18. LF

      Mm-hmm.

    19. JA

      Right? So you kind of forget (laughs) to be a person at some level. And you know how they say great detectives internalize criminals and kind of are criminals themselves?

    20. LF

      Mm-hmm.

    21. JA

      Like, this trope of the master detective is good 'cause he can think like the criminal. Well, I do think that's true of programmers. Really good programmers think like the computer-

    22. LF

      Mm-hmm.

    23. JA

      ... because that's their job. But if you internalize it too much, you become the computer and you become a- kind of become a jerk to everybody-

    24. LF

      Right.

    25. JA

      ... because that's what you've internalized.

    26. LF

      You're almost not a jerk, but you have no patience for a lack of strictness-

    27. JA

      Yes.

    28. LF

      ... as you said. Which-

    29. JA

      It- it's not out of a sense of meanness, it's accidental, but I do believe it's an occupational hazard of being a programmer, is you start to behave like the computer. You're very unforgiving, you're very terse, you're very, "Oh, wrong, incorrect."

    30. LF

      (laughs)

  5. 1:00:001:03:18

    Right. …

    1. JA

      the goal either.

    2. LF

      Right.

    3. JA

      It's like, you don't want a heartbeat that's like, so fast, it's like, your, your wing, y- you know, you're just freaking out. But like, it is a measure of health. You should have a healthy heartbeat.

    4. LF

      Right.

    5. JA

      It's up to... for people listening to this to decide what that means, but it has to be healthy, it has to be reasonable 'cause otherwise you're just gonna be frustrated 'cause like, that's how you build software. You make mistakes, you roll it out, you live with it, you see what it feels like and say, "Oh God, that was a terrible idea. Oh my gosh, this could be even better if we did Y," right? You turn the crank and then the more you do that, the faster you get ahead of your competitors ultimately, because you're... it's rate of change, right? Delta V, right? How fast are you moving? Well, within a year, you're gonna be miles away-

    6. LF

      Mm-hmm.

    7. JA

      ... by the time they catch up with you, right? (laughs) Like, that's the way it works. And plus, users... Like, I, I... As a software developer and user, I love software that's constantly changing because-

    8. LF

      Mm-hmm.

    9. JA

      ... I, I don't understand people who get super pissed off when like, "Oh, they changed the software on me, how dare they." I'm like, "Yes, change the software. Change it all the time, man."

    10. LF

      Yep.

    11. JA

      That's, that's what makes this stuff great is that it can be changed so rapidly and become something that, that is greater than it is now. Now granted, there are some changes that suck (laughs) . I admit I've seen it many times. But in general, it's like, that's what makes software cool, right? Is that it is so malleable. Like, fighting that is like, weird to me 'cause it's like, well, you're fighting the essence of the thing that you're building. Like, that doesn't make sense. You wanna really embrace that. Not, not to be a hummingbird, but like, embrace it to a healthy cycle of your heartbeat, right?

    12. LF

      So you talk about that people really don't change. It's true. The... That's why probably a lot of the stuff you write about in your blog probably will remain true.

    13. JA

      Well, there's a flip side of the coin. People don't change, so investing and understanding people is, is like learning Unix in 1970 because... and nothing has changed, right? Like-

    14. LF

      Yeah.

    15. JA

      ... all those things you've learned about people will still be valid 30, 40 years from now. Whereas, if you learn the latest JavaScript framework, that's gonna be good for like two years, right? Max.

    16. LF

      Exactly. So... But if you look at the future of programming, so there's a people component, but there's also the technology itself. Do you... What do you see as the future of programming? Will it change significantly or as, as far as you can tell, uh, people are ultimately programming and so they will not... It, it's not something that you foresee changing in any fundamental way?

    17. JA

      Well, you gotta go look back on sort of the basics of programming. And one of the things that always shocked me is, like, source control. Like, I didn't learn anything about source control. Now gran- I, I graduated from college in 19, uh, 92. But I remember hearing from people like in la- as late as like 1998, 1999, like even maybe today, they're not learning source control. And to me it's like, "Well, how can you not learn source control?" That is so fundamental to working with other programmers, working in a way that you don't lose your work. Like, just, just basic soft- the be- literal bedrock of software development-

    18. LF

      Mm-hmm.

    19. JA

      ... is source control. Now you compare it today, like GitHub, right? Like, Microsoft bought GitHub, which I think was an incredibly smart acquisition move on their part. Now they have... Anybody who wants, like, reasonable source controls, they can go sign up on GitHub. It's all set up for you, right?

    20. LF

      Mm-hmm.

    21. JA

      There's tons of walkthroughs, tons of tutorials. So from the concept of like, has programming advanced from say, 1999? It's like, well, hell, we have GitHub. I mean, my God, yes, right? Like, it's, it's massively advanced over, over what it was. Now as to whether programming is, is significantly different, um, I'm gonna say no, but I think the baseline of like, what we view as like, fundamentals will continue to go up and actually get better. Like source control, for example. That's one of the-

Episode duration: 1:20:08

Install uListen for AI-powered chat & search across the full episode — Get Full Transcript

Transcript of episode KZkYSSE8HHI

Get more out of YouTube videos.

High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.

Add to Chrome