WEBVTT

0:00:15.015 --> 0:00:21.647
<v A>Hey everybody, how's it going?

0:00:22.727 --> 0:00:31.459
<v B>Out there? How are you doing, Patrick? I am doing well. I like how you asked a non-existent audience how they're doing.

0:00:34.017 --> 0:00:34.860
<v B>I mean, the

0:00:34.860 --> 0:00:38.400
<v A>Audience exists; they're just not live. Well, they'll be alive when they... Oh, never mind.

0:00:39.200 --> 0:00:53.800
<v B>I hope everyone's doing well. You can email us, even though it's like weeks later. So it's actually the day after Father's Day when we're recording this. So did you do anything yesterday for Father's Day?

0:00:54.680 --> 0:00:59.040
<v A>We did some low-key stuff. I don't know. I don't feel like it needs to be over the top. How about you?

0:01:00.580 --> 0:01:12.860
<v B>Yeah, I mean, pretty much the same. I mean, we just... We kicked the soccer ball with the boys. Just pretty mundane stuff. Like, I don't really do anything too crazy for Father's Day.

0:01:14.960 --> 0:01:18.972
<v A>Well, I feel like we should have had something more interesting to say. No, we're

0:01:18.972 --> 0:03:08.400
<v B>going to jump into getting an entry-level job. So this is something that someone asked on Discord. This comes up very often in our Pouring and Throwdown email. And I get a lot of messages on LinkedIn about this. For whatever reason, LinkedIn is the place where everyone wants to talk. I'll make a post on Twitter and get like 13 views. I don't know why, but LinkedIn is just the place. I guess because we are work-related people talking about work-related stuff. So that makes a lot of sense. So, okay, lots of folks are saying, 'Hey, I'm having a hard time getting an entry-level job.' I have friends who are maybe a generation older than us, and their kids have finished college, and their kids can't get a job. I know folks who have extremely respectable positions at companies in Silicon Valley, and their kids went to very prestigious universities, got Computer Science degrees, sometimes even a Master's degree, and can't get a job. And my first reaction is, well, why can't you get them a job at your company? I mean, you're very distinguished and everything. And obviously, I don't ask that because clearly they have tried that. But it really shows me, and I think everyone, that it's a very tough market. So let's just be frank. Like, it's a really difficult market out there. It's a difficult time to be looking for a job. And so for folks who are just graduating, you should just know that this is a tough time. And so that just recognizing that, I think, is important.

0:03:10.600 --> 0:03:23.100
<v B>And I have a bunch of ideas of suggestions, but Patrick, why don't you give me kind of your raw take on the situation, and then we'll jump into help tips?

0:03:23.980 --> 0:03:40.789
<v A>Yeah, I mean, I think it's always a very nuanced question. So when I get asked this, not on social media, but in real life, you know, what is that? I think that it can be a great many things. So, I mean, the

0:03:42.612 --> 0:05:36.500
<v A>university education systems, you know, do offer a great many degrees that people are asking for related to nominally computers or Computer Science or Computer Programming. Those jobs aren't always 100% aligned with the sort of like specific actual being employed at, you know, a Silicon Valley company or, you know, a major company doing pure sort of software engineering work. And it's not trying to quibble about the words. I just think the background and the education you get and the kind of classes can matter a lot. So if you're learning a lot about how computers at a conceptual level, you know, work and about administering computers, right, then we're talking about something a little bit different. So I get a lot of people reach out. They get towards the end of their education, which is very difficult to help out. But, you know, get to the end of their education. And they've kind of realized this, that, you know, oh, what I want is actually like a programming job, but I didn't really take programming classes, either because I didn't know or because, you know, they were considered too difficult or I wasn't aligned with it. It doesn't, you know, reason doesn't per se matter. So then they're trying to find like the sort of next best thing. And so they're looking at sort of like engineering project manager roles or related sort of like test roles or something that they feel is like the next best thing: SRE, Site Reliability Engineers. They're looking through the, you know, Google response. Now you would say like the AI response to like, what do you do if you want to like work with or adjacent or get into programming, but you don't have a programming degree. And for me, that's really hard because I just don't know. Like I work with those people sometimes, but I don't, I'm not super familiar with their hiring process and what discriminates against, you know, well-qualified and discriminate is wrong word there. Helps you decide.

0:05:37.100 --> 0:05:38.037
<v B>It is the right word. You've

0:05:38.037 --> 0:05:50.940
<v A>been doing too much AI, too much AI work—to determine between, you know, really well-qualified candidates and sort of the average candidate. So I like get that out of the way because I think that is sort of a separate problem.

0:05:51.220 --> 0:05:54.600
<v B>But for people who are trying to do, like I'll say programming,

0:05:55.060 --> 0:06:54.360
<v A>high technical interviews for programming technical positions, then yeah, it becomes sort of the same issue that propped up, you know, a while ago with, you know, for getting into university. Everybody's kind of figured out you need to understand how to code. You need to practice LeetCode style problems. You need to, like everyone got past that hurdle. I think Jason, like when you sort of joined Syncline Valley or when I did, you could still get a significant edge by practicing those style programming because most people didn't do it, didn't want to, or didn't know to do it. But I think that time is gone and most people who are going to get close are going to have already know how to do that stuff. So it becomes what do you do to distinguish yourself? And the thing you said, it's just a really, really, really tight market right now. I mean, we've done this podcast long enough through times thick and thin, I guess. And it's just a very tight market right now. And that makes it really, really hard, especially for entry-level positions.

0:06:56.100 --> 0:07:00.880
<v B>Yeah, that's a great, great synopsis. No, that was awesome. I mean, I think,

0:07:02.720 --> 0:08:17.500
<v B>yeah, let me unpack that. Oh, yeah. So, so the sort of like SRE, IT, cloud management, project management—these are areas that super important, you know, we both work with those folks, but we don't just frankly know that much about, you know, like I've never sat in an SRE interview panel or anything like that. So, so I really couldn't say, also couldn't say much about that. Focusing on the software engineering, you brought up an interesting point. So, so yeah, just to recap, so I was like, I think I was like in 30th place or something on the TopCoder Collegiate Challenge and that meant a lot. I mean, basically, that, like, I could just put that on my resume and leave everything else blank and I could get interviews at all the top companies in 2009, right? So, it was basically like a contest and, basically like a contest and the people who scored high in that contest could, that alone, it was like an SAT type thing and I don't know if we really have that anymore.

0:08:19.140 --> 0:08:43.540
<v A>I think certainly the talent piling into it. I don't keep up with that scene anymore, but you just don't hear about it as much. So, I'm sure people are still out there doing competitive programming and it is still helpful. I mean, I think it's, it's almost seen as a—I mean, ranking could still matter, but it's almost seen as a, okay? And like, yes, yes, we agree you should have done that, okay? And what next?

0:08:44.360 --> 0:10:19.760
<v B>Yeah, like, in my case, you know, what I wanted to do was, you know, do advancements in AI. I didn't really want to be a systems engineer or, you know, make the database at any of these companies faster. That just wasn't my goal, but, but, but it was kind of like an SAT or IQ test type thing. It's like, oh, you got, you know, the bullseye on TopCoder, so you must just be like a good person to be in tech. And there really isn't anything kind of like that, you know, like if you want to, I'm going to pick something different here on purpose, like if you want to really work on like distributed databases, like, I mean, there isn't, there isn't like a thing you can really do, like a TopCoder type thing to really just show everybody. And so, one of my fears is that it will come down to like, where did you go to college? And full disclosure, I went to, you know, a state college that wasn't even the flagship college of my state. I felt like I got a great education, but like, you know, if you're going to go based off prestige, that definitely wouldn't have helped. But I do feel like in lieu, since the other thing about these things like TopCoder and HackerRank and all of that is it's too easy to cheat now with these AI tools, which we're going to talk about in this podcast, but it's just too easy to cheat and so it's kind of broken as a yardstick.

0:10:21.040 --> 0:10:41.320
<v A>Yeah, that's a great point. And I think of the kind of programming, like you mentioned, you can't get training in sort of building a distributed database and the AI assist isn't there, but for those, you know, LeetCode, TopCoder problems, actually the training data sets are already incorporated into a lot of the AI.

0:10:43.560 --> 0:11:27.501
<v B>Yeah, I mean, another thing kind of related, a lot of people are saying they're getting auto-rejected and stuff like that. I feel like the interview process, companies are pushing like return to office, but they're not making the interviews in person. I think they're trying to have it both ways. It's like we're going to interview people over the internet so you don't have to pay for all these plane tickets, but then, you know, if we hire the person we want them to come to our site. And I think what you end up with is a lot of cheating. You know, I think that it's easier to cheat if you're on a Zoom call versus if you're right there with somebody. So, I

0:11:29.222 --> 0:11:38.080
<v B>mean, I'll pose this: Do you think that maybe like really high-skilled engineering is less important than it used to be?

0:11:42.120 --> 0:11:53.826
<v A>I don't think it's less important. I think it's—and when you say auto-rejected, I think you maybe, maybe we jumped it there. I think that was maybe the thing is you,

0:11:56.080 --> 0:13:56.018
<v A>Like right now, how would you tell how many people given big tech company, I don't want to name one because I don't, like one, I think they're all kind of the same. If you were to insert whatever Fortune 500 company based in Silicon Valley, how would you find out how many actual people they are wanting to hire in the next 30 days or the next 60 days? Oh, I'm going to go to their website and I'm going to look at their job posting. I'm going to tell you, that's not, that's uncorrelated. Right. That is not expressed to you their actual desire to bring in X number of candidates on site for a job, you know, interview, a new hire processing in the next 60 days. Those posts stay up as like, and I don't mean it in a negative connotation, as like trawling nets to just look for super, super high quality candidates and then they'll make space. But if you say, hey, I'm okay hiring zero people, but if someone really talented comes along, of course I'll, you know, want to talk to them. That is indistinguishable from I have a desperate desire to hire a hundred new engineers in the next 60 days. But if you, if you think through now, like you're saying that the cheating, but also from company side, the ability to leverage up recruiters to just talk to lots and lots of people and sort of do whatever grading, ranking they want to do and talk to the top few, just looking for, you know, I'm casually just browsing, right? When you go to the store and you're like, I literally just want to walk around and look, it's hard for them to tell the difference between that and like, I have, you know, $10,000 in my pocket and I'm burning to spend it in your store, right? Like from, from an interviewer, interviewees perspective, it's very difficult to tell. And so part of it is that. And I think that those jobs, the desire to hire just isn't there. So really qualified engineers probably don't go through that process. They do occasionally happen. They don't have networks or coming out of a different industry or whatever. But the way I've seen a lot of that happens is you sort of directly already know someone and it

