An Aberrant Generation of Programmers ![rw-book-cover](https://wsrv.nl/?url=https%3A%2F%2Fcdn.changelog.com%2Fstatic%2Fimages%2Fpodcasts%2Fmaster-original-3922a5ce5ede81d973adc3cd618f7e64.png&w=100&h=100) ## Metadata - Author: [[Changelog Master Feed]] - Full Title: An Aberrant Generation of Programmers - Category: #podcasts - URL: https://share.snipd.com/episode/fbdac95c-1989-48cc-849a-9224c3253286 ## Document Notes ## Highlights - **Unique Enthusiast Programmer Generation** - The so-called "enthusiast programmers" generation may be unique due to growing with simpler, more comprehensible computers. - Subsequent generations face more complex, less introspective devices, affecting their relationship with programming. Transcript: Speaker 2 Justin rolls. 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 scree. 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? Speaker 1 It struck a chord. It started as, so I started a newsletter recently, a personal newsletter because I learned that people don't do RSS anymore. Yeah, I do. And it's based on, okay, so I've got several hundred newsletter subscribers and like a good majority of people using like the kill the newsletter kind of subscription links so they Can get an RSS feed out of it. And it's really fun side tangent. Speaker 2 That entire service exists because somebody wanted the RSS, our newsletter back in the day and we wouldn't do it. And so they created kill the newsletter, which is literally our newsletter. Speaker 1 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 it. I just love the Rube Goldberg machine of your spitting out an email so that one company can go and catch them all and produce an RSS feed. 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 a lot of folks at once and to share each month like a little aspect about myself. And so this post was 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. Speaker 6 Yeah. Speaker 1 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 finish 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 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 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 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 zenials to, you know, like, like, like, like, 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 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 get, 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. Right. 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 Euler 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 kind of get us thinking about like, is there something different about our generation? ([Time 0:05:29](https://share.snipd.com/snip/6b0bf254-c449-467b-81e4-0480ae20128a)) - **Tinkering with PlayStation Portable** - Landon obsessed over modifying his PlayStation Portable, even risking a battery puncture. - This hands-on tinkering exemplifies the deep curiosity driving many programmers. Transcript: Speaker 3 The messiveness 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 playstation portable for those who don't know. A lot of people were sort of jail breaking those, but they called it something different and loading, you know, custom software and Sony would like patch it. 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 hoped 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. ([Time 0:15:00](https://share.snipd.com/snip/eba4403e-f1df-40ee-bcd9-020b13c7fdcd)) - **Programming as Experimentation** - Programming appeals to curious minds experimenting with systems to understand the world. - This experimentation forms a core identity trait for many programmers. Transcript: Speaker 4 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. They'll hurt you, but they have no idea about the world. Right. They don't have any of the experience in 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, you know, side loading, 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 is 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 you're, 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, you know, 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. How do we all push back on the world and experiment with it and it pushed back on us. And sort of like, that's much forms us. As you said before, you kind of resist the idea that you do what you do to find 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 is 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 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 within the last 20, 30 years. ([Time 0:16:40](https://share.snipd.com/snip/c8badaf0-57fc-42af-8a33-6651c838b324)) - **Rapid Growth of Programmer Population** - The number of programmers worldwide roughly doubles every five years, leading to a constant influx of less experienced developers. - This dynamic causes the industry to perpetually operate in a state of relative inexperience. Transcript: Speaker 4 Yeah, the doubling. Speaker 5 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, that's right. Speaker 4 It's an exponential growth. For sure. Speaker 5 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 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. 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. 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 list 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 cookies have 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 ([Time 0:20:16](https://share.snipd.com/snip/66867975-9330-4c0f-b036-c25dc87351dd)) - **Passion Reflects Generational Shift** - The cultural expectation of passion in programming reflects a bygone era where many programmed obsessively outside work. - Shifts in generational demographics have altered workplace norms about engagement and effort in programming. Transcript: Speaker 2 You. You're welcome. Speaker 1 To expand a little bit. So one of the three conflicts that I raised in the post was a kerfuffle that happened on Twitter.com. 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 it was, I think that the people complaining about the word passion as used to describe programmers either in like job postings or as a descriptor, you know, of how somebody sees themselves About their job. Right. You know, Chad Fowler wrote a book called The Passionate Programmer and I'd read that book and chatted with him a bit about it, you know, just a couple years prior. And, you know, I like that I felt passionate about software. And then there was a group of folks on Twitter who, you know, were tended to be younger, tended to be more from the Bay Area where like, I'm sure the cacophonous sort of trilling sound of Like really, really, you know, hustle bro recruiters trying, you know, get people to squeeze every, you know, ounce of energy out of the stone to work over time 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, 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 the 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. 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. And then, you know, you fast forward for years, maybe like shortly after that passionate argument starts to erupt on Twitter, I realize 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 no, it was only, you Know, 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 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 things I assumed as being fixed weren't. And I felt that I think a little bit of, you know, like the crotch of the old man, yell in a 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. ([Time 0:22:45](https://share.snipd.com/snip/24a8cc69-1b7c-4582-9381-dc06d583f0f4)) - **Marketing Shapes Programmer Stereotypes** - The generation described fits certain stereotypes shaped by marketing linking computing to boys, gaming, and advanced skills. - This framing risks excluding others and does not encompass the diversity within programming communities. Transcript: Speaker 1 Question. It's a struggle. Speaker 2 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 the fact that divisive. I'm asking the division. Yeah. Speaker 1 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? ([Time 0:29:33](https://share.snipd.com/snip/09f3b722-56d1-42b3-9dc2-b082f9f2cd04)) - **Landon’s Path to Programming** - Landon found early inspiration in building with Legos and disassembling computers. - His programming passion grew in high school after experimenting with coding and hacking his PSP device. Transcript: Speaker 1 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? Speaker 3 Oh, goodness. No, that'd be an awful way to start. Yeah. So for me, when 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, staying at whoever's taking the picture. Black or red? It was a white computer. What? A white twi- Yeah. Speaker 6 No, it's not a twizzler. Yeah. Twizzler. It was a red twizzler. Yeah. I thought you were at the computer. You're going to say a white twizzler. What is this magic? Okay, good. Speaker 2 Because black twizzlers, I mean, come on. Speaker 3 Yeah. Not good. Not good at all. Speaker 1 I actually like them. Speaker 3 They have the creams to cool ones now and all these cool flavors. Those were pretty good. Oh, man. The kids these days, they have so many different twizzlers. Sorry, keep going. And boom, now they're sold out of dollar general. Yes. But yeah. So it kind of fast forwarded that like, I don't know if any other the same 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, 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 accumulate 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 have 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 a engineering builders 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 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 Lego specifically by onacles. 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 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 actually I think I knew my sophomore year that I wanted to do programming professionally and study that in college or release something With computers. So that's kind of what 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 ([Time 0:32:34](https://share.snipd.com/snip/8d478508-cced-4130-ba54-2abe13713f32)) - **From Gaming to Programming** - Justin's early computer experience mixed gaming and intense fiddling with system settings and software. - This hands-on curiosity led naturally from playing to programming and building web applications. Transcript: Speaker 1 Director and then like, Oh, you can script stuff. And then like, Oh, that. And then that leads to go into 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. How was the gamer? Speaker 2 But I did not have the connection between gaming and like moving probably because I was a console gamer. Like I was in 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, you know, like your downloaded mp3s, making their titles all great, giving All the ID three 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 I know learned about the school. I remember one time in high school, there's 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 you guys like that. Not that game, but I liked it as well. Oh, yeah, sure. 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 he turned from stone to like colored when you like on the hover Of the mouse. Speaker 6 And he's like, I did that. And I'm like, that is amazing. Speaker 2 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 going to be a web developer. I'm like, what's a web developer? Speaker 1 And the answer is somebody who gets season to assist letters from the Square Corporation. Speaker 2 Well, you know, that site probably still exists on Neo cities now because 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. But that was that plan of the 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 ([Time 0:37:36](https://share.snipd.com/snip/50ac77f2-a914-4c1b-9ec3-7c1c0c7dcbb5)) - **Passion Fuels Perseverance** - Passion remains a positive personal driver for many programmers despite some generational discomfort with the term. - Passion helps developers persevere through difficult technical challenges and maintain effort over time. Transcript: Speaker 2 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? Speaker 3 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, 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, 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 set 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 feel. 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 LOM stuff this weekend. Leng chain, it's like a LOM 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 that someone told me, I would 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. Like, I'm willing to work sickening amounts of time. Like, I'm not going to tell you how much I've worked this year. And like Thursday, I'm talking about, yeah, I'm like, I'm on a podcast today and I've done a podcast on AI stuff in the past. It's just like, I've put like 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 like took a class early this year, which was like an actually like 10 hours to 15 hours. I was out on my week. And I was like taking half days from work because 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 pigeon hauling. Like, you have to have passion. You know, and also as like a generational thing. It's like hard for me to say like, that's like divide for me. Like, if that makes sense. ([Time 0:41:40](https://share.snipd.com/snip/9e4b90df-c12f-4b3e-9f74-d29ae4eacfa9)) - **Complex Tools Hinder Inclusion** - Programming tools remain excessively complex and difficult for many new developers to use effectively. - Improving tooling friendliness is crucial for accessibility and industry growth. Transcript: Speaker 1 And so if we zoom out and think a little bit about just like the average team in 2023 and their composition, there are a lot of people who entered the industry. One's 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. Yeah. But to your point, all of our developer tools are incredibly hostile. Postgres is the databases and 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, no, 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 Wants of perseverance and long suffering to push through. Some of it's like obstinants even. Obstinants. Yeah. Absolutely. Stubbornness. Those things might redounce 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. Mm hmm. 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 ([Time 0:44:58](https://share.snipd.com/snip/1aa225cf-0eed-4c61-b9d2-521197abb8c8)) - **Contribute to Better Tooling** - Contribute time improving the friendliness and reliability of popular developer tools to lower barriers. - Fixing sharp edges in tooling helps new programmers succeed and makes the industry more welcoming. Transcript: Speaker 1 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 RBE and V called node Nv. And you know, basically it's a version manager for node. And if you've used RBE and V or PI 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. 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. ([Time 0:49:12](https://share.snipd.com/snip/4679da4d-d370-4def-b6d0-7cf73f64e25a)) - **AI as Programming Training Wheels** - AI tools like ChatGPT act as training wheels useful for beginners to overcome initial learning hurdles. - Overreliance can hinder deeper understanding and mastery needed for quality software development. Transcript: Speaker 3 Sounds like a whole other podcast. Justin and I talked about this, you shit 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 chat TPT 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 hate 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 not out learning anything. 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 pays that and some application and it starts like the next heart bleed 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 PipWalls. 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 TPT when I started. I think it would make it so much harder in some ways. Speaker 1 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, you know, I'm the curmudgeon in most circles I swim in. But here I could optimistically say land and 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 S 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 administration, like it exerted a ton of mental energy, cognitive load. It was just, it wasn't particularly helpful. And if you rely, 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 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 because I was covering the Ruby Kagey 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, you can 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 use 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 dot com. Oh, yeah. Speaker 4 You ultimately, Yaxjave trying to find information or like you could 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 four or five hours and you're like, I, that was work for that day. ([Time 0:58:22](https://share.snipd.com/snip/adaef5b0-90c2-4be1-877b-ecfa75334269)) - **Balance AI Use with Learning** - Use AI tools to solve immediate problems but strive to build deep technical understanding for software longevity. - True expertise requires conceptual knowledge beyond quick fixes from AI or code generation. Transcript: Speaker 3 Piggybacking off Justin. I kind of in kind of in the same sort of thing kind of push back on the chain rules 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 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 do we fix it? I think having that full technical expertise of like the stack, like, what is the database doing here and how is it connected here and what libraries and dependencies, like building That conceptual model for how things work is like something you cannot get from chat to you have to like suffer a fair amount before you can have the whole conceptual model. Otherwise, if anything breaks in the application, chat to PT 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. 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. 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. ([Time 1:07:07](https://share.snipd.com/snip/f29aa1dc-7979-4ce3-9eac-c2ee6fad9c70)) - **Use AI to Reduce Pain, Build Grit** - Manage incidental complexity using AI to reduce friction while building essential technical grit through experience. - Educate developers on when AI aids growth and when deeper learning is necessary for skill development. Transcript: Speaker 1 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 a 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 too, 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. 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, like 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 Had and it was a way to kind of give ourselves a remedial like 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? ([Time 1:12:04](https://share.snipd.com/snip/50a82d8b-d7b3-4d8d-a8ac-ff71b683db80)) - **Embrace Generational Growth Pains** - Accept generational conflicts as growing pains and be optimistic about finding ways to collaborate. - Trust that the programming community will figure out how to work through differences over time. Transcript: Speaker 3 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 cliché. We're going to figure it out sort of thing. I am an optimist, darn it. Speaker 2 Hey, no, that's the upper that we needed. That was the upper that I did. Speaker 4 We're going to land in the final word. It's super easy, barely any convenience. Okay. Speaker 2 We're going to figure it out in the end, Adam. Yeah. ([Time 1:19:39](https://share.snipd.com/snip/4e800519-de8b-4b73-9452-85586c21182f))