Sometimes the route is clear. Sometimes, less so. Either way, once in a while, we must deviate from even the most well-marked trail. (Photo by the author)
I run the same route nearly every morning. The route is a loop, which means that I don’t have to double back and run the same path twice. I’ve been running this route for years. I know it like I know a lover’s body: the location of every curve and hill. I know where to find every toilet and water fountain. I even know its smells, the various fragrances, pleasant and unpleasant, that waft up to me as I pass different areas in different seasons. I’ve run it many hundreds of times, maybe thousands, in every season, every condition, and every possible frame of mind.
For all that knowledge and experience, however, until recently I had never run the route in reverse. I had run parts of it in reverse, but never the whole route, start to finish. It’s hard to say exactly why. There is no official right or wrong direction. Yet most people run and bike in the same direction. Even running the right way, you always pass people going the other way, so not everyone plays by these rules, but you always assume they have a good reason for running the wrong way. They must be taking a shortcut, they must be in a hurry or something.
I sometimes think about running the wrong way, but by force of habit I never do. Distance runners find comfort and safety in habit. Changing even something small, like your socks, or what you eat or drink before a long run (or when you eat or drink), can have a big, unexpected effect on your performance. It can cause an injury. When we discover or develop a routine that works for us, we hesitate to make changes. I guess you could say runners are conservative by nature, even superstitious.
I have no good reason for always running the same direction. Running the wrong way just makes me uncomfortable. Maybe it’s a tacit social contract with the other runners, like I’d somehow upset them if I ran the wrong way. Maybe it’s because, running the right way, I can manage my effort and speed since I know where the hills are.
A few days ago, I decided to run the wrong way on a whim. It was an interesting experience. The familiar route felt mysterious and surprising. Of course, even running in reverse I know how long it is, I know where it starts and ends, and I know what I’ll pass. As I could’ve guessed, the hills were in the wrong places, and where I expected sun, there was shade.
But there were also a lot details I had never noticed before. There were paths branching off to the side that I had literally never seen. There were little nooks and groves in the trees, and vistas on top of rocks that I had never noticed. It was sort of revelatory, for lack of a better word: I realized that there is so much I had never noticed about a place I spend time every day, and have for years, a place that I literally know better than I know any other place on earth.
It made me think about my work. I spend most of my time working on an application that’s implemented in a particular framework, in a particular programming language. What would happen if we reimplemented it in a new framework, using new tools, or in a new language entirely? Wouldn’t it be like running the usual route in reverse? I think this would be a good idea (given the resources), but I can’t clearly articulate why. It’s more of a hunch.
If we want to understand our protocol as thoroughly as possible, if we want to know its curves and contours, its strengths and weaknesses, the best way is to implement it several times in several different languages and frameworks. Why? Because each is a different paradigm, a different way of structuring and expressing knowledge and process. Reimplementing it would require going back to basics, revisiting a lot of prior decisions and assumptions within a different set of constraints. Each language and each framework emphasizes different things: makes it easier, simpler, or more natural to express some ideas, constructs, and patterns, and harder to express others. Even if the final product does precisely the same thing—as the protocol dictates—the way it works, and the way the code is structured, would be completely different.
It’s a bit like giving a talk in English, then giving the same talk in Chinese. You can attempt to give precisely the same talk, to present the same slides and ideas and say the same things in the same order, directly translating each line. Having attempted this more than once, I can assure you that the result is something altogether unnatural. Even for a technical topic, it’s important to work with the grain of the target language rather than trying to force the structure or maintain the turn of phrase of the source language. And, of course, language cannot be divorced from context: an audience with a different cultural background will expect the same ideas to be presented in a different way. Direct translation might be possible with two languages that are more similar, but not with languages as different as English and Chinese.
The right way to approach the task is to go back to basics and ask yourself the most important questions: “What’s the core point I’m trying to convey? Who is my audience? What tools do I have at my disposal, and how can I use them to convey this message in the most straightforward, approachable manner possible?” The final product may look quite different than where you started.
If you want to really test your understanding of an idea, try explaining it yourself—then try explaining it again in another language, to a different audience with a different background and a different set of knowledge, experiences, and expectations.
Running the wrong way also made me think of mindfulness. One of my favorite ways to practice daily mindfulness is to make a slight change to a routine, a behavior that I typically perform without thinking about it. A good example is changing the hand I use to brush my teeth, shave, or tie my shoelaces. Another is taking a slightly different route home. Or, when listening to someone speak, I try to pay close attention to use of filler words like “uh,” “um,” “well,” “you know,” etc., then try to eliminate the same words when I speak.
Try these exercises. Like running a familiar route in the wrong direction, they force you to be more aware of what you’re doing. They force you to slow down, and in doing so, you might just appreciate and enjoy the activity more. You may even see an activity that’s totally routine and mundane in a totally new light. (Yes, it is possible to enjoy even something as mundane as brushing your teeth!)
Mindfulness is good for its own sake, but it can also have utility. Being mindful of what we’re doing is a great way to test our skill and understanding, and to find ways to continue to learn and improve. Take the time to run the other way, and you’ll notice things you never noticed before—and things that most people will never take the time to notice. Then, the next time you run the right way, not only will you be more aware and enjoy yourself more, noticing things you hadn’t noticed before, you may even perform better. You may have discovered a shortcut that you didn’t know existed. You’ll certainly be more confident in your knowledge of the route and your ability to handle it.
The computer science equivalent of this might be rewriting something complex, something previously written in a high-level language such as Rust or Go, in a lower level language like C. It’s much more difficult, but it gives you a better, more fine-grained understanding of what’s going on. If you were to go back and rewrite it again in a higher-level language, you’d do a better job than you did the first time around, knowing what you now know.
Finally, exercises like these will give you empathy. Not everyone experiences the world precisely the way you and I do. Running the other direction—especially when that means not only changing your routine, but also running “upstream,” against the crowd—is a good way to remind yourself of this fact. Attempting to give a talk in Chinese gives me a lot of appreciation for the challenges faced by my friends, colleagues, and classmates for whom English is not a first language.
Empathy is in short supply these days. Run the other way once in a while to improve your own knowledge, confidence, and performance, but also to remind yourself that there are many ways to see the same situation.