Ask HN: 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.
13 comments
[ 3.3 ms ] story [ 27.1 ms ] threadIf 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.
After that, I ended up finding a bug, and since I was already familiar with the code from fixing minor documentation stuff, I was able to submit a patch without asking anyone.
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.
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.
I went into a community asking where to get started working on a feature I wanted, and I got a lot more pushback than I expected. Basically, it was obvious that I didn't know the codebase very well and was expecting someone to walk me through it. Starting with a small ticket is a good way to get introduced to a limited portion of the codebase, which will help you ask better questions when you inevitably want to add a feature.
I went into another community with a patch for my use case, and it was rejected because it didn't fit with the overall goals of the project. If I had made more of an effort to engage over the mailing list, I could have saved myself a lot of work and perhaps ended up with a better solution.
So yes, absolutely get involved in the mailing lists after doing some basic legwork yourself (get your dev environment set up, read some recent mailing list entries to get a feel for the most active people, etc).
Finding the right project from a personality aspect is really key. Not everyone is going to click and that is ok. Finding a project will make working on the codebase and interacting with folks invigorating, the wrong project makes it feel like a job.
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
https://www.youtube.com/watch?v=R82-4eC94xE