I can remember exactly when I started to want to get myself back in shape. It was for about six month since I stopped smoking and my weigh was starting to ramped up, I was in a hotel in San Antonio seeing the increase on the scale. My colleague of the time had just bought a Heart Rate monitor watch for his exercises and told me it was helping him to have metrics on his workout, something I have never heard about before. I quickly googled “best HR watch” and I ended up to the closest Best Buy to get myself a Garmin Watch which allowed me not only getting the HR but as well the GPS track.
I was a keen runner before on a treadmill but not doing much more than 5k, and never thought myself going for races or even going outside of the gym, I was just going there because I had a free membership from my old company and thought I may as well using it.
When I got that GPS watch I suddenly discovered that formidable feeling of running the outside and the endorphins that comes with it. More importantly I started to be able to do graphs of all different type like speed, weight, distance or even more specialized one like cycling cadence, running strides and resting heart rate. I never stopped much since then and been running/cycling a lot since then with a lot of different races.
When you are running or cycling long distances you spend a lot of time with yourself with nothing else than looking at the other runners. Sometime I even keep myself some topics to think about for later when I exercise, cause I know I will have more time to think about it during those 10 loops in the cycling track where you try to beat the boreness of looping like a mice stuck in a maze. In one of those runs I started to think about the similarity between my job as a developer and when I do endurance workouts.
Those are my experience as a Software Engineer or Endurance athlete, they are probably not “mapping” to everyone, but maybe they would help you becoming a better runner/cyclist or Software developer.
If you go for a longer distance, break it down first in small parts
When you start going for a new distance longer of your usual workout and you feel like that length is going to be almost impossible to make it, try first to break it in smaller chunks first and things will be easier.
When I decided to climb the “Mont Ventoux” I knew it was going to be a hard one to get to the end, I started to cycle first the “easy” 50Km from Avignon where I was staying to the Village of Bedouin which is the start of the Ventoux’s climb by the most difficult way.
It was a hot day and the “Geant de Provence” like the local likes to call it was looking very impressive. If I didn’t prepare myself mentally of how the ascent will look like and on which kilometers the gradient would be the hardest I probably would have not even started to make it. Breaking it by different levels made me think that I was prepared for what was going to come next and I had some sort of a plan for the ascension to get to the top.
In software programming you may start to have a great idea for a project you are all excited about it and you want to start coding but you know to finish it you will better break your software in small stories and use cases with bunch of tasks you can then time them how long it’s going to take and focus on implementing each focused stories to get down to your MVP.
Get the right Tooling and learn how to use it!
I am sincerely sorry when I see (usually) young software developer using their text editor or IDEs in a very inefficient way, it seems that they are mostly use 10% of it and spend more time doing repetitive tasks. Not just for editors but even using for example git or unix tools or when for example doing Python, things like Virtualenv, tox or your testrunner different options.
Invest time learning how your equipment works how your bike works properly or which running shoes fits you best. If you need to run with music, invest some time to get the right earplug (they can be a plug to know how to use), if you have a running/cycling watch or computer try to explore all the different options there to see how you can take the most out of it, it will save you time and make your run or cycling much more efficient.
Don’t get stuck to only one thing, diversify yourself!
If you always do the same thing every day, the same running or cycling loop multiple times at the same speed boredness would come to you quickly. Same goes, if you do only one sport you will have only certain muscles in your body working out and injuries may come quickly. Try to do an another sport or core body workout it would get you better for your number one sport.
In software programming if you only spend all your time in only one thing and don’t try to learn new things you not only may becoming outdated but you would not be able to get new ideas to improve your main programming language or main framework for example. Go learn new languages even if you know that you are not going to use it there would be concept there that would make you a better programmer after.
Listen to the others
There is one thing that’s very important is to try to get advise of the others, if you go on a race go talk to the race’s veteran to see how the race look like and what to expect.
The same things goes with engineering, if you don’t know don’t just get stuck on it forever, there is multiple places on the internet to request for help and you always have your colleagues near if that question is not trivial.
Go for the big race but enjoy as much the small races!
A lot of people in the OpenSource community at least enjoy working on the famous projects that gives back a lot of exposure and fame. Those projects can be hard to participate and contribute and it could take a lot of time before your patch would get merged.
To learn new way of doing things, try to contribute to small projects first. It will be easier to read the code and talk to the maintainer
Same things goes with racing, you may want to do the famous races but those are using hard to get into and can get very expensive. Try first do some smaller ones to get a feeling of it. For example don’t try to enroll straight for an Ironman, try first a smaller sprint triathlon just so at least you’ll get the feeling of how transition works in tris.