Ask HN: How do you start contributing to Open Source?

11 points by devilmoon ↗ HN
Hey all,

I am currently doing my masters and already have some work experience under my belt, but I would like to start contributing to the Open Source community (also because a lot of top companies hire also based on your contributions).

However I don't know how to start, and I don't mean that in the naive way 'how do you use git'. The problem I face is that I don't know how to find a project I could realistically contribute to and how to find stuff that needs to be done in that project so that I can try to tackle a problem.

Do you have any pointers? How did you start contributing to OS (if you do)?

I hope to spark an interesting discussion so that less experienced computer scientists/programmers know how to start building ties with the community!

7 comments

[ 2.3 ms ] story [ 30.4 ms ] thread
I have tried to contribute to open-source in the past, but have found the barrier to entry to be too great for me to make a meaningful contribution outside of "I want to contribute". Even friendly communities that welcome contributors (in my experience, Umbraco) have strict (and at times unwritten) rules on how to contribute, and whether a contribution will be accepted by someone "not known".

In the past I have contributed code to a few open-source projects, but purely on:

* Small projects with a single owner.

* Projects I actively use and require.

* Projects where I have found a bug that might not be fixed if I don't contribute.

This approach has worked nicely for me, and has allowed me to work on a wide range of tools, from Azure blob storage log providers in C# to a popular Twitter scraping tool in Node. Each time I have been thanked for my contribution, and each time my code has contributed to a new point release, and ultimately that's what it's all about. I won't be able to brag about being a core contributor to a major project, but my contributions are being used by real people on real problems.

In short, I'd suggest not actively looking for a mainstream project, but any time you decide to use a Node package or a CLI tool, take a quick look at their GitHub repo and see how it is being maintained. If there are outstanding issues, try replicating them and see if it's possible to help.

Open Source something you've written, then contribute to it
Start small (i.e. really small). Find a smaller project that you use and find something trivial to add like spelling corrections or simple documentation enhancements. This should help you get started with the workflow of contributing.

Once you're comfortable with that, then consider fixing a small bug you have encountered or adding a feature that you've been wanting. If you know the flow of things, then the chances of the change getting accepted are much higher.

I started to contribute to OSS quite a while back helping with simple support questions for a small distro and then I got involved in the coding side of things when one program I was using started to have issues compiling due to bitrot. Now I'm on the other side of the equation trying to get new individuals interested by showing the sorts of roles involved in the project ( http://zynaddsubfx.sf.net/contribute.html ).

I just asked myself this question quite literally yesterday. In my search for an answer, I stumbled upon CodeTriage. You pick a language with which you're comfortable and a project (or two) that utilizes that language and CodeTriage delivers GitHub issues to your inbox. It takes a lot of the guesswork out of knowing how to jump in.

https://www.codetriage.com/