Every rock climber is un-knowingly an algorithm designer
Living in Paris, Tokyo and now Berlin, I’ve seen numerous climbing gyms sprouting up in the city. Bouldering, unlike sport or traditional climbing, is performed without ropes on a wall usually less than 6 meters tall. Initially considered a form of training for larger ascents, it later evolved into a separate discipline which gained significant traction with city dwellers over the past couple of years.
Although bouldering is typically seen as a physical activity, after a few sessions of climbing your way up the ladder of grades, you might realise that relying solely on your physical capacities can only take you so far. It is because, not only trying to overcome a physical difficulty, you are also asked to solve a problem designed by the route setter.
As a passionate climber and a logical-thinker, this is my take at explaining why I love bouldering and why it’s always been a motivation to overcome myself physically and mentally.
First, what is a problem?
Whether climbing natural boulders and crags or artificial walls, you are essentially trying to find a path to get to the top, to complete the climb.
That is, a sequence of operations. Talking about her discipline, Yosemite legend Lynn Hill explains that:
“Free climbing is all about adapting yourself to the rock, putting together a choreography of dance moves. The rock is what dictates the moves.”
An iterative process
Being unable to solve a problem on-sight — on the first try — is perfectly normal at any level of difficulty.
When I’m unable to overcome a problem with a specific approach, I then, go back to the thinking board, design another one, test it and iterate until solving it.
This process might take more than a few attempts depending on what you are trying to achieve. In Mitake, I remember spending every weekends during a month on the same route. There was nothing frustrating about it, only more motivation at each attempt to try a different approach and eventually send it!
Designing your climb
Whether for a passion project, a task at work left unfinished or any other problem left unsolved, when I let my mind wander, it naturally tries to figure it out. I remember that during my college year, I could visualise algorithms that I was working on when riding the bus. I would then come up with a new approach or solution to try, before getting my hands back on a keyboard. Well, it’s the same with climbing. I usually know what my next attempt will be before looking at the wall again.
You will often see climbers facing walls and mimicking multiple combinations of moves in the air and trying to figure out the best approach for the next attempt. This phase bears many similarities with the process of designing an algorithm and going through the lines of code with your finger. Obviously, there are limitations to what you can prepare from ground level.
You are dealing with a lot of variables that are eventually shaping your climbs. You are limited by your physical conditions and your state of mind (height, style, motivation, endurance, balance, flexibility) as well as external factors (the route’s grade and style, type of rock, weather conditions). Fortunately enough, there isn’t only one solution to every problem. By understanding your limitations, you can come up with very creative approaches.
A puzzle game with many solutions
On a specific route, due to my lack of balance, I was unable to repeat a certain move that most climber could perform. I then, decided to try a different approach and compensated with my height and spring. It worked like a charm! Reaching directly to the next hold, I was using less strength and had enough energy left to complete the climb. I remember thinking that it felt more natural to me and was probably closer to my style of climbing.
I do think that you can tell a lot about someone’s reasoning process and mindset by watching him climb. Given the set of moves you are able to pull, you are free to chose any method to solve a problem.
When climbing or programming, there are always many approaches to consider. Dividing a complex problem into smaller and more approachable problems is a very common one.
Dividing complex problems into subproblems
When having difficulty facing a bouldering problem as a whole, it’s easier to chunk it into subproblems and solve them separately. This recursive approach which is very similar to the Divide and Conquer paradigm used by algorithm designers, takes roots in the Divide and Rule strategy employed by Caesar and Napoleon to maintain control over their empire.
Once you feel confident enough climbing each subproblem separately, you can assemble each sub-solution and attempt to pull the full climb.
In most cases, a solution to a bouldering problem cannot directly be used to solve any similar problem. However, you should be able to reuse some of its subproblems’ solutions and build up on that.
Reaching the top is an accomplishment but certainly not an end. Instead of computational limitations, you are facing physical and mental limitations. When you spend an afternoon climbing, even if you send the first climb, it doesn’t make any sense if it drains all your energy at once or if you hurt yourself in the process. Like any motivated programmer, a climber will ask itself the same question:
“Can I do better?”
In computer science, an algorithm’s efficiency is defined by the time it takes to compute depending on the amount of data given in input. What it tells us is that ressources, in this case, time, are scarce. As a computer scientist will try to optimise his execution time, a passionate climber will focus on finding alternative ways of overcoming the same problem with less effort. Each attempt is an opportunity to find a more efficient set of moves.
In Opéra vertical, a documentary about pioneer climber Patrick Edlinger, he explains that his goal is not only to get to the top but, to find the best way to go up and to make it look as light and easy as possible.
I think that, the greatest feeling about climbing a hard route, is to make it look simple. Luckily, your are not always climbing alone and you can rely on other climbers’ expertise to progress.
Bouldering is a team-working sport
Obviously, one can boulder alone without anyone’s assistance. Bouldering doesn’t require for someone else to belay. It’s the same with programming, you could be a lone wolf too. However, there is a lot to be gain by sharing with others. Wherever I have been climbing, I have always been amazed by how climbers are eager to help each other. This exchange provides motivation, competition and emulation and enables you to outdo yourself. Also, a lot of social learning happens through imitation which sometimes reminds me of Open Source and Crowdsourced initiatives.
When attempting to climb “La Dura Dura” (most certainly one of the hardest route ever), World Class climbers Adam Ondra and Chris Sharma used each other’s findings and motivation to push the climb one step further at each try.
We most certainly don’t think in terms of designing algorithms when climbing. But, I do believe that our brain, un-knowingly is using similar processes to solve the problem. And that, fascinates me.
Thank you for taking the time to read my slightly complicated thoughts about bouldering. I hope it piqued your interest and got you motivated to go for a climb!