Changelog & Friends — Episode 5

An aberrant generation of programmers

Justin Searls and Landon Gray from Test Double explore generational shifts in programming culture, examining how elder millennials who grew up with accessible computers developed traits like passion and obsessive dedication that became industry norms.

Transcript(18 segments)
  1. SPEAKER_01

    Welcome to Changeloggin 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 Fastly .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 gonna make you guess which is which. That's Justin. Damn it. Because I'm not so rude as to not associate a name with a voice. And that's Landon. Say greetings again, Landon. Greetings. Thanks for having me here. Sorry, that was 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 you listen, which is a challenge, which is why we limited this in most cases to one guess. But here we're breaking our end friend's 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, you know? Like we just met Landon a few minutes ago, but hey. 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. So. The best way to make friends is call them your friend. That's true. 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 JSConf might've been like number two or number three. 2016. Wow. Years ago. 2016. Wow. Adam, you might've been at that one. There was one that Adam came as well. I want to say, yeah, it may have been 2016. What was it? The zoo. Were you at the zoo, Justin? It was at the old train station by that, like, you know, modernized part of Omaha that looked really nice. Right. Okay. So Adam came to the first any JSConf 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, 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. Yeah. I oscillated between the Ruby and JavaScript communities, at least during my sort of 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 was in everything. And I just went back to the soothing embrace of monolithic Rails applications 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 Rails and Ruby, and your return to that. And a lot of people 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. By the end, if you want to hear more from Justin, check the show notes, we'll link up to that previous episode. And you and Landon work together, correct? Landon, you and Justin are colleagues at Test Double. When you say work together, it always, as a consultant, it's like, I don't work really with Justin. I'm 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, 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 like 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? 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.

  2. SPEAKER_00

    Believe

  3. SPEAKER_01

    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 be this uncomfortable for the entire time, but that's just how Justin enrolls. 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. 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, 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. You know, it started as I started a newsletter recently, a personal newsletter, because I learned that people don't do RSS anymore. Yeah, I do.

  4. SPEAKER_00

    And

  5. SPEAKER_01

    it's based on, okay, so I've got several hundred newsletter subscribers and like a good majority are people using like the Kill the Newsletter kind of subscription link so they can get an RSS feed out of it. Actually a fun side tangent, 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. I just love the Rube Goldberg machine of you're spitting out an email so that one company can go and catch them all and produce an RSS feeds. That's what we do. That's very internet. Yeah, so I was writing this personal newsletter and 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. 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. 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, 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 that - Satisfaction maybe? Yeah, and it's a puzzle box and I work through it and I put in way more time and I learn a lot in the process. I finished the thing and then it kind of like, you know, it goes off or it's a thud, but that kind of doesn't matter because I'm just, wash my hands, you know, take a walk, and then I'm onto 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 like 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 developers and whether that's exercised 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 zennials to, you know, 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, the gold rush of all the VC, you know, 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 had to learn enough DOS to launch my games but then I also learned basic in the process. Whereas now, you know, you give a kid an iPhone and it is a magical piece of glass that they will only ever, you know, like have to introspect if they really have a lot of deep curiosity. Or they're building something so high up, it's in like Roblox. There's actually barriers to that introspection. Like it's difficult to do. Yeah, they'd have to go and read along Eula and set up an Apple developer account. Yeah, so 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 like, 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 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 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 like normative expectations of things like, you know, work -life balance and education. And 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, that was the anomaly, not the norm to expect to just be, yeah. JAY WALSH -MILLER -MARTIN, Ph .D. 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. I mean, the thing about stereotypes or generalizations is they are generally applicable and specifically almost always wrong, you know? 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 like 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. Right. Like I'm kind of more of a Gen X -er, 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, you know, 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, you know, your work isn't your identity. And so it's like I lead with, I'm a software developer and consultant, you know. 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 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, but that's a large aspect of my life. So it's difficult to do otherwise. Maybe focusing 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'd you think about it? I think my initial reactions were 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, like it kind of just kind of felt like I was coming to it a little bit later. So I was trying to piece my experience in with his experience. Kind of like if I started talking to, I don't have kids, but if I had kids, my kids about 9 -11, they're trying to kind of 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, I almost felt like a symptom of like, sometimes not being well, you know, like the obsessiveness I really resonated 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 a 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, you know, 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 like 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. And I was nervous. So I went and had dinner with my family and hope that didn't happen. I don't know why I did that. You know, I saw a smoke come out and then I was like, I should have probably like put it outside, but who knows? But all I had 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. 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 spot 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 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 deGrasse 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, sideloading, whatever it might be, is your version of experimenting with the world and 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 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 just in you and probably if Jared and I shared our version of your stories, we'd be similar. How do we all push back on the world and experiment with it 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 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. 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. Tooling may have changed, but you don't get to push back and experiment 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, you're 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, but we have certain aspects of the work, of the life, of the industry that we're like 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. 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 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. For sure. 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 two is 100 million? Well, two to the 20th is a million and two to the seventh 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. The number of programmers in the world doubled 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. You know, first there was Alan Turing and then there were 10 guys the next day, and then there were 100 guys the next month. 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 software in them, you know, 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. Is 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. 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 of years prior. And 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 ounce of energy out of the stone to work overtime on their startups in sweat equity and so forth. It was like a big kind of part of that is like, you know, you don't want to take 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 five, you know, 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 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 like programmed for fun in their spare time. And we'd have all these really deep and nuanced debates about editors and tabs. And like, you know, we would go out of our way and like 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. Like this personal kind of journey that I was always on in my spare time. When I was in the majority, I felt like, well, that's what normal is as a developer. And then, you know, you fast forward four years, maybe like shortly after that passionate argument starts to erupt on Twitter. I realized like, oh, 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 like why isn't everyone else pulling their weight and like pushing up the open source and doing this other stuff and realizing that, it was only, you know, a couple of 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 management and quote unquote career pathing people expect from their job versus just like, oh, I'm on my own thing. I'm, you know, in a program till I die or whatever. Like a lot of the things I assumed as being fixed weren't. And I felt it, I think a little bit of, 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? Elder millennial? I always call it a geriatric millennial. I'm not sure if that's a derogatory thing elder millennial or a zennial. You just put an X at the beginning cause it's kind of part gen X. Okay. So as almost a gen X and not even close to a boomer landing, but I 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 and I care about this stuff outside of work hours. I guess I don't really have work hours anymore, but like I never consider 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 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 like 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, we tend to have individuals that completely break out of the mold of which Justin has described, you know, with regards to certain aspects. Like 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 like 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 struggling to like introduce himself. The list that I might come up with is going to sound like a list of stuff upper middle -class white guys like. Yeah. And how much time did I spend trying to fit in and teams in the early 2010s by talking about my favorite craft beer in central Ohio, you know, or video games. Once you kind of opened 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. And that's why I think in the piece, something that really struck a chord with me as I was writing and working 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. They were so 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, 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 in certain characteristics, what you're kind of doing is stealing those characteristics from other people, right? 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, 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, 20 years ago to now. And it's going to get even more so in the future. I think our marketing was simplified potentially and concentrated. So where it was maybe a little easier to change large ideas faster. You know, 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. Like 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. 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. 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 learn into code or were there some steps in between? Oh goodness, no. That'd be the awful way to start. Yeah, so for me, when did I first become interested in coding? I, my parents, they own a small business 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? It was a white computer. What? A white Twizzler. Yeah. No, Twizzler, Twizzler, 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. Yeah, not good. 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. Sorry, keep going. And boom, now they're sold out at Dollar General. Yes. But yeah, so kind of fast forward a bit. I don't know if any other seeing people use the computer, I didn't really interact too much with it. I remember getting online a couple of times and not being super fascinated with computers. But I hit this point where I started, I don't know if it was around the time I started taking computers apart around middle school. My father had accumulated all these old computers that didn't work, but they work. But somehow they were 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 it manifests in different ways. Did you follow the instructions or did you create your own? I followed the instructions. I think creating my own sometimes stressed me out, but I would complete it and then I'd get bored and I need like a new Lego, specifically Bionicles. But so building things like that, swapping out parts on computers, chilled a couple of 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. I like computers, let's try it out. And I think that's where I really started figuring out. 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. That was a big part of it, 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 traditional path, I guess I would say. Yeah, I think so. Games are involved. Games are involved. Computers are involved. Lego is there. Lego is there. The weird part though, I didn't play a lot of games. I played games, but I actually got bored and the interesting part was actually tinkering with the device. 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 got to figure out? So yeah, we're not so different, you and I. It's a bonding moment. My first Windows 95 machine. I remember when Microsoft launched it, they shipped a VHS that had Jennifer Aniston and like one of the other guys from Friends to like talk about it.

  6. SPEAKER_01

    Oh yeah, I remember that. It was very weird.

  7. SPEAKER_00

    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.

  8. SPEAKER_01

    Yeah, it was real weird. That's got to be on YouTube somewhere. It is, yeah. And

  9. SPEAKER_00

    you

  10. SPEAKER_01

    know, my parents would give me like disks 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, 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. 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 compressor. 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 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 going 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 like moving probably because I was a console gamer. Like I was a 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, right? Like the ability to download free music and then like create cool playlists and like scrubbing your Napster, like your downloaded MP3s, making their titles all great, giving all the ID3 tags and then like tricking out Winamp. That's when I was like, oh, computers are cool. And then somewhat traditional from their land. And then, you know, learned about it in school. I remember one time in high school, there was like 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 like that, know that game, but I liked it as well. Oh yeah, sure. And he made a Secret of Mana webpage. And I remember specifically, he says, watch this dude. And he would hover over the little sprite of the main character. And he turned from stone to like colored when you like on the hover of the mouse. And he's like, I did that. I'm like, that is amazing. I did that. Like, just do it again, do it again. And like, you can put the mouse there again. He's like, yeah, I'm gonna 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. Well, you know, that site probably still exists on NeoCities now, cause didn't somebody take GeoCities and like archive the whole thing and call it something else, NeoCities. It was definitely a GeoCities site, but that was, that planted a seed. And then it was basically like traditional schooling that was like, oh, I'm kind of, but 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 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 than any of us. I mean, but maybe different views on things. I don't know. And where do you land on the passion conversation, the craftsmanship, the what's the third one, the 10X. 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 change log shows. So it's really hard to get somebody to read a 4 ,000 word essay.

  11. SPEAKER_00

    Exactly.

  12. SPEAKER_01

    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. 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 was like, the subtitle is great. I'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. We all want to see the 10X person demise. That's right. You want to see him 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, you know, drop the ball at the one yard line. And the winning move is you just come up with the title first and then you never write the blog post. That's my move. I just title things and then I don't write them. And then you hand the title to chat GPT and say in the style of Jared Santo. Exactly. But I asked Aladdin the question and then I immediately cut him off before he could answer it. Personally, not asking you to represent your old generation, Landon, but you personally, when you hear people talk about passion, specifically, let's just take that one. 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. 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 like dying down. I still think it's like a positive thing. And I think it's something that maybe folks in my generation, whatever that is, I have a lot of, and then they 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 consulting. And it's like, when you get stuck, I was working on some OLM stuff this weekend, Wang Chain, it's like a OLM tool to do some, 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 that 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 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, it gets, 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 AI and I'm on a podcast today and I've done a podcast on AI stuff in the past. And it's just like, 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 was like, I really want to do this thing and learn these things. And I think about if I didn't have passion, would I do it? And the answer is like, heck no. I also feel sheepish about pigeonholing, you have to have passion. And also as a generational thing, it's hard for me to say that's to 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 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 programming related. But to your point, all of our developer tools are incredibly hostile. Postgres as a database is 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 always have it and not have to worry about, is this particular PID in the right folder? 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. Like because so many programmers, like a majority of programmers in the past had, you know, what we call passion, maybe it breaks down to like 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 redounds to our tooling that like you need all of these traits that are not typical just to be able to get your database to run and then people enter the industry expecting this to be a normal profession like, you know, architecture or civil engineering where there's like 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 is like we can't change the fact that a whole bunch of people enter the industry expecting us to be, you know. Better than we are. Accessible and inclusive and we can like do it on a social level but like nothing is from a structural level is 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 the talk about marketing, I mean there's a lot of marketing, you know. Hashtag learn to code. Everybody should be a coder. Coding boot camps. Get into it. And hey, I've taught a coding boot camp and I would teach another one. But in that boot camp, 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 could have fun. 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. 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. And 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. At a certain point, software architecture is not easy. Like 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. You know, 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 them. 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 social level of like, you know, 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 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 RBENV called NodeEnv, Node Envy. And you know, basically it's a version manager for Node. And if you've used RBENV or PyEnv or any of that kind of flavor, they all behave very consistently. They're like 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 quacks just like the other ones. ASDF guys, come on, ASDF for the win.

  13. SPEAKER_00

    And

  14. SPEAKER_01

    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. 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? And more and more we 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, 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 bootcamps and the easiveness. 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, 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. But I think we need, from a numbers game standpoint, we 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 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, 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 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 the one thing I don't want people to take away from what I said, I think Justin feels this way too, even though I chose to be a little bit passionate and obsessive, I don't necessarily feel like 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 solo 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 an hour after school every day, just working on problems. And everybody in my classes, they just got it in the class time. I could not understand the difference between, I think it was Arrays and ArrayList and Java for the life of me. And I frankly was, I would argue I wasn't good at it. I got 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, maybe there's something there. You look like you're going to say something, Justin. A brother from another mother, maybe. I graduated college with a four -year Computer 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 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, suggested that maybe, you know, programming wasn't for me. Oh, dang.

  15. SPEAKER_00

    Which

  16. SPEAKER_01

    as a private school with a high tuition was, you talk about the time to failure, Adam, in terms of good. Yeah, four years is a long time to fail. But, you know, 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, you know, 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 like, 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 to code was a trending topic on, you know, that old site that we might remember called twitter .com. X .com. Future proof it, Justin. Future proof it. Sorry. Gosh, I would tell people. I would tell people entering like, you know, a cocktail parties, 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, that's, you shouldn't tell people that because that will discourage people from entering the industry. I'm like, well, it's a two -prong problem. There's the aggregate problem and the individual problem. The individual problem is like, 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, like 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 in terms of just getting started. I mean, Glitch is really cool. I mean, look what Superbase is doing for Postgres, you know, in many ways, like it's not that there's nobody working on these problems, but like 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. 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 you're called 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 solely every conversation with artificial intelligence, but like, I wonder if as a net change, if chat bots are going to help more people program or going to add to the complexity and to perhaps the time to failure, you know, 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 AI enthusiast at 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 lower the barrier to entry or is it going to ultimately be yet another tool that's hard to use? Sounds like a whole nother podcast. Justin and I talked about this. We shared thoughts. I think it's maybe a little bit of both, or it depends. You know, there's the problem of people getting into programming using ChatDPT, 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, A, you know, maybe they're not learning anything. B, there are other pitfalls in terms of like code maintainability, testability 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 harply 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 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. Cause for me, you know, I'm the curmudgeon in most circles I swim in. But here I could optimistically say, Landon, like if I were to zip back way to that bell tower of a computer lab that I was working from, they had the Java 1 .2 API and a standard lib in like a three ring binder. I would literally go that and reference it. If I had a question or something like 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. And if you rely, come to rely on AI tools, like right now it's chatbots, but I'm sure in the future, these things are gonna 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 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? 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. And so I could just hit like command space and hit tab. This is like a spotlight alternative. 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. It'd 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 where like you can watch three different YouTube videos and 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 four or five hours. And you're like, 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. It's a boon for those kind 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 because I can quickly see that it's correct. I can quickly see when it's wrong. Of course, something so simple as a keyboard shortcut. Well, you just try it. Does it work or not? Oh, great. So like small trivial, administer of you. 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, right? Make it work, make it right, make it fast. We're going to have to stop it, make it work. I mean, how do you make it right? You don't know what right is. And it's like there's a big jump between those two, I think. Many times, even today, hey, we stop it, 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. And it's not make it work and ship

  17. SPEAKER_00

    it.

  18. SPEAKER_01

    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? Bicycle? Everybody's nodding, except for Justin. He's thinking. I'm using the NVIDIA AI gaze correction, 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. ChatGPT 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 a bike with no training wheels. 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. 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. You know, 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, you know, for a while there, if you lean on a LLM or ChatGPT or whatever you manifest it 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. I guess if experience is your statement then is experience 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. But to disagree with myself. To work, yes. It's like it took me time as a software developer to know what right was. And heck, sometimes I'm so wrong about what right is. Like 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. I wanted to resist the training wheels analogy, but then I thought about it more. And 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 is like, you know, just a little bit nerdier than me and had been programming more 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 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 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, you know, an app in one context would look totally different than right for the same app in a different context. And GPT will never have like no computer like basic interface that we can imagine is going to ever have the right context to really understand. So like that part, we just said, I think we need to be clear is like that's an exercise left to the reader. And that you only learn through the experience of a lots of at bats. I'm piggybacking off Justin. I kind of kind of in the same sort of vein kind of pushed 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 in 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 it was to connect to Postgres to do my vector database. So 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 did we fix it? 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 chat GPT. You have to like suffer a fair amount before you can have the whole conceptual model. Otherwise, if anything breaks in the application, chat GPT 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 for the next break, you know, is how I imagine it. I'm going off of the XKCD. You know what I'm talking about. But 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 in Nebraska. That's me. I'm maintaining it. We're all, I think, fitting 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 like, is this something that I want to grit and improve myself or am I just trying to like 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 and 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 and a lot of systems out there that we use every day that exist with that 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 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 their 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 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 a hundred percent on the ball. Yeah. 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 getting there, kind of just thought about struggling through the problem. And they kept giving these answers. And my friend kept going back to fundamentals, concepts, and my friend discovered that the person didn't have the fundamental conceptually trying to figure out, how are you arriving at these answers? There wasn't a ton of conceptualization happening there. And it was like, oh, this person had basically used maybe not ChatGP, but somewhere in their learning, they just did the thing to get to the next thing. 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 like ChatGP has got a whole new set of engineers who's just like, how did you fix that? You know, 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 ChatGP 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. 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 essential complexity versus incidental complexity. And we have to deal as programmers with the aggregate amount of all complexity. But the more incidental complexity that there is, the more that we have to kind of just struggle through. But with AI 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. 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 these targeted questions. 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 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. 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 that's why, for example, like Gary Bernhard's Destroy All Software screencast were so popular 10 years ago, because I'd taken a lot of shortcuts and a lot of people had, and it was a way to kind of give ourselves a remedial education and attention to detail and sweating the small stuff. There's 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. 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, 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. I think that's where I'm standing is like it's a thrust. 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 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. Yeah, so 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. And some of them are completely legitimate and understandable 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 PHP BB went down. Okay. Or if it had a virus, I haven't been 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 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, you know, you're talking about fixes earlier and like you then you named additional tools like super base 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 one of our colleagues, Kathy Colliver, our director of marketing is in Louisville. And I think 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, 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 and 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. They were the phrase AI was used. So, you know, like it's standing on top of this Jenga tower. Oh, yes. My head swimming and just imagine, you know, the screens on the manned space capsule that SpaceX had, 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. 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 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, both this conversation and the more dangerous plane 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 the mainframe that has a camera in front of it that runs like Highland on base to screen scrape it into like a thing that can print off the FAA mandatory or, you know, weather reports doesn't go down again. So you're not stranded on the tarmac like I was in McCarran and Las Vegas during a heatwave because they couldn't print out on those ticker tape dot matrix printers. Yeah, that's probably a sweet hack, though, you know, pretty sweet hack. Yeah, that hack probably got somebody a raise. You know, 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 contextual lens and 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 different ideas, like different things are going to motivate people. And, you know, as human beings, this sounds so cliche. We're going to figure it out sort of thing. I am an optimist. Darn it. Hey, no, that's the upper that we needed. That was the upper that we needed. We're going to land in the final word. It's super easy, barely an inconvenience. Okay. We're going to figure it out in the end, Adam. 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 landed the plane. 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. Thanks, guys. It's been a pleasure. Bye, y 'all. This Changelog and Friends features a Changelog++ bonus. So stick around for more talk of world -class puns. Aaron Tenderlove -Patterson, code reviews, Landon agreeing 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 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, Fasty .com, Fly .io, and typesense .org. And to Brakemaster Cylinder for being our beat freak in residence. Next week on The Changelog, news on Monday, Andreas Klinger from Serenity OS on Wednesday, and Changelog and Friends on Friday. That is all for now, but let's talk again real soon.