What Software Development Has Taught Me About LIFE
There's a lot of really interesting life lessons that I think you can learn from just being a software developer from writing code. And a lot of these lessons have helped me in many areas of my life.
And in this video, I'm going to give you some of my life lessons software development or programming has taught me about life. #whatsoftwaredevelopmenttaughtme #softwaredevelopmentlifelessons
Transcript Of The Video
John Sonmez:There's a lot of really interesting life lessons that I think you can learn from just being a software developer from writing code, and a lot of these lessons have really helped me in many areas of my life. Everything from starting businesses and making millions of dollars in business ventures to fitness and even some relationships and dating type of situations, and dealing with people in general. So in this video, I'm going to be talking about what software development or programming has taught me about life.
If you guys are just joining me for the first time, I'm John from simpleprogrammer.com. On this channel, I teach you how to be a software developer that lives a better life than most, that is able to effectively develop communication skills, increase their career, make more money, and to be just a well-rounded individual. This channel focuses more on personal development for software developers, and I think that you'll find that pretty unique. So click that subscribe button if you haven't already.
And guys, if you haven't, go check out The Complete Software Developer Career Guide; this is my tome on everything software development related from a soft skills type of approach for advancing your career. Whether you're a beginning, intermediate or advanced developer, there's going to be something in this for you. Especially check out the audio version. I've got some additional stuff in there. And currently, this is number one bestselling book in all of Amazon for software development.
So, all right guys, let's break this down. I took a couple of notes here because I didn't want to forget anything. But I'm going to start off and this is in no particular order, but I'm going to start off with one of the first things that I learned in life from software development, which is that automation is key. See, as a software developer, your primary goal, like the primary thing that you're doing, is you're automating things. You're taking a manual process and automating it. That's what software development really is all about. That's what software is. Software is essentially an automation of something that could be done manually. Now, some things, it wouldn't make sense to do them manually, like displaying images on a screen, but word processing, most of the business applications we develop are things that would be done manually, but we automate them.
And so the way that this applies to life is that I have really adopted this as a life philosophy. I try to automate as many things as possible, right? So one of the reasons why I'm recording YouTube videos instead of talking to you individually is because this is a way of automating, right? By creating a YouTube video one time, if thousands of people view this YouTube video, I can get that knowledge out there to multiple people at the same time while growing my business and while getting more people to buy The Complete Software Developer Career Guide. Right? And those types of things, rather than trying to individually talk to people and … Although there is a time for that, automation is still key.
I do this in all aspects of my business, right? I learn, like I said, about automating and I try to automate it as much as possible. I'm running another business called Bulldog Mindset. If I haven't checked that out, go check that out. But I have a lot of processes in place to automate the business as much as possible. So there's less that I have to do on a daily basis that's manual. And I try to do this in a lot of areas of my life. Any kind of area in my life where I can automate it, everything from automatically making transfers in my bank accounts to different business accounts and things like that, to even automating my life in terms of what I eat like for diet and nutrition and my workouts and things like that, as much as possible, I try to automate things.
Now, the next one is that every problem can be broken down. If you're a beginning software developer, probably one of the biggest problems that you face is the idea that how does someone build a complex system? How does someone build something like an entire game, right? Or Gmail or a complex application. And what it turns out is that every single one of those things can be broken down into a smaller and smaller problem until it becomes just one line of code. A lot of the way that I look at life now is I look at my big problems and I see, “Okay, how can I take this big problem and how can I make it a smaller problem, something that I can actually tackle, something that I can actually accomplish?”
And it goes for everything from starting business, right? One thing I always tell guys when I'm doing some business coaching, I say, “Hey, look, don't try and make, let's say, $10,000 a month from your business. Instead, figure out how can you solve the problem of just making $10 a month?” Okay? Because if you can solve that problem, then you can tackle the bigger problem of making a hundred dollars because you can see that solution now. Right? And so it's really a good way of looking at life is to look at all the problems you have in life and say, “Okay, how can I break this down to a smaller problem and yet a smaller problem?” until it becomes the equivalent of a single line of code which you can always implement, right? Then that's, like I said, a universal skill that widely applies to life.
The next one I'm going to talk about here is simplicity beats complexity. Okay? This is a big one, right? As a software developer, I learned that the complex solutions were often the worst solutions. Okay? They might be really clever, but the problem is you have to maintain those things and it's difficult to maintain, right? What ends up happening with code is that the problem isn't really writing the code, it's maintaining the code. It's the same thing with your life, right? On business, like I do some sales funnels and things like that, I can have really complicated processes on targeting people individually based on this thing that I know about them, and have all these complicated trees of if then solutions for what product should I try and sell to this person and what not. Or I can simplify things down and just have like one way that you hear about me, one message that I give you, and then one product that I sell you, right?
That's a real simple way to run the business. It might not be as efficient. I might be able to make slightly more money if it were more complex, except that it will take more time and it will take more effort and it will be harder to maintain. So what I try to do in life is I try to simplify things as much as possible, right? I try to simplify my diet. I try to simplify my workouts. I try to simplify anything that I'm doing in life, especially in business, in order to get rid of that complexity, knowing that simple is often the best. And it's also the easiest thing to explain to someone. It's the easiest thing to train someone on when you have a simple system.
The last one here, okay, is to create a maintainable system. All right? Now, before I talk about this one, I do want to point out that I have a new quiz. There's going to be a link up here in the cards and in the description below where you can take a quiz on software development and see what kind of software developer you are. Make sure you click that and check it out. But we're going to talk about creating maintainable systems. Okay? Again, this is very, very similar to the complexity thing, but I think there's a little bit of a different nuance to this, right? So as a software developer, I had to learn the hard way sometimes that what was more important than writing the most performant or efficient code was writing readable code and thinking about really how that system could be maintained over time.
That comes down to a lot of things like Bob Martin's famous book Clean Code or practicing Clean Code principles where you're writing your code more in the sense of the readability and the maintainability of it, rather than just the efficiency of it, or adding, again coming back to the complexity thing, a lot of complexity to it. So the same applies to life, right? You have to have a maintainable system. All right? So for example, if you want to get in shape, you could try and do something really, really extreme that you're not going to be able to maintain. You could do a very, very low calorie diet, or you could do some extreme workouts, but you're not going to be able to maintain that over time. Instead, if you think about maintenance, if you think about longterm, like what are you going to be able to do over two years time period, and keep with it, you're going to come up with something that is going to be a lot better when you're thinking in those kind of time horizons.
Same thing with training, with business, right? Even this YouTube channel, right? If I were going to do a YouTube video a day, a lot of you that want to start YouTube channels, you do that, or you're starting your blog and you do that, it might not be something that you can maintain. You might not be able to do that for long haul. And so I see a lot of people that are trying to learn how to market themselves as a software developer … By the way, I have a course on that if you're interested in it. It's about building a brand and marketing yourself. There'll be a link down below. But what they try to do is they try and come up with these crazy kind of ideal scenarios. Right? And they try to just put out a lot of output at one time, but it's not maintainable. And so what is happening is maybe they'll start a YouTube channel or they'll start a blog and they'll make like 50 videos. And they'll do them, just focus on that for such a long time or write a bunch of blog posts.
And then what they'll find is they can't maintain it. And so they end up giving up and they end up dropping out and they just basically end up fizzling out because they never give it enough time, instead of being consistent and producing every single week or on a regular cadence. The same thing with running, right? I learned this with running. I'm an ultra marathoner; I'm training for a hundred mile race right now. And one thing that you learn as you're getting into longer distances, half marathons and marathons, is that you have to keep a consistent pace. Okay? You have to think about the fact that you're going to run 26.2 miles or 50 miles, or even a hundred miles. And you have to be smart enough to conserve your energy and to keep a steady pace that you can maintain for that amount of time. Right? If you just go out of the blocks just as fast and you can, and I've done this before on some half marathons, you're going to die out. You're not going to be able to make it to the end.
So, real quick here, just to recap these … And there's a bunch more if you guys liked this video, if you want to hear more of my sort of life learnings from being a software developer, give a thumbs up, like the video, comment down below, let me know. But, to recap real quickly, so the first one I talked about was automation is key. The second one is that every problem can be broken down. The third one is that simplicity beats complexity. And the fourth one is to create maintainable systems. All right, guys, if you want to see some more videos on this channel, one that I would recommend is Which Programming Language Should I Learn? I'll have a link to that below; you can watch that next. And go through some of the videos on the channel. And I think that you'll find that I'll answer a lot of questions, not from the technical perspective, but from the soft skills perspective, that will help you to have a better insight in life and to be more successful overall. Talk to you guys next time.