0:13:57.014 --> 0:14:59.029
<v A>Sounds really harsh. Most, it's sort of like that self-realism thing you got to do. Like when you're coming out of college, are you really going to distinguish yourself? Like if the industry is tight and some companies are laying off, you got to look like there are people coming out who are going to be more experienced than you for sure. So if you're all competing for speculative jobs, like a company, it's going to be really hard for you, right? And that's not a criticism of you. It's a state of the market. But the problem, I don't have a good suggestion. Like there's not getting involved with open source, you know, finding something to do. In the meantime, finding some way to continue to hone your craft and build up your resume is sort of the best suggestion I can give. But it's unfortunate that we can't be honest as industry with people and say, 'Look, we're just not really that interested right now. Like you're welcome to apply, but we're really not interested.' There's not an incentive for honesty in that conversation.

0:14:59.029 --> 0:15:52.939
<v B>I mean, you know, that makes a ton of sense. Like, as we said, if they don't have to fly you halfway across the country or the world to do an interview, then they have really no skin in the game either, right? So yeah, that makes a ton of sense. Okay, so I do have a couple of suggestions for people coming out of college. All right. So first of all, and that's why one of the inspirations of this episode, you know, is get on board with the latest tools. So, you know, have the latest tools at your disposal, be adept at them, understand kind of what the limitations are. So, you know, these chat tools, and we'll dedicate a whole show to it right now, but they might suggest something very confidently that is total garbage. Like,

0:15:53.620 --> 0:15:53.822
<v A>Oh.

0:15:54.540 --> 0:17:26.520
<v B>You know, you have this problem. Well, why don't you like write a unit test for the unit test? Here, I wrote one for you. It tests the unit test, and then you still have all the same problems you had before. Like, it didn't actually do anything. So like, you know, as you get adept with these tools, just like any tool, you're going to find where it's good, where it's not good, how it's helping you, how it's not helping, and you'll be kind of ahead. I think one of the challenges, let's say, that Patrick and I have is we're very busy, you know. We, you know, I had to spend all weekend kicking a soccer ball, and then I have a day job, and I'm doing the podcast. And so, so I don't have as much time to, you know, look at what is on the bleeding edge as I would like, right? And as someone who's coming out of college, that's one thing you have is a ton of time to learn all the things they didn't teach you in college because they weren't even invented when you started college four years ago. So, so I would definitely dive into all of that. I think that, you know, with respect to the auto rejection, you know, if you're getting automatically rejected, to Patrick's point, a lot of that is because there really was never a job, right? Just to be honest, right? And so they're looking for 30 years of experience, and like, you're just not going to have that. Or there's, yeah, looking for something incredibly specific that like no one coming out of college actually has, right? And so it's not really a position for entry level, even though it might say so on the description.

0:17:28.620 --> 0:17:29.060
<v B>But,

0:17:30.989 --> 0:17:31.545
<v B>Oh.

0:17:33.300 --> 0:18:16.220
<v B>Yeah, but what you can do is put the right things on your resume to kind of like highlight those specific things that you feel like are in demand. So like, you know, a lot of companies, my guess is, are interested in DevX. Like, if you can make your engineers 100x faster, and they're at, I mean, I made up the 100, but you know, it's like 10x faster, and their engineers are going 1.5x faster in the past two years. Well, and there's like a room for improvement there, and they're going to want to be interested in like who are the people who have all those tools? So like, having like a resume that hits a lot of those bullet points, I think would be really important.

0:18:17.880 --> 0:18:19.780
<v A>Yeah, and I'll say too. I mean, I think

0:18:19.780 --> 0:18:23.976
<v B>In doing that, having a focus to

0:18:23.976 --> 0:20:23.580
<v A>It, so, you know, so they're watching YouTube videos on it and not actually doing it. Sometimes I don't, I've never made a video game; it's on my list, but like, I guess I have very simple ones, but not really. But you sort of see this when I watch on, you know, I'll be running on the treadmill and I'll watch a YouTube video about some game engine or whatever, and people make this comment occasionally, like, 'Oh, there's lots of dabbling,' or people who get started, but actually completing something, you know, it's really difficult. People don't always do it. So, you know, we've alluded to before: game jams, or, you know, sessions where they hurry up and build, you know, some AI tool to demo something a company is sponsoring. I think those can be really good ways. I wouldn't say it's an only thing, but it's a nice add-on, where you learn to not just use a new tool, but—and when Jason and I were talking about this a bit for unrelated thing before the podcast started that we were, I was going through, but like, use something to actually do the full cycle with, sort of not just do the middle part, the interesting part, the, you know, 'Hey, I have the LLM plugged into my editor,' we're going to talk about today, but how do you actually deploy that code? We've talked about that on episodes before. How do I integrate it? How do I make it into a product? How do I use it? Because I think that when you go into those conversations and interviews, when either the market turns around or you finally do get, you know, somebody to actually talk to you, you're going to come across much more confidently as having done the cycle a few times, even if it's in miniature. And so, I would say sort of those kinds of like game jams or just coming up with your own—I hesitate to use the word 'startup.' I think that's sort of like a different path, like making a startup and running it through, but building almost like, like a demo company, if that's a thing, like building something where you do the full set of things and understand what it takes. Think about it, learn it, not for the sole purpose of making money, but for the purpose of teaching yourself more than just the very narrow slice that we were kind of saying that is our focus now for Jason and I, but I think if you want the ability to get in, it's really hard to get really deep on distributed databases by yourself.

0:20:24.000 --> 0:20:31.240
<v A>But that doesn't mean you can't learn about all of the pieces of why a distributed database makes sense or what the various trade-offs would look like.

0:20:32.540 --> 0:20:49.060
<v B>Yep, that makes sense. So, okay, would you know the Bay Area is, I think a great place to start a career. You know, I think if I was starting my career, I would move to the Bay Area, which is exactly what I did, and what Patrick did.

0:20:50.820 --> 0:20:57.420
<v B>So, I think that's still true today. So, question: would you move to the Bay Area before getting a job? Yeah,

0:20:59.240 --> 0:21:03.440
<v A>I maybe this is a hot take, personal opinion, I would not.

0:21:04.140 --> 0:21:04.960
<v B>I would also not.

0:21:05.580 --> 0:21:46.500
<v A>I think there, if you were willing to move, there are probably places, even if you were looking for exposure of those kinds of meetings and fellow like-minded individuals, call some college towns. You know, I think, you know, we talk about places like Austin or other places where, or even, you know, places you could visit, plan to coincide with these events, and sort of it's more useful for your money assuming you're sort of in a lower cost of living than the Bay Area already. Moving to the Bay Area is very, very expensive, and most of the people in the Bay Area are either already there or are going to school there or have a job and aren't really doing that as much anymore. Yeah,

0:21:47.919 --> 0:21:49.699
<v B>Totally agree. I think, you

0:21:50.543 --> 0:21:52.720
<v A>know what you want to do, and and I'm

0:21:52.787 --> 0:22:13.814
<v B>not sure how to do this, but you want to signal to recruiters, you know, that you're willing to relocate. Maybe just literally putting 'willing to relocate' on your resume. Yep. There are a lot of people who are not willing to relocate, and so you and so you and so the recruiter doesn't have to worry about that with you if you put that on your resume. But,

0:22:14.159 --> 0:22:17.813
<v A>but yeah, I think that, you know, there's a lot

0:22:17.999 --> 0:23:26.880
<v B>of posts on social media that Patrick doesn't see about how oh, you know, SF's where the action is. You have to move to SF. And, you know, putting that aside, I think even if you accept the premise, I think going to where the action is without a job is not, not a good idea, to be frank. I think that it's as Patrick said, extremely expensive area, and and you will meet people, but you know, again, a lot of those people might not be hiring. You know, they might be doing their own thing; they might be at big companies, and so they're limited in what kind of influence they have. How much influence can you have on that person in a day or a month? You know, if it's going to take a year to build a relationship, are you really going to spend all the thousands of dollars to live there? Seems like not a wise decision. I feel like, you know, if a company is I think putting 'willing to relocate,' really trying to focus on companies that are going to have you interview in person so they're serious and then ultimately getting relocated with a company would be the way to do that.

0:23:28.060 --> 0:24:53.704
<v A>I agree. I think even if a company says they have options for remote working, and even though you know that may be very appealing or desirable to you if your primary focus is to get a job and like to get started, I do think regardless of what they say there is still preferences, and it sort of comes back to that job. Like there may be a job available that job is almost certain like has a much higher probability of wanting to be in person in whatever location you know that they're looking for with a small outside chance that if there was an exceptional candidate and the thing that moved the needle to hire that candidate was letting them work remote, that there's like an option. So they'll put it in, but that doesn't mean it's an option for you. And I know that sucks. Like there are companies that if a company is a remote-first company, you know this is completely disregard that information, but I think similar to what Jason's saying, I think you can disregard our advice if you have like a strong focus or desire to be in the Bay Area or like you know like if you wanted willing to do extreme things to get like extreme results. Like yeah, of course, you know take your own thing. I think what Jason and I are sort of saying like trying to take the sort of you know within one standard deviation of the normal distribution like do something but don't do the most extreme, most risky thing, so we're trying to sort of strike a balance there in this advice. Yeah, yeah, I think

