Hacker News new | comments | show | ask | jobs | submit login
Ask HN: How do I begin contributing?
7 points by chunky1994 1668 days ago | hide | past | web | 7 comments | favorite
I've always wanted to contribute to the various Open source projects out there (primarily mozilla) as a form of learning to code better and helping the web at large. However, I'm always unsure of where to begin.

I'd greatly appreciate it if someone would point me in the right direction! I've been using C++ for about four years and python for the past two. Although i don't code regularly, I do have some proficiency with C++, however I'm still unsure whether I have the right skills to take on such a project.

It would also really help if someone could give me a flexible time framework within which I can start doing real work (i.e fixing bugs et.c), since I'm still a freshman in college and do not know how much time I can devote to such a project. Thank you!

I've often found it hard to find something to contribute to an open source project if I'm just seeking out issues to fix—most of the time if the issue has been up a while and isn't already fixed, it's probably not a quick and easy fix to someone not already familiar with the codebase—at least for me.

In the cases where I have either fixed bugs or added features, it's with a tool I use extensively and came across an issue in it or an area where it didn't do something I want. It's much easier for me to figure out what to do in that situation, since I have a personal interest in that feature being added.

So, in summary, a way I've found to begin contributing is to find bugs or limitations in tools you already use rather than just browsing issue lists on projects you may not be as familiar with.

I asked a very similar question a while back, hopefully some of the responses can help you get started:


For Mozilla, Josh Matthews made a page to find mentored bugs: http://www.joshmatthews.net/bugsahoy/ which is a good resource to finding a task and somebody to help you.

If you're a bit more brave, you can just dive into bugzilla.mozilla.org and find something you want to fix, but honestly it's full of junk bugs and without having a feel for things, you'll have a hard time.

The best way to start contributing is to go on github, perform a quick search for some projects you like, pick an issue, fork the project and tackle it.

I personally think github represents a cheaper solution to enter the open source world as it simplifies a lot some processes (such as contributing a patch to a project).

The hardest part is to start coding and to overcome the fear that you might not be good enough because every little helps.

I completely agree with this approach as the most obvious and simple way to get involved.

For some alternatives, I recommend you stop by the IRC channels of some of the projects you want to work on (like Mozillas) and keep track of the discussions they have. You can always ask the people there how you can help and, IMO, they are usually pretty nice folks who'd like your contributions, however small.

Mozilla people are very nice but I am not sure that a project like Firefox is the best way to get into open source development: it is quite a big and complex project; easy to feel lost.

First of all, kudos to you for thinking about contributing to bigger projects, and open source ones at that!

Projects with large codebases always take some time to figure out. Therefore, it's wise to start with a bug that a more experienced programmer has labeled "bitesize". Other commenters here mentioned Josh Matthews' super-cool "Bugs Ahoy" tool for Mozilla -- http://www.joshmatthews.net/bugsahoy/. I'll chime in that I'm a maintainer of a similar thing that covers even more projects: https://openhatch.org/search/

If you want a general roadmap of how this works, we (OpenHatch) have also written up a step-by-step guide here: http://labs.openhatch.org/foss-contrib-guide/ . Work through it as a checklist, clicking the box next to each step as you do them. We've found that works really well with people.

The two big things in my opinion, as you start out, are:

* Find a project that you care about. Otherwise, you'll lose momentum. It's cool that you want to work on Mozilla-y projects! My only warning is that the long build time means you are going to have to plan to wait a while (about 1 hour) between downloading the code and actually running your local build.

* Find a task that is doable, so you can actually get it fixed, and you actually enjoy it!

Some things to watch out for:

* The build process could be super slow, for big projects like Firefox.

* Eventually you're going to have to get used to navigating enormous projects. This might sound daunting, but actually I think you'll find it fun after a bit.

* Make sure you have a place where you can reach out and get help. You'll probably be running into all sorts of new things -- version control tools, patch submission guidelines, an enormous codebase -- and you're more likely going to have a good time if you can get your questions answered.

For that last one, feel mega free to join #openhatch via IRC on freenode.net (more info on that here if you don't know IRC -- https://openhatch.org/wiki/Open_Source_Comes_to_Campus/JHU/L... ). OpenHatch is a community of people welcoming to newcomers in open source generally, and we can usually help you straighten out whatever problems you're running into.

There's also #newbies on irc.mozilla.org; I'd recommend joining there, too.

If you want a quick tour of what it's like to submit a patch, you can work through the OpenHatch training missions at https://openhatch.org/missions/.

You asked for a "flexible time framework" -- the good news, it's all on your own timeline. You can show up whenever you want. If you can explain more about what you wanted with that question, I'd be happy to explain.

Good luck! Welcome aboard!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact