Tell me if this has ever happened to you.
When going over some code, I discovered a chunk of “working” code that had an incredibly … amateurish implementation. The sad part wasn’t that the code-quality was poor. No, the sad part was: I was the fool that had written it.
In my defense, these perceived quality-issues were because I didn’t know any better at the time of implementation. Back when I had written the module, I had just started my efforts to learn a new-to-me framework, wxPython. And to further my defense, that code has now been working for years without any bug fixes needed. Shouldn’t it’s longevity be an endorsement of its implicit quality?
I argue the answer is yes! But that is not the point of this post.
I was reminded of this code-discovery while watching this video, featuring Ira Glass. With amazing elegance, Ira discusses creativity and the inevitable frustration we beginners face in our attempts to achieve results that match our “taste”. It’s a good video. You should watch it. It’s a belief that seems to echo Malcolm Gladwell’s “10,000-Hour Rule“.
I don’t know about you but I find it reassuring to realize that frustrations with early work is a nearly universal problem.
The twist I’ve discovered is that even “experienced” software engineers like myself fight these frustrations more frequently than one might expect. This can happen in a variety of cases, including: starting new projects in new domains, learning new programming frameworks, and sometimes even when working with new people (e.g. teammates, customers, Sith Lords).
I don’t think I am alone. Unless we stop trying to grow, we humans are almost always engaged in battles with learning curves. It’s important to recognize them.
As Ira teaches, we have to ignore our inevitable frustrations and keep producing as we struggle to conquer these various learning curves. Producing and polishing our work is the only way to improve our skill enough to match our expectations.
And then! We need to share our poor early attempts with the world so others can gain discover hope and have a good laugh.