0:24:53.704 --> 0:26:00.600
<v B>that makes sense. Yeah, I do think that you know for entry-level folks, I think being remote, you know, it's nice. You get to stay you know in wherever you're living, you know, unless you happen to get a job where you're living now, but but I think that the just you know we're all social animals at the end of the day and and I just don't know if psychologically people really kind of handle remote workers and local workers the same way and just really are really treating them like equally. I just think that that's that's just a fact of our nature, and so so if you're looking to get ahead, I think that that you know if you're entry-level and you're looking to get ahead, I think that moving to wherever the company is is probably a good idea. Okay, now Patrick, would you move to like the middle of nowhere? I guess you know yeah, I would. I'm kind of didn't give you a chance to okay, would you move to the middle of nowhere if they offered you a job but you had to to move there?

0:26:01.639 --> 0:26:10.249
<v A>I mean, it sounds really—I don't think your primary focus should be, you know, per se money, but if it was opportunity and for a price, I mean, I think, and

0:26:10.249 --> 0:26:13.371
<v B>Your entry level, you know. You're not Patrick; you're entry level.

0:26:13.371 --> 0:26:46.000
<v A>An entry level, I mean, and assuming you don't have 10 offers, right? Like, yeah, I think having getting a job and getting experience, I think for most folks historically—talking to parents, grandparents, that kind of stuff—the number of jobs they had was a lot lower. The number of places they lived was a lot lower, but personally, even just being mildly flexible, and I know people who were more flexible, has been an advantage. If you're willing to move, if you're willing to change jobs, that there's a balance there, but in general, that makes you, I feel like it's a help.

0:26:46.980 --> 0:27:16.760
<v B>Yeah, yeah, yeah. I'm thinking about this amazing opportunity that I had that was in the UK, and, you know, I had kids, so I wasn't willing to really do that—uproot my whole family and go to the UK. But but but if I didn't have kids, you know, someone else took that opportunity, which is a great one. And so I think if you're fresh out of college, you know, that is an option for you: your location flexibility, I think, is a huge asset.

0:27:19.000 --> 0:27:20.399
<v B>All right. Oh, go ahead.

0:27:20.800 --> 0:27:37.360
<v A>I was gonna say, well, if you haven't tuned off because it's really depressing, I will say also times change, and we've seen things go from, and I'm long term—I'm still bullish. So, I guess hang in there. Like, it sounds cheesy, but yeah, don't—there's not all doom and gloom. Like, things can be tough now, but they can turn around, and just keep at it.

0:27:37.920 --> 0:28:33.380
<v B>Oh, totally. I mean, I'll give my prediction right now, and we'll see if I'm right—someone who listens to this episode five years from now can send me a nasty email. But I think there will be more people building tools for AI than web developers within the next five years. So, I think that there is a massive need, and we're just on the cusp of even recognizing this need, but I think it's enormous. And so, I think that you know things will absolutely bounce back. And actually, I mean, just riffing on that, yeah, I mean, you know maybe the best thing to do right now is to take that job in South Dakota working for the chip factory—I mean, like literally the potato chip factory—as their Software Engineer, you know, just to get you through the next couple of years, give you experience because I do think that things will bounce back in a big way.

0:28:33.380 --> 0:28:36.940
<v A>All right. Well, you heard it here first.

0:28:37.400 --> 0:28:43.880
<v B>All right. So after our longest intro topic ever—news and links—go for it, Pat.

0:28:44.300 --> 0:29:35.700
<v A>Yeah, that was—we're off to be a little speedy here, so I'll be quick. All right, so this one is a recent news but to talk about a broader topic, classic news of the show. Move here, but Mario Kart 64 was fully decompiled. So this is actually an interesting rabbit hole, specifically some of the Zelda games. This has been talking about now: Mario Kart 64, and this is an interesting thing where people attempt to write source code that compiles basically to byte identical ROM. And you say, well, why? I mean, well for one, if you have source code that just happens to compile sort of like a loophole around copyright. So, you can't distribute assets like sprites and things are covered by copyright, but if you write your own unique source code that just happens to compile to the same thing, that opens up some interesting open-source opportunities.

0:29:36.020 --> 0:29:38.680
<v B>It also allows people to get in and sort of change behavior.

0:29:39.160 --> 0:30:34.540
<v A>As well as like do optimization, fix bugs, make small changes. And we're going to talk about a little later; I'll bring this back, but just it opens up an environment around sort of doing things with an existing game. So Mario Kart 64, obviously a well-aged game at this point, but even things like you know sort of running it natively on your computer rather than an emulator of the ROM is opened up by things like having the source code and doing optimizations and just a really fascinating sort of thing. So if you've never looked at it before, we've talked about you know sort of emulation and stuff off and on, but definitely a really kind of cool thing, and there's a whole bunch of them that have been done at this point—sort of some GameCube games and so some N64 games now too. So it's sort of a fascinating thing that I think even me as like I'll call like an enthusiast and it's like just generally didn't know about, but like reading about it, it's definitely pretty cool.

0:30:35.460 --> 0:30:40.500
<v B>Yeah, I mean this code is like very readable compared to what I had imagined it was going to be.

0:30:40.760 --> 0:30:52.860
<v A>Yeah, it's not just like whatever, what is that, IDA or whatever, where you disassemble and sort of like, that's not what they mean here. Even though the wording isn't super clear, it's not just, 'Here's the assembly instructions that this maps do.'

0:30:54.300 --> 0:31:05.500
<v B>Yeah, yeah, I mean all the functions are named with like a semantic name, and a lot of the variables are named correctly. This is really impressive. So someone did this by hand?

0:31:06.360 --> 0:31:30.740
<v A>I think it's a combination of sort of getting those very coarse, like garbage C, C++—I guess probably C—sort of like messed up names and then slowly teasing apart the threads, right? Like, 'Oh, this variable that's named something irrelevant. Let me give a semantic name because now I know it's the velocity of the cart,' or whatever, right? And so I think you slowly, by slowly working through, unpacking the code.

0:31:31.960 --> 0:33:03.906
<v B>Wow, that's amazing. Well, what a work of art. Very cool. Okay, mine is my first news: Q-learning is not yet scalable. And so this is an article I've had like five people send me. It's kind of funny, but I read it a few times. It's a good article. I mean the gist of it is that without spending a lot of time because I do want to get to AI tools—you know, basically, you know Q-learning is what powered AlphaGo and Atari players, a whole bunch of things. You know, it works for some of these environments because there's almost no noise in the state, so like an Atari game, you know, it's very clear what's happening. A Go game is totally deterministic, and so if you were to try to use Q-learning to like drive a car or operate a robot with a camera where it's very noisy, it has all sorts of challenges. And I think this really shows that there's just so much more work that needs to happen in reinforcement learning. I mean, I'll throw my hat into the ring here. I think that the reward function engineering is not really the way to go. So, you know, just to recap, they take Go, for example. You play a game of Go, you win, you get

0:33:03.906 --> 0:33:05.239
<v A>a point at the end of the game.

0:33:05.239 --> 0:34:52.020
<v B>If you lose the game, you get a minus one point. And then the Q-learning tries to take actions that will give you that point. But that is like extremely clean, right? Like it's zero sum. It's perfectly zero sum, and you don't have to do a lot of massaging to that reward to make it work. By contrast, like Atari is more difficult where you get a score. The score is always almost always positive, right? So it's like you always did something, right? But it's like I got a score of a thousand in Breakout. What does that even mean? Is that a good game or is that a bad game? Like we just—I don't know. I mean, I literally don't even know what a score of a thousand is in that game. And so what you have to do is construct a baseline and say like, 'Okay, I got a score of a thousand. That used to be really great, but my AI is better now, and so a thousand is not actually that good.' And so don't do that thing that got you a score of a thousand. Try not to do that next time; do this other thing that got you a score of ten thousand, right? And so you constantly have to keep moving the goal posts, and there's not a good way to do that. And I think that this is like a fundamental, like foundational flaw in reinforcement learning because humans don't work this way. I mean, humans have—so humans have this in a sense where when we first started coding it's like, 'Oh my god, I got a linked list to work!' It's like amazing! Like you go celebrate, right? And now it's like, 'Why did you code a linked list? Why didn't you just use the package?' Like we kind of moved on. But

0:34:52.700 --> 0:35:58.967
<v B>But I think that the way humans go about kind of learning and advancing is they set kind of a goal in their mind's eye. Like you use your really high-level thinking to set a high-level goal that may or may not be attainable, and then you try to attain it. And so this is very different than saying like, 'I just want more points.' So I do feel like the reason it's not scalable is that we're not really kind of solving the right problem. I think that we should have like a really high-level system—maybe an LLM or something like that—say, 'Hey, try to get Mario on this pipe.' And then Mario gets on the pipe, and then the LLM says, 'Okay, try to have Mario jump over this chasm,' versus trying to have this reward function that captures everything. So that's my opinion. I'm sure there's a hundred other opinions. We'll see over the next few years what happens, but it does feel like reinforcement learning could benefit from

0:35:58.967 --> 0:36:03.119
<v A>all this LLM stuff. LLMs have benefited a lot from

0:36:03.119 --> 0:36:05.800
<v B>reinforcement learning, but we haven't seen it go in the other direction as much.

0:36:06.400 --> 0:38:05.860
<v A>Oh, okay. Yeah, I have some thoughts here, but yeah, I think you're right. Let's wait and see. And yeah, move on to the next one completely unrelated. My next news article is a YouTube video actually by 3Blue1Brown. This actually came out a little bit ago about Grover's algorithm, which is sort of a generic quantum algorithm for solving like a complete class of—oh gosh, what did you say? NP-complete problems. And so if traveling salesmen there's a bunch of things work around sort of mapping algorithms to be this NP-complete and how many of them are or most of them all of them are the same fundamental thing. And Grover's algorithm is sort of a way of kind of solving that, and this video explained something that I guess I had missed for a long time. So we covered quantum computers a couple times in the past, several times. People have, 'You guys didn't quite get it right.' Yeah, they were right. I didn't completely understand it. It's a very complex, nuanced topic. This video sort of walks it through and helped me sort of understand. I won't say I've got it now, but I definitely understand that I didn't understand before. So I guess that's step one is knowing that you don't know. Is half the best. Wait, that's not quite right. Anyways, so if you've not seen this, I mean pretty popular YouTuber—so most people, I think Grant is his name anyways—is most people will have seen this, but if you haven't, definitely watch it. I will also say there was a bit missing for me. He released a follow-up video to sort of give sort of like a little bit more explanation of what was sort of a gap and kind of why some of the things he was saying made sense, but actually very illuminating. Also, we've talked about before some of the problems around quantum computers and even understanding what will happen when we have quantum computers and what will or won't

