Over the past few months, I’ve taken a deep dive into software development with Dev Bootcamp. In this time, I’ve learned immense amounts about the technical aspects of writing code. I’ve also learned there are emotional strengths that can be as vital to success in this space as intellectual ones. The process of making software […]
Over the past few months, I’ve taken a deep dive into software development with Dev Bootcamp. In this time, I’ve learned immense amounts about the technical aspects of writing code. I’ve also learned there are emotional strengths that can be as vital to success in this space as intellectual ones.
The process of making software is built on negative feedback. The majority of the time, you receive feedback only when something you’ve tried doesn’t work. At best, these messages take the form of glaring red screens and, at worst, cluttered and unformatted text full of symbols and file locations. When I first began wading through these error messages, they provoked an emotional response. I saw them and my confidence was shaken. They elicited a fear of the thing I was doing, fear that I wasn’t smart enough to do it, fear that the error would be inscrutable and the problem unsolvable. And, because of those feelings, I’d move on without reading the error too closely. This was a mistake. Errors are a gift. They are built into these systems because they are incredibly useful. They carry with them information about what didn’t work and why. They can help you construct a new approach that doesn’t fail. Or, more often, fails differently.
I had an instructor at Dev Bootcamp who told me when he sees an error, he doesn’t try to make the error vanish and the code run perfectly, he tries to change the error message. That’s what progress looks like. And I think that’s as true in software as out of it.
There’s a sense that anytime you don’t succeed it reflects on your worth and intelligence and thereby diminishes you as a person. But I’ve found that in reality, if you’re doing something complex and difficult enough to warrant doing, it’s unrealistic and damaging to expect a first attempt to be flawless. They say writing is rewriting. Well, coding is debugging, and I’d venture that doing anything well is redoing it. It is important not only to be open to this redoing, but to be open to the missteps taken along the way. To be grateful for them and the information they provide about what does and doesn’t work.
This experience has taught me the value of evaluating errors without identifying with them. In order to learn more fully from both positive and negative experiences, I no longer hitch my ego to immediate success. Positive feedback feels nice, but negative feedback, when actionable and specific, makes you better.