tl;dr Start forking (cloning) on this Sunday, May 4, 2014.

You don’t have to be a fan of Star Wars to know what’s up on May 4 every year. But maybe this year, you can turn it into a Fork (Clone) Day with that Force. And maybe, stop creating new repspositories from now on, but contributing, instead!

1   Why stop creating?

Over the last six or so months, I have seen a lot of dead repositories that just created and then went into inactivity. Actually, only few were actually good codes, most of them you could tell the owner didn’t even care about anything or couldn’t even code or use tools properly. Why bother to put their code out is beyond me, when clearly many of them doesn’t even check issues.

So, please, before you thinking about click on that create new repository button, fantasizing how great idea you just have, don’t and stop! 99.9% of chance that there are already a dozen of implementations in any language you probably can name.

Nobody cares much about yet another xyz, so don’t waste your time and resources. All you actually does is this user.repos_count++;.

2   Why contributing?

One can argue that you create a new repository for learning. Let me tell you this, you are correct, but there is a better way to learn, that’s to read others’ codes, and no matter they are good codes or the worst codes ever written in history, that doesn’t matter, you will learn more than from creating new repository.

When you create new one, you tend to fall into your old habits. Yes, you may search for a solution that you just encounter. No, even you are learning a new language, you are still accustomed to the ways of previous languages.

Reading codes, if you are happen to read from people are good, then you are in for a treat. Unfortunately, or fortunately, if you are reading someone who can’t really code in that language, somehow you can tell how terrible a code is, once you go through a few of codes from different coders. You might not be able to distinguish the master piece and good codes, but for bad ones, you could tell because there are a lot of signs to tell.

3   Finding projects to contribute

One place is GitHub Explore, which is probably the hottest place to get started.

The other places can depend on your programming language. For instance, Python, you can try Python Package Index‘s RSS feeds for latest 40 updated packages or newest 40 packages.

There are other package indexes, such as CPAN, Ruby Gems, or jQuery Plugin Registry. I am sure they all provide some feeds for latest updates, and that’s a good place to find some new packages. It might take some time to go through many entries to find one suitable for you to contribute, be patient, you will find one worth contributing, eventually.

New or small projects might be better candidates since it’s easier to get a hold of whole picture of a project, you wouldn’t need to read thousands of lines before you could make some contributions.

4   Contributions aren’t just coding

Contributions don’t have to be all about codes, documentations also count. Giving feedback and reporting bugs are great for a project, feature requests are one of the Forces that pushes a project forward. Writing about or even tweeting is also contributing, just in very different way.

You don’t have to be someone can code in order to contribute, there are many ways to contribute. You may even contribute a developer, indirectly, without knowing.

5   When for the Fourth

If you are a fan of Star Wars, try 24-hour, contribute as much as you can. But it might be better to just have May 4th as the start date of constant contributions to open source for the rest of your life.

If you are crazy enough, try starting sort of 24-hour at 8PM on 4th (Sunday), pull an all-nighter, then go to work on Monday. After work, have a nice dinner to reward yourself, then tune in at 8PM for 24: Live Another Day for the 2-hour season premiere. At 10PM, if you are still awake, you can tweet about “24: Fork Another Day,” if you dare.

6   Final Force

The Force of contributing is stronger.

It doesn’t have to be commitment, even for fixing typos would be nice when you come across some projects that the language you don’t even know. Who knows? You might give the project owner a gentle push, lightly encourage he or she to continue the development because of your tiny patches.