0:38:05.980 --> 0:40:05.040
<v A>sort of happen. And there's a lot of interesting nuance around that, and this video helps sort of explain some of that. Like, 'What do you think this speed-up will be?' And my—you know, there's even a poll at the very beginning, and yeah, I got it wrong. What kind of knew? I was going to get it wrong. So I didn't get it wrong, but that was only because you kind of see a trap; you don't walk into it. Anyways, and so it turns out we all think about Shor's algorithm, which is factoring of prime numbers and how that's a sort of huge speed-up over any traditional method. But that's a sort of unique case. It isn't necessarily true that every computation that for instance is NP-complete will get that level of speed-up. So you know, it's definitely a speed-up but not sort of the same profound as. People who—it's sort of weird because I think most people wouldn't even know about the thing of quantum computers or even like what it is other than just it's a name mapped to a concept. But for people who kind of, 'Oh, I know about computers. What are quantum computers? You know, that next level?' Then there's like two or three more levels of understanding past it. And so if you're in similar boat as me, which is I don't know maybe maybe a fair decent number of people, here's a good way to level up your understanding, and I thought it was well handled and treating sort of the state space of the quantums and the vectors for it as opposed to just the hand-wavy magic qubit. And so I definitely would recommend it. Hopefully folks have seen it already because I thought it it was really interesting. But if you haven't, and this at all vague description of it—I'm trying to like not recite the video because I'll screw it up—and he was very diligent to be very careful, so sorry, pardon the lack of detail, but if I interest you by saying these keywords: quantum computer algorithm NP-complete speed-up missed expectations.

0:40:05.040 --> 0:40:06.100
<v A>Yeah.

0:40:06.200 --> 0:40:38.839
<v B>Nice. All right, so my second one is a product, actually. So there's a company called Orange Pie, I guess making fun, riffing off Raspberry Pi, although it doesn't work, right? Because Raspberry Pi is a pie, and it's also a computer, but Orange Pie—it's like they didn't quite get it. Like there isn't a—they should have called it Pumpkin Pie, right? Because there is no orange pie that you can eat. I literally never put that much thought into it.

0:40:39.480 --> 0:40:42.100
<v A>Is there a Raspberry Pi? I've never had Raspberry Pie.

0:40:42.240 --> 0:40:44.680
<v B>You've never? Oh, Raspberry Pie is delicious, I think.

0:40:44.700 --> 0:40:47.699
<v A>Is it a legit thing? I know a blueberry pie, I'm pretty sure.

0:40:48.680 --> 0:42:22.820
<v B>Yeah, okay, look it up. Look it up, but there is definitely no Orange Pie. That sounds disgusting, like baked bread and then just orange rinds. I don't know, it seems gross. Okay, Orange Pie has a RISC-V single board computer, so it looks exactly like a Raspberry Pi. I'm probably gonna pick one up just for fun, you know? It has the same form factor. It has like some AI chip, which—I don't know, we're too early for that—but you know, it has Ethernet ports, it has HDMI, and all that good stuff, just like Raspberry Pi, but it runs RISC-V instead of ARM. And so, you know, in one sense, that makes things a lot more difficult. Like I probably wouldn't want to run an emulator. Like, you know, I wouldn't want to use this for video games because, you know, the ARM core is like, is so central to a lot of the video game emulators and all that. But—you know, it'd be fun as a toy to play around with, and maybe it would do video transcoding well, so you're on a Plex server on it or something. But what I took away from reading this in my news is that, you know, RISC-V is here. I mean, you can buy RISC-V SBC today, and it'll come to your house in a couple of days. That's pretty amazing. I mean, I feel like it's really here now, and I hope that a lot of developers, you know, jump on this, and, you know, the ecosystem just continues to evolve.

0:42:25.040 --> 0:42:29.033
<v A>Oh, this is cool! I hadn't seen this before. Yeah, I—I'm

0:42:29.033 --> 0:42:32.280
<v B>excited. I hope they continue to flesh this out.

0:42:32.380 --> 0:42:34.433
<v A>It also, yeah, it says it's optimized

0:42:34.551 --> 0:42:36.660
<v B>for DeepSeq R1 distillation models, but

0:42:38.060 --> 0:42:44.860
<v A>I don't know. I have a hard time exactly understanding what you would do with such an accelerator. Like,

0:42:45.149 --> 0:42:46.144
<v B>it doesn't have a ton.

0:42:46.144 --> 0:42:48.675
<v A>of RAM, so, okay, interesting. Yeah.

0:42:48.920 --> 0:42:55.759
<v B>I mean, it's optimized in a sense that, like, you get one token per second, so it only takes you, like, 10 minutes to get your answer, as opposed to an hour, right?

0:42:58.600 --> 0:43:00.032
<v A>Okay, all right. I'm just

0:43:00.032 --> 0:43:01.140
<v B>gonna leave this one here, okay?

0:43:01.340 --> 0:43:14.040
<v A>That's cool though. Yeah, yeah, I'm excited. I think more competition in this space is gonna be good, especially with the sort of more open-source nature and reduced licensing fees for the instructions that architecture. I think is gonna be pretty cool.

0:43:16.418 --> 0:44:11.532
<v A>All right, we'll get the show. All right, mine is The Will of the Many, which is a newer series by James Islington. I think I've mentioned a previous series of his before on the show, but I started on this one, and I was finally back into reading. I will say, I have fallen a little bit back off, so I haven't finished it yet, but I got a decent way into this book, which starts off on sort of a classic trope that everyone hears about, you know? Some young child ends up getting enrolled in a school, and, you know, anyways. But I'm told that it's a really good twist on the thing, and I really liked the previous books by James Islington, so I was gonna do—I actually pulled up the back cover just to read the back cover summary, and I was like, 'That's kind of silly. People can do that on their own rather than just listen to my amazing voice; read it to them. They can maybe use one of those text-to-audio things if they want.'

0:44:11.532 --> 0:44:12.080
<v B>To. There you go.

0:44:12.720 --> 0:44:52.572
<v A>But anyways, I definitely sort of like the concept here so far. That's interesting, which I don't know, so probably wrong, but people do what's called seeding their will. So 'will' is like your sort of mental, physical energy, and you like give a portion into this hierarchy where people kind of continue to collect them up into these organizational structures, and so you sort of join into this hierarchy as part of like your political and civil life, and you're, you know, seeding a portion of your individual autonomy into this to become a little bit weaker yourself and sort of join society. And this. So it's

0:44:52.572 --> 0:44:55.860
<v B>like a, it's like a mental, mental, multi-level marketing.

0:44:57.500 --> 0:45:23.723
<v A>I didn't think about it that way, but yeah, at the top someone has some knives that are so incredibly sharp. Yeah, right. That's amazing. So, but yeah, and obviously even just saying that, you can start to think about problems, and I'm really hopeful this book will explore some of the interesting problems that come from that and corruption and so on.

0:45:24.600 --> 0:45:27.925
<v B>Wow, that sounds awesome. I'm gonna have to give that a read. I wish.

0:45:27.925 --> 0:45:32.359
<v A>I was creative enough to come up with these concepts, but instead, I just read.

0:45:32.359 --> 0:47:32.340
<v B>My book of this show is The Intelligence Trap, which—I've had a couple of friends who have read this. I don't remember who recommended it to me, but it was in my—I keep a list of books whenever someone recommends a book to me. I pop this app open and add it to the list, and this is on the list, and so I picked it up. It's interesting. I mean, the premise is, you know, there are intelligent people who do dumb things sometimes, like as if there are things that are anti-correlated with intelligence that you wouldn't expect. So, for example, more intelligent people tend to be more gullible. That might not be obvious, and it lists a bunch of things. And the latter half of the book is how to not fall into these traps. So it's interesting that the audience for this book are either intelligent people or people who think they're intelligent. And so the book kind of affirms your intelligence as a reader for reading the book, and then but also tells you that you're intelligent, but you have these weaknesses because you're so intelligent. So it really kind of fans you a little bit, and then and then talks about ways to get around it. For example, they have this thing called—oh, I'll have to look it up—but like the RQ test, and I forgot for the life of me what the R stands for, but it's meant to complement the IQ test, but it's for kind of common sense. Some of these things that they feel like, oh, the Readiness Quotient Test assesses an individual's preparedness for various situations, including emergencies and challenges. So I do feel like,

0:47:32.640 --> 0:49:32.560
<v B>I kind of fell into the intelligence trap, where—exactly. So, I fell into the intelligence trap, but you know, given that, you and I have to read—well, we're doing shows a little less frequently now, but I'd like to read a book every two weeks. So I'm not massively invested in any one book, but I don't feel like it was a waste of time. There are some interesting tidbits there, but I do feel like it was phenomenally pretentious. You know, like the overall kind of atmosphere of the book is: you're so smart. Here's other—like super geniuses are going to talk about—like Nobel Prize winners and stuff, and dumb things that they've done, and here's how you could not be dumb in the same way that they're dumb despite being so incredibly smart. That's kind of like the way I felt like the book was speaking to me, which is not a way I really like to be spoken to. So I think that there were some interesting parts. It's like here's another part of the book; they talk about some guy who was like a physicist at CERN but he basically got catfished into going to Brazil to meet a model who didn't actually exist. And then when he got to the hotel room, there was a note saying, 'Hey, sorry, I have to do a photo shoot,' but and then he got an email from the model saying, 'Hey, I left my bag in the hotel room. I'm sorry, I lost you because of the photo shoot. Let's go to Florida or someplace in America and let's meet up over there. Could you bring my clothes with me?' And so this guy ends up bringing a whole suitcase full of illicit drugs to the US where he gets caught by Border Patrol.

