Train Coding like an Athlete 🏋️
Athletes do the same thing over and over again and become better at it.
Well - not quiet.
Yes, runners run, and swimmers swim. However, their training is more nuanced than replicating a race.
Runners train at different paces depending on their goal. If they want to work on their overall endurance, they go slower but longer.
If they want to work on their race pace, they go faster but for a shorter time.
They also work on their posture and go to the gym to get muscles in the right place.
Training as a Software Developer
Great, but what does this story have in common with software development?
I’m glad you asked.
Just because we do the same things over and over again doesn’t provide us with more experience.
Yes, you have more experience on paper, and you might get a handshake from your boss when you reach ten years of working for the same company, but we’re talking about real experience here.
What can we do about it?
Enter a Dojo and solve a Kata
Dojos or Katas were popular a decade ago. The idea is to solve a given problem and compare your solutions. Learn from each other and sometimes even code together.
Dojos are great for learning to solve a problem with multiple different tools or thinking about a problem differently.
For example, you can easily compare a Java solution with a C# solution for the same problem.
Different Programming Languages
Different programming languages often focus on different programming paradigms.
For example, C# is mainly object-oriented and includes some functional programming concepts.
JavaScript is mostly functional, and F# or Scala are even more on the functional side.
By trying a new programming language and learning about new paradigms and concepts, we broaden our minds and will benefit without everyday work.
Different Problem Spaces
We can also work in an entirely different problem space.
For example, you could do browser automation as a backend developer.
Or you could start with game development as a front-end developer.
Or you could implement a CI/CD pipeline as a database engineer.
Or you could program a mobile app as an embedded engineer.
There are many more opportunities.
The field of software development is huge, and we have a lot of untouched space.
Conclusion
Similar to athletes, software developers do not improve if they do the same things over and over again.
Instead, we should focus on what exercises help us gain new insights and broaden our minds.
I hope this newsletter issue provided you with motivation and ideas to pursue your next programming adventure.
Remember to watch my video where I tried something new and show how Bogus helps with test and fake data generation.