Why and how much one should exercise/train in software development?

TL;DR

If you want to be the best of the best, then a lot.
If you want to be good, then less than a lot, but still a lot.
If you want to be “just ok”, then not quite a lot, but enough to not to stay behind than the 80% of the competition.

If you do not exercise/practice/train/learn – then you will stay far behind, around the last 20%.


Software development is a unique field. While the whole world seems to run on software nowadays, the speed with which it is evolving, it is quite a surprise that the world does not crashes every few minutes or hours.

In software, a new version is launched, a new PR is merged, a new commit is pushed, a new line of code is written – and something changes.
What you knew a second ago, has changed, and while you were looking at the change, something else has changed.
Obviously, we cannot keep up with this pace of change.

So, how much one should exercise or train in software development?

Rather than focusing on just learning in software development, let’s compare it to some other common things that are supposed to make us better.

We know for a fact that a healthy diet and exercise are good for us – even if we don’t do it, we “know” it is good for us.
We know that we should eat healthy, but we don’t do it.
We know that we should exercise, but we don’t do it.

Why?
Because it requires effort, and we are lazy (or we are not lazy, but we are busy).

If you want to have a healthy diet

  • Follow a strict diet on a regular basic (even if you feel repelled by it, initially)
  • Have a cheat-day, when you can have anything else (not necessary, but it helps)
  • Keep changing the diet-plan, to focus on different body needs, like protein-based, carbohydrates-based, fat-based etc

If you want to be physically fit

  • Follow a strict exercise regime on a regular basis (even if you feel repelled/challenging, initially)
  • Have a cheat-day, when you don’t exercise, and rest (not necessary, but it helps)
  • Keep changing the exercise plan, to focus on different body parts, like legs, core-strength, arms, back etc

If you want to be good at software development

  • Follow a strict learning/practice/training regime on a regular basis (even if you feel it challenging/difficult, initially)
  • Have a cheat-day, when you don’t exercise/learn, and relax your mind (not necessary, but it helps)
  • Keep changing the learning plan, to focus on backend, frontend, DevOps, security, code-quality etc

The key word here is “If you want…”
If you don’t want to have a healthy diet, you don’t have to put in any extra effort.
If you don’t want to be physically fit, you don’t have to put in any extra effort.
If you don’t want to be good at software development, you don’t have to put in any extra effort.

Stay Lazy, Stay Content – that is one mantra that is NOT going to help you.

A lack of “Healthy Diet” and “Exercise” does not mean that you won’t survive.

  • You will survive, but you will be unhealthy, and you will be weak.
  • Your life would not be “great” in the long run.
  • You will always find yourself “not good enough”
  • You are not going to be able to do things that you want to do.
  • You are lazy, and are not willing to do the right things for yourself, for your family, for your kids.
  • Lack of healthy-diet and not-being-physically-fit could cause you to (die early) crash in the event of a disease/infection, and people around you will suffer.
  • Lack of these would also prevent you from leading a healthy, energetic and positive life – as an individual, and as a contributor to your family and society.

A lack of “Learning” and “Practice” does not mean that you won’t survive.

  • You will survive, but you will be unskilled, and you will be weak.
  • Your life would not be “great” in the long run.
  • You will always find yourself “not good enough”
  • You are not going to be able to do things that you want to do.
  • You are lazy, and are not willing to do the right things for yourself, for your colleagues, for your company.
  • Lack of learning and not-practicing could cause you to (die early) crash in the event of a project, and people around you will suffer.
  • Lack of these would also prevent you from leading a healthy, energetic and positive life – as a developer, and as a contributor to your company and community.

People usually assume that I am good at software development, having worked on many projects in various organisations in the software industry for more than 20 years, .
It is not true.
I am good at software development, not because of the time that I have spent on the projects, but because of the time that I have spent learning, practicing and training.

On a regular day (while working on a project) I spend somewhere between 1-2 hours learning and training
When not working on a project, somewhere around 3-4 hours, at least.

In the famous words of the great Usain Bolt:
“The work is behind the scene. Competition is the easy part. Behind the scenes is where everything is done to get to that one race that you need to run!”
“Easy is not a option. No days off. Never quit. Be fearless. Talent is what you have naturally. Skills are only developed by hours and hours of work.”

Train daily.
Train fearlessly.
Train to be the monster that you want to be.

Train as much as you can, based on what you want yourself to be.

How much to train?

If you want to be the best of the best, then a lot.

If you want to be good, then less than a lot, but still a lot.

If you want to be “just ok”, then not quite a lot, but enough to not to stay behind than the 80% of the competition.