0:49:33.300 --> 0:50:11.526
<v B>And he has to kind of explain this whole story about how he got tricked. So you know, this is one example of—basically they, in my opinion, they cherry-picked cases where incredibly smart people did really dumb things. You know, and then they try to also do broad things, but they don't really connect them. For example, at no point did the book say more intelligent people are more likely to be catfished, you know, like tricked by fake identities because that's probably not true, right? That correlation is probably not there, but they found one guy, you

0:50:11.526 --> 0:50:47.600
<v A>know, that's what I was trying to figure out. Is like what is the probability that you're very intelligent given that you were catfished? You know, like I don't—it doesn't sound like it's trying to draw that conclusion. It feels like you can get scammed no matter what and don't think yourself too intelligent. So what is the what is like, you know, if I treat it like an RPG, if I buy the book, does it increase my intelligence by 10? Like if I'm gullible enough to buy the book, I want to be gullible enough to buy the book because it means I'm more intelligent. Is that the is that the trade here?

0:50:47.880 --> 0:52:22.560
<v B>Here's what I think the book is doing to its readers: you know, all of us have friends who are smart and either do or say dumb things, right? We're smart, and we do or say dumb things all the time, right? And so our friends see us do and say dumb things. We see our friends say dumb things. And then there's people who are like just mortal enemies with other smart people, and so the question inevitably comes up: is like if this person is so smart and so rational, how can they not have my opinions on whatever? And so this book is trying to give people an out. You know, instead of saying, 'Well, there's—this is a really complex question. There's a handful of right answers.' Or not, right? Isn't the right word, but there's like a handful of strategies, and this person picked this strategy, you picked that strategy, but neither of you are really entrapped; you just pick different strategies. Instead of going that route, it kind of creates this false dichotomy where where it says oh, the people who don't agree with you they're just trapped. They're trapped by this like thing that only affects smart people and makes them dumb but only in this way. And so it kind of allows you to escape having to face the fact that there are like just complex situations that don't really have any one right answer. I think that's kind of what's going on. Maybe I'm being too cynical.

0:52:22.560 --> 0:52:52.969
<v A>No, I hear you. I think there's this thing interestingly where most people walk around without a true good assessment of the people around them. Like I know people who—I'm not too many, like I would just say are not particularly intellectual or you know, you may call them dumb or whatever. I don't think it holds the same. Yeah, other podcasters, like I probably want to, but like he's probably talking about me. He's the only one on the show, so no.

0:52:53.100 --> 0:52:55.040
<v B>I'm just—no, I'm saying all the other shows.

0:52:55.160 --> 0:54:35.600
<v A>Oh, oh, oh. Okay, I got it. Anyways, yeah, I mean, I think people don't walk around with a good assessment. I think people just—yeah, do these things, but I know I will say like you got me thinking. There's just something we talk about at some point where I've noticed part of leveling up at work is in a way that's fair and not make you a bad person having an actual good assessment of who around you knows what's going on, who around you is good at their job, and who around you isn't. What I realized is a lot of people go through their career without thinking about this. They just sort of like assume everyone else is at their same level or is really, really good. And I don't think that's a personally, I don't really think that's a strength. I think like it's you can decide whether or not to take action on that, but like understanding and being attentive on, you know, GitHub, you know pull requests or whatever you want to look at as like your sort of, but like understanding who really knows what's going on, who's really—you know a mover, and who's a—you know it's not a playing politics. It's a way for you. And I think the same is true in your sort of day-to-day like figuring out when you go into a, you know business and like who are the people who actually understand what's going on and is the person you're dealing with not understanding? And it's better to just roll the dice and ask for someone else because, you know, I go in often, you know, to the bank, and like I need something mildly complicated. At some point you just got to realize, like whoa, the person I'm talking to isn't understanding me. I just need to ask for someone else. Like I need to just—and it's not a being mean thing. It's just there's a communication gap here. We just need to resolve it.

0:54:36.419 --> 0:54:54.420
<v B>Wow, yeah, you're blowing my mind right now. I mean, I have to admit I've never done this. I mean, I've never—maybe I'm just too inside my own head or something, but at work, I generally ignore—I mean, other than when I'm doing performance reviews and all of that, but like let's talk. Let's say like my peers, for example.

0:54:56.180 --> 0:55:04.960
<v B>Until it's time to do a performance review, I kind of just assume that everyone around me is doing whatever they're doing, but it's a good point. I mean, yeah, it really.

0:55:05.220 --> 0:55:07.759
<v A>Statistically like super improbable.

0:55:08.160 --> 0:55:14.432
<v B>Yeah, yeah, you're blowing my mind. I'll really—I'm gonna have to take some time and really think about that. I'm sorry. Wow.

0:55:16.299 --> 0:55:19.360
<v B>Yeah, I—I do feel like, uh,

0:55:20.940 --> 0:55:34.780
<v B>Sometimes if a project isn't going very well, and I just feel like there's not a future in it, it's easier to just kind of put it on the back burner, yeah, versus trying to save everything. Like, some things aren't worth saving.

0:55:36.120 --> 0:55:38.060
<v A>Ooh, okay, that cuts deep.

0:55:38.360 --> 0:56:22.420
<v B>But programming throwdown is worth saving, which is why you should subscribe to us on Patreon. We don't run ads. You know, every time I start an episode, Zencaster is like, 'Hey, you have all these listeners. Want to insert dynamic ads? You could be making this much money.' And I—I clicked the no button because we did the ads thing for a while. I didn't like it; I just didn't like the way it made me feel. And so, you know, we really, the show really relies on you folks. We don't make any money from the show. Whatever is left over, we give it to various kinds of charities, or we do giveaways, or stuff like that. So it's really just a contribution to our community here, and we thank you for that.

0:56:22.420 --> 0:57:09.500
<v A>Thank you everyone. All right, we'll try to speed up the train here. Tool of the show: mine is a game, not surprising, just released, Pokémon Odyssey. Now, before you go look for this on the Switch 2, um, this is a ROM hack of a Game Boy Advance. And so, okay, this is my segue to talk about ROM hacks. I got into this recently. I played a ROM hack called Pokémon Unbound, which is a quality-of-life improvement and a new story on an existing Game Boy Advance Pokémon game. I—we were talking about, I talked about Pokémon, I think last time, and about the random number generator. Anyways, not gonna rehash that. There's some people really into it. I think you mentioned is Wolfie NGC or something on YouTube who does like competitive Pokémon? Oh yeah.

0:57:09.839 --> 0:57:13.975
<v B>So I got into that. Like, spent—it's not good. I still

0:57:13.975 --> 0:57:21.720
<v A>Haven't played it yet, but I do watch it occasionally. Very fascinating. I realized I just don't know anything about quantum mechanics or Pokémon, anyways.

0:57:24.940 --> 0:59:14.000
<v A>Just gonna keep moving on. Anyways, Pokémon Odyssey came out—super fascinating retelling of the story. Most of the battles are duels, which is the tie-in to competitive Pokémon, is often played as two Pokémon versus two Pokémon because you end up with a much more complex dynamic rather than just the normal sort of non-transitive rock, paper, scissors of a 1v1 battle. And so you get two Pokémon on both sides, more interesting decisions, strategies. So this game uses a 2v2 format for most of the battles. It's a more dungeon crawler sort of oriented game than the, you know, go to the gyms and fight the gym leaders. I'm really looking forward to playing this. It has been an early release up till now, but they sort of declared it as complete. And we talked about decompilation earlier, but I didn't know until mildly recently about this sort of whole thing about ROM hacks, and now I've learned there's a bunch of ones for Mega Man, there's some here now for Pokémon, and other games where people go in and either like add future generations of Pokémon to old games or make changes that take away frustration. Or there's a whole video game thing around speed running or live streaming playing these games. And so sometimes they make changes to make it harder. Like the base Pokémon game isn't particularly hard, so they'll do things to make it more challenging, allow the trainers to have better AI or better items or level, you know, their Pokémon to match yours, so you can't just grind away in the bushes outside and then come in and fight, you know. Like they'll always sort of have the same level as you, which means you have to rely more on strategy than on just, you know, overpowering. So a bunch of things related to that all falling under this category of ROM hacks, and the way it works is you need to have the original ROM, just leave that, and then you get basically like a diff file that you apply onto that, which makes

0:59:14.100 --> 0:59:15.180
<v B>you know, all of these changes.

0:59:15.399 --> 0:59:32.400
<v A>But it's super interesting because it still needs to fit within the sort of parameters, specs, engine abilities of the original games and the original, you know system. So super fascinating community I just wasn't aware of, and this thing looks super cool watching some videos on it. Definitely looking forward to trying this one out.

0:59:32.740 --> 0:59:45.200
<v B>Very cool. Yeah, I beat Final Fantasy Tactics 1.3, which is the name of a ROM hack for Final Fantasy Tactics. It made the game way, way, way harder.

0:59:45.520 --> 0:59:46.200
<v A>Oh no, I'm out.

0:59:46.200 --> 0:59:55.980
<v B>There's also a ROM hack for Mega Man that makes it beatable by mortals, but,

0:59:58.299 --> 1:01:25.419
<v B>Yeah, very cool. Yeah, ROM hacks are awesome. I'll have to check this one out. My tool to show is also a game. You know, we didn't want to have actual tools when the show is about tools, so my tool is actually a category of games. If you have a Netflix subscription, you can play all the games that are in that link for free, and they're all full games. In fact, they purposely don't have microtransactions because Netflix doesn't want to deal with what if you put $30 of microtransactions in a game and then cancel your Netflix membership? So Netflix doesn't want to deal with that problem. So the games have zero microtransactions, zero ads; they're all totally free. The catch is, you know, every day it checks to make sure you still have a Netflix subscription, and if you don't, then it won't let you into the app. And because of that, there's some challenges around airplane mode and stuff. So I think maybe it's more than every day; maybe it's every month or so. So you'd have to like open the app right as you're boarding the airplane, make sure that it knows you have a Netflix subscription, that you're good to go. But there's a bunch of amazing games. You know, I was playing with my younger son Monument Valley, the whole series, the trilogy is free if you have a Netflix subscription. So check that out. There's equivalent link to all the iOS apps, but I linked to all the Android ones. I'm sure people can find it. Yeah.

