HACKER Q&A
📣 tarasyarema

How to begin contributing to open source?


I've been coding for 5 years already and I was always interested in open source projects. I'm always exploring new projects on Github and looking at code from one place or another, but I feel like I do not have the skills to go to the issues, pick one, and begin to help the project in question.

I'm not asking how to make pull requests or anything. Just for advice for someone that wants to introduce himself to the open source world.

So, any tip for picking a first project, without any preferences besides (maybe) the language?

Note: The languages I more or less know are Python, C/C++, Javascript and Go.


  👤 gshdg Accepted Answer ✓
Pick any a project that interest you and whose language and domain matches your skillset. Find its mailing list or IRC channel or whatever community it has. Ask for help selecting a first ticket from the issue tracker.

Most communities are thrilled to get new contributors and willing to put in the effort to get you pointed in the right direction the first time around. If they aren’t, move on to another project. In fact, skimming the recent mailing list archives can be a good way to get a pulse on the culture of a project and how welcoming it’s community is.


👤 tlack
What about documentation? Often times its easier to improve the docs than to improve the code. And let's face it - most open source projects have awful documentation!

If you don't want to interact with open source project maintainers, you could try writing example programs, tutorials, or guides for products you like - that's another form of contribution.


👤 acrisci
There's a lot of fun projects you can contribute to in the Linux Desktop space. I own the code in the GitHub orgs altdesktop <https://github.com/altdesktop> and dbusjs <https://github.com/dbusjs> and I'm very responsive on issues and pull requests. Another great community is sway <https://github.com/swaywm/sway/> and i3 <https://github.com/i3/i3>.

👤 cjbprime
Pick a project with an "easy" or "first bug" tag on their issues. If you get stuck, just ask for help. The nice thing about the tag is that it's a demonstration of interest in helping people get started.

👤 wonkyspecs
One idea would be to pick a project that you actually use. This means you'll already have an understanding of what the project is about, and you can directly benefit from whatever work you end up doing, which is a nice added incentive. Even big projects will likely have lots of small fixup/documentation issues which no one has gotten around to, but will add value, so don't feel too put off by the size of a project.

👤 Antoninus
I found https://www.codetriage.com/ helpful when searching for projects.

👤 jdsully
You should find something that your interested in. My first project was Mixxx because I was interested in DJing. This doesn't have to be hobby related, it can be something that satisfies an intellectual curiosity.

Contributing to OSS is a bit like working out, when you get into a routine its easy but starting is very difficult. The trick is to just start.


👤 photawe
That's a tough one... Find something you're passionate about - something you'd truly like to build yourself.

If there's already something on github, join that - you can even do a fork first, and play around.

Otherwise, just build a new project on github, commit to it, and let people know here/reddit - and see if they'll join


👤 jlengrand
I've seen this talk live couple months back, it can be very interesting if you don't know where to start :)

https://www.youtube.com/watch?v=R82-4eC94xE


👤 pepper_sauce
List all the open source dependencies you use at work or at home. Start by checking out the one that turns up the most often and work your way down from there.