After about six months of Brazilian jiu jitsu and something like 4 years of being a software developer in a professional setting, I’ve noticed a few big similarities between the two activities despite how different they might seem. Here’s a list of seven things programming and jiu jitsu have in common:
1. Learning Curve
Both have a huge lengthy learning curve. It takes a long time to get any good at jiu jitsu and the same goes for programming. The challenge is what draws me in. Perhaps that’s why I’ve met several other software developers that practice jiu jitsu. Maybe we’re crazy but why waste your time doing something easy?
2. Attention to Detail
Jiu jitsu requires an enormous attention to detail. It’s insane how a move can be rendered completely useless by skipping a step or getting a grip wrong. Even gripping just one inch out of place can make your submission worthless. Obviously coding requires a lot of attention to detail as well but at least then you get a chance to review things before they become final.
3. Consistency is King
I wrote C# at my internship in college. If I were to pick up a C# project now I could get into the swing of things pretty quickly but it’s amazing how unreadable some of that code is to me now. A lot of that stuff has completely escaped my brain. If I skip more than a week of jiu jitsu, it’s like turning back time on myself.
This one’s a little weird but it’s very true. Everyone has their own style. A lot of personality can come through in someone’s technique and both activities are a way that I can express myself.
Community is a huge part of martial arts. Each gym has its own culture. Software as a whole very much has its own culture and many subcultures.
Despite that strong sense of community there is only one person on your team that you can count on when someone is trying to choke you out. You can get certainly get help when learning but it’s all a means to increase your personal ability. This leads to a strong correlation between jiu jitsu practitioners and personal accountability. The same can be found in software developers. I read recently that John Carmack (game development and programming legend) developed a system where he would play a cd, pausing it whenever anything took his attention away from his current task, and use it to measure how much time he actually spent working. He would pause it even when just looking away from his computer for a moment. That’s the type of extreme personal accountability that you see in these people (it’s worth noting that Carmack also practices judo).
6. Always More to Learn
The BJJ game is always changing and there will always be areas of your game to improve and with all of the new languages and development paradigms releasing every week you’ll never be fully caught up as a developer. It’s great if you’re the type of person that likes to get themselves totally lost in an activity.
7. Perfection Through Practice
It might sound obvious but even more so than other activities, jiu jitsu and programming are both heavily influenced by time investment. More mat time leads to better jiu jitsu and more wins. More programming time leads to less bugs and cleaning code. You can read books and watch videos as much as you want but there is only one way to really get better at either of these things in my experience.