1:01:25.759 --> 1:01:31.040
<v A>All right, time for our topic: AI-assisted coding. Well, we asked the AI—no, I'm just kidding.

1:01:31.259 --> 1:01:42.459
<v B>This is an AI. We've been duping you the whole time. Okay, so AI-assisted coding. Patrick, do you use AI-assisted coding right now?

1:01:42.899 --> 1:01:46.740
<v A>I have recently gotten on this train. So I have feelings.

1:01:47.859 --> 1:03:47.000
<v B>Okay, I've been using it for about maybe a year or so, but I'm using it a lot more now than I was before, so it's been kind of ramping up. So I'll jump into why, why to do this. Right off the bat, I mean if you've been listening to this episode since the beginning, you know we talked about this looks good for hiring managers to know that like you're on the latest tech, and I mean that's a little bit cynical, a little bit shallow, but it's still important, especially you know given all the stuff we talked about. Moving on from that, you know the practical reasons are, you know, it speeds up development. You know, I do feel like I am coding faster when I'm using these tools. You know, I felt that way even going back to autocomplete and Visual Studio, you know four or whatever, you know when we were in college or even high school, and you could just press Tab sometimes and it would complete a word for you. So this is just that, but better. And so that makes you faster. Another thing that I've noticed, which I didn't expect, is it catches errors. For example, I had a situation where, you know, I wasn't like the scope wasn't. So in Python, you can't actually scope variables like in C, you know, or C++. You could put brackets, right, and then say int i, and as soon as you close the bracket, that int i is like gone, right? In Python, you can't do that. So I had a variable that was kind of out of scope, but I was copy-pasting like a block of code, and so when I pasted it, I didn't paste—I didn't update that variable correctly, and so I was using basically a variable that had the wrong name.

1:03:47.800 --> 1:04:19.640
<v B>And the tool actually said, 'Hey, you should change this name to this.' And I was like, oh yeah, you're totally right. I need to do that. So that's an example where it's not even a speed thing. I would have just missed that, ran it, got some error, and had to figure it out. And then I'll put a third thing here in the practical section, which is you know writing code that is just tedious, that just doesn't feel good to write, like maybe scaffolding for unit tests or things like that.

1:04:20.040 --> 1:04:21.604
<v A>that just kind of drains

1:04:21.604 --> 1:04:28.680
<v B>a bit of your energy. So those I think are the three big things. Are there any other things you think of for why to use the tools?

1:04:29.320 --> 1:04:51.102
<v A>No, but I wanted to point out something that I guess I'll make more explicit that I think you did a little bit implicit, which is when we say this topic for I'll say sort of no-code people. There's the, you know, I go to Gemini and ask in the canvas for a web app that does what is the one that was doing? A rotating octagon with particles in it. I

1:04:51.102 --> 1:04:52.280
<v B>see. Oh yeah, right. Yeah.

1:04:52.400 --> 1:06:45.987
<v A>and ask it to generate code, right? And these are people who aren't fundamentally coders, and I have—I don't think we're talking about that, but there's a scale from there. And then on the other end of the scale, I'll arbitrarily didn't think about it too deeply, put the thing that I think we're going to talk about in a second, which is sort of like the tab completion. And so for people in the space that we're talking about, to me it's—that's a whole gradient from I give English text and I get code back, you know, and then on the other end, like I'm already writing code and I just need you to do like a better autocomplete or a better, you know, fill in. And I will say that, you know internally when we started doing stuff people were very, very pessimistic. You know, tried stuff like a year ago, like you're saying it was no good, we didn't, you know, do it. But now, even just really subtly if we think about it in terms of speed of writing code, the tab completion was shocking. I turned it back on for the first time in a long time. I used CLion, IntelliJ had did an update, and they were saying, 'Oh, you know, we added some better AI-assisted, you know, tab completion local, not cloud.' We're going to talk about that in a minute. And even just turning that on was like a game changer. Like instead of just tab completing the name of the class I was doing, it would know like, 'Oh, I want to do a range evaluation of this array,' and so it would like go ahead and it knew the objects in the array; it knew like what to do. It opened the print brace for me and put the closing brace. Like, it basically completed the block, and it was probably like 80% correct, but because it's typing so much, it was still worth it even to just fix the small issues because I knew what I was doing. And so for me, it's thinking about that scale, like what can you get today? Is it a 10x improvement? Yeah, probably not, but it's certainly not a zero or a sort of one x multiplier. You know, a zero.

1:06:45.987 --> 1:07:10.945
<v A>Improvement? It's somewhere in that scale. And for you, it's finding where's the right spot and what task maybe is at a different level. And so, I think just calling out that conversation—when we talk about it for programmers, people already in the field, already doing the work—how do you get faster? Not how do you get the fastest? I'm just saying, can you find a way to go a little faster than you do today. Yeah.

1:07:12.180 --> 1:09:07.568
<v B>I mean, oh man, I'm so glad you brought this up. This should be a whole section, but basically, I want to take a moment to throw shade on non-programmers like using this to code. This is a terrible idea, right? I mean, I think—I think that—and you, it pains me to say this because I remember, and you probably remember this too, or maybe you had less of this because you actually have this depth, but like, I don't have depth when it comes to going down the stack, right? Like, I've never written C. I've looked at it a little bit. I've definitely never done like my own compiler or anything like that. Like, if anything, like, I've gone up the stack or I do more abstract, mathy stuff, right? And so, you know, I would see people say like, oh, well, if you don't know what the compiler is doing, then you know you'll be screwed. You know, if your program has an issue, or oh, if like, if you don't know how to use GDB, then like eventually, like Python will have some really low-level issue and you won't know how to fix it. And I've always, like, and that's basically turned out to not really be true, honestly. And so now, being the person saying if you don't know how to code—you know, you're like just talking to ChatGPT to build your app—is not going to work, like, I feel like a hypocrite, but I really, I really do believe it in this case. I think that this idea that like English will be the next programming language again, like, may be true a very long time from now, not really practically useful to think that way. I really do think that you should learn how to code and then use these tools versus the other way around. I think the tools will probably, you know, teach you maybe patterns that are odd. You'd be better off building your own style. So,

1:09:09.360 --> 1:09:26.860
<v B>so that, that's that, yeah, and the rest of this is all geared towards programmers, who already know how to code, but, but, yeah, so I would explicitly not put in the why category, because you don't know how to code, that is not a good reason to use these tools, in my opinion,

1:09:27.760 --> 1:11:10.320
<v A>Yeah, so at the well, I guess we can start there maybe and then go down just to kind of make a structured way to get through it. So if we start at the go to your favorite chat agent and ask it to just generate code with a simple, you know, OpenAI ChatGPT Gemini level query—you know, I want an app that is Flappy Bird, you know, maybe that one's actually in the training data, so maybe it actually does reasonable. But if you say, you know, I want high-level thing, you know, I think that's the call it, the sort of chat interface. And I think to Jason's point, I'm skeptical that will kind of ever work. And right now, for sure, I think it doesn't work that well in my opinion. I'll just sort of make it up is if you take it one level down from there, you get to sort of—I guess people are calling that like the agentic sort of interaction. And the way that seems to work, or at least the way I've been using that, and then, and then, you know, maybe maybe you can kind of take it from there is that for the agentic one, you're sort of working together to maybe say like let's define an outline, like a plan of attack, a software description document, or, you know, a list of things to sort of say we're going to do step A, then step B, then step C. To your point, you're not you are writing English, but you're writing a requirements document. And then you're sort of going back and asking, let's do step one, let's test it, let's do step two. Let's I have still not had personally good success with this. It is definitely better than, you know, just enter a chat, but I there are tools developing around it. I see promise here, but today, I don't get a lot of benefit from trying to do things this way.

1:11:10.320 --> 1:12:06.680
<v B>Yeah, another reason why. So, you know, okay, I think that you should know how to code, but for example, I don't have a lot of experience with Go, the programming language Go. And I was editing a Go file and I needed to do something pretty basic and I can't remember exactly what it was, but let's just say I needed to append to an array, very basic. And so I just selected a block of code and I said, hey, you know, after this code, can you append this item to this array? Which like if I knew Go, it would take me like a second, you know, and it said it took me a minute. But, you know, I kind of I'm kind of learning the language as I go. So I think for like specific things like that, it can work, but but I think yeah, it's very different from like 'build me a website' kind of query.

1:12:07.260 --> 1:12:09.260
<v A>For the example you have, I'll

1:12:09.639 --> 1:12:10.290
<v B>you know, I think

1:12:11.354 --> 1:14:08.460
<v A>it is helpful for people who aren't doing it. If you're already doing it—maybe you already know—but like the example you're giving is actually really useful because it's really hard to find examples of what works. So, like you said, taking code, highlighting it, and saying, 'Hey, I want to like add something new.' Works. I'll say the example I did that is probably among the most sophisticated that surprised me—that it straight up just worked the first time and was very effective—is we had some sort of like test code that I needed a topological traversal through something. And so I was just doing a depth-first search, but then I wanted to run it on a data on a data set that was a lot bigger. And so the depth-first search was not working. It wasn't efficient enough, and I needed Dijkstra. You write Dijkstra all the time. I know how to write Dijkstra. I know what it's supposed to look like. It'll take me what, 15, 20 minutes, you know, to write it for my data set to switch it over, test out probably. You know, C++ has some weird thing around priority queues. I can never remember, so I'll have to go look up. It isn't going to be instantaneous, but it isn't going to be a whole day either. I highlighted my if I had asked it, I don't think it would have done well, but I highlighted the depth-first one, which is very fast to write, and it was able to see the API I wanted, the structures, the calling—like all of the right moving pieces were there, just like in your example. And it got the correct priority queue, the sorting custom sorting function for my structure. All the calls were correct, no hallucination. It literally worked the first time. It was exactly what I needed, and you know whatever, it took 60 seconds for it to code it up, and then I could skim it and tell that it was generally right and then had an easy way to test it because I already had the test harness done. And I would say that's the one that blew me away as like sort of the most sophisticated personal experience I had sort of just asking for something and getting it right, and it falls in line with what you're saying—you're highlighting something that has most of the context you want in a compact description, and you're asking for a variation on it.

1:14:09.380 --> 1:14:48.180
<v B>Yeah, another thing I've done in that vein that works really well is highlighting a block of code and saying, 'I want this to be its own function.' It does really good because that's actually hard for a person because you have to go and remember the types, like assuming you're strongly typing things or you know using type hints. You have to go and remember the types of all these. You have to first know like what local variables is this block of code using and not using create the function, add those variables, and like usually, like the way I would do it is I create a function with no arguments, paste my code in, and then see like where the red underscores are and say, 'Okay, let me start adding these.'

1:14:48.600 --> 1:14:50.920
<v A>Yeah, and so it's like let's just let the AI do.

1:14:50.980 --> 1:15:19.719
<v B>So the AI is awesome at that. And okay, as far as like you know bigger things, I have asked the AI to like you know write a unit test from scratch and it seems to do a decent job. I would say the actual test was not very good, you know. It's like they, you know, the sentinel values they chose, and you know, they didn't test like all the edge cases, but they got kind of the scaffold up and I was able to edit it after that.

1:15:21.160 --> 1:17:07.860
<v A>So I will say I think and then you know this is obviously limited to now. And then maybe we can talk more about some of the tools which I think will evolve as the sort of underlying LLMs evolve and stuff. But the thing that bumps up against—it may be obvious to people but wasn't intuitive to me, I guess like I kind of know it at a conceptual level but not how it works in practice—but the examples you're saying, the examples I'm saying, all share that more or less you can take a whole file or a big portion of a file and have enough information plus knowledge of the standard language to write what you're wanting, right? So a unit test is a known concept. How to write a unit test harness in you know whatever Go or C++ is known in the training data that the model was tuned on, and then giving the context around your function call that you're refactoring or your thing—that's all known. And so what we're staying under here is the context length limit. What doesn't work or hasn't worked for me is anytime you start asking a more wide-ranging question in a big code base and say, 'Hey, can you refactor all instances where this function does this thing and I want it to do that instead?' And the reason it falls off a cliff is even because it sounds the same as 'highlight this code and move it to a function' is it doesn't sort of intuitively do the mapping yet of class definitions and all of this stuff. And so then it can't fit it in its context. So it literally doesn't know about it because it's not in its training data, and it's not in its context window. Therefore it just doesn't exist, and so it ends up generating fake places. It's not sure where it's called, and it sort of goes off the rails, and you end up having to revert back, which is a big tip—revert back all the code changes it does because it just makes a mess.

1:17:09.200 --> 1:17:17.280
<v B>Yeah, that's a great call out. Like, yeah, if you're going to do anything big, definitely git commit first so that you can easily undo it.

1:17:20.200 --> 1:17:49.080
<v B>Okay, so we talked about different things we've done with it, why you should learn this. If you're not already, we'll jump into how it works. There are several different ways that you could use these tools. The most obvious is the VS Code integration, or pick any IDE, and so, you know, VS Code is probably—there's already some kind of autocomplete there, and this just makes it a lot better.

1:17:50.820 --> 1:19:09.620
<v B>The one that they're really pushing, you know, at Microsoft is Copilot, which is their solution. And Copilot is sort of like an intermediary between you and several different options. So, you can actually choose to use Claude or use the Google Gemini or OpenAI, you know, ChatGPT. So, you know, Copilot isn't itself an AI or an LLM; it's just handling that in-between step. And so, with Copilot, if you type and you stop typing for a second or two, it'll do a suggestion. I think you can also force a suggestion with a key, although I don't remember what it is. But if you hit Command-I, then it will open up in place a little chat window. So, you can, you know, select a block of text, hit Command-I, and say, 'What is this doing?' Like, you don't even have to ask something that would require a modification. You can say like, 'What is this code doing?' Or, 'Hey, put this in its own function,' or et cetera, et cetera. And it might just talk to you right there in line with the whole dialogue that you could dismiss. Or it will make some code changes and give you the opportunity to accept or reject its suggestion.

1:19:12.240 --> 1:20:37.740
<v B>The other big way that people are using these tools is through the command line. So, Claude Code is a command line interface. You basically go to the root of your source code in a terminal, type—I think it's Claude Code—and it starts up a little engine; it does some work and then it gives you this pretty cool cursor-based terminal interface where you can ask questions. It will show you diffs, it will apply changes, et cetera. So, that is the other kind of main way that people use it. And there's another sort of access to this, which is, do you want to run locally or in the cloud? By default, you know, all of the tools we've just mentioned run in the cloud. However, there are open source versions for running either locally or running in your own LAN. So, you know, you might have an LLM running in your company on your VPN, and you might want to use that instead of all the public ones. And so, for that, there's a bunch of options. There's Roo (R-O-O), there's Klein (C-L-I-N-E). There's probably a bunch of other ones. But these ones will run either models locally or at an IP address that you specify.

1:20:39.220 --> 1:20:42.244
<v A>Yeah, so I guess tactically, I thought you

1:20:42.244 --> 1:20:42.920
<v B>were going to pitch your

1:20:42.940 --> 1:20:45.535
<v A>orange pie. That's

1:20:45.619 --> 1:20:46.980
<v B>a great idea.

1:20:48.220 --> 1:22:46.520
<v A>You know, I think a couple of things. So, I think if you're going to run it in the cloud, just beware of pricing so you can get surprise bill if you're on like a pay per usage. So, don't just sort of—this happened so my daughter and one of her cousins they were like playing around making code and trying to, you know, generate an RPG. And it said oh, the best way to do that is just like make an interface that asks ChatGPT. And so, it was like here's how to get your ChatGPT token, and put your token in, and then they were just basically making an app that would have had their ChatGPT token in it. And if they had, which they didn't, a credit card associated to their account, you know, and distributed this game, they would everybody in the world would have just been like hitting their token, right? To like ask—could have been a bad situation. But but, you know, to avoid that kind of like surprise billing, I mean, I think you can get subscriptions from a lot of these or things that tools will help you limit. But I also think it's instructive to run a local one even if it's not as good just to kind of understand, you know, what's going on and be familiar with the tooling. And to clarify what Jason said, it isn't that these tools sort of like—I think the open source version of Cloud Code is Aider (A-I-D-E-R) is the same kind of thing versus a VS Code extension. They won't run your LLM; you run one yourself in sort of like an engine, like Ollama or something else, and you download a model, you start up the server, and then it sort of talks to your local server. But again, this is great understanding of how these services would work, how you would deploy them, how you would run them locally. And there definitely are coding-tuned models that are reasonably small, run reasonably fast enough for you to sort of like try it, get the experience, and have some of this stuff sort of not cost an arm and a leg. So,

1:22:46.620 --> 1:23:07.420
<v A>even on my MacBook Airs I can run the Quinn—I think it's the 3.5 or 2.5, I guess, the Quinn 2.5 Coder Tuned One isn't super big and I can run it locally; it's fast enough to hook up to one of these things, to sort of get the experience and sort of try it out without any sort of like credit card information needed.

1:23:08.380 --> 1:23:10.080
<v B>Yeah, that makes a ton of sense.

1:23:11.900 --> 1:23:19.440
<v B>Another one that—actually, just speaking on the financial side—it is in the cloud but it's completely free, is Amazon Q too.

1:23:21.360 --> 1:24:02.680
<v B>And that's another one to check out if budget is a concern. But you know, as Patrick said, with all these cloud ones, you are uploading your source code to them, and so you really have to trust them. And in a corporate setting, that might not be an option. But running locally is almost certainly an option. I had a friend—I have a friend—who they don't give them administrator access to their own computer. That to me is like, I feel like I have very few things. You know, I don't need a big monitor. I don't need a desk that goes up and down. I mean, I like having a desk that goes up and down. But if I don't have admin access to my laptop, I think that might be a deal breaker for me.

1:24:05.360 --> 1:24:14.600
<v B>More career advice. If you're looking for a job, it's okay if it's in South Dakota, but you need admin access to your laptop.

1:24:14.620 --> 1:24:16.200
<v A>Yeah, I would not ask that during the interview.

1:24:17.160 --> 1:24:21.520
<v B>That was probably—I don't know—it could go either way. At least they know you're serious.

1:24:24.140 --> 1:24:45.565
<v A>Oh, man. On these sort of interfaces, sort of like chatting, highlight selection, tab completion—which one would you say is where you think today, if you could only have one of them, which one do you think delivers the most value, like where we are sitting in June of 2025? I mean, definitely the tab completion.

1:24:45.835 --> 1:25:45.120
<v B>Know, I think that at least in Python it's really, really good. You know, often, like I only have to type the first part of a line, then hit Tab, and you get the rest of the line for free. So, it's one—it's a hard question to answer because you know the select command I think does bigger, has bigger impact, like the one you talked about. I had a similar one where, oh, this is kind of interesting. So, I needed to do actually also a shortest path, but the problem was it was not the shortest path to a destination; it was actually the shortest path to a set of destinations. And the NetworkX library in Python doesn't have that as an option. You have to do either point-to-point or you can do Floyd Warshall, which gives you all shortest paths. That would take like a year or something, so it wasn't an option. So,

1:25:46.640 --> 1:26:21.780
<v B>so what ChatGPT suggested is like, why don't you make another node and have all your goal nodes point to that node with like a zero weight edge, and then you can do point-to-point. And I was like, that's smart. I was like, can you do it for me? And it's like, sure. Yeah. So so that is like, that was an amazing experience, right? So like, I feel like it's kind of apples and oranges because the tab completion makes me 10, 20% faster, but the command I think is kind of magical.

