I often get hung up on doing activities because I can't determine the exact "right" way to accomplish them. If I can't do them perfectly, I often just don't bother. I also often start projects I don't finish because I don't deem them 'good enough' to share with anyone. What I am often forgetting, is that getting praise and adoration from my peers isn't the only reason to do something, sometimes, its just good to do stuff for the sake of doing it, and seeing what happens.
After close to a decade writing software for the web, I feel like I've gotten pretty good at it. I'm no code ninja. I don't really think I 10x things all by myself (though helping 5 people 2x is a lot more fun), but I recognize that I have certainly picked up a lot of skill in that time, and it often seemed like I obtained those skills far more quickly than colleagues expected, and indeed I have often taught concepts to developers with many more years of experience than me.
When I reflect on how this comes to be, I think the reason I've crammed so much in to such a short time is actually just a consequences of all the 'pointless' and 'fruitless' projects I've started and abandoned over the years. I currently have zero sponsors on Github, I have zero paid products bringing me in any revenue, I have zero courses or books to sell. Sometimes it gets depressing thinking of all the time I've spent on projects that haven't directly earned me a single dime.
Every now and then though, I take a look at all of the other benefits the 'extra reps' I do on the side have brought.
- I have helped more people than I can count on Slack with issues related to Lando, Drupal, Statamic, Laravel, and DevOps.
- I have gotten my last 3, very well paid day jobs mostly through connections I've made doing this exploratory side work.
- I've developed at least a small reputation for being a person folks can go to with questions, which means I've made a lot of at least 'positive acquaintances', and actually a good deal of friends in the Drupal, Lando, and indie bootstrapper communities by always striving to learn and share.
- I've built a pretty considerable war chest of skills that consistently allow me to execute at a high level on just about any web project I called into.
To build up those things, I've created over 150 Github repositories, some for ideas that I just lost interest in, a bunch that served as examples for the latest way I learned to do some things that I could share with folks. I've completed over 30 code exercises on Exercism.io in 7 different languages (NOT just PHP and JS, the languages that pay my bills!). I've given a few handfuls of presentations / talks at conferences, I've volunteered at conferences (lets face it, its WAY more fun to volunteer than it is to attend, you meet the people who organize things and they remember you for helping, and more friends means a better life).
I haven't directly been paid for any of that work, which sometimes makes it very hard to prioritize doing, just like blogging here, and on Unrealist, or the work I am currently doing to build a Chat Support Application that is focused on arming the support agent or to create a Drupal Commerce based motorcycle accessories/apparel/parts/whatever shop. None of it is bringing me a dime, but it sure is making me knowledgeable about a TON of topics that I wouldn't be able to learn during my day to day work.
I guess this is just a reminder to myself, and maybe anyone else out there in the same boat that you don't have to see the immediate and tangible return for everything you do, and if you get caught up in it too much, you might decide not to do things that bring both you and others something good in the future.