It's the end of October and I've submitted 4 PR's for yet another Hacktoberfest. In exchange for a $10 shirt and some stickers, I spent more hours than I meant to, writing code for OSS projects I didn't know existed, whose owners may not even bother merging my code.
I don't care about the shirt - my wife usually ends up with them, which is fine by me. It's not the stickers - I just give 'em to my kids. Let's face it, the prizes ain't that much to get excited about. So I find myself wondering... but why?
I can think of a few reasons - and they're not all as altruistic as I'd like.
It's more fun to be on the ship than waving it off
Sometimes it's fun just to know you were part of something. An event was announced, people were jumping in, I did too.
It's the reason 11 million people signed up to have their names etched on a microchip on the next Mars rover. Even if your part in something was tiny in the grand scheme, at least you left a mark.
If a tree falls in the woods and no one tracked it, did it really happen?
I can't deny it - I like the idea of completing 4 tasks instead of, well, not completing 4 tasks. We live in a world obsessed with numbers and quantities and "progress". If you exercise and then realize your Fitbit was off, did it even count? Have you ever completed a task, realized it wasn't on your to-do list, then added it and immediately crossed it off? No? Liar! Liarrrrrrrr.
It's part of the reason I quit social media - I love seeing progress in whatever form it's offered (more likes, more commits, more karma), and like most people I start conforming my actions to make sure the fake internet points keep coming. That's only healthy if the ends justify the means - or if the means are worthy of the end. 🙄
For me, I think it does.
A brick plus a brick makes... well, a very small building
A couple years ago, I contributed some refactoring and test coverage to a genealogy project. I got to share my knowledge, help someone else out, and learn new things about C#. I contributed a few bricks of my own, and someone else will add theirs on top of of mine. Sounds like a win-win for everyone.
If you're interested, here were my contributions this year. The first two were about sharing my knowledge of building out test suites and configuring CI builds.
Then I found a project concerned with static code analysis - think code that validates code. If you've been programming for awhile, it's sorta like meta-programming. Or something.
The last one was a stretch for me, because it concerns a technology I have little experience with but that I'd like to know more about - GraphQL. I wanted to try implementing it in a real world project, not just something I doctored up for a blog post.
How about you? Did you do it? How'd it go? Are you thinking of doing it next year? Feel free to ask me a question. And good luck!