1:26:22.980 --> 1:28:22.037
<v A>So okay. I yeah, I'm both—I agree with you. I think the tab completion and a little bit the highlight thing, but I think my point there, which I agree with you today, that's where I'm getting, I think the most speed up, which is sort of unexpected. Cause it's not the key sort of demonstratable thing. If you go to these websites, like that's not what they're pitching. They're all pitching the—you tell it a high level thing and it generates magic code for you. Like that's the dream, but that's not the reality of where I'm seeing usefulness today for a variety of reasons. And I think that's partly because of what we said. It's, you know, we're already coders. We're already in there. We don't want massive things that we can't review. And then you end up with this. I always think this is funny. I type English to the LLM and it generates a bunch of code, but it's too much code for the reviewers to look at. So they grab all the code and ask the LLM to make an English summary. And so it's just like a really inefficient transport mechanism. Wouldn't it be better if we just shared the—like anyways, it's a side, side, side you know ideation. But to your point about asking ChatGPT, I think this is another really interesting thing that is very useful. We sort of surprised that, but some things like those you're saying, I actually knew about that trick because you can find it in Stack Overflow or Google, which isn't that much different, but perhaps a more interesting sort of way of doing that. But those question asking things are really clutch when they come in. But I also think that's where, when you get off of where there's open source or high level stuff and into details about like, you know, the specifics of the kind of work that I do, or I'm sure some of the specifics of work you do, which isn't in open source, it's not in libraries, it's not common, you know, or you have some particular algorithm that's magic sauce to your stuff. None of that works. Like it all falls off the rails. It has no clue. It can't answer questions. It's too obscure and too detailed. And this is where, to your point, like domain experts either need to be trained or you know hired to really do that.

1:28:22.037 --> 1:28:53.900
<v B>Work. So like in your example, so talking about the future here, in your example where you said, Hey, I need a Dijkstra's, right? I have a DFS. I need a Dijkstra's. Like couldn't you imagine, could you imagine a future where, you know, in source control, it's just that question. Like in source control is just like, Hey, I need something. It's kind of like this DFS but Dijkstra's, but with the same API. And you check in that, like one line text file.

1:28:54.140 --> 1:28:55.780
<v A>And then over time, it just gets better and better.

1:28:56.020 --> 1:29:01.795
<v B>Right. And if there's like a change to the language, you know, or something, you wouldn't have to worry about it. I

1:29:02.436 --> 1:29:18.000
<v A>mean, I think that's what optimizing compilers are more or less already doing. Right? You're writing a high level thing or digit in Python or whatever, right? Like you're writing a high level thing. It's examining it at runtime and deciding the op codes to run on the processor.

1:29:19.660 --> 1:29:19.840
<v A>Yeah.

1:29:20.000 --> 1:29:22.821
<v B>Yeah. I think, I think that makes sense. I think,

1:29:24.441 --> 1:29:36.360
<v B>the so then what people do, right, is they take it to its logical limit and they say, okay, well, and the logical limit there is your whole source control is really just text prompts.

1:29:36.559 --> 1:29:39.038
<v A>But I think the problem is,

1:29:40.059 --> 1:29:50.099
<v B>that might be, that might happen, but it's going to be really, really far from now. And people are selling it as if it's today. And so that's a bit of snake oil.

1:29:50.900 --> 1:30:41.360
<v A>Yeah, I think you get, and it's hard for me to expand upon, but when you ask for those higher level things, like where you get functions calling other functions and, you just don't end up with all of the software engineering, which maybe one day is okay. But for now it's very difficult to maintain the code because you don't end up with good principles applied. It looks like someone who sort of read the handbook on how to write Python, but they don't really know how to write it yet. So we sometimes bump into this with entry level, new hires; they'll just write, you know, spaghetti code as an example. And it's like, no, no, no, you can't do that. Like, but why? Well, because you're not writing it once you're writing it more than once. Well, but you've never written it more than once. You don't know that. Right. Yeah. So I think these kinds of things are missing, but maybe they'll get better. I don't believe it's a static answer.

1:30:42.459 --> 1:32:36.780
<v B>Yep. Yep. That makes sense. Okay, a couple of details here. If you are using Copilot, turn on the experimental mode. That basically gives you all the features of Cursor. So, Cursor is interesting. It's a very successful company, or at least they've raised a lot of money and they have a high valuation. And the thing that they forked to VS Code and the thing that they did that was unique was that part of the tab completion, there's also instructions to do jumps. So for example, let's say you rename a variable and you need to rename it in like 10 other places. And for whatever reason, you don't use find replace. It will actually jump to the next place that variables used. I think it could even jump to other files. It does that through like a tab on the right, but, but you know, it's like, it's a more holistic versus just auto completion. Like it'll auto complete somewhere else. And Copilot with experimental mode does the same thing. People ask like, 'Oh, why did Cursor do this and Copilot didn't?' And the answer is they had it, they have it in the experimental mode. They're just not fast enough, which is kind of interesting, rolling it out. But, you know, Cursor is another way to go. And, so it's a little different experience because you're kind of jumping around when you hit Tab. So you basically hit Tab once to jump to the location and then Tab again to actually execute the auto complete. It can get a little confusing because you have to auto complete is right there at the cursor. It's only one Tab. Otherwise it's two Tabs, but you get used to it. You could even do the one Tab to get you there and then change what the auto complete wants to do slightly, etcetera. Yeah.

1:32:39.297 --> 1:32:40.360
<v A>You got me thinking.

1:32:40.360 --> 1:32:41.609
<v B>with that is you're talking

1:32:42.975 --> 1:33:12.080
<v A>about almost like a new paradigm, right? So, so you start with just a text editor. Then we end up with more of an IDE and integrated development environment where you can run code and do debugging. And it's like all built in. And then what you're talking about is sort of like a large, but incremental step further where like, you know, today you would be very frustrated if you were getting jumped around files, but you're kind of a different view, a sort of guided, you're, you're sort of working together with somebody else to move through the code in a way.

1:33:12.743 --> 1:33:13.890
<v B>And I wonder if that's

1:33:14.312 --> 1:34:32.980
<v A>part of the missing link for doing these sort of larger code block things is having it to where, you know, it's, I guess it's just CPU and eventually it'll get faster or just GPU. But not just generating the code, but also giving you like generating sample data coming in, sample data coming out, and then offering you, do you want to adjust the sample data for you might, you could do that with the unit test, right? But you're not going to go write unit tests. Like that's too much thrashing back and forth, back and forth. But if you imagine almost an interactive, here's a block of code flow I wrote, here's how data comes in. Here's how data comes out. I've compiled it. I've run it, to show this is what's actually happening and actually kind of rotating around. Like you said a bit, you have your text prompts, but then you also have the code and the output as sort of a just a fundamentally different paradigm of how you interact with it. I don't know how to go build that, but I wonder if, if like you're saying, if we're sort of seeing the beginnings of that, this sort of extension, first, you're trying to integrate where we're at and then you're trying to go past, right? You're trying to come to the next level thing where it's not just a blind text box. It's a cooperative way of doing programming with a much more powerful tool plus compiler. Yeah. Yeah.

1:34:33.040 --> 1:34:34.380
<v B>Totally. Um,

1:34:35.954 --> 1:34:37.160
<v B>but that doesn't help anyone. You were doing,

1:34:37.300 --> 1:34:39.620
<v A>you were doing actual, actual tools. Sorry. Go ahead.

1:34:39.720 --> 1:35:37.868
<v B>No, it's fine. No. One other thing that I think is getting more popular are having like these tools try to improve your codebase. It's like every day they ask it like, 'Hey, what can we do to make this code better?' And then it auto-generates a PR. There's been some really funny situations with that, but I mean, some of these things were like, if half the time you just close the PR and the other half of the time, it's good. That's still fine. Like you didn't really waste that much time on the 50% that weren't useful. So, so yeah, I think that's another direction and things could go in. So call to action here is pretty clear. I mean, you should try these tools for so many different reasons. If your company doesn't allow it, you can run the tool locally. It won't be as good, but it's still pretty good. If the company doesn't allow you to run it locally, we told you what to do. You got to find that company in South Dakota that will let you run. Yeah. You work

1:35:37.868 --> 1:35:41.100
<v A>at the potato chip factory. That's what, that's what your advice was.

1:35:41.140 --> 1:35:55.800
<v B>That's right. Yeah. Go work for the potato chip factory. But you know, there's really no excuse for not trying these tools out, becoming adept at them. And I think you should advertise when you are adept at them because it does, it is for now a differentiator.

1:35:56.920 --> 1:35:59.720
<v A>another episode,

1:36:00.020 --> 1:36:18.360
<v B>Another episode, another Father's Day. Did you spend time with your father on Father's Day? You did? Yeah, me too. It was kind of nice. It's like I guess that is it, I guess it's like a Father's Day for them. A grandfather's day.

1:36:19.020 --> 1:36:22.160
<v A>Yeah. No, I'm just kidding. Yes. Pretty mind-blowing. No, we did. We did.

1:36:22.220 --> 1:36:58.080
<v B>I hope everyone out there had a great weekend, whether you whatever you did that weekend, I hope everyone's having a good time out there. I really appreciate the feedback. You know, we got some emails, some Discord messages about how to get a job. And so that inspired us to spend a good 20 minutes talking about it. So your feedback, your questions, your emails, your follows on Twitter that I don't get. All of that is greatly appreciated. And you know, we do take it seriously and we've made all episodes, parts of episodes based on that. We're here to try and help you all out as much as we can. So thanks everyone. Catch y'all later.

1:37:08.760 --> 1:37:15.400
<v A>Music by Eric Barndoller.

1:37:16.940 --> 1:37:35.100
<v B>Programming Throwdown is distributed under a Creative Commons Attribution ShareAlike 2.0 license. You're free to share, copy, distribute, transmit the work, to remix, adapt the work, but you must provide an attribution to Patrick and I, and ShareAlike in kind.

