Main navigation

Applying stoicism to programming

November 25, 2016

This is one of the first things curriculum director Mike Wales says at the start of the Front-End Web Developer Nanodegree. When he said this I immediately thought of the books I’ve read on stoicism. Particularly I was reminded of a line from Marcus Aurelius’s meditations:

The impediment to action advances action. What stands in the way becomes the way

We often look at people who overcome seemingly insurmountable obstacles and think, I could never do that. Similarly we look at software engineers who solve complex problems and think the same thing. Yet it’s not so much that some people are better at solving or overcoming problems than others, it is that some people work to find or create the opportunity within the obstacle. This is the center of stoicism. In Ryan Holiday’s The Obstacle Is The Way, a book based off the line above from Meditations, he looked at many historical figures who triumphed in the face of adversity and found that what they did was work to take the thing that was blocking their way and use it to propel them forward. What stands in the way becomes the way.

So when I started Udacity’s Front-End Web Developer program and heard the curriculum director talk of problem-solving strategies, I began to try to apply stoicism and this way of looking at things as I went about project 0 and 1.

During project 0 of Udacity’s FEND, I used HTML to make some changes to an article. Within an hour, I got my project back with a pass. I had completed it perfectly and could move on to the next project! However, a few days later when I turned in project 1, my project came back with many comments and suggestions on what I could have done better and it was marked as “Does not meet expectations.”

My project had not passed and I would need to resubmit it. My heart sunk. I had an immediate negative reaction.

So often when we’re faced with an obstacle we want to give up or surrender to it. It’s the ability to try to look at things in a different way that makes stoicism so powerful. After that first bad reaction, I started trying to find ways to look at the benefits of re-submitting my project. I realized that I could now correct what I had done wrong and learn from it. I could become more meticulous about checking if my code met every specification as outlined on the projects guide. When my project was returned, it had a detailed review of almost every line of my code. With suggestions and feedback, I began to improve my project.

This isn’t something that would happen in traditional education. While Udacity allows you to re-submit your project as many times as you’d like, in college, my original project would have most likely been labeled with an F or a C with no chance to improve it or get much feedback. I would be left with a very final ‘F’ grade and my class would move on to the next project immediately. Yet Udacity’s unconventional submission process allowed me to figure out the problems in my project and learn from them, with the view that the obstacle of re-submittiong my project was not a failure but a way to do better. In this way, Udacity’s approach to projects reminds me of ideas in stoicism: a bad thing happening doesn’t have to be a bad thing. It can be a chance to improve, pivot and learn.

I re-submitted my project and it was better than it could have been before. I moved on to the next project.

At another point in the program, Mike Wales reminds us that when learning to code “You’re going to frustrated. You’re going to program yourself into a corner that seems inescapable.” In programing–and in life–by practicing stoicism, we can learn how to get out of that inescapable corner, find the possible benefits of being there, or just improve ourselves from the experience. What stands in the way becomes the way.