Pybites Podcast

#030 - Persistence as a Developer

Julian Sequeira & Bob Belderbos

This week we talk about persistence and its importance for developers.

The skill of learning (complex) things fast and persisting through the difficulty that accompanies it is one of the best skills you can develop.

After all we don't always get to choose what technology to use. And there is no better feeling of accomplishment after having struggled through a complex problem.

Other areas we talk about is pushing back on requirements, the patience you have to have if results are not showing up immediately and a powerful quote of The Slide Edge.

Enjoy and if you're enjoying the show, please leave us a rating on your app of choice! It'll help us get the message in front of even more developers :)

It took me. I remember it took me months to push through. Persistence, right? I just kept it up. Of learning. Every step was painful. Every time I got to a new plateau, I celebrated. But it was really tough, and I came out the other end feeling so much better for it, and I had this very unique experience doing it. It was really valuable, but painful. It had to be persistent. Hello, and welcome to the Pibytes podcast, where we talk about Python career and mindset. We're your hosts. I'm Julian Sequeira. And I am Bob Baldeboz. If you're looking to improve your python, your career, and learn the mindset for success, this is the podcast for you. Let's get started. Okay. Welcome to another pie Bytes podcast episode. I am Julian, as always, and I'm here with Bob. How's it going, man? Good, man. How are you doing this week? I'm good, I'm good. I'm starting to get some sleep with the baby, so I can function just a little bit. Getting some workouts in, feeling good. How about you? Yeah, sleep is everything, right? Yeah. Without it, you just zombie mode and no memory. Is so hard to retain things. When I'm sleep deprived, that's a different episode. We'll have to talk about that another time. Yeah, yeah. All good here, man. Keeping the workouts up for months now. Steady streak. And the coaching, of course, and the python writing code almost every day. So what aren't you doing? Reading. Don't admit that. No, that's cool. Well, you're back into it now, which is awesome. You know, you picked up today that you dropped off the books, and you've picked it back up. I love it. Thanks, man. Yeah, it feels great. All right. All right, let's dive in. Enough to chat. So, everyone, this week we're going to talk about persistence, and I know we've mentioned persistence before, that success comes with being persistent, showing up every day, consistency with your, you know, when you plan your work and all of that. One of the things we wanted to talk about was a bit about the why, why you should be persistent, especially while you're still learning Python and while you're still striving towards the goal of perhaps being a developer. Why is persistence important? Now, Bob, why don't you kick this off? You basically don't have a choice. Why? There are. There are things you have to learn, and they will be complex, Python wise, developer skill wise, and you have to plow through it, and that's difficult, and it's easy to give up, but you cannot escape it. Because if, well that's pretty cliche actually. So maybe to bring it back to a more concrete example, right. If you are a developer in a job doing this professionally, you often don't get to choose what technologies to use. You might have a project that's happy path flask and you're all comfortable, but maybe the next time you have to use something different because that's what they use or maybe even a client or the requirements, and you just have to learn it and you don't have a choice. It's something that you don't even know about, especially if you've never been a developer. It's not something you're going to hit while you're learning. You know, if you think about it when you're building outside like many of our clients, but even if you're not a client of ours, of course, but if you are just learning Python yourself, right, you have access to the entire library of modules, you have access to all of PI PI and all the different options out there. So it's very easy to sit there and say, you know what, this library's, it's a bit too hard. So I might just head over to this next one or I might just go on and fall down this, this rabbit hole, this tutorial paralysis type rabbit hole and go and investigate something different. And what you're robbing yourself of when that happens is that experience of being persistent, of challenging yourself to really push through the difficult code that you're hitting a roadblock with. And that skill is invaluable. That experience is invaluable because as you know, Bob, as you've just said, when you land that job, they've been using this application that you might be supporting. Whatever it is that you'll be doing this developer job, you won't have a choice, you have to use it. It's as simple as that. And you can't just sit there and say, oh, you know, I don't want to do it that way, I want to use something else because they're going to say do it this way or you don't have a job. And if that's going to be a rude wake up call, right, if you hit that and think, oh no, what have I gotten myself into exactly? Yeah, because my first developer, Java, was a one man shop and I could actually choose the technology. So at the freedoms to say, well let's rewrite this Perl code into Python. But once you're part of a bigger software team, it's, yeah, it's the stack they use, and they won't throw that away because you say so now. That's like a ten year product maybe, and stuff to work with what you have. So, yeah, you're right. Like that skill of learning, it's the meta skill, right, of picking things up. We always talk about that. Picking new things up fast and learning how to learn, that's tremendously important. And on that note, it doesn't just have to be python, it could be everything around it. So my experience with this was I had the freedom. I could pick whatever framework I wanted to build with. I could pick all of the code that I wanted, essentially, but what I couldn't pick was the actual coding environment. Yes, I could use some git commands, but there were a lot of other manual internal commands. The ecosystem was just convoluted. It didn't make sense. It seemed so ridiculously complex for what it did. And it frustrated me. And every part of me wanted to just step around it, take the easy way out and essentially just code it locally, host it on my own machine and do a real hack job sort of thing, you know, because that's, that's what I can do. But it took me, I remember it took me months to push through persistence, right. I just kept it up. Of learning every step was painful. Every time I got to a new plateau, I celebrated. But it was really tough and I came out the other end feeling so much better for it. And I had this very unique experience doing it. It was really valuable, but painful. I had to be persistent. Yeah. There's some pain involved, and I think it's very human. Right. To, by default, always seek the least resistance. That's kind of how we're wired. And you have to really push through it because default mode is to stay comfortable. And as we have said many times, in order to grow, you have to do things that you haven't done before, hence become uncomfortable. Right. So, Bob, sometimes you don't have a choice, right, in the code that use. But what about the people around you and the projects that they give you? This is another opportunity for persistence. Right. How do you mean? Like with the design brief, perhaps that you might be given the requirements that you're given for a specific coding project. That's something that can frustrate you. Oh, totally. I think you also have to push back sometimes. Sometimes these requirements are defined by people that really look at the usability of the app, but that might not mean that under the hood it can be implemented that easily. Yeah. And that's when the persistence comes in there as well. You push back, you have to be able to say no, which we had a whole episode on whatever episode number that was. Expectations as well. Yeah, it all links together. I love it. But you have to be persistent in your messaging. You have to be persistent in how you communicate with them. There's so much to it. You know, these people generally who come to you with coding problems that they want you to solve, they aren't coders a lot of the time, or, you know, or they solve the problem themselves. And as a result, they don't know what the limitations are. And I won't go down this path, path too far. But what I'll say is, your response should be persistent. Right. You should. Well, it should be consistent, but you should persist with that. You should be able to keep pushing back and stand your ground and not just take the, you know, take that sort of mistake from them, take that opinion of theirs that have how it should work versus, you know, what, you know, with regards to the coding side of it. Yeah. Otherwise you will suffer the consequences or the project overall as it gets delayed. Right? Yep. Exactly. And then you end up with a subpar product, doesn't work, no one likes it, and you've just wasted all this time. Yeah. So cool. So another thing to highlight about all of this with persistence and what makes this tricky is that the results are not immediately visible. So it takes a long time to really see the fruition of your persistent, for your persistent effort, the day to day grind. So in that sense, I want to read a quote from the slide edge I just finished. Farmers know they have to wait a full season to reap their harvests. In our post industrial world, where so much of everyday life is accessible through the click of a mouse, it's easier than ever to forget that. But that doesn't mean it isn't still true. Really stood out. That quote, it's beautiful, takes time. And you have to kind of factor that in because that will affect your motivation. Yeah. If you think using that analogy right, with farmers, they're persistent throughout the year. The reward, the benefits don't come for six to twelve months at a time, but they have to be persistent in that work. If they give up halfway through, everything's wasted. They don't reap anything at the end of it. Same goes with us coding through our learning. Right. Yeah. I mean, how, I mean, remember how often we got stuck when we started coding and how frustrating it could be. Yeah. Something, you take it for granted because now, well, we still get stuck. Right. I mean, that doesn't go away. But there are definitely things that feel more fluent. And people might say, like, you're so fast at particular task, but that wasn't always the case. And there was a lot of persistence that went before that. Right. Yeah, it's with the, there's so many different pieces of the coding journey that you should be persistent with. I mean, the documentation is a really good example here. It's not always fantastic, you know, the libraries and modules, that, it's not always so clear cut what the documentation means. But if you just give up, if you just throw on the towel and say, no too hard, you're never going to learn how to read any documentation unless it's perfect. And you're never going to come across perfect documentation all the time, especially as a professional developer. I mean, how many times when you were doing it for the big companies, Bob, how many times do you come across code bases that had no explanation? No readmes, no wiki pages, no articles? Right. Let's read the code. Yeah. Well, when you're still learning and it doesn't make sense, right, you still have to go. And you'd hope that people have explained their code somewhere, that they might have some supporting articles, they might have some supporting documentation for it. Actually, on that note, I will call that out, because when you leave a company and you're no longer there to explain it, you better hope you've left something or your apps just going to go to crap and no one's going to be able to use it. Know how it works and you have to reinvent the wheel. And documentation is often not the favorite part developers want to work on. Right. But it can be tremendously satisfactory if you document your projects well and you can effectively replace yourself as a developer. And it's a, it's an awful, often overlooked skill, but to me, it's very definitely a niche and it really sets yourself apart. It's worth the time. So, all right, to wrap it up, the last one wouldn't be us if we didn't mention exercise. Sorry. Sure. Yeah, let's. Let's do it. So, fitness, pie bites fitness. What do you all think we should have a pie bites fitness thing? No. Anyway, imagine a big medicine ball with our faces on it, people just slamming into the ground. So, so with the exercise thing, it's another great analogy that's, we always come back to it because it's such a great comparison. It doesn't happen overnight. It's the persistence of getting up and doing that same exercise over and over. You know, and the key thing is here, when you are exercising, if you tackle a different style of exercise or muscle group or whatever it is every other day, you're actually not going to see the results. You're not going to see the gains because you have to be persistent in that same exercise. So with our workout routines, you know, Bob and I, we do the same routine, circuit, whatever you want to call it, every week. And that's because we want to hit the same things every week, and then we start to see the gains. Is that right, Bob? Yeah. I mean, we might alternate a bit as we go, sometimes swap out and exercise, but I would say 70, 80% is boringly the same. It's definitely a drag sometimes to go through it because it's all the same, right. But it's definitely something we learned, that you get better at the exercises through repetition. It's all repetition. Right. So another analogy, if you go to Vim, for example, that's there's so much repetition to go get proficient and fast at that editor. So it literally means looking up the keystrokes, right? As boring as that is. But it's all repetition. And repetition makes the master. And the thing there is the progression. The results are very, very slight and gradually happen over time and you won't even notice. But if you take that second to reflect, you'll see that that persistence paid off. Because as a developer, to loop it back to this, as we wrap it up, as a developer, you'll notice then that, say it took you only three quarters of the time to spin up a project. It took. You didn't have to read the documents as often the next time you code it. And so by keeping up this effort, by being persistent, eventually you will get to that point where things just are second nature and they click, things make sense, the code comes out quicker. It's like a second language for you, and things feel natural. Yeah. So the main takeaway, really, is to rather focus on a few key skills that are important and do them over and over again rather than go all over the place and not being consistent. Not being consistent nor persistent and not getting anywhere. Right? Yeah, stick with it. It's pretty simple, right? Just, just stick with it and just keep pushing. The challenge is where you grow and the end result is going to be that much sweeter if you keep at it. Yeah. Awesome. All right, so as we, as we're done. So, Bob, thank you so much. Really appreciate the chat, as always. But before we go, I'll just mention, you know, this, this skill, this persistence and all the things that we talk about in the podcast over the past. It's been almost a year actually. I know it's been six months. Six months. You know, these things are all key components to really being an effective developer. And we want to be able to help people with this. It's not easy and it definitely helps to have some coaches. So that's where we come in. And if you want to really take the coding, get to that goal a lot quicker, then you need to come and talk with us. We really want to help people and we really want to help you and we want to talk with you. So please use the links below and jump on a call with Bob and myself and we'll talk with you all about this and your journey. Yeah, because this stuff is easy to just talk about, but you definitely want to create that environment or get the projects lined up to put this stuff into practice and then you will see significant results. So we would love to help you. And that all starts with having a chat. Beautiful man. Well, you take it easy and thanks everyone for listening. We'll talk to you next time. Thanks for listening and see you in the next episode. We hope you enjoyed this episode. To hear more from us, go to Pibyte Friends, that is Pybit es friends and receive a free gift just for being a friend of the show and to join our thriving slack community of Python programmers, go to Pibytes community, that's Pibit es community. We hope to see you there and catch you in the next episode.