Thinking like a Bodybuilder will make you a Better Programmer
Transitioning Practices from one Aspect of life to Another
What could bodybuilding and programming possibly have in common? This is probably the question that automatically popped in your head as you read the title. Bodybuilders throw weights around at a gym. Programmers write code at a desk. Now, this is an oversimplification of both but on the surface, they are essentially different. How could thinking like a bodybuilder possibly help me become a better programmer? Although they are, indeed, completely different the mindset behind bodybuilding can transition into your programming practice.
You are more than a Programmer
You are more than a programmer. Way more. Your experiences, hobbies, interests, friends, family, and much more shape the person you are today. Taking these things and incorporating them into other aspects of your life gives you the edge and a unique perspective that no one else will have. These things do not have to be mutually exclusive.
Over the past couple of years, I’ve dedicated a lot of my time into bodybuilding. It’s a hobby I absolutely fell in love with. I dedicated a lot of my resources into learning the proper way to do things. Like anything you are passionate about you get engulfed in it. Learning techniques, how to be as efficient as possible, and how to progress further than you ever thought you could. Sound a little familiar? If you are as passionate about programming as I am you might have found yourself in a similar situation. This is how I transitioned a fundamentally different aspect of my life to improve how I think about programming.
Consistency is Paramount
Being consistent is much easier said than done. In bodybuilding, change occurs over a long period of time. You don’t lift and after a few weeks have the strength and physique you’ve always wanted. You have to grind and not only grind but you have to consistently grind. The decision has to be made that this is something that you really want. It’s not going to be quick nor easy and you will have to sacrifice to get what you truly want. I have set days and times throughout the week where I will go train. Even though I love bodybuilding, do I always want to go to the gym? No. Are there times that I would rather be doing something else? Most definitely but that is just instant gratification. The greater goal of what you want has to always be on your mind.
Like bodybuilding, to get better at programming you are going to have to consistently grind. You’re not going to wake up one morning after half-heartedly learning a new language or framework and be the next Tim Berners-Lee. Setting time aside daily, even if just a little, and committing to programming will help build that habit of consistency. It’s going to be slow and you will find yourself wanting to do other things instead but that’s when you have to remind yourself of what is it that you really want? Consistency over a long period of time is where progress shines. It might not be apparent in the short term but like a bodybuilder, you will reflect on yourself and look nothing like your former self.
Efficiency Changes the Game
Just going to the gym and lifting some weights is not enough. Learning to be efficient with your time, energy, and movements will dramatically change your results for the better. You’re at the gym and you made the decision to be consistent. Now, it’s time to learn the proper way to do things. Reps, sets, form, time under tension, mind to muscle connection, concentric and eccentric contractions are all tools at your disposal to maximize your progress during this precious time you’ve committed. By doing things the optimal way you get the maximum benefits and progress much more quickly towards your goal.
Efficiency is nothing new to a programmer. Optimizing programs to run faster with fewer resources is common. Are you optimizing the time you devoted to programming? By efficiently managing your time and practices you will be able to maximize your progress. It is not enough to just set aside time for programming and you find yourself just messing around with code or worse drifting off to Youtube/Reddit. Set yourself up in an environment to succeed without distraction. Have a goal set and drive yourself to that goal. Maybe reading a chapter in a book will help you to understand that topic better or perhaps actually working on a project will help you develop those skillsets better. Whatever the case may be setting yourself up to be efficient along with being consistent will yield optimal progress.
This is all about pushing yourself to the next level. Working with the same weights in the gym over and over will only get you so far. Your body becomes accustomed to that weight and will only use the minimum amount needed to get you through that workout. This is where you’ll need to introduce a new stimulus in the form of higher weights, more reps, or more sets to force your body to adapt. This causes you to keep moving forward and progressing closer to your goal.
Working with the same techniques or frameworks over and over again isn’t going to expand your knowledge. You’ve got to push yourself to learn something new, force yourself to think differently and adapt. Introduce a new stimulus to your programming that’s going to make you rise up to occasion and have you doing something that you didn’t know you could do. There is a seemingly endless amount of technologies in the programming world. Find something that you don’t understand and want to know more about and dive in. Through progressive overload, you will be pushing yourself to the next level.
By taking two passions in my life and incorporating one into the other I’ve been able to push myself. Consistency, efficiency, and progressive overload are fundamental concepts to a bodybuilder. Taking this mindset and applying them directly to programming isn’t a stretch. They apply seamlessly to anyone trying to progress to a greater goal in programming. You don’t have to know anything about bodybuilding to think like one and help make you a better programmer.