My friends and family are under attack in Ukraine. Donate to protect them directly or help international organizations.

How skiing made me a better developer

March 4th, 2015

I'm currently sitting at T-Bar & Grill in Panorama, British-Columbia, Canada. I had a great week of skiing and another week to come. While ripping the slopes at ear-popping speeds, my mind was surprisingly free to roam and explore ideas that lead me to this article. I'm going to tell you how skiing made me a better developer. You'd be amazed how much in common these two activities have. I picked up skiing 5 years ago. Since then, I made significant progress in programming and project management as well.

Decision-making

When you're going at great speeds on ever-changing terrain, you must develop the ability to make quick decisions. You feel a patch of ice under your feet and your skis start to wobble, you see an exposed rock or tree stump ahead, an inexperienced skier is turning unpredictably below. You must decide your course of action in a second or risk injury. With enough practice, you can make a rational decision under extreme time pressure. I have noticed this translated into my programming and project-management abilities.

Looking far ahead

I take a lesson at least once a year to reinforce my technique. Usually twice. The first thing that my instructor told me was: "Look far ahead. You don't need to contemplate the tips of your skis. You need to know what's coming up and how to tackle it." That's what I do in programming. I don't look at my current code or what's trendy today. I look far ahead. As far as my foresight and experience will allow it. This is especially useful in project management and I became significantly better at it.

Overcoming obstacles

One false turn and you end up in the worst slope of your life. Just like today: I ended up in a steep one, with huge bumps with ice in between, rocks everywhere, branches sticking out and narrow passages. There was no way out of it, unless I wanted to venture into a dense conifer forest. You learn to not cry about your bad decisions, because you couldn't have known it. You can't undo the decision either. You follow through and overcome the obstacles. You can curse later at the bottom of the chairlift. When you're in a bad situation, keeping yourself together and staying rational is key to avoid hurting yourself and getting off the mountain. Look at the obstacles ahead and plan your path. This brings me to my next point.

Planning

If you value your life, plan your path. Don't charge and see what happens. I've heard enough people dying in avalanches because they ignored the warning signs and didn't probe before going. Although planning is not a guarantee, skipping this step can be fatal to a project. Too many people jump into code without having any sort of planning: not a single diagram and not a single piece of documentation. I used to be much more hasty and arrogant, but now I never code without thorough planning.

Security

Being appropriately equipped and watching for warning signs is crucial to success. If you're not dressed warmly enough, if you don't wear a helmet, if you go out of bounds without avalanche gear, if you ignore the red & yellow signs, you're taking risks. In programming, it taught me to take more measures to ensure that nothing goes wrong. It taught me to watch for the signs and calculate risks more carefully. This is especially important in project rescue, when you're trying to mitigate risks and ship projects on time, despite being behind schedule and having plenty of other constraints.

Confidence

In skiing, if you don't have confidence, you'll stay a beginner all your life. You'll be afraid to go fast, because you might fall and hurt yourself. To counter that, you must gear up properly, watch the experts, push your limits and practice a lot. In programming, confidence is what gives you momentum. I no longer second-guess every decision. I know I might make a few bad ones, but that doesn't matter, because I know that I have the skill to pull myself together and get back on track. I also know that my ability to recognize a cliff from above will protect me, so I don't worry all the time.

Rhythm & Endurance

I see some younger skiers give it all in their first run. They don't save energy for later. They ride the mountain like it's their last day on Earth. Also, many people ignore rhythm. That's the thing that makes you turn as if to a beat. If you do it right, you're effortlessly dancing on the slope. You can go on like that for a whole day and not be sore tomorrow. If you don't have rhythm, you'll be tired in an hour and will be more prone to falling, which will cause injury and put you out of commission for half a week or sometimes months. In programming, I used to push myself too hard. Now, I know better and pace myself. I became more productive and I almost never get tired from programming anymore.

Conclusion

You can find inspiration everywhere. Having many diverse hobbies will help you grow as a person and as a professional, so I suggest that you pick up as many as you can.

Previous: Should Conference Talks be Written in Advance? Next: Doctrine not saving ManyToMany