I have been practicing Brazilian Jiu Jitsu for a few years now, and I have noticed a lot of similarities between Jiu Jitsu and Software Development. In this post, I will explore some of the ways that Jiu Jitsu is like Software Development. These similarities often attract the same type of person, and there is a significan overlap between the two communities. I believe that some of the reasons below show why this is the case.
What is Jiu Jitsu?
Jiu Jitsu, or Brazilian Jiu Jitsu, is a martial art that focuses on grappling and ground fighting.
It is a relatively new martial art, having been developed in the early 20th Century. Over the last 20 years it has gained a boom of popularity, but is still a fairly niche sport.
What does this have to do with Software Development?
Jiu Jitsu and Software Development are more alike than you might think. Below are a few ways they are similar:
-
Both are very new activities, although with their roots in much older practies.
They have both only existed in their current form in the last century, but have roots in much older practices. JJ in some form is most likely as old as humanity, and Computer Science has its roots in mathematics and logic, which has been around nearly as long.
-
Both require a lot of problem solving.
Both are very intensive problem solving activities. You are presented with a problem, and need to figure out an efficent way to solve it. In JJ, this presents itself as a physical problem, maybe your opponent has a strong position, and you need to figure out how to work around it without leaving yourself vulnerable. In Software Development, this could be a tricky requirement that you need to figure out how to implement without breaking other parts of the system.
-
Both are constantly evolving, and if you don't keep up, you'll fall behind.
Jiu Jitsu is constantly evolving and new metas are being developed all of the time. For example, in the second half of the 2010s, the leg lock game exploded, and previously unknown athletes with unknown techniques were able to dominate athletes who were previously looking unbeatable. In Software Development new technologies and practices are being developed all of the time, and if you want to be the best developer you can be, you need to keep up with the changing times. For example, the rise of serverless computing means that developers who don't learn how to work with it will be left behind.
-
Both are practical activities that result in something that either does or does not work empirically and provably.
As opposed to dance, writing or music, both Jiu Jitsu and Software development either work or they don't. In Jiu Jitsu, you either submit your opponent or you don't. In Software Development, your code either works or doesn't. This is a very practical and empirical way of working, and is one of the reasons that both are so rewarding. The immediate feedback of knowing that you have done something right or wrong, and have this proved to you by the results of your actions means that you can always be improving and learning.
Other Areas of Similarities
I also have the opinion that having some working knowledge of both is a key skill that I believe can be truly life changing. The ablitiy to automate repetitive tasks with simple programming and the ability to defend yourself are both practical skills you get out of the respective hobbies, but more than that are the 'soft skills' they improve. In regards to programming, I am referring to the ability to problem solve. Breaking problems into smaller parts and the ablity to think of each of these parts logically is a lifelong skill that I believe is improved greatly by having some simple programming knowledge. The soft skill for Jiu Jitsu is some self confidence, and being able to be comfortable in uncomfortable situations. Jiu Jitsu gave me the ability to be in almost any situation and think "I have got through worse feelings".
In Conclusion
If you are into one of these things, I highly recommend trying the other. The cross over of skills and experiences improves your abilities in both. And if you are doing neither, there is no better time to start.
If everyone did 3 months of BJJ, and 3 months of programming, I honestly believe the world would be a little bit better.