Ascending algorithmically

I’ve never done any real rock climbing, and have very little first hand experience with climbing walls. So my knowledge is mainly from reading and watching others.

I’m always amazed by people who have the physical stamina and concentration to climb up a rock face. To witness such an ascent is a thing of beauty, as the climber strategically works his or her way up the wall, shifting positions to make best use of a handhold here, a foot support there.

Sometimes when I am writing software it can feel like I am climbing a sort of mental rock face. Each iteration of the program gets me to the next safe handhold, but then I need to rest for a while and think about my next move.

That’s because every step in software development needs to produce a valid program. If you make a wrong move and break the program, you’ve pretty much fallen off the mountain.

Which means you need to be strategic. You can’t afford to move too quickly, since you always need to think several steps ahead to make sure you’re not ascending into an impasse.

So here we have two extremely different human activities — programming and rock climbing — that share certain qualities. I wonder whether there is some way to combine them.

What would it be like to program while rock climbing? Hmmm…

Leave a Reply