DEV Community

Cover image for Learning to Succeed Through 96 Failures
Matt Eland
Matt Eland Subscriber

Posted on • Edited on • Originally published at killalldefects.com

Learning to Succeed Through 96 Failures

I have no idea how many different hobbyist projects I've started and abandoned over the course of my life. Let's just take an average guess and say I've worked on 3 side projects each year since 1987 when I started programming for fun.

That'd put the number at 96 which sounds a whole lot more precise than saying 100 so let's go with that.

I started these projects with interest, objectives, excitement, and I loved them, then... for whatever reason I didn't. Sure I would occasionally complete projects, but more often than not, I abandoned them for something new. Sometimes I'd lose interest, sometimes life interrupted me and derailed my momentum, sometimes I'd run out of new things to learn or really wanted to try something new. Sometimes I grew frustrated with the code I have woven, and many more times I realized that I bit off far more than I could chew.

Here I am, over 30 years after starting this journey, I can tell you with absolute confidence that every one of these projects was worth pursuing - and worth abandoning in the proper season.

Why? Because each project taught me how to succeed and how not to fail.


Each project taught me how the architectural choices I made early on resulted in frustration or heightened productivity.

Each project let me try a new library, technique, or tackle a new problem and learn from it, and each next project gave me an opportunity to keep using what worked and abandoned what didn't.

Each project brought its own unique challenges and constraints for me to think through and work around, and each next project taught me how to plan around these factors.

Each project showed me new and unexpected bugs, helping me understand how - and why - code fails, and each next project taught me how to make those types of defects impossible.

In short, each side project was a safety net that allowed me to try something new and succeed or fail at it - without bringing down a production server or causing a user to get a fatal error or encounter corrupt data.


Trying things in private gave me the skills, tools, and experience I needed to succeed in public. It gave me the wisdom I needed to avoid things that didn't work with production code. It gave me the patience I needed to work with the same types of production code every day without introducing unnecessary change. It gave me the wide range of tools available to introduce drastic and proper change when it was needed.

Probably most critically, it gave me the knowledge of how to build an application from scratch. Most people don't get that type of experience on a regular basis at work, so how can you possibly get good at it other than by trying and trying again?

Keep trying, and don't be afraid to fail 96 times or more.


Photo by Daniel Watson on Unsplash

Top comments (1)

Collapse
 
zchtodd profile image
zchtodd

I like this mindset toward side projects because I too often look on my unfinished projects with shame, when really it may just mean that the itch has been scratched.

Pushing on with something once the exciting parts are done is what the day job is for.