The Changelog: Software Development, Open Source - An aberrant generation of programmers (Friends)

Episode Date: August 18, 2023

Our friend Justin Searls recently published a widely-read essay on enthusiast programmers, inter-generational conflict & what we do with this information. That seemed like a good conversation starter,... so we grabbed Justin and Landon Gray to discuss. Let's talk!

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Changelog and Friends, a weekly talk show about white Twizzlers. Thanks to our partners for helping us ship you awesome pods each and every week. Shout out to FASI.com, Fly.io, and Typesense.org. Okay, let's talk. We are here with our old friend, Justin Searles, and our new friend, Landon Gray. What's up, guys? Hello. I'm just going to make you guess which is which. Justin Searles rude i'll just pre-announce every statement by saying hi this is justin four people podcast is a lot to juggle so it really is that's the biggest challenge for audio only listens it's like you cannot tell you know like if there's five or more folks on a show you really will get lost in the voices you'll think like who's that again right and then you have to play mental gymnastics as
Starting point is 00:01:18 you listen which is a challenge which is why we limited this in most cases to one guest but here we're breaking our end friends rule because you cannot have just one friend. It's always good to have two friends. That's right. Right? I also like how we just declare people our friends. We just met Landon a few minutes ago, but hey.
Starting point is 00:01:35 That's right. Friend. He didn't sign anything. Don't put this on him. It's the name of the show. And I'm like, he's our new friend. The best way to make friends is call them your friend. That's true.
Starting point is 00:01:44 Justin and i do go a ways back we met in meat space in nebraska of all places the good life back in the day any js conf might have been like number two or number three 2016 wow yeah years ago 2016 wow adam you might have been at that one there was one that adam Adam came as well. I want to say, yeah, it may have been 2016. It was at the zoo. Were you at the zoo, Justin? It was at the old train station by that modernized part of Omaha that looked really nice.
Starting point is 00:02:15 Right, okay. So Adam came to the first NEJS comp at the zoo and then Justin came to the second one at the train station. I see, okay. We like to conference on hard mode, so we had a new venue every single year. Yeah, you can never get consistent. Yeah, you couldn't have everything's brand new,
Starting point is 00:02:33 all new challenges. But it was cool because it allowed us to have a new theme every year. Anyways, not here to talk about ancient history. Just to say that we do go back a ways. Of course, Justin and I both came out of the Ruby community. He very much still lives there. Do you consider yourself a Rubyist? Oh, for sure.
Starting point is 00:02:49 I oscillated between the Ruby and JavaScript communities, at least during my public internet gymnastics career. Prior to that, I did more Java than anything else, I'd say. But in the last few years, I sort of burned out on the churn of front-end JavaScript and the number of tools changing and transpilers and sort of the state of the art constantly shifting. And as we entered this era of React, but React really meaning like that plus a thousand other plugins, I just, I got tired of how much there was to keep on top of and how much complexity
Starting point is 00:03:24 was in everything. And I just went back to keep on top of and how much complexity was in everything and i just went back to the soothing embrace of monolithic rails applications uh and simple classes and simple methods and i've been having a pretty wonderful time over there for a few years now and last time we had you on the show the first time we had a show years ago was lineman js these were your javascript days and then most recently you were on the show talking ago, was LinemanJS. These were your JavaScript days. And then most recently, you were on the show Talking Rails and Ruby and your return to that. And a lot of people
Starting point is 00:03:49 liked that episode. Definitely, if you're listening to this, you want to hear more from Justin, maybe just listen to this episode and see if you still want to hear more from him. But by the end, if you want to hear more from Justin,
Starting point is 00:03:58 check the show notes. We'll link up to that previous episode. And you and Landon worked together, correct? Landon, you and Justin are colleagues at Test Double. Yeah. When youon work together, correct? Landon, you and Justin are colleagues at Test Double. Yeah.
Starting point is 00:04:07 When you say work together, it always, as a consultant, it's like I don't work really with Justin in the context of a client, but... Okay. Yeah. Both because Justin is no longer useful as a consultant and also because consultancies like ours,
Starting point is 00:04:23 especially being remote, it's like a hub and spokes sort of thing where we only have a handful of internal facing folks and then everyone else is spending the vast majority of their time at one client at a time. Gotcha. So your paths don't cross. I love Landon's commitment to clarity though. He's hesitant to fully clarify exactly how things pan out between him and Justin working together. He's an engineer. I think a lot of our employees have a healthy hesitation to associate too closely with me. What we look for in the candidate qualification. Part of the profile. You wouldn't consider them friends?
Starting point is 00:04:57 Oh, absolutely. They're friends. He has to now. They're on the show together. Landon's a lovely person. I wanted him to be on this podcast mostly so I'd have an excuse to talk to Landon for an hour and I just have to kind of put up with Adam and Jared. You have to navigate us, butting in. Yeah. Yeah. This is Justin and friends today. Hey. That's right. And friend, Justin and friend. And Adam and Jared.
Starting point is 00:05:21 Believe it or not, we do have a topic for today. It's not just going to continue to be this for the entire time. It'll probably to be this for the entire time. It'll probably be this uncomfortable for the entire time, but that's just how Justin rolls. But we do have a topic, which is a blog post that Justin published on my birthday of all days, July 12th, 2023. A little gift to me and a gift to the programming world.
Starting point is 00:05:43 All about this era of the enthusiast programmers coming to an end. So this is kind of like a, I wouldn't call it a treatise, or maybe it's a screed. This is a long post and not a technical post, which usually Justin's deep dives are like deep into some testing library or methodology. But this is more like a cultural thing that you brought up. And I think you said of all the things you've ever written,
Starting point is 00:06:08 this was like the most interest, most traffic, most conversation. Is that right? Like this really either resonated or didn't resonate. It brought all of us to the table to discuss. Is that fair to say, Justin? It struck a chord. I started a newsletter recently, a personal newsletter,
Starting point is 00:06:27 because I learned that people don't do RSS anymore. Yeah, I do. I've got several hundred newsletter subscribers, and a good majority are people using the kill-the-newsletter kind of subscription link so they can get an RSS feed out of it. Actually, fun side tangent,
Starting point is 00:06:44 that entire service exists because somebody wanted to RSS our newsletter back in the day, and we wouldn't do it. And so they created Kill the Newsletter, which was literally our newsletter. And now we love it because we just point people to that. Like, you want to RSS our newsletter? Use this. We don't have to add a feed. I just love the Rube Goldberg machine of you're spitting out N emails so that one company
Starting point is 00:07:04 can go and catch them all and produce N RSS feeds feeds uh that's what we do that's very internet uh yeah so i was writing this personal newsletter and i'm like the goal of the newsletter is to stay in touch with like a lot of folks at once and to share each month like a little aspect about myself and so this post what started as a newsletter update to kind of share these are some of my quirks of like you know a lot of people ask me about my career uh you know they might start that conversation thinking they want to have a career like mine and then like i kind of like pull back pandora's box and then they back away slowly and they're like nah i'm good uh and so it was going to be one of those newsletters like hey you know this is like if you haven't read the post, the title is The Looming Demise of the 10X Developer. And I start out by talking about how like, you know,
Starting point is 00:07:49 a lot of the open source and a lot of the creative work that I do is just almost obsessive in the time I put in and like how I kind of like just get fully absorbed in it. And how I get a lot of, to call it happiness or joy isn't quite the right thing. But it scratches some kind of itch for me. Satisfaction, maybe? Yeah. And it's a puzzle box. And I work through it. And I put in way more time.
Starting point is 00:08:13 And I learn a lot in the process. I finish the thing. And then it goes off or it's a thud. But that doesn't matter. Because I just wash my hands, take a walk, and then I'm on to the next thing. And I've been in that sort of creativity loop for years and years. And I paused at that point, because then like the kind of conclusion was like, and look at how weird and unusual I am. That's idiosyncratic. And then I realized, like, actually, like, I know a ton of developers like this. They're all software
Starting point is 00:08:38 developers, and whether that's exercise through software projects, or hobby projects, or whatever. And then I thought a little harder. And I was like, well, it's not all software developers I know. It's like this band of elder millennials to Xennials to, you know, like, like, like late Gen X folk. And I was thinking back to things I'd read about the 1980s radio shack marketing computers to boys as like, you know, game machines that just happened to be very programming adjacent in the mid 80s. And the effect that had on women enrollment in computer science and the knock on effects that like hacker culture and gamer subcultures had. And because I've had a lot of friends who over the last 10 year, you know, just bonanza,
Starting point is 00:09:21 the gold rush of all the VC-backed startups and huge exits. A bunch of friends in my age cohort who are now living on sailboats and retired and exiting the industry, it was this one little post about me and how weird I was actually kind of became like, maybe this kind of generational cohort is what's weird because we had this sort of very strange upbringing with computers that were you know reducibly complex they were like comprehensible to people like oh yeah sure i got a dos computer like a 386 and i i had to learn enough dos to launch my games but then i also learned basic in the process whereas now you know you get you give a kid an iphone and it is a
Starting point is 00:10:01 magical piece of glass that they will only ever have to introspect if they really have a lot of deep curiosity. Or they're building something so high up it's in Roblox. There's actually barriers to that introspection. It's difficult to do. Yeah, they'd have to go and read along OILA and set up an Apple developer account. That was kind of the thrust, or at least the kernel of an idea behind the post, was just to kind of get us thinking about, is there something different about our generation? And if there is, and it's sort of, you know, I say our generation because I think Adam and Jared are similarly aged to me. If there
Starting point is 00:10:35 is something different, and if the later generations of folks coming into the industry don't kind of have the sort of same idiosyncratic, you know, maybe you call it stereotypical, like geek or nerd tendencies, how does the industry need to adjust? Like so many more programmers in the world that in absolute terms, there might be more nerds and geeks in the industry today than there ever have been before
Starting point is 00:10:56 just because there's so many more programmers before. But in terms of proportion, I think that there's a lot of just like, quote unquote, normal people populating the industry now. And I think the industry has been slow to catch up with normative expectations of things like work-life balance and education.
Starting point is 00:11:13 We don't think about those knock-on effects through the terms of maybe what we all grew up learning this industry to be was the anomaly, not the norm to expect to just be. It was a place and time and a group of people in a specific range of times was the, that was the anomaly, not the norm to expect to just be, yeah. It was a place in time and a group of people in a specific range of times that produced, you know, what we had for a time and maybe that time is up or changing. One of the things you say in the post, which I appreciate, is that this is a gross generalization.
Starting point is 00:11:50 I mean, the thing about stereotypes or generalizations is they are generally applicable and specifically almost always wrong. So you state that right up front, like if we're going to generalize, we're going to miss a lot of people. And so that's kind of part and parcel to the conversation. And still, I think it's a very interesting conversation. I think there's areas where I think you're hitting on some things that are true. There's areas where I'm like, I'm not so sure about that. And we wanted to have this conversation. But then as we began to plan it, we're like, hey, we are three people of that older generation, Adam, Justin, and Jared, who are like, I'm technically a millennial. I'm the oldest millennial you could be if you're going to go by the actual definitions, because I was born in 1982. It's literally the first year of the quote unquote millennial. And spiritually, you're much older than even that.
Starting point is 00:12:26 Right. I'm kind of more of a Gen Xer, right? And so we are all of that same age range, and we brought Landon here to be our representative to a new generation. Sorry, Landon, so much pressure upon you. But as the representative, I guess we'd like to learn more about you,
Starting point is 00:12:44 who you are, what you do, what you like, and then eventually get around to maybe reacting to your thoughts on Justin's post when you first read it. Okay. I'm Landon Gray. I am a human being. I'm trying to think of something interesting to say about myself. I've been on this kick of, your work isn't your identity, and so it's like I lead with,
Starting point is 00:13:07 I'm a software developer and consultant. You know, it's... So that's what I do. Did I forget anything? No, I think that's fair. It's difficult to describe who you are, especially on the spot like that, especially when you don't want to describe it
Starting point is 00:13:18 in the terms of your work. I have this struggle as well. I try not to identify too tightly with my work, but in a certain sense, our lives are constructed of the things that we do. And a lot of what I do is this work. And so I don't want to identify myself as that,
Starting point is 00:13:34 but that's a large aspect of my life. So it's difficult to do otherwise. Maybe focusing in on Justin's post, like I assume you've read it at this point. When you read it, did it resonate? Did you think, nah, did you're like, what would you've read it at this point when you read it did it resonate did you think nah did you're like what would you think about it I think my initial reactions were I was as I was reading it I was aware of how much it was taking off but I was also aware of you know me being the generation like after and like not having had any of the context of some of the things that maybe he was discussing,
Starting point is 00:14:07 it just felt like I was coming to it a little bit later. So I was trying to piece my experience in with his experience. If I start talking to, I don't have kids, but if I had kids, my kids about 9-11, they're trying to parse in their experience of the world, not having had that experience of 9-11. And then there's a bunch of people talking about 9-11 and everybody knows and everybody can engage with that. For them, it's sort of like, I think I can understand, but you're still trying to kind of see where that difference is between the generational, you know, things that are kind of happening. I think the one thing that really resonated with me when I read it was some of the tendencies that Justin talks about having and being obsessive and just like, and me personally, some of the work that I've done almost felt like a symptom of like sometimes not being well, you know, like the obsessiveness I really resonated
Starting point is 00:15:01 with where I would just like go into my room and just spend time for hours just doing whatever my parents had no clue but I remember one time I was really into like PSPs and so I would like uh PlayStation Portable for those who don't know and a lot of people were sort of jailbreaking those but they called it something different and loading you know custom software and Sony would like patch it and then I would just be on the internet on all these forms trying to figure out ways to circumvent what they were doing. And at one point I had to modify a battery and I accidentally punctured the actual battery pack and I was scared it was going to blow up and catch on fire.
Starting point is 00:15:38 And I was nervous. So I went and had dinner with my family and hoped that didn't happen. I don't know why I did that. I saw smoke come out and then I was like, I should have probably like put it outside, but who knows. But all that to say, like some of like the obsessiveness and like the really getting into something like that really resonated with me. And I was questioning like whether that was like the generational line.
Starting point is 00:16:01 Like I do feel like they are there, but I think you said it in the article, you know, it's hard to kind of define, you know, I just found out today that you could be born in 1982 and still be a millennial. Like, to me, I didn't think you were a millennial, you know? Landon thought that made you a baby boomer. Yeah, pretty much. Wow. I missed that one, yeah. You're about to okay boomer me. Hearing Landon say this and then obviously reading Justin's post, but only hearing so much from him so far, there was something I heard recently from Neil deGrasse Tyson
Starting point is 00:16:33 about children in particular, when you sort of, and Landon, I know you said you don't have any children, but contextually think about this. Imagine you have to not so much discipline somebody, but guide somebody through life. And let's say they're doing things that you know are wrong, but they have to make mistakes. And so you as a parent want to protect them. So you say, don't do that. That will hurt you. But they have no idea about the world, right? They don't have any of the experience, any of the context, any of the time that you've had on the earth and the way neil tyson described this was that essentially we're just conducting experiments through our actions and trying to figure out how the world works and the way you described this psp hacking you know sideloading whatever it might be is your
Starting point is 00:17:17 version of experimenting with the world and you know sort of pushing back on this bubble this box this thing that surrounds you. So you have your person as your human being, and then you're just trying to figure it out. You got this meat brain above you that's super intellectual, but not quite there yet because your, I don't know how old you are, but your frontal lobe doesn't fully come into full fruition until around the age of 25. So even then, you don't have full rationale as a human being should have as a rational human being that makes rational thoughts, that makes rational summaries of the experiments they do in life. So I kind of see Justin, you, and probably if Jared and I shared our version of your stories, we'd be similar.
Starting point is 00:17:59 How do we all push back on the world and experiment with it and it push back on the world and experiment with it. And, and it pushed back on us. And then that sort of like, not so much forms us, as you said before, you kind of resist the idea that you're what you do defines you. And I always say what I do doesn't define me. It describes me because Adam 10 years ago is not the same Adam as today, but that Adam did something and it described who he was then. And today's Adam does something and it describes who,, kind of not who he is, but what he does now. So what I do does not define me, but it describes me. But this pushback on the world is just a natural thing to experiment. And we're all just sort of, some of us more, some of us less curious about how the world works. And so we are willing to obsess further and farther than others might be. And that might give us tendencies to go into areas where we're allowed to experiment way more. In the software world in the last 20, 30 years, that's been the epitome of exploration and innovation. So that's the best place for those kinds of minds to gravitate towards.
Starting point is 00:19:02 You wouldn't gravitate towards wood building because that's kind of like set in stone for the most part. There's been tooling upgrades and stuff like that. Set in stone? Set in stone. Yeah, thank you, Jared. Set in wood. There you go. To be more clear.
Starting point is 00:19:16 You know, tooling may have changed, but like you don't get to push back and experiment in the world quite as much as you do in these technical, you know, these STEM worlds, so to speak. So that's my mini rant on defining, describing, and also this experimentation satisfaction. So Justin, one of the things that you say in the post is that if, you know, your surmisings are somewhat generally accurate, then this is a useful way of perhaps helping us understand some of the, what you're calling intergenerational conflict, or basically people who disagree. We're all software developers,
Starting point is 00:19:54 but we have certain aspects of the work, of the life, of the industry that we're speaking past each other at certain times because we don't see eye to eye. And you're saying maybe it is a generational change. We have all these people coming in. I think it was Bob Martin that told us on the show, Adam, that was it every two years the size doubles? I can't remember. The doubling, yeah. Yeah, the doubling.
Starting point is 00:20:18 The very first person to write code for an electronic computer was probably Alan Turing. There's some debate about this, but let's say it was Alan Turing. There's some debate about this, but let's say it was Alan Turing in 1946. What kind of growth curve gets you from one to 100 million in, what is that, 73 years? Well, it's not linear. No, no, it's not. It's an exponential growth. Okay. All right. So we're programmers. We can choose the base of the exponent. We'll choose the base of two. So how many powers of
Starting point is 00:20:45 2 is 100 million? Well, 2 to the 20th is a million, and 2 to the 7th is 128, so about 27. So there's 27 doublings in the number of programmers from 1946 to now, roughly. Okay, well, that's 73 years, 27 doublings. That's one doubling every two and a half years. Do the number of programmers in the world double every two and a half years? That's a hell of a question. And initially, I think the answer is no, because during the first decade, the doubling rate was much faster. First, there was Alan Turing, and then there were 10 guys the next day, and then there were 100 guys the next month.
Starting point is 00:21:21 And then it slowed down. There's very good evidence that the current rate of doubling is every five years. You can look at the age distribution of programmers to see this, and you can look at the one ad lists or the recruiting lists and see a definite trend. If the number of programmers in the world is doubling every five years, first of all, that represents an immense demand, a demand that is growing exponentially. It's pretty clear that that's true, right? We're seeing software written in thermostats and microwave ovens and little things that we carry in our pocket. Our car keys have
Starting point is 00:21:56 software in them. So the amount of software getting written is just enormous. And this doubling rate means half the programmers in the world have less than five years experience. And this will always be true as long as we're doubling every five years. So we're stuck in an industry that is in a state of perpetual inexperience. As the size doubles, the amount of people who have the experience are vanishingly small just because of the raw numbers of people coming in. And so maybe this generational aspect to it, which of course is fuzzy and has specific areas in which it misses the mark, is helpful for us to help change, guide, discuss, understand each other. Was that your major point, Justin?
Starting point is 00:22:43 Yes. Thank you. You each other. Was that your major point, Justin? Yes. Thank you. You're welcome. To expand a little bit, so one of the three kind of conflicts that I raised in the post was a kerfuffle that happened on Twitter.com. X? Yeah, which was closed down and shuttered and no longer exists. And now there's another thing called X.com, which owns the twitter.com domain. So on that site, there was an argument about the word passion about like nine years ago. And I think that the people complaining about the word passion, as used to describe programmers, either in like job postings or as a descriptor of how somebody sees themselves about their job.
Starting point is 00:23:25 Chad Fowler wrote a book called The Passionate Programmer, and I'd read that book and chatted with him a bit about it just a couple years prior. I liked that I felt passionate about software. And then there was a group of folks on Twitter who tended to be younger, tended to be more from the Bay Area, where I'm sure the cacophonous sort of trilling sound of like really, really, you know, hustle bro recruiters trying to, you know, get people to squeeze every, you know, ounce of energy out of the stone to work overtime on their startups in sweat equity and so forth. There's like a big kind of part of that is like, you know, you don't want to take
Starting point is 00:23:59 people's joy and sort of use it like an olive press and just get some sort of resource out of it. But there was a valence, I think, to a lot of the argument that was like, hey, no, this is just work. Let work be work. Show up at nine, go out at five. You get paid for that labor. And to expect it to be something more, it bleeds and blurs those lines. And all of that was a completely valid debate to have. But the debate had this subtext that wasn't communicated, which was if I looked a couple of years prior to teams that I was on, let's say six out of eight of the people on any given team I would join were folks like me who programmed for fun in their spare time. And we'd have all these really deep and nuanced debates about editors and tabs. And we would go out of
Starting point is 00:24:44 our way and spend weekend time going and like, oh, I spiked this thing out or I tried out this refactor. I did this other thing. And we butt heads with like lots of toxic alpha male energy on, you know, a really geeky topic. And to the two out of eight in that team, you know, that it was probably not a super fun time most of the time, but being the majority, what I was experiencing as one of the people who was kind of like, you know, treated software development as a full contact sport when I was at work, and then as like this personal kind of journey that I was always on in my spare time. Right. When I was in the majority, I felt like, well, that's what normal is as a developer.
Starting point is 00:25:21 And then, you know, you fast forward four years, maybe maybe shortly after that passionate argument starts to erupt on Twitter, I realize now it's like three out of eight on the team now, just based on the generational shift, kind of represent me. And now I'm frustrated because why isn't everyone else pulling their weight and pushing up the open source and doing this other stuff and realizing that no, it was only a couple people had to swing for sort of the majority or the prevailing kind of like sentiment on teams to start shifting. And our relationship with what work was, what teams were, what expectations were like how much
Starting point is 00:25:56 management and quote unquote, what a career pathing people expect from their job versus just like, Oh, I'm, I'm on my own thing. I'm going to program until I die or whatever. A lot of things I assumed as being fixed weren't. And I felt, I think, a little bit like the crotchety old man yelling at cloud over changes that I was seeing and failing to, until very recently, put that through the lens of, if not literally generational change, then just a shift in the demography of who makes up most programming teams in the country. Yeah, I think that's a good example is the passion one. But even as now a, what do you call them?
Starting point is 00:26:36 Elder millennial? I always called it geriatric millennial. I'm not sure if that's a derogatory thing or not. Elder millennial or a zennial. You just put an X at the beginning because it's kind of part Gen X. Okay. So as almost a Gen X and not even close to a boomer Landon, but appreciate the cheap shot that Justin put in your mouth. I was always on the fence on the passion thing too, because I really nerd out on this stuff and I put in the time to learn things
Starting point is 00:27:02 and I care about this stuff outside of work hours. I guess I don't really have work hours anymore, but I never considered myself to be super passionate about it. And yet I was still putting all the time in. I don't know. I guess I just didn't identify it with the passion. I understood it both to be a group of people who were so, and then I also saw kind of the exploitative way in
Starting point is 00:27:27 which companies would describe their desire for passion and I always saw that as like you just want people to work for less money because they also enjoy it and it's like that seems like exploitative to a certain degree or at least leveraging a characteristic of them and so when I saw the complaints against passion, I was kind of on board with, I guess you'd say, the younger generation about that thing. But again, that's just my experience. And when we talk about these things,
Starting point is 00:27:53 we tend to have individuals that completely break out of the mold of which Justin has described with regards to certain aspects. If you were to lay out the characteristics of your generation, Justin, of your enthusiast programmer, one of the things is the passion. What are some other things that you think our generation, this aberrant outlier of a generation, has that other ones might lack? It's hard, right? It's sort of like going back to Landon's struggle to introduce himself. The list that I might come up with is going to sound like a list of
Starting point is 00:28:28 stuff upper middle class white guys like. And how much time did I spend trying to fit in teams in the early 2010s by talking about my favorite craft beer in central Ohio? Or video games. Once you kind of open the aperture on teams beyond just strictly people who care a lot about programming and do it in their spare time, there was a cultural hegemony.
Starting point is 00:28:52 And that's why I think in the piece, something that really struck a chord with me as I was writing and working on, on processing these thoughts was like the through line that connects the generation is primarily marketing, you know, the marketing that associated computing with games for boys, the marketing that, you know, kind of was adjacent to like frat culture and drinking culture, like, you know, GitHub having their drink ups in like the late 2000s and early 2010s. There were some awesome events and I made some really great friends that I'm still friends with today at them. But like separately in a different context,
Starting point is 00:29:29 you know, like hugely problematic and exclusive. That's why I don't have an easy answer to the question. It's a struggle. Well, the other thing that's challenging about it is if you define your generation and certain characteristics, what you're kind of doing is stealing those characteristics from other people, right?
Starting point is 00:29:44 Like we are passionate. We are, I think craftsmanship is something that you brought up. And that's like, well, Landon, he's younger, so he's not passionate. He's not craftsman. He's not these other things because that defines this generation and not that generation. So it gets to be, I mean, it's de facto divisive. I'm asking the division. Yeah. Yeah. Which is why Hacker News really liked my post. I was trying to talk about my own experience and they saw their own, they saw me claiming aspects of what they saw as their own experience, maybe identifying in a different generation or a different identity. And yeah, I totally get it. And that wasn't the point. The point was just to say,
Starting point is 00:30:19 are the tide shifting? And if they're shifting, how do we approach big hairy topics like how to manage engineers or how to teach people programming? You mentioned marketing as the vehicle. It seems to be the impression point, right? Like marketing in our day, gosh, sounds so weird. I've never felt older than I do in this conversation. Like marketing came from the television for the most part, right? Like the newspaper, the television, friends, we didn't have pocket phones. We didn't have even the idea of smartphones ever. So we didn't have those distractions. And that's one thing, but the input is so diverse now into the generations coming up, you know up 20 years ago to now, and it's going to get even more so in the future.
Starting point is 00:31:11 I think our marketing was simplified potentially and concentrated to where it was maybe a little easier to change large ideas faster. Ideas would catch faster, and maybe that's actually true here, but the input is not potentially a marketing company, but more a societal shift. Imagine how fast something goes viral on TikTok. There's certain things that are like unique things at dollar store that are like $2 that literally sell out because somebody on TikTok says something about it. And the next thing you know, across the United States or somewhere else in the world, I don't know where else dollar stores exist. It's gone because of a thing like that.
Starting point is 00:31:47 But this idea that marketing is what sort of narrates it. So people often have marketing wrong where they think marketing converts buyers. Marketing changes ideas and beliefs. That's the purpose of marketing. And what you're describing is a change of idea and belief. And in a way, to some degree, a definition, right? Because you are pushing back on this idea of like does what i do define me or describe me at least those are my words
Starting point is 00:32:10 and that's kind of an interesting thing is like you know how has marketing changed from our generation to today's generation it's gotten uniquely different many many more inputs than there were before i'm curious since we're all talking about what got us into programming or maybe rather the sort of ideological firmament that existed when we got into programming. Landon, tell us a bit about your experience and your story. Did you go straight from piercing mobile batteries and walking out of your house to learning to code? Or were there some steps in between? Oh, goodness, no. That'd be an awful way to start. Yeah, so for me, when did I first become interested in coding? My parents, they own a small business
Starting point is 00:32:52 and I remember one of their favorite pictures and actually one of my favorite pictures too is me sitting in front of the computer, the first computer that they bought for their business with a Twizzler in my mouth. And I'm sitting there kind of looking away from the computer, staring at whoever's taking the picture. Black or red?
Starting point is 00:33:09 It was a white computer. What? A white Twizzler? Yeah. What is it? No, Twizzler. Twizzler. No, the Twizzler.
Starting point is 00:33:16 Yeah, yeah. Twizzler. It was a red Twizzler. Yeah, I thought you meant the computer. I was going to say, a white Twizzler? What is this magic? Okay, good. Because black Twizzlers, I mean, come on.
Starting point is 00:33:26 Yeah, not good. Gross, right? Not good at all. I actually like them. They have the creamsicle ones now and all these cool flavors. Those are pretty good. Oh, man. The kids these days, they have so many different Twizzlers.
Starting point is 00:33:36 Sorry, keep going. And boom, now they're sold out at Dollar General. See? Yes. But yeah, so kind of fast forward a bit. I don't know if any other than seeing people use the computer. I didn't really interact too much with it. I remember getting online a couple times and not being super fascinated with computers.
Starting point is 00:33:54 But I hit this point where I started, I don't know if it was around the time I started taking it apart, like computers apart around middle school. My father had like all accumulated all these old computers that didn't like work, but they like work, but somehow they were like not new enough to keep using for the general purpose computer that the family used, but we still had them around. And I started switching out parts. I mean, some of the things that I might say might sound pretty stereotypical. I was interested in Legos and things younger. So kind of maybe having a little bit of an engineering builder's mindset. But I think most kids have that curiosity to explore and manifest in different ways. Did you follow the instructions or did you create your
Starting point is 00:34:36 own? I followed the instructions. I think creating my own sometimes stressed me out, but I would complete it and then I wouldn't, i'd get bored and i need like a new legal specifically bionicles but so building things like that swapping out parts on computers chilled a couple computers because i didn't know what static electricity was but just around that time becoming more and more fascinated with what these machines could do. And fast forward some more, I was introduced to coding actually in my high school. So I went to Catholic high school that offered coding and I was like, this looks interesting. Like I like computers, let's try it out. And I think that's where I really started figuring out,
Starting point is 00:35:18 actually, I think I knew my sophomore year that I wanted to do programming professionally and study that in college or at least something with computers. So that's kind of what sort of sucked me in. And then I mentioned the PSP thing, like that was a big part of it, you know, tinkering with this device and you can make it do things that it's not supposed to do and that the corporation actually doesn't want you to do. And other things, yeah. That's cool. Somewhat somewhat traditional path i guess i would say yeah i think
Starting point is 00:35:47 so games are involved games are involved computers are involved yeah lego is there lego's there the weird part though like i didn't play a lot of games like i played games but i actually got bored and the interesting part was actually tinkering with the device like that became the game and so it was weird like i'd get the emulator on it i'd get the game i wanted to play and then i wouldn't play it because i'd be like what's the next thing i gotta figure out so yeah we're not so different you and i it's a bonding moment my first uh windows 95 machine i remember when microsoft launched it they shipped a vh that had Jennifer Aniston
Starting point is 00:36:26 and one of the other guys from Friends to talk about it. Oh, yeah, I remember that. It was very weird. This is Jennifer Aniston. I'm Matthew Perry. We're here to see Mr. Bill Gates about a possible starring role in the video guide to Microsoft Windows 95. Yeah, it was real weird. That's got to be on youtube somewhere it is yeah and you know my parents would give me like discs of super cheap crappy shareware you know games and i would start playing them and maybe you lose interest in five minutes and then pretty soon i'm like fighting with irq request you know to try to like you know then i'm like deep in the uh and then i'm like right clicking on stuff randomly in the windows explorer and be like, oh, look, I can compress the drive and save a bunch of space.
Starting point is 00:37:07 And like, it doesn't, it didn't tell you that that would also have the effect of like breaking Windows because then Windows couldn't start because then it would be a compressed. And so like I was constantly not in the hardware layer, but in the software layer, like tinkering and breaking stuff. And I don't know, maybe it's just me, but I feel like that's what PC gaming was, was like 80% fiddling and 20% playing games for a really long time there. And it was the fiddling that got me down the slippery slope to, oh, well, you know, like, here's an image editor. Oh, look, this is like Macromedia also does like Flash and Shockwave Director. And then like, oh, you can script stuff. And then like, oh, that, and then that leads to go to computer camp and learning Java. And so there was sort of a natural, I think, glide from gaming into programming for me and then later building websites and so on and so forth. I was a gamer, but I did not have the connection between gaming and moving, probably because
Starting point is 00:37:57 I was a console gamer. I was Nintendo. I was just a Nintendo junkie, still am to this day with my kids now. But for me, it was Napster and Winamp that really got me into computers. The ability to download free music and then create cool playlists and scrubbing your Napster, your downloaded MP3s, making their titles all great, giving all the ID3 tags, and then tricking out Winamp.
Starting point is 00:38:21 That's when I was like, oh, computers are cool. And then somewhat traditional from there, Landon. I learned about it in school. I remember one time in high school, there was a website class that I wasn't in. But my friend was in it. And he liked Secret of Mana. I'm not sure if you guys know that game, but I liked it as well. Oh, yeah, sure.
Starting point is 00:38:39 And he made a Secret of Mana web page. And I remember specifically, he says, watch this, dude. And he would hover over the little sprite of the main character. And I remember specifically, he says, watch this dude. And he would hover over the little sprite of the main character and he'd turn from stone to colored on the hover of the mouse. And he's like, I did that.
Starting point is 00:38:55 I'm like, that is amazing. I did that. Just do it again. Do it again. And he'd put the mouse there again. He's like, yeah, I'm going to be a web developer. I'm like, what's a web developer? And the answer is somebody who gets cease and desist letters from the square corporation. Uh, well,
Starting point is 00:39:11 you know, that site probably still exists on Neo cities now. Cause, uh, didn't somebody take geo cities and like archive the whole thing and call it something else. Neo cities. It was definitely a geo city site,
Starting point is 00:39:20 but, uh, that was that planted a seed. And then it was basically like traditional schooling that was like, oh, I'm kind of, but like the Napster stuff and the Winamp and that whole like file stuff was what made me think maybe I'm good at computers. Maybe I should do this. The fact you weren't in the class and that you were like on the outside looking in, I was imagining like a Goodwill hunting thing where you're going up to the chalkboard after
Starting point is 00:39:44 hours. Oh, and I'm like, watch what I can do. Natural talent, just built in. Only in the movies, Justin. So not so different, any of us. I mean, but maybe different views on things. I don't know, Landon, where do you land on the passion, conversation, the craftsmanship, the, what's the third one? The 10X?
Starting point is 00:40:01 We've been ignoring the 10X side of this because it was classic link bait that worked and we've been talking somewhat a joke but justin liked putting the 10x developer in there because we know that drives clicks and we've been talking 10x way too much on the changelog shows so it's really hard to get somebody to read a 4 000 word essay if you just hit the title on the nose with like i think there may be generational causes for some of the strife that we experience in the industry today. That's true.
Starting point is 00:40:28 Well, if you just took your subtitle and turned it into the title and just shortened it a little bit, enthusiast programmers are coming to an end. That was actually my commentary, I think, when I covered it. It was like, the subtitle's great. I'd use that.
Starting point is 00:40:41 It is. Hey, he got the results he wanted, right? The looming demise. I mean, that's the hook right there, right? Of who? Of the 10X. The'd use that. It is. Hey, he got the results he wanted, right? The looming demise. I mean, that's the hook right there, right? Of who? Of the 10x. The 10x. We all want to see the 10x person demise.
Starting point is 00:40:51 That's right. You want to see them go down because that's just like, we can't attain that. They must go down. I'm really prone to hyperbole generally, but I am really bad at SEO and coming up with good headlines. I think because by the time I make a thing I'm so exhausted that the thought of naming it is just like once I just drop the ball at the one yard line. The winning move is you just come up with the title first and then you never write the blog post.
Starting point is 00:41:18 That's my move. I just title things and then I don't write them. And then you hand the title to ChatGPT and say, in the style of Jared Santo. Exactly. But I asked Alanan a question And then I don't write them. Is that something that is a positive to you? Do you think it's like exploitative? Do you identify as a passionate programmer or do you think that that's not who you are? What are your thoughts on it? I think passion was like a generally positive thing.
Starting point is 00:41:55 I think for me, I think now I've kind of attracted because as Justin was saying, like there were only a subset of people who felt that way and maybe that's dying down. I still think it's a positive thing and I think it's something that maybe folks in my generation, whatever that is, I have a lot of...
Starting point is 00:42:17 I'm going to go a different direction with it. That phrase sort of gives me a lot of discomfort because I think I've said in the past that you don't have to be for one I don't know if normal people become engineers because it's just such a weird deal I mean many fields I say weird I don't know what I'm saying I guess what I'm trying to say is I think it's that element of passion that makes me so good at what I do and maybe has spurred you all to kind of really push because it's hard being an engineer and
Starting point is 00:42:47 consulting and and it's like when you get stuck i was working on some lm stuff this weekend langchain it's like a lm tool to do something i was basically wanting to ask questions of a document and i got stuck and i didn't know what to do because I couldn't connect to the Postgres database. And someone told me, oh, use Docker. And like, I'm not super familiar with Docker, but I could have figured it out. And I just like fought through trying to just configure the gem that I was working on to, you know, work. And then I got it working and it was hard. And it's like, I think passion sort of is something that maybe helps you get over those humps because it's like, if you don't have that, you have to have something to unblock you. And I think it's hard for me to see that as the generational trait because it's one of those things where if you're not able to push past that point, I feel like it could get limiting for you. I'm willing to work sickening amounts of time. I'm not going to tell you how much I've worked this year. And Thursday, I'm talking about
Starting point is 00:43:53 AI and I'm on a podcast today and I've done a podcast on AI stuff in the past. And it's just I've put a lot of work into it. And I don't know how I would have been able to do it without the passion because there were definitely times where I was like, I'm sick of this. I'm exhausted. I have work stuff to do. And it's easy for me to be like, I don't want to do this anymore. And I took a class earlier this year, which was an extra 10 hours to 15 hours out of my week. And I was taking half days from work because I I was like I really want to do this thing and learn these things and I think about like if I didn't have passion would I do it and the answer is like heck no like I also feel sheepish about like pigeonholing like you have to have passion you know and also as like a generational thing it it's like hard for me to
Starting point is 00:44:41 say like that's like divide for me, if that makes sense. I said earlier that people who fit a lot of the stereotypes I was describing that I resonate with, I think, Landon, you were learning in this conversation, I think, tend to exemplify a lot of the same traits. And so if we zoom out and think a little bit about just the average team in 2023 and their composition, there are a lot of people who entered the industry once programming salaries got a lot nicer and a lot of other careers got tougher to enter or less lucrative and there are a lot of people who want to be able to like i want to be a programmer and clock in and clock out and then have a life that isn't
Starting point is 00:45:21 programming related yeah but to your point, all of our developer tools are incredibly hostile. Postgres is a database, it's the most popular database in the world. Should I be able to double click a thing, install it and have it always be running and not have to worry about, is this particular PID in the right folder?
Starting point is 00:45:39 Oh, wait, no, because of system integrity protection. Oh, you're speaking to me. You know, it's, oh no, now it's opt homebrew. And you got, oh, no, just use Docker. And now I got 55 other problems. Because so many programmers, like a majority of programmers in the past, had what we call passion.
Starting point is 00:45:56 Maybe it breaks down to attention to detail and unbelievable amounts of perseverance and long suffering to push through. Some of it's like obstinance even. Obstinance, yeah. Absolute stubbornness. Those things might redound to our tooling that you need all of these traits that are not typical just to be able to get your database to run.
Starting point is 00:46:18 And then people enter the industry expecting this to be a normal profession like architecture or civil engineering where there's a book you can read and a certification you can pass. Woodworking. Set in stone. Set in stone for generations. And that's where I'm really getting at here. We can't change the fact that a whole bunch of people enter the industry expecting us to be- Better than we are. Accessible and inclusive. And we can do it on a social level, but nothing from a structural level
Starting point is 00:46:45 has caught up to that reality is my worry. So one of the things that I have preached for a long time is that we do people a disservice by describing software engineering as something that's easy to do. Because to talk about marketing, I mean, there's a lot of marketing, you know, hashtag learn to code, everybody should be a coder, coding bootcamps, get into it. And Hey, I've taught a coding bootcamp and I would teach another one. But in that bootcamp, I would say this web development is kind of like racquetball and then everyone would stare at me weird because nobody plays racquetball, but I play racquetball and I could teach you the rules and how to play racquetball in about 10 or 15 minutes. And you can have fun, but you're not going to be good at racquetball, and I could teach you the rules and how to play racquetball in about 10 or 15 minutes, and you could have fun.
Starting point is 00:47:26 But you're not going to be good at racquetball for many, many years. And somebody who's good at racquetball is going to come in here and wipe the floor with you, and you're going to realize how bad you actually are. But you can learn it and have fun in 15 minutes. And I think web development is very much like that. I can teach you the basics in a few weeks. And you can have fun. You can be productive. You can do some stuff.
Starting point is 00:47:45 You can make the guy turn to stone when you hover over it with the mouse, but that doesn't mean it's easy. It's going to get really hard at some point. Like it drops off a cliff and that's going to be up to you to either power through or not. And I think we do sometimes tell people like, Hey, this is easy. Like look at the Twitter threads. It's like how to be a web developer in 23. And it's like, learn React, learn Redux, learn this, make money. It's like, well, those are all hard things. Each one of those steps is like massive, but it looks easy in a list. And so that's something I say a lot. But I think Justin speaking to your point is like, what I say is true, but it's also kind of just accepting the reality that a lot of the stuff is still so hard. And we haven't made it easy.
Starting point is 00:48:28 At a certain point, software architecture is not easy. It's complicated. And it takes learning, it takes experience, it takes a lot to be able to actually design and develop a well-factored application. But running Postgres should be easy. The stuff that you described justin like we probably expect too much of people because of who i guess who we've been and who we are and the tools that we've developed i mean look at vim if you're listening to this and you're thinking like yeah i think that programming should be more inclusive and we talk about like on a
Starting point is 00:49:01 social level of like you know uh pipeline attrition of individuals who might be from underrepresented groups that might come to mind you might think oh i don't have any way to like contribute there right that's not that's not my area of expertise well if you think of just something as like you know like the friendliness of developer tools that are really popular if you could contribute like one of our other colleagues, Jason Carnes, he maintains the fork of R-B-E-N-V called NodeEnv. Basically, it's a version manager for Node. And if you've used R-B-E-N-V or PyEnv or any of that kind of flavor, they all behave very consistently. They're super well-tested. They're really, really fault-tolerant. And it took a hard thing and made it an easy thing. I realize there's a bunch of different node version managers out there, but like that one
Starting point is 00:49:48 quacks just like the other ones. ASDF guys, come on. ASDF for the win. And ASDF also exists, but like there's a whole bunch of developer tools where there's just sharp edges everywhere. Yeah. And if you want to contribute and if you want to make this world a better place for new programmers, then think of those paper cuts and maybe invest a little bit of your time. And that's something you can contribute with code and actually make the industry a better place for human beings. Well said. I think it might be a numbers game. You know, Jared, you're pushed back on the ease. And I totally agree with the fact that you want to say that being a programmer or developer is not an easy thing. Right. I think it's a numbers game because if we look far into the future, technology has, is, and will prevail in terms of being a dominant force in the direction of humanity, right?
Starting point is 00:50:34 And more and more, we're going to want people to be able to program the world. And it could be literally software programming. It could be Lego programming. It could be all these different manifestations of it. It could be a CNC machine, which is actually quite technical. You know, there's a lot of software behind a CNC machine. For sure. And you can go pick one off the shelf for a grand and start making some dough.
Starting point is 00:50:55 But you're not a programmer, but you might need to do programming things, software-y things because you work with a computer. I think it comes down to being a numbers game and this boot camps and the easiness. I think we need to make it easily trialable, right? Like when you go and buy software or do something, you want to try it out. And it's like, we need to have that to be the inclusive thing, that to be the accessible thing,
Starting point is 00:51:15 to try out from a numbers game standpoint, is anything programming software development in the web or pick your flavor, pertinent to me. Do I have tendencies to be great at it? I might have to persevere through the dip that Seth Godin talks about in his book, which I think is a great book, When to Quit. There's certain things you should quit. Maybe you have that stubbornness, as you all talk about, to get through that dip and make it through to greatness as a developer. And that may take a decade it may take literally your entire career to consider yourself great by your own standards you know seriously but i think we need from a numbers game standpoint we
Starting point is 00:51:55 as developers and we who care about this industry should find ways to make the trialing of can i be in this industry and try it out accessible and then from there blossom shorten the time to failure from five years where it is now to something where people can take a personality test something that gives them a beat yeah like wow okay this is a glimpse of what being a developer might be like sure I can make the stone guy turn back to color or whatever it might be, or I can do some of these other things, and that's, okay, that catches my curiosity. Now it generates passion
Starting point is 00:52:32 because passion is an emotional manifestation and there's all sorts of artifacts around what passion truly breaks down to be when it plays out, but it gives people a chance to say, okay, this is a glimpse of what it might be like, and i'm willing to go further and from a numbers game standpoint we need to have that because well i
Starting point is 00:52:50 mean i think i'd love to have more passionate programmers out there in whatever way they shape out and the best way to do that is to be inclusive and to be accessible to try out what this is i really like this point because like the one thing I don't want people to take away from what I said, I think Justin feels this way too, is even though I chose to be a little bit passionate and obsessive, I don't necessarily feel like
Starting point is 00:53:16 being that exceptionally passionate is a prerequisite to doing this. I think even skill-wise, I thought you had to be this super whiz kid type person. I posted on my LinkedIn. I was like, I did so poorly on the... I took AP Computer Science. I got a grade so low that I didn't even look at it because I knew it was terrible. I was at school every day. Thank you, Mr. Maxwell, if you're hearing this spend time like an hour after school every day like just working on problems like I and everybody in my classes they just got it in the class time
Starting point is 00:53:52 I could not understand the difference between I think it was like arrays and array list and Java for the life of me and I frankly was I would argue I wasn't good at it I got like a two or one on AP and it's like I still am doing this professionally and if that and it. I got like a two or one on AP and it's like, I still am doing this professionally. And if that, and partly because I was like angry that I couldn't do it and I was like proving myself I could do this, maybe that's what got me to programming is just, I was bad at it. And I was just like, I'm just going to fight this until I'm good at it and then I'll quit. And then I didn't want to quit. Like, you know, maybe there's something there. You look like you're going to say something, Justin.in brother from another mother maybe i i graduated college with a four-year computer
Starting point is 00:54:30 science degree i struggled i was not an a student i was up late in the computer lab every night propping the door open because it was past close and i i one of my computer science professors right before graduation when i was like looking for jobs and striking out on every interview that i took uh suggested that maybe you know programming wasn't for me which as a private school with a high tuition was uh you talk about the time to failure adam and in terms of yeah four years is a long time to fail yeah but you know i i think one of the reasons landon and i see eye to eye and why he was able to assume I'd feel this way is test double our mission is to improve the way the world writes software. And a big, big part of that, I think, one principle that kind of buttresses that point is we believe programming doesn't need to be this hard. And it is this hard. And I often would tell people, you know, entering the industry or like, especially when learn
Starting point is 00:55:25 to code was a trending topic, um, on, uh, you know, that old site that we might remember called twitter.com. X.com. Future proof it, Justin. Future proof. Right. Sorry. Uh, I would tell people, I would tell people entering like, you know, a cocktail parties,
Starting point is 00:55:41 I suppose. Like it took me about 10 years to reach a point of basic competence where I could do rudimentary tasks individually without help. And I'm not lying. I'm not exaggerating. Like that's roughly how long it took. And for me to build like an actual working application, full stack that kind of did everything it needed to do. And it didn't have any sort of like really bad warts and it was maintainable and well-tested and yada, yada, and well-factored was at least that long. And people hear that and they're like, oh, you shouldn't tell people that because that will discourage people from entering the industry. I'm like, well, it's a two-pronged problem. There's the aggregate problem and the individual problem. The individual problem is
Starting point is 00:56:16 absolutely I should tell somebody that because I want them to know what they're going to get into because I don't want to set them up for failure. That's what I was talking about. But on the aggregate problem, we've got all these systemic and structural reasons, like Postgres doesn't need to be this hard to set up, you know, not to mention any of the sort of, you know, employment and office of management, all that other stuff too. So that's why I think like just sticking our head in the sand and trying to like throw more program, new novice programmers into the meat grinder is like probably not the right long-term solution. I mean, there are people putting work into this, you know, there's lots of things you can do in browser now.
Starting point is 00:56:48 In terms of just getting started, Glitch is really cool. Look what Supabase is doing for Postgres in many ways. It's not that there's nobody working on these problems, but the industry standard tooling and everything that we're using now, it's built by this generation of obsessive, passionate, nerdy, whatever you describe them, tech bros like Justin. Hey, hey, don't put that on me. I was waiting for a reaction to that one.
Starting point is 00:57:16 I was a little cheeky there. But there is progress being made. I mean, that's a good thing. And like you said, Justin, I like that your call to arms there. Like if you think that this is an unfortunate state of the world and you have skills, well, you put those skills to work in ways that make the tooling better, make it, you know, the documentation better. I wonder what, not to sully every conversation with artificial intelligence, but like, I wonder if as a net change,
Starting point is 00:57:45 if chatbots are going to help more people program or going to add to the complexity and to perhaps the time to failure, where you can fake it longer and never seriously make it because this thing is spewing out code that works good enough for now for you to use i don't know landon's our resident uh ai enthusiast a test devil all right landon take that one on is this going to be a sea change for people getting into software development is it going to
Starting point is 00:58:17 lower the barrier to entry or is it going to ultimately be yet another tool that's hard to use. Sounds like a whole other podcast. Justin and I have talked about this. We share thoughts. I think it's maybe a little bit of both, or it depends. There's the problem of people getting into programming using ChatGPT. And we talked about this, Justin. They're going to use it and be like, build me a site and do all this stuff. And if they just take the code that's there and just like put it in the code base that they're working in to fix the problem
Starting point is 00:58:50 a you know maybe they're not learning anything b there are other pitfalls in terms of like code maintainability testability uh of the code like what is the code actually doing like what if somebody pastes that in some application and it starts like the next Heartbleed scenario or there's some major bug? Like it's not, when you have the experience of being a developer and you come to these tools, you have that perspective of like what the tool is
Starting point is 00:59:18 and like it doesn't know everything. But if you just take that as, oh, it gave me the right answer and you run with it, I think there's a lot of danger at pitfalls. And that's like a huge fear and thing that keeps me up at night for future programmers is like, my God, I'm glad I didn't have chat GPT when I started. I think it would make it so much harder in some ways. One reason that I love everyone who works at Test Double is that it puts me in the rare position to play the optimist. Because for me, I'm the curmudgeon in most circles I swim in. But here, I could optimistically say, Landon,
Starting point is 00:59:50 if I were to zip back away to that bell tower of a computer lab that I was working from, they had the Java 1.2 API and S standard lib in a three-ring binder. I would literally go to that and reference it. If I had a question or a tool I was trying to understand, I'd be reading man pages. I'd be asking around, I'd be Googling hopelessly to find somebody explaining, you know, these, every time I had to untar something and then recompress it, all of that sort of administrivia, like it exerted a ton of mental energy, cognitive load. It wasn't particularly helpful.
Starting point is 01:00:28 And if you come to rely on AI tools, right now it's chatbots, but I'm sure in the future, these things are going to be much more tight fitting to our tools and much more natural and expressive. And it won't be us just having conversations necessarily. But if I think of it as a much more tactical tool for like, just answer the question for me, just, just tell me the right answer to like, I did this recently. I was traveling to Japan in May and I was doing a lot of content. Cause I was covering the Ruby Kaigi conference out there in Matsumoto, had a great time, did a whole field report, kind of like a live blog and did a lot of video. And I was using Final Cut for the first time. And I was like, all right, how the hell do I split a clip?
Starting point is 01:01:06 Or how do I join two clips? Or how do I do this? And like, even forget about like using the actual help that Apple publishes to like answer any of these questions. Yeah, forget it. I have Raycast Pro, or I think that had just come out. So I could just hit like command space and hit tab. This is like a spotlight alternative.
Starting point is 01:01:21 And then they added this AI feature and I just hit tab and I could just like have a quick GPT 3.5 turbo instance to talk to and be like, Hey, what's the keyboard shortcut to split a clip in FCP? And it would give me the answer once in a while it was wrong, but like I learned all of the keyboard shortcuts that I needed in like half an hour. And that would have been weeks of tutorials and futzing around and Googling and getting distracted and ending up on X.com. Oh yeah. The ultimate yank shape trying to find information, right? Like you can watch three different YouTube videos, watch 17 ads. And later, you know, the 30 keyboard shortcuts you want, because you found the right YouTuber who cared enough to share this knowledge. And it took you
Starting point is 01:01:58 four or five hours and you're like, I, that was work for that day. And so now I have to stop because it's like, forget that. That's not going to be a thing. Oh yeah. Rabbit holes deep down the rabbit hole. Yeah, I agree. Absolutely.
Starting point is 01:02:10 It's, it's a boon for those kinds of situations. I wonder, I've said that at this point, obviously these things are going to get better. There's a lot of money going into making these things better, but like today it's best for things that I already knew once. And I don't know anymore. I can't remember. Cause I can, I can quickly see that it's correct. I can quickly see when it's
Starting point is 01:02:30 wrong. Of course, something so simple as a keyboard shortcut while you just try it, does it work or not? Ah, great. So like small trivial administrivia, like you said, Justin, where I think it gets a little more complicated and hopefully this just gets better with time is like once you're starting to design software systems, like Kent Beck's statement, make it work, make it right, make it fast, we're going to have to stop and make it work. How do you make it right? You don't know what right is. There's a big jump between those two, I think. Many times, even today, hey, we stop and make it work. But when you're relying on
Starting point is 01:03:03 an artificial intelligence to help you make it work. But when you're relying on a artificial intelligence to help you make it work, I just don't know if you'll be able to make it right. It's not make it work and ship it. But it might have to be. I don't know. Maybe I'm a pessimist. Let me offer an opposite to that. Did everybody here ride a bike before?
Starting point is 01:03:20 Yes. Bicycle? Everybody's nodding, except for Justin. He's thinking. I'm using the NVIDIA AI gaze correction. I's nodding except for Justin. He's thinking I'm using, I'm using the NVIDIA AI gaze correction. I'm just staring into your soul. Okay. Gotcha. You're not blinking for like the last 30 seconds. Now I understand. You're more of a treadmill guy. Anybody here use training wheels? Yep. Chat GPT is training wheels. Eventually you learn to ride the bike. That's it. That's it. That's the tweet. Yeah. that's it. I mean, I rode my bike with training wheels, and then I had like a bike with no training wheels,
Starting point is 01:03:51 and I could ride, but I would still fall. And now I ride a mountain bike down literal mountains because I'm crazy. But I started on training wheels. You don't need to get to the mountain bike to make the training wheels useful or not useful. And I'm not sure if this is exactly what you're saying, Jared, but I think that the training wheels are necessary.
Starting point is 01:04:10 And eventually, so you're saying if you kind of rely. So you do rely to learn how to ride a bike with training wheels. So for a short time period, you do rely on that support mechanism in this bike scenario. That's necessary through anything. So I think if we can, it's all about the lens and they probably will get better, potentially more embedded in our tooling. So I think for a while there,
Starting point is 01:04:35 if you lean on a LLM or a chat GPT or whatever you manifested as, or it is in your toolkit for a while and then ride off into the sunset without the training wheels, that's okay. That's cool. Yeah, I guess if experience, is your statement then is experience
Starting point is 01:04:54 produces the skill either way? Well, learn by doing is a phrase for a reason, right? Well, when I think about making it right, and I'm saying that the chat bot doesn't know what right is, it has its own idea. I agree, yeah. But to disagree with myself. To work, yes.
Starting point is 01:05:10 It took me time as a software developer to know what right was. And heck, sometimes I'm still wrong about what right is. There's books written on this. There's 10, 20, 30 years of experience. You start to realize, oh, that was not a very good design because I used it in production. And now I can adjust and not do that anymore. And so maybe that just comes along with what it always did, which is just time on the keyboard, you know? Yeah. And the training wheels are there.
Starting point is 01:05:34 I wanted to resist the training wheels analogy, but then I thought about it more and I, if we can be honest with ourselves and in how these tools mature and how we communicate about them as it's a great way to get from zero to 30, like to get over the initial hump, you know, like I was in a class once and it was like first day of data structures. And they were about to talk, like the professor was kind of about to give an overview, somebody in the front row who was like, you know, just a little bit nerdier than me and had been programming more on in high school. It was like, Oh, really all you need is array and hash and then the professor was like oh good you guys already know this stuff and just like skipped two chapters you guys already know this and i was like what if
Starting point is 01:06:14 i at least had ai to be like what's a hash because like i was sweating right and so like if we can agree like it's mostly about that kind of like the cursory survey introductory like make it work level to jared's point the reason why i'm pessimistic that ai is going to necessarily give us the next leap until we have like cameras and in every team room is that make it right is different for every single situation because it depends on the context of the team and the business and the needs of the bigger situation and so right for write for an app in one context would look totally different than write for the same app
Starting point is 01:06:48 in a different context. And GPT will never have, like no computer basic interface that we can imagine is going to ever have the right context to really understand. So that part, I think we need to be clear, is that's an exercise left to the reader. And that you only learn through the experience of lots of at-bats. I'm piggybacking off Justin. like that's an exercise left to the reader yeah and that you only learn through the experience of
Starting point is 01:07:05 lots of at-bats right i'm piggybacking off justin i i kind of am kind of in the same sort of vein kind of push back back on the chain wheels analogy just a bit i think the framework i use in my brain when i come to it is like am i trying to build technical grit and expertise and depth in myself or am I just trying to get past this problem? And like yesterday or Saturday, it's Tuesday, Saturday when I got stuck, I did not care why the application couldn't use whatever library I was to connect to Postgres
Starting point is 01:07:42 to do my vector database. I did not care at all. I just wanted to make it work. But if I was like a developer whose purpose was to figure out and be in that space and work in it day to day, and someone else had to come to me and say like, hey, how's that work? How do we fix it?
Starting point is 01:07:59 I think having that full technical expertise of like the stack, like what is the database doing here and how does it connect here and what libraries and dependencies, like building that conceptual model for how things work is like something you cannot get from ChatGPT. You have to like suffer a fair amount before you can have the whole conceptual model.
Starting point is 01:08:22 Otherwise, if anything breaks in the application, ChatGPT doesn't know the context of your application. You're not going to be able to go in there without uploading your entire system and all the nuances into it and being like, fix it, you know. And if it does fix it, it's got to fix it in a way where it's not stacking two boxes on top of a toothpick. Right. For the next break, you know, is how how i imagine it i am going off of the xkcd you know i'm talking about but oh yeah the whole internet's built on this one like really fragile thing but there are engineers who can go in there yeah in nebraska that's right one person
Starting point is 01:08:56 in nebraska that's me i'm maintaining it we're all i think fit in the stereotype if we remember that not only that xkcd comic but also that the one guy maintaining OpenSSL was in Nebraska. Yeah. So yes, we are all of one elk, it seems, at the end of the day. I like that framing, Landon. I like how you said, is this something that I want to grit and improve myself, or am I just trying to accomplish this thing? And what my fear is, because I've worked long enough in the industry with enough people that we think that all of us here are normal
Starting point is 01:09:30 insofar as we have that desire for improvement. And there's a lot of working developers who are stereotypical that will literally just take the Stack Overflow answer and copy paste it into their code and ship it and be done and not give it another thought. And there's a lot of code
Starting point is 01:09:47 and there's a lot of systems out there that we use every day that exist with that, quote, quality of software in them. And will we ever have the thoughtfulness writ large to say, am I self-improving right now and do I need to learn this with technical grit?
Starting point is 01:10:03 Or am I just trying to get this done? And so much code goes out into production because somebody just had to get it done before the lunch break or before their vacation or whatever it is no judgment just facts that it's just going to continue to just build on the house of cards that we currently exists and that our lives depend upon more and more every day. I mean, our banking system is built on a house of cards. That's just one of our systems. And so that's where I get a little bit verklempt. I think you're 100% on the ball. Yeah.
Starting point is 01:10:34 I know a person who had a conversation with someone who was a developer coming out of basically university. And they were kind of distraught about, you know, it was their first kind of programming game. They're kind of just thought about struggling through the problem. And they kept giving these like answers. And my friend kept going back to like fundamentals, concepts. And my friend discovered that the person didn't have the fundamental, like conceptually, like trying to figure out like how are you arriving at these answers?
Starting point is 01:11:06 There wasn't like a ton of like conceptualization happening there. And it was like, oh, this person had basically used maybe not chat GP, but like somewhere in their learning, they just did the thing to get to the next thing.
Starting point is 01:11:20 And now they're in a job and it's like, you can't do that. You have to understand why you're doing what you're doing. And I'm afraid that chat GPT is going to birth a whole new set of engineer who's just like, how'd you fix that?
Starting point is 01:11:33 Someone rolls off my client from test level, goes up somewhere else, and I'm like, oh, how did you handle this situation? It's like, I have no clue. Like, what was your fundamental assumptions? Well, I just used chat GPic BT to like, you know, fix it together and I don't really know how it works and I can't really change it, but it looks fine.
Starting point is 01:11:50 And it's just like, we have to share knowledge. Like we're still human beings. Like we have to understand how the system works. I love the frame that you just set up because the conversation earlier about like that we're all standing on this house of cards, right? It's really a conversation of the classical Fred Brooks, uh, essential complexity versus incidental complexity. And we have to deal as programmers with the aggregate amount of all
Starting point is 01:12:15 complexity, but the more incidental complexity that there is, the more that we have to kind of just struggle through, but with AI and, and advanced tools that can kind of, to a certain extent, do the job for us, I think that we need to think of as an individual point of individual responsibility and point of how we educate developers. Think of a similar sort of dichotomy of like, there's two kinds of pain. There's like the kind that makes you stronger, like the grit, and then the pain that's just useless suffering. And I think it's something for me programming for the majority of my life. Now, when I use chat GPT, I kind of like just know intuitively without speaking and subconsciously like, yeah, this is just me reducing suffering by asking it these targeted questions.
Starting point is 01:12:58 But for somebody who doesn't have that experience and they're able to make it do a whole lot of work and they're skipping to, it's like the original super mario brothers and you just like you know know that on level one two you can just jump to the top right of the map and then go down the warp you know pipe to level eight world eight and then it's like i don't know how to play this game or do all these things because i didn't learn the systems up to this point uh you can get out ahead of your skis and once you've done that then you're kind of stuck on that treadmill of having to even lean harder into shortcuts and i think like that's why for example example, Gary Bernhardt's Destroy All Software screencast were so popular 10 years ago, because I'd taken a lot of shortcuts and a lot of people
Starting point is 01:13:33 had. And it was a way to kind of give ourselves a remedial education in attention to detail and sweating the small stuff. There is a similar frame here that as AI becomes really, really popular with like as a tool for learning how to program, we could probably stand to educate folks and help come up with like, I don't know, like a rule of thumb or heuristic for like when is and when isn't it a good idea from the perspective of your education as a developer, your growth as a programmer. Right. Couldn't agree more. I think that's something that we have to figure out and start to promote educationally for people.
Starting point is 01:14:12 But it's also a moving target because the quality coming out of these systems is improving and the interfaces to these systems are improving. And they may become, and they're becoming so tightly integrated with the rest of our tooling that it may be indistinguishable from magic. And so far as you don't even know what you're using, it's just like, well, my editor just wrote the code. And so maybe like that, like right now we like go ask chat GPD or we go ask copilot or whatever.
Starting point is 01:14:38 And maybe that will become so streamlined through iteration that the distinction kind of disappears. And then we might be really screwed. I do agree on the long-term reliance on it is a negative for sure. At some point you have to abandon the training wheels and they're gone. So that's where I stand back on that analogy. Like they do go away or you rely on them obviously less because they're gone. Right. And I think that's where I'm standing is like it's a thrust.
Starting point is 01:15:03 It's an on-ramp. You know, it's a masses, it's back to that numbers game it enables more people to play the game to see if it fits and if they can take the wheels off and ride alone then that's the better I do agree that if you're in a team and you're only relying on this thing
Starting point is 01:15:18 to generate something and you don't know how it works that's a net negative for everyone for them and for their teams and the products they're working on and the customers using it. There's a lot of that going on and I know that I was sounding pretty harsh earlier. I do want to say that there are a lot of factors that lead to such code deployed. Some of them are completely legitimate and understandable
Starting point is 01:15:42 and just unfortunate facts of life and circumstances. And so it's not like some programmers are good and some are bad, and we have to watch out for the bad ones because they're going to get us. But I do think that the stakes have never been higher. And so that's why I get more and more concerned because software is more and more involved in our lives and will be more and more and so while maybe during our younger days for us elderly here it was okay to have certain quality issues or whatever it was because you know we were like tinkering around with stuff like if the phpb went down okay or if it had a virus i mean the first if you go back and read like the first worms and viruses, they didn't do very much. Like some of them were actually
Starting point is 01:16:27 just kind of funny. But the stakes now are just so high that it is concerning. Justin, you were going to say something? First, just to that point. I mean, absolutely. It's something where if you conceive, like I often do of,
Starting point is 01:16:42 you know, you're talking about fixes earlier and like then you named additional tools like Supabase on top of all these other things as like a Jenga tower of like increasingly shaky pieces that are honestly, they're only as stable as what comes up beneath them. You know, the stakes are much higher. You know, an example just from this week is, uh, one of our colleagues, Kathy, uh, Colliver,iver uh our director of marketing is in louisville and i think her her kids just went back to school and i think all of the first three days of school have been canceled so far because they have an ai-based uh really smart bus routing system that just completely crapped the bed and so like apparently her son was just sitting with the principal in the cafeteria and like all the buses are all everywhere because like the head of UPS has come in and like offered to like help with like logistics training, you know, it's even something like that, right? Like, like it fully depends on software. You can only imagine that's a brand new piece of software. The phrase AI was used. So, you know, like it's standing on top of this Jenga tower. Oh yes. My head's swimming and just imagine, you know, the screens on the manned space capsule that SpaceX had,
Starting point is 01:17:47 they were bragging like, Oh look, that's react running on chromium in space. And I'm just like, man, that's just like so many more things that could have gone wrong on that than there were on Apollo 11. Right.
Starting point is 01:17:59 The stakes are absolutely higher. And I don't think that the industry is putting in the work, right. To ensure that like, we're, we're going to be able to be reliable to the extent that the commensurate needs of humanity might demand. Well, not to end on a downer, but how do we land this plane?
Starting point is 01:18:18 Both this conversation and the more dangerous play. And also Southwest who has been repeatedly grounded with software bugs the last few years. We're flying Southwest soon, so good luck to us to get on the plane and actually take off. Hopefully the mainframe that has a camera in front of it that runs like Highland OnBase to screen scrape it into a thing that can print off the FAA mandatory weather reports
Starting point is 01:18:44 doesn't go down again, so you're not stranded on the tarmac like I was in McCarran in Las Vegas during a heat wave because they couldn't print out on those ticker tape dot matrix printers. That's probably a sweet hack, though. Pretty sweet hack. That hack probably got somebody a raise. This is my third time podcasting with you, and I think every single time Jared has said, well, I don't mean to end on a down note. Maybe we can end on some advice because one of the things you talk about in this post and kind of where you even end is this idea that generational shifts within the development community are going to present transformative shifts in the way the industry works itself maybe either of you can sort of give your personal
Starting point is 01:19:26 contextual lens on an advice on how that shifts like how we can best prepare for that and anticipate those changes that are going to come no matter what these distinct generations working together i think that we're just going to have to grow through the pains like growing pains i think generations are going to come together people are going to have to grow through the pains, like growing pains. I think generations are going to come together. People are going to have different ideas. Different things are going to motivate people. As human beings, this sounds so cliche, we're going to figure it out sort of thing. We're going to figure it out.
Starting point is 01:19:55 I am an optimist. Darn it. Hey, no, that's the upper that we needed. That was the upper that we needed. We'll give Landon the final word. It's super easy, barely an inconvenience. Okay. We're going to figure it final word. It's super easy. Barely an inconvenience. Okay. We're going to figure it out in the end, Adam.
Starting point is 01:20:08 Yeah. I like that answer. Well, that's good. I do think that there's an aspect of togetherness there. There's an aspect of hope. And there's an aspect of a satisfactory resolution to the challenge. So, good job, Landon. He really Landon-ed the plane.
Starting point is 01:20:25 Oh, wow. I've actually never heard that one before. See you later. I think that's the end right there. I think we can end on that. Yeah, thank you for joining us for Friends. It's so much fun. ChangeLog and Friends.
Starting point is 01:20:38 Thanks, guys. It's been a pleasure. Bye, y'all. This ChangeLog and Friends features Bye, y'all. with us too much and more. That is, of course, if you're a Changelog++ subscriber. If not, learn how to directly support our work, make the ads disappear from all of our pods, and listen to this
Starting point is 01:21:12 and every extended episode at changelog.com slash plus plus. We'd love to have you with us. Seriously, do it, do it. Thanks again to our partners, Fassy.com, Fly.io, and Typesense.org. And to Breakmaster Cylinder for being our beat freak in residence.
Starting point is 01:21:30 Next week on The Change Log, news on Monday, Andreas Klinger from SerenityOS on Wednesday, and Change Log and Friends on Friday. That is all for now, but let's talk again real soon.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.