The Necessity of Failure

Last week, my code lead sat down with me for a quick update. 鈥淵ou鈥檝e failed plenty of times so far,鈥 he told me, 鈥渨hich is to be expected.鈥 I wasn鈥檛 surprised to hear this. I could think of several times I鈥檇 felt lost in the weeds of my own code. Each time, I鈥檇 sought out the perspective and experience of a fellow developer to regain clarity. I could recall several other times that I鈥檇 discovered the perfect solution to a problem, only to break something else in the process.

What did surprise me was my lack of reaction to his feedback. I wasn鈥檛 devastated or disheartened. This information registered as a simple, non-judgmental statement鈥娾斺奱nd an opportunity to learn more.

The power of a growth mindset

This sort of neutral response to failure may not come naturally for most people. In my case, it was hard-won and developed over time鈥娾斺奱nd is still developing. The mindset I began to develop in coding school is alive and well in the greater coding community. It enables coders to work on dozens of problems a day, solve a few, get stumped by a few more, and start over the next day.

One of my first assignments in coding school was to read 鈥檚 article, 鈥.鈥 Popova explains how there are two ways to think about intelligence: either it鈥檚 set and can鈥檛 be changed, or it can be developed over time. The scary part is, whichever you believe will come to be true.

Those who believe in a fixed mindset tend to avoid challenges, give up easily, ignore feedback, and sidestep any opportunities to flex their intellectual muscles. On the other hand, someone who believes in a growth mindset 鈥渟ees failure not as evidence of unintelligence but as a heartening springboard for growth and for stretching existing abilities.鈥 Whichever school of thought we subscribe to, our relationship with failure and success often follows accordingly.

Getting the memo

It took me awhile to get used to this growth mindset idea.

Early on, Luke Segars鈥 鈥 my instructor at 鈥 looked over my shoulder several hours into a project and noticed I was still working on the navigation bar. I couldn鈥檛 bring myself to move forward until the search bar looked exactly how I wanted it. I also didn鈥檛 want to show him my work until I鈥檇 perfected it. 鈥淵eah,鈥 he told me, 鈥測ou鈥檙e going to need to get over that.鈥

A few weeks later, we started the day off with a JavaScript word problem. The goal: teach the computer to track how long a fisherman lost at sea would survive with a few fish in the boat and an ominously low chance of catching more fish. I tried to solve the entire problem with a single function and found myself boiling over with frustration. Even worse, this was just one of a series of problems that I鈥檇 failed to solve.

But my anger led me to pay closer attention to the solution. Luke broke the problem down piece by piece, dividing the complex problem into smaller chunks of logic. After each of the smaller problems were solved, he put them back together into a simple, cohesive whole. Looking back, all of those problems from the past week that had seemed out of reach now seemed more manageable. He鈥檇 told us many times to break problems into smaller chunks, but it wasn鈥檛 until I was ready to yell at him that I finally heard what he was saying.

Growth is a process

These experiences (and many others) gave me the perspective needed to turn fear into curiosity when I run into a concept I don鈥檛 understand. Whether it鈥檚 resolving a merge conflict, building an HTML email with the paltry collection of CSS properties that are actually supported, or pushing myself to ask a coworker for help with finding a solution鈥 in coding, there are practically infinite opportunities to stretch my abilities and cultivate curiosity.

Of course, this isn鈥檛 to say that nothing changed for me in the transition between coding school and a coding job. There are team dynamics to navigate, scheduling conflicts between important meetings to solve鈥娾 and my course of study is no longer so tidy nor linear. There is plenty of room for failure here, too. I still ask too many questions, jog to a meeting that is further away than I expected, or break the code I am working on.

But as I鈥檓 walking briskly through the halls of 草榴社区 or glaring at the semicolon that just cost me half an hour of mental energy, I think about a quote my wife once left in a note on my desk:

鈥淭ry again. Fail again. Fail better.鈥 -Samuel Beckett

I remind myself that getting lost in a problem I can鈥檛 (yet) solve is a part of the learning process. If I don鈥檛 learn to live in that ambiguous and sometimes frustrating space, I鈥檒l miss the hard-won moments of revelation that brought me into this career in the first place. The more I can accept failure as an opportunity for growth, the more discoveries are open to me. Each failure is a portal, and I intend to keep stepping through.

Previous
Previous

DEEP DIVE: Never Redesign Again

Next
Next

DEEP DIVE: The Future of Ad Personalization