Programming is hard. Whether you do it for fun, for money, for fun & money, or whether someone has a gun pointed at your head and is forcing you to program… It ain’t easy.
There are a lot of things you need to know. You can never rest, never stop learning, and never stop coding if you want to be great. The best programmers are the ones who fearlessly tackle problem after problem, every day, and gradually learn the patterns, tricks, and tools that help them do their work better.
The sport of bodybuilding can teach us (as programmers) a lot about ourselves.
Nothing Great Comes Easily
In life, nothing great comes easily. It doesn’t matter how much of an advantage or disadvantage you have–everyone must work for their success and fight to get what they want. Whether you want to be the greatest programmer in the world, or the largest bodybuilder, it requires lots of sacrifice, struggle, and time.
Bodybuilders spend years working on their physiques. They have to eat lots of healthy food, workout almost every day, push themselves beyond their physical limits, and fight through immense pain. As programmers, we need to adapt this practice. There are no perfect programmers, there are only programmers who continue working hard to become better, faster, and more creative. If you want to be a better programmer, you need to program, every single day.
Consistency is the largest ingredient in success. Bodybuilders spend years (literally) working out every single day. Doing lifts, cardio, eating proper foods. Dorian Yates (a famous bodybuilder) famously said: “Moderation in bodybuilding is a vice, moderation is discipline is a failure.” In order to keep improving as a person, you need to be consistent.
Regardless of your natural aptitude for something, whether it be programming or bodybuilding, work consistently towards your goals and you will reach them. To not be consistent is to commit suicide. It may be hard to wake up every morning and program, or hit the gym, but that dedication is what pushes you past your natural limits and helps your mind and body continue to grow.
Know What You Want
One of the most difficult things to figure out is what you really want in life. Do you want to be the strongest person alive? The most successful programmer in the world? Make over a million dollars a year? It isn’t easy to figure out what you want to accomplish in your life, but it is crucial in becoming a more successful person.
Bodybuilders strive to build the perfect physique. They want to have perfect physical symmetry and defined muscle groups. Training for bodybuilding is intense, it requires lots of meticulous planning, and an exact physique to strive for. They know exactly how large they need to their waste, biceps, chest, and thighs to be. They have clearly defined targets that they work to reach day after day.
In order to be a successful programmer, you should also know exactly what you want. You should know the technologies you need to learn, what sorts of apps you want to be able to build, and have a scale to measure your success along the way. Having clear goals gives you something to work towards everyday and helps keep you focused.
Learn From Those Around You
Don’t ignore those around you. Use knowledge you get from other people to increase your effectiveness in whatever you do.
Isaac Newton was famous for saying: “If I have seen a little further it is by standing on the shoulders of Giants.”
What Newton means of course is that to be great you should use the knowledge that those before you have discovered, and continue from where they left off.
Bodybuilders in particular use this practice often. They learn about techniques, nutrition, and supplementation from other bodybuilders who have experimented along the way. They constantly strive to pick up where others have left off and find new and more effective ways to push their bodies beyond their limits in order to achieve the perfect physique and frame that they want.
In programming, we often prefer to do things “our way”, whether it ignores previous research or not. To be a good programmer, you need to know when to ignore advice from others, and when to use it to your advantage. You need to be able to analyze the techniques of your colleagues, and build upon what they have done.
Once you’ve learned to accept outside influence you can develop your skills much faster and more effectively, but when you stop absorbing knowledge you lose this edge.
Always Go For the Win
Bodybuilders need to break through mental and physical barriers everyday. In order to win competitions, they go to extraordinary lengths that most people would consider crazy. Ask any champion bodybuilder how they train, and they will tell you that they train to win. Anything less is unacceptable. This practice applies to programming as well.
When you start working on your application, give it 100% of your energy and effort and nothing less. Don’t aim for the minimum you can get away with, aim for perfect every single time. Only by working as hard as you possibly can every time you sit down will you be able to achieve great things. Building software is complex and tiring, and requires great dedication, effort, and passion to be successful.
Let’s face it, we build software for users. What separates bad software, from ok software, from good software, from amazing software–is the little things. Don’t take shortcuts in your work. Always deploy kickass software, and you will never fail. As long as you give it 100% of your effort you can’t go wrong.
Bodybuilding like programming requires a lot of effort, patience, and passion. As programmers, we can learn a lot from bodybuilers, to help us reach new levels of technical ability.
Always keep pushing yourself beyond your limits, and you will achieve great things.