Two's Complement - The Joy of Programming

Episode Date: September 11, 2024

Matt and Ben realize they love their jobs, and decide to keep doing them. Flow state, to the point where it makes people uncomfortable, is discussed. Also toilet humor. Ben makes an unintentional Sesa...me Street reference. Matt recalls his level 70 cleric.

Transcript
Discussion (0)
Starting point is 00:00:00 Phenomenon. hey ben hey matt i mucked up the intro didn't i so this is gonna be a pain to edit never mind hello how are you doing i'm just i'm making notes for myself in the actual audio recording that everyone's gonna hear about how badly i mucked it up well you know that's fine this is this is a high production value podcast it is well it is i made you get an electronics project box out just to make your microphone a bit higher up so yeah because i had to build a better microphone so you had to the electronic project box and then no no we didn't quite i i dread to think how complicated and how deep that rabbit hole goes if you're if you can actually say no i want to make my own microphone i'm gonna going to make my own USB microphone. Oh my gosh.
Starting point is 00:01:05 What technology? That's a really interesting, I know this is not what we were going to talk about, but what a fascinating set of technologies you need to understand, both analog electronics, digital electronics, protocols, isochronous, whatever it's called, isochronous, I just feel like it should be isochronous,
Starting point is 00:01:24 but yeah, all right. Well, we're not doing that right now. Isochronous, whatever it's called. Isochronous. I just feel like it should be isochronous, really. But yeah. All right. Well, we're not doing that right now. We both have commercially bought microphones, I should add. Yes. And hopefully. Yeah. I'm a professional.
Starting point is 00:01:37 A professional USB microphone maker? No, but I am a professional. You just said professionals. You didn't qualify. I'm a professional boxer. Here's my USB microphone. That's right. That works.
Starting point is 00:01:50 Yes. Anyway, that's not what we were going to talk about today. What are we going to talk about today? I was kind of thinking about talking about, I don't really have a better title than The Joy of Programming. The Joy of Programming. Right. I love that name. That's great.
Starting point is 00:02:06 Yeah. It's sort of like, um, you know, possible references to possible things from the seventies that might be not appropriate for children. But, um,
Starting point is 00:02:16 the didn't Madonna make a book that was something like that as well. I think that was a joy of something else that, yeah, again, the book I'm thinking of is not, I'm thinking of was not written by Madonna. Okay. But in any case, the phenomena of doing things that cause dopamine to be released into your brain, which in some instances you might call addiction, in other instances, you might call the thing that we do
Starting point is 00:02:45 professionally and get paid for, which is programming. And there are many other things, but there's just sort of this amazing phenomena of if you love to program, there are aspects of it that are deeply rewarding to you. And I have definitely had this sort of like, you know, moments in my life where I had opportunities to maybe step away from that. And then ultimately decided that I did not want to do that because programming brings me a lot of joy and it seems like it would be a shame to give up on it. So I was maybe going to talk through and think about, okay, what specifically about programming brings us joy as programmers who love to do these things?
Starting point is 00:03:26 What an amazing topic. And as all of these therapy sessions, I mean, sorry, podcast recordings go, it couldn't be more timely in so many ways. Which I'd like to think that you had the foresight to think about that and go, hey, I'm going to propose a topic which is going to make Matt feel better. But one thing I would say is that your comment about addiction rings somewhat true. But my understanding is that the addiction part has the negative connotation, a negative part of the definition, which is that you will seek out that dopamine rush to the detriment of other aspects of a normal life or something. And we don't do that with programming? Some phrase. Well, I mean, so there's a difference.
Starting point is 00:04:09 There is a difference. Like if you leave your child at school and forget to pick them up because you're programming, that might be considered an addiction. And I'm sure we've all but skirted the edge of things like that. But I said, it's a very different thing from you know and so right personal example many times while i'm in the flow state pun intended coming up i'm in the flow state and i'm programming and time has no meaning whatsoever by the time i finish i realize that is actually excruciatingly painful because I've needed to go to the bathroom for probably half an hour. And I've zoned it out so badly that now I need to get into a very different flow state quite urgently.
Starting point is 00:04:55 And that you could say has the hallmarks of like being sort of somewhat destructive of a sort. Right. Right. So I get that. I get it's on the scale but i get the i just want to make sure that like we don't first of all we don't um minimalize folks who are on the addiction side of things whatever those things are right let's not trivialize it right because this is a little bit of a this is a light-hearted conversation about things we love not like um uh anything other than that but um yeah i think maybe the the the part where programming
Starting point is 00:05:29 the joy of programming is detrimental to my life is that i don't know when to stop doing it for money when doing it for fun that that changeover is you know like and that can be abused for example when you know 100 million years ago when i was in the games industry the fact that they barely paid anyone to do anything but expected us to do 14 15 hour days for you know seven days a week for weeks and weeks and weeks upon end um there i think that the fact that i loved it so much and i got so much out of it carried me through in a very different way than i would do nowadays even though i do love doing it. I will go, actually, you know what? I've got the family to go home to. Anyway, so getting those caveats aside, what makes programming that much more fun than most other activities other than maybe, I don't know, I mean, between consenting adults, golf.
Starting point is 00:06:31 Well, or video games. Or video games. And this is one of the things that was on my mind thinking about this. And again, not trying to trivialize addiction and people who struggle with addiction, but there is an argument to be made. And I was talking to a friend about this earlier today, and he was kind of making this argument it's like you know there are sort of older models of addiction and there are new newer models of addiction and one of the more new although I am not a psychologist or a psychiatrist and I am not trained in any of these things I'm a very very much a layman but I'm just saying from my perspective the way that I think about this stuff is that you can have functional and dysfunctional behaviors.
Starting point is 00:07:09 You've maybe heard the term functional alcoholic before, and that is a person who struggles with alcohol addiction, but does so in a way that it's not really affecting their life in any sort of like significant enough way to be dysfunctional, right? To be in those situations, like you say, where you don't pick your kids up from school or you lose your job or something like that. And video games certainly have this, this, the same property or can have the same property of, you know, playing video games. Maybe you are, you are a functional video game addict and you just play a lot of video games and you enjoy it and you, you know, just spend a lot of your time on that and that's fine. And maybe you're a dysfunction of video games and you enjoy it. And you, you know, just spend a lot of your time on that. And that's fine.
Starting point is 00:07:46 And maybe you're a dysfunctional video game addict. Right. Like ducking out of work in the middle of the day to play Eve Online. Maybe it's five in the morning and you're still playing a level 70 cleric. And, you know, you've got to get up in 35 minutes time and you're. Exactly. Exactly. Exactly.
Starting point is 00:08:02 And I am guilty of that for sure sure especially in my younger days where it's like you know i would play video games until two in the morning and then uh you know like when i was in school i would play video games super late and then have to wake up early for class and then fall asleep in class and i'm like this is a problem i need to not do this anymore and so like why are these like why why do why do we do these things? We do these things because dopamine and programming has this, and you know, you're talking about the flow state earlier. Programming has this amazing ability to put us into this state where we're just like getting the dopamine rewards over and over and over again. And you're like,
Starting point is 00:08:40 oh my God, this is amazing. And then five hours fly by just like with the video games, right? But of course, no one's going to like, you know, say, Ben, you're addicted to programming and you need to stop, right? Like- No, they'll say, thank you very much, Ben. Here's another paycheck. Exactly. And as you were saying, like ironically,
Starting point is 00:08:58 maybe not ironically, in the video games industry that it's like, yeah, they'll be very happy to just have you work 12 hour days. And not only will they not have an intervention for you and tell you that you have a problem, but they will reward you and say, great work. And, you know, put your name on the, on the, that's not exclusive to video games. You know, I think, you know, there are many places that will be happy to take on extra, extra work for no extra. Yeah, of course. So, so like,
Starting point is 00:09:22 I kind of wanted to, to think about this in the context of like, how do you harness this, this property, this reality for good? And how do you, the sort of dimension that I was talking about before of like not giving up on it. Right. Because it's like, you could for certain other behaviors that are like this, see this property as a curse. Like when you do this thing, your brain releases a bunch of dopamine and that means you're just going to want to do it all the time. Right. And you apply that property to a bunch of different things and you get a bunch of different results. You apply it to programming and we call that a career. Right. So like, what is it that, that does that? And is that something that you should give up? Is that something that you should try to stop? I argue, no, I argue, lean into it. I argue no. I argue lean into it. I argue embrace it and maybe even be thankful for it. As I was saying 10 minutes ago, I've had different opportunities in my career
Starting point is 00:10:34 to sort of move into roles where I'm not coding anymore. And I've tried that, I've done it, and I didn't enjoy it. I think we've talked about this on the, on the pod before. Um, and one of the reasons why I decided not to do that is because I really view this joy of programming as a gift. It is a very fortunate thing that the thing that I, one of the things I absolutely love to do also pays really well. Yes. I absolutely love to do also pays really well. And I would be sick if I ever gave that up and put myself in a position where I was like, I hate my job now. Right? Yeah. I mean, this has been a 30 plus year career for me too, where everyone I've ever spoken to who has a quote normal job,
Starting point is 00:11:24 because I don't know how common it is that you and I, the situation that you and I are in, but other people would introduce me and say, you know, like, you know, he does his hobby for a living. And I'm thinking, yes, I do. And, you know, I, it was 10 years into my career that my mom stopped asking me, when are you going to get a real job? Because to her, I didn't have, I mean, part of that was games, right. But, but also like, you know, if you, if you, you know, I didn't have, I mean, part of that was games, right? But also like, you know, if you, you know, that was the quote, you know, about work-life balance, whatever,
Starting point is 00:11:49 like if you love your job, then there is no balance to be had. You know, there is no work and life that are separate things. Your work is part of your life, which I mean, inevitably it is. And the dysfunction then comes when you do it too much
Starting point is 00:12:01 and you can't stop and your personal relationships suffer in a way that you you know but just suffer full stop right but yes to your point if i can get on a train at you know 7 30 in the morning get to work spend eight nine hours a day in a flow state or close to enjoying what i'm doing provide provide enormous value, we hope, to a company and they remunerate me for doing that. And I high five everyone on the way out, get on a train, go home, maybe even have some energy to do some hobby programming in the evening still somehow, then why would you stop doing that? What possible reason is there to do that?
Starting point is 00:12:43 Yes. So one counter to that obviously is that you do have, unlike again, many other careers or things that you might, what's the word I'm looking for here? Let me just explain it. One thing that we have is our job is accessible to us remotely. As in, when I get home, I can carry on my job, but I can also do the things, most of the things that I could do in my day job. I can do as an individual person. I can write the, I can write code for my hobby projects. I can nowadays fire up cloud providers worth of GPUs. I want to play around with GPU related stuff and it's, you know, it's not free, but it's also not super expensive. There's not like too many things. Now the very, very crazy low latency stuff that I also love doing gives me probably the most dopamine is not something I can do because I do need some magical stuff to be able to play with in the evenings. But by and large, I could say to
Starting point is 00:13:34 myself, all right, for some other trade-off in my life, I will spend my time at work not doing the thing that I love for some other benefit to be determined, but I still at least can go home and do it on my own time and do my own projects, which is again, harder to do for some folks, or at least maybe they have a different thing that is just, you know,
Starting point is 00:13:57 I knit when I get home. Sure. Right. Fine. So that, that would be my only counter to you is that like, well, you know, if you loved programming, you can do it on your own time.
Starting point is 00:14:09 True. But like, you don't, you can't make a career in knitting. At least I'm sure there's somebody somewhere is listening to this going like, wait, what? But that's what my grandma did. I mean, it's very difficult. Let me rephrase it is extremely difficult to make a career in knitting that um it's uh there's a there's a i'm gonna bring back the golf reference there's a golf joke the the corn fairy tour is like the the you know the the minor leagues of
Starting point is 00:14:38 golf okay and there's a joke that's like what's the difference between a corn fairy tour player and two large pizzas? Two large pizzas can feed a family of four, right? Like the problem with those sort of hobby professions in most cases, when you're sort of doing the thing that you love, is that it doesn't pay particularly well. Right. You may be the world's best musician, but like only one in a million people will make it to somewhere where they can support themselves. So you're probably working three jobs and then busking in the evenings if you want to try and make that a career. Whereas programming, at least the programming that you and I do, someone is more than happy. They will fall over themselves to say, can you please come and program for me? Right.
Starting point is 00:15:17 And here's some money for you. That's like very, very reasonable. Thank you very much. Right. That's a difference. I get you there. But what if that same company says, you are, we value your wisdom. You've been doing this for 30 years, Ben, you have a great way with people. We, people follow your lead. People will align
Starting point is 00:15:36 themselves with your goals. You will carefully and patiently explain things to junior folks and they will be better because of what the time that I spent with you telling them or teaching and coaching them. Could you do that for us instead? Because it's so much more valuable to my company that I have you making the shot, calling the shots and mentoring and coaching than it is to have your hands on the keyboard because I only get one Ben and he's amazing, but your hands on the keyboard make one Ben go fast. Whereas you talking to 15 people for an hour gets 15 people going 20% faster. And that unfortunately beats you. What would you say to that?
Starting point is 00:16:13 Well, so in that particular case, I also love mentoring people. So that's maybe a special situation of like, oh, I don't mind doing that at all. That's fun too. But for maybe the more, you know, a different aspect of that, which has been, you're really good at organizing and planning and coordinating. Can you please sit in meetings all day and make sure that the, you know, software engineers who work in this company are working on the right thing? I would say, yes, I am capable of that and I'm going to choose not to. Right. Because that will not bring me joy. Right. And again, the fact that you could go home and bring joy to yourself, which sounds now very dodgy when I say that out loud.
Starting point is 00:16:56 Not like that. Not in a lusty way. You could come home. I could come home and I could do any number of things. And I do, you know, I, I love golf and I play golf on the weekends,
Starting point is 00:17:08 right? No one's going to, you know, again, feeding the family of four, no one's going to pay me for golf and I'm not on the corn fairy tour anytime soon. Yeah.
Starting point is 00:17:15 I do those things and those are fun. That's part of having a, you know, heterogeneous rich life full of lots of right. You know, different aspects and not just being single you know as part of the tapestry of life programming is a really big part of that of joy for you so but that it's not the only thing yeah but of the things that bring you joy it is
Starting point is 00:17:36 the only one that you could make your career out of and therefore the spare time that you have when you get home could be used for more programming but it could also be used for time with loved ones, time on the golf field or in your backyard in your golf simulator. Or playing those video games that I love to be addicted to. Oh, those video games. Yes. Yes. Exactly. Yeah.
Starting point is 00:17:56 I think that's a really level. I mean, I don't know. I'm not surprised, but it's a very thoughtful, level-headed response to what i thought was going to be a difficult and challenging question for you so well i mean i do think about these things evidently but yeah so one thing i wanted to get into in this episode is you know we talked about flow state earlier right we should probably talk about that for people who may not be familiar with it i would hope that most programmers will at least recognize it when they when they exactly yeah yeah i think you go oh well even not without it i think the name is sort of quite a motive of what the the concept feels like but
Starting point is 00:18:33 yeah we should definitely you want to take a crack at a definition i will i mean we sort of touched on it already you know like we said that flow state where you look up and five hours have gone and you're busting for a wee right you know that's that's what flows i'm pretty sure there are textbooks that describe it like that um no but it is the point at which you have become um so deeply ingrained in what you're doing that you don't notice what's going on around you you completely zone out anything that's around you um and you're able to make essentially what feel like um uh i always think when i was talking to my kids about this in their music which is a complete non-secretary but like i talk about it in terms of of star wars references it's like it's
Starting point is 00:19:16 when the force is flowing through you yeah right you know you you everything comes instinctively you're all tabbing between things you're pressing buttons and you're not even aware that you're doing them it feels all automatic everything's going maybe you've got music going in your ears that tends to help me maybe you haven't maybe you don't need it maybe you're just in that but like essentially your attention is focused and directed and everything is just feels so natural and then you get a tap on the shoulder and the whole thing falls over it feels like you've tripped over a tree root you know in those kind of weird dreams where you suddenly your whole body twitches and oh what what you're jarred out of it and then you're like oh and then you're trying to get
Starting point is 00:19:50 back into it and it's gone but you can be so productive and it's so uh uh enjoyable i mean to to coin you know to go back to your endorphin uh rush here your dopamine rush um it is so enjoyable when you're in that you're making progress. Everything just feels great. So yeah, I made it sound very druggy now. No, I mean, it's so I,
Starting point is 00:20:13 I read, I tried to read a book on this. I'm going to go see if I can figure out the name. Oh, good luck finding that. This is where, because we're not going to do much editing of this. I can talk while you Google,
Starting point is 00:20:24 if you like. Yeah, no. So what is the name of this book again? It is Flow, The Psychology of Something. The Psychology of Optimal Experience. So this book, I didn't really like this book because I was looking for like a deeper, more thorough explanation of this phenomena. And this book kind of- Sorry, you said phenomena and I have to go do-do-do-do-do. Yep. Phenomena.
Starting point is 00:20:53 Do-do-do-do-do. Well, there's our code open. Yep. Anyway, you didn't like the book. Yeah, I didn't like the book because it got a little culty. It got a little like woo-woo. You know what I mean? As these self-help books are wont to do.
Starting point is 00:21:11 Yeah, yeah. But my memory of this is that he did have a pretty clear definition of flow state, which is sort of the intersection of focus and proficiency. Right? You're very focused on something that you know how to do well. And again, getting back to video games, if you've been like a moderately good player in like a first-person shooter, you have definitely experienced flow state, where you are just moving around, reacting to your environment,
Starting point is 00:21:40 shooting at targets, you know, going through a level maybe that you've done a couple of times, like that is 100% flow state. And it is the same thing that you feel when you are working on a task where you are proficient and are able to focus, and you're making sort of good progress. Now, there's definitely a state of programming where you're not in flow state where you're just staring at a stack trace and you're very confused and you're not feeling very proficient and maybe not very focused and you're just like i don't understand what's going on here or more on brand for us you're waiting for a long build or you know you've been knocked off of like your your your flow because you're waiting for something you've all tabbed to yeah because you've been distracted, right? You've had some kind of external stimulus
Starting point is 00:22:25 has applied to you. Mm-hmm, mm-hmm. But I view that flow state as being like the core of the joy of programming, right? And there are other interesting things. There are other interesting things about programming that are fun and I enjoy, but that's like the main loop of the joy of programming.
Starting point is 00:22:42 That is your nugget, the center of it. Yes. I was going to say, again, away from the keyboard and having just come out of a few meetings today where this has happened to me, we've had some great discussions with people with the moral equivalent of whiteboarding ideas where that can also be very rewarding. Yeah. Yeah. And, and, and essentially when people ask me, what do I like about programming? I do, I do like the flow state. And I think it is a very big part of certainly why you and I are so aligned on things like, hey, if we had the build be this much faster, then you would just build and test and build and test.
Starting point is 00:23:15 And then you're like banging away at the code and everything's just going. And you're like, this is great. Nothing here to stop me. But also what I tend to say to people is it's problem solving and it's deep digging it's like you know always picking up another rock and going like but why is this broken well that doesn't make any sense and like almost like this yeah that's what i think i i i guess what i tell people that i like about programming yeah but the flow state is a core part of it for me as well yep yep and sometimes those things go together right like you can be in a flow state is a core part of it for me as well. Yep. Yep.
Starting point is 00:23:46 And sometimes those things go together, right? Right. Like you can be in a flow while solving a problem. And like, again, video game analogy, it's like, okay, how do I solve, how do I figure out this? This dungeon. This dungeon. How do I get this thing up to this? Yes, exactly. How on earth can I get the flame down from up there?
Starting point is 00:24:00 Right. You know, it's like play Portal for an hour and you will experience this for sure right true um so like you can you can be doing both of those things at the same time you can also be solving problems and not be in the flow state and still find that very rewarding and i certainly do like it's almost more of like a jigsaw puzzle thing where you're just kind of like you know like i don't understand how these things are going to fit together. What am I going to do here? Although that's maybe not exactly a jigsaw. No, no, I'm with you. It's like kind of the same thing, right? Yeah. But yeah, I mean, those things can all, the sort of puzzle aspect,
Starting point is 00:24:36 maybe more like a Rubik's cube, like when you don't know all the algorithm to do the Rubik's cube and you're doing it in 3.4 seconds. Right. Right. Which is not me. Yeah. But like that kind of problem solving and that sort of puzzle solving is also very rewarding, but it's maybe not flow state. Right. Yeah. Yeah. Yeah. So do you, I mean, flow state obviously is not a programming concept. It's not unique to programming. We've already just said that, video games also, you can be in a flow state um obviously only a very few people get paid a living wage to play video games all day right um something i need to keep informing my teenage children um yeah but what else do you think what other things can be flow state what is it about programming do you think is it just an accident that we found a job that flow state is good for do you think i mean maybe maybe this is where we could actually invite listeners to send us messages on the emails or hackaderm or
Starting point is 00:25:36 whatever the the communications doesn't say like what what other things are there out there because you know i'm skewed by my knowledge of what what um uh what my experience is and the only other things i can think of that are close to that that are that you could maybe call a career of people who are like scientists and um you know mathematicians who are trying to solve difficult problems of a sort uh and you know sitting down with a piece of paper working out stuff and i can only imagine that must be something like a flow state if you're going to be staring at something for four you know three or four hours while you manipulate symbols around and look for that that glimmer of inspiration that goes ah this will cancel with that or so again i'm so bad at math
Starting point is 00:26:19 but like um or similarly you know i i have a there's a acquaintance of mine that is a theoretical physicist and i can only imagine that what goes on when he's at his uh desk at work with his feet up on his desk just with his head behind hands behind his head just thinking about physics which is presumably what a theoretical physicist does right there's got to be something going on in there that's like you know akin to what i must be feeling when you know you're trying to go well what if that happens over there i can do yeah but yeah it's maybe other knowledge work in general do you think other knowledge i mean my i don't really know like i said i've tried very hard to spend most of my career doing programming but um i would imagine that there's a lot of knowledge work that has this property right but we've just, this happens to be the one that we did as kids and turned out to be a
Starting point is 00:27:08 decent career and gives us this joy as, as well. Yeah. I wonder what it was. So, yeah. I mean, if we just,
Starting point is 00:27:16 there's, there's problem solving there's and so like you've like to say the problem solving, sometimes the problems of your own making you know the whole uh what is it the detective tell me oh yeah programming is a murder mystery where you are both the detective and the murderer right and so in a sense that that you are you're doing both of those things right you're both committing murders and also solving them at the same time yes uh you know there's definitely always something to be looking into. I'm really interested
Starting point is 00:27:47 in what it is about programming specifically. I've always thought, again, it's like you're building these edifices, these complicated interlocking systems, and yet they don't exist anywhere but your own mind, really, and a bit of crappy ASCII in a text file somewhere. Yeah. No, I mean, 100%, there's a big creative aspect of programming, which I think most lay people wouldn't really expect. I remember vividly talking to my game producer in the late 90s, early aughts, and we were talking about some aspects of programming. And I can't remember what
Starting point is 00:28:25 the discussion was about, but halfway through, I realized that he thought the thing that was blocking us from getting more work done was our inability to type faster. Right. And you're like, oh my God, no, it's not like I just know what to do. And I have to tell the computer what to do. And if only I could type faster, it would get done quicker. It's that I don't know how to tell the computer what to do because none of us really understand whether it is we want the computer to do in the first place and that's right after and you're like that was a mind-blowing thing because it's yeah as you say lay folks may not necessarily realize that it is a very creative process and that's just also a mayor culprit on my own front front here obviously i sort of said at the beginning of this you know this is a therapy
Starting point is 00:29:04 session but i have just managed to uh put to one side my management responsibilities in order to get back to doing more programming so this couldn't be more on target for me um one thing i realized was um yeah i've been trying to do a bit of programming in between but i've been so mentally exhausted by everything that i don't think I realized how much space and time and relaxation and the creative process needs. You need to be able to like pace around the room and not feel under the time pressure to, to, to have these creative things pop into your head and go like, and like, I think we've probably said some at some point on this show before now, oftentimes you go home with a terrible problem.
Starting point is 00:29:45 And by the time you've got on the train or by the time, you know, that next morning on the shower, you kind of like put your head in your hands and go, well, of course I forgot that this thing is unsigned or signed or whatever it was, or that will never work because of blah. Or you have some new leap of thing in the first thing in the morning
Starting point is 00:30:02 because something is going on in your head. And that is, again, another example of the creativity part of this where it's not like you can just squeeze harder against something and keep banging the keyboard for longer, which I guess actually does dovetail back into the beginning part of this, where if you're in flow state, it is both obviously very productive and very rewarding, but it's exhausting too or it can be you can get to the end of it and go for the go to the loo and then go oh my god i just i'm done now i'm done for the rest of the day and you can't keep on doing it which may be some other things that fall under addiction right i mean it's almost like going for a long run and then stopping right like which is the only reason to go for sorry excuse the but that's the only reason to go for a run is to stop as far as i'm concerned there's no other benefit other than the blessed relief when it's over right right and then it's like i don't know if you've ever been in this situation where it's like you go for a run and you stop and you like
Starting point is 00:31:01 realize that you need to actually run more that is terrible that is like that sounds nightmarish you stop for like two minutes and then you're like oh i was supposed to do like seven miles and i only did five uh oh okay that's like it's it's awful i can only imagine that again sorry to get all toilet tea on on you here but it's like if you have to if you if you're going to the bathroom and for whatever reason you suddenly have to stop and then that's the worst is it oh no hang on someone's just opened the door i didn't oh and then you're like oh yes nobody needs that nobody nobody needs that this will just be our first r-rated um no we're just going to edit all kinds of stuff out of this oh my gosh i don't know that we are
Starting point is 00:31:42 thank you uh you think too much of my editing skills but uh yeah no i mean yeah it's and i've 100 had that too where it's like you know you're cranking away on something and then you like commit push and you let it build and just all of the adrenaline and on the all the chemicals just drain out of you. And your brain just goes, and then you're like, all right, now I need to go to bed because I've been at this for 10 hours. I'm spent now. fair proponents of TDD and other sort of aspects, which is broadly falls under the umbrella to me of gamifying something to capitalize on the human love of a little hit of endorphins or dopamine or whatever.
Starting point is 00:32:35 Every time the bar turns green, you just get a little ding. I love it because, but, but, but again, you and I have spoken about this before you and I are aligned on this because of bias.
Starting point is 00:32:47 And that's why we have a podcast together, right? Because we found how aligned we are. But I've worked with people, and I'm sure you have, who are much more, I just sit and I write code and I write code and I write code and I write code. And three days later, I build it for the first time and it works and we're done. And you're like, I don't know how you could be satisfied
Starting point is 00:33:06 at any point throughout that whole thing. Because the entire time I'm sat on my hands kind of rocking backwards and forwards saying, just build it, build it, build it. There's a typo, build it. There's a typo, build it. There's a typo. And then the quicker I find it,
Starting point is 00:33:17 and even that is a reward. Like I will often comment out large gobs of code that doesn't compile while I'm sort of doing refactoring just to kind of get the warm, gentle pat on the back that, hey, at least the bit you've done, often comment out large gobs of code that doesn't compile while i'm sort of doing refactoring just to kind of get the warm gentle pat on the back that hey at least the bit you've done the bit you've converted over still builds and i'm like okay that's good enough for now and then carry on yeah yeah yeah yeah no you're right different about this right you know it can't be for sure those those habits that we that we both have really do kind of gamify the process. Right. And it's like,
Starting point is 00:33:46 it's, it's playing into the way that we think about it and what is effective for us. And, and, you know, I, as much of a TDD guy as I am, like you have to recognize that this is not for everybody, right. It might not even be for most people. I think it's a skill that everyone should learn how to do, but whether you use it or not, that's just depends on you and your team also. Cause you kind of can't do it by yourself. You need a team. So finishing up on the sort of themes that we normally touch on on this. So another thing that you and I have liked to do, and I haven't done for a little while is pair programming. Can you get into a flow when there's another human being in the mix? Do you think? Yeah. Have you ever had a conversation in a restaurant? Oh, what an interesting analogy.
Starting point is 00:34:32 You're eating your food. You're talking. That's pair programming flow. Unaware about everyone else in the restaurant who's having their own conversations. Yeah. Until, and this is a feature not a bug the person behind you talks starts talking about how they murdered their wife and you're just like what what i was gonna say your brain just like clues into that and neurons in my head that will will respond to you know your own name being mentioned somewhere that's immediately jumps you out of it or if someone says something you know factually incorrect about uh 1980s gaming hardware. Right. Immediately. And it's just boop.
Starting point is 00:35:06 Right. And then it's like, you know, when the people who are, you know, two seats down from you start talking about how they're going to delete the module that you're working on, you're like, wait, what? What are you doing? You make it up immediately. Yeah, right. Right. So, yeah, it's humans are wired for this, right?
Starting point is 00:35:21 Like they're absolutely wired for this. Now, not all humans are wired for this and not all humans can do this sustainably every day and work this way all the time, you know, and some people who can just don't like to. So there's all kinds of caveats here. Right. But like humans can be social creatures, even programmers. And if you've ever had a conversation in a restaurant where you're eating a meal and talking to somebody, then I think that you can pair program and get
Starting point is 00:35:53 into a flow state. It's funny. I mean, I do believe you, and I'm sure that things that I have done in that world could count as being in the flow state, but I just don't think of it because i think of it as so uh such a solitude and whatever that word is uh solitary there there's the word such a solitary activity and it's very personal to me that state where i've got music blasting in my ears and i'm like on the keyboard um that doesn't come out on the radio very well does it i'm just miming key like infinite monkeys banging on the keyboard um but does it i'm just miming keep like infinite monkeys banging on the keyboard um but but i i'm sure you're right actually and i'm thinking of you know you know probably the same person that you're thinking of who's very fast on computers that we've both paired with over in our careers um those episodes pairing with him have probably
Starting point is 00:36:38 been the most that i could imagine as being flowish even if i wanted to strangle him from time to time and i'm sure likewise he to me yeah Now I will, I will caveat this a few ways by saying it's rare. It's kind of a skill and it's sort of hard to do. And it's not like, like it's, it's good. It's a nice thing to be able to do, but it's not going to turn you into like some superstar programmer. So it's like, you know, it's kind of an interesting thing, but's my point my only point in saying this is that it is definitely possible like many times in my career have i been doing that uh another thing is kind of like is tennis or like ping pong where you're just sort of like oh right yeah back and forth you know you're just watching the ball and moving around and hitting the thing and then you know 17 back and forths and then someone hits the line
Starting point is 00:37:24 and you're just like, all right, that's the end of that point. And it's like a mutual flow state. No, I guess so. Yeah, that's a very, yeah. Even that's a sort of competitive flow state, right? There's two of you there for a short, depending on obviously you can play doubles
Starting point is 00:37:37 and whatever, but no, that's interesting. And I think it's no accident that sort of like the basic intro to pair programming exercise is called ping pong. Because it's very much like that. Yeah. You like the whole I'm writing a test that will fail or, you know, yeah, that kind of thing. Yeah, that's interesting.
Starting point is 00:37:57 Yeah. Well, Fred, we're basically at recording time, I realized, because we've been in a full stay. Well, the time just flew by. It did, didn't it? Oh, come on i mean dog dog interruptions notwithstanding which again if people go what dog i've done a very good job but likely is not you'll know exactly which dog i'm talking about yeah this has been really interesting very very um very cathartic for me as i move back into hopefully times where i can have a lot more flow in my life and less talking to people in rooms. But, but yeah, and I thank you for your, your, your answer to the
Starting point is 00:38:30 question of like, why don't you just become a manager? Right. Yeah. Yeah. Well, sometimes you just got to like, take advantage of the gifts you've been given. And in my mind, this is definitely one of them. I don't want to give it up anytime soon cool well i guess that's a great place to end then so until next time my friend until next time you've been listening to two's compliment a programming podcast by ben rady and matt godbold find the show transcript and notes at www.twoscomplement.org. Contact us on Mastodon. We are at twoscomplement at hackyderm.io.
Starting point is 00:39:11 Our theme music is by Inverse Phase. Find out more at inversephase.com. Get a little ding!

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