Most programmers will tell you that they did not write a working program – or even a working function – on their first try. It often takes multiple attempts and revisions before reaching success. What do I mean by success? There are multiple ways of looking at success too, but today let’s talk about failure.
We tend to celebrate successes and sweep failures under the rug. As programmers, we should examine failures more closely.
Squashing the Bugs
What do you do when you hit ‘build’ and your program has errors, or when your program runs but it’s buggy? Some people might bang their heads, feel frustrated or angry, and not care as much about trying to solve the problem. Others might be still frustrated but even more determined to smooth out all the wrinkles. Fixing bugs teaches us that it takes perseverance to pinpoint a problem and find a good solution. Mistakes along the way become an expected part of the problem-solving process.
You know how your program works and how to properly use it. Another person might not. Testing our programs and proactively coding against possible user errors helps the program run properly – it is also a valuable exercise in empathy. Preventing program failures partly means learning to imagine the ways that many different people might approach the program. In doing so, it is easier to create something that other people will find enjoyable to use.
Adopting a Growth Mindset
Think about something you do well. After a few months of programming, concepts like for loops probably seem like no big deal, but they probably weren’t as easy the first time. Learning to program involves making countless mistakes and learning from them along the way. Over time, we develop logic skills and knowledge that helps us learn more quickly. That knowledge was very likely acquired rather than a result of inborn talent. Programming is an example of how we benefit by embracing failures as challenges waiting to be solved, by approaching unfamiliar topics as something to yet be learned, and by seeing perseverance and effort as the keys to mastery.
Image by Bernard Goldbach
For more information about the Growth Mindset, see this video and other works by Stanford professor Carol Dweck.