You’re still here, reading this article?
Well, that means you’re probably like me a few years ago. You think “I don’t have time for that” or “I am not good enough to contribute” or “I can’t code at all”.
All of those things are no excuse.
First: About the time.
I guess you have a lot of things to do then, right? And I bet you wrote a few scripts (be it a tiny 2 liner or a huge collection of shell scripts) to speed up the chores, right?
Publish them. Now.
There’s no need to polish them or write 100 pages of manual texts. Just throw in a readme with two lines (what it does and how to execute it) and publish it.
If you don’t wanna “clutter” your account with a repository or the script is just one clever line of shell code, you can also use Coderwall or a Gist.
Why you should publish things like that, you ask? Because even if you think it’s a very specific solution for a very special problem, others may encounter it. And if so, your tool can help them get it done quicker.
Another case is when you do a little modification to an existing tool, because it makes it a little easier to use or a little faster or even fixes a bug - publish it, so that others can benefit just like you did by using the tool in the first place.
Contributing often only takes a few minutes and often you just need to put it online somewhere (with things like Github available, this is no big deal anymore!) - and you should do so, even if it’s not polished.
I see it pretty often that people postpone their contribution, because it needs to be cleaned up, documented or polished in whatever way. Publish the raw gem that you have - and then you can polish it later. Maybe even other people polish it for you.
Next one: You are good enough and you will learn something from contributing.
There’s really just two things that can happen: Your code is good enough. And it’s a great feeling, when it gets accepted into a tool or library you use in your daily work.
The other case is, that your code isn’t good enough. In that case you get invaluable feedback on why it isn’t good enough and how to improve. That, in the long run, makes you a better programmer. It’s pretty much free training. Use this opportunity by contributing code.
Alright - last one.
You can’t code? So what?
Often the documentation of a project has missing or outdated parts. Fill them with the knowledge you gained while using the tool.
Another way of contributing is joining the forums, mailing list or user group or stackoverflow of the project to answer questions of others.
You should understand that contributing is a small thing to do with a big impact.
Don’t hesistate, contribute today.

