feel free to comment here: facebook note

Getting your first commit in an open source project

Here is a note I'm hoping will help you understand the importance of contributing to open source projects and how to get your first commit. I recently realized that github's inline editing capabilities has greatly simplified this process and made it easier for non technical people to have an impact.

1. Why contribute to open source?

There are lots of reasons to contribute to open source projects. Here are three reasons which motivate people I know:

Reason 1: you believe in the philosophy behind open source

Open source allows people to build on top of other people's work. Almost everything running on the internet (Google, Wikipedia, Facebook, etc.) depends to some extend on one or more pieces of open source software. If you believe in this philosophy, contributing to open source projects will give you tremendous satisfaction, especially when your contributions will be used by millions of people around the world!

Reason 2: it's a way to meet and work with bright people

Most successful open source projects are driven by a core team of very talented people. Your first contribution might be very minor and will not involve a lot of interaction, but as your contributions increase, you will eventually get to really work with team. You might even get to meet them in person!

Reason 3: it's a great way to improve yours skills and resume

Contributing to open source projects will require you to learn something or solve a challenging problem. It also looks good on a resume. A potential employer can go and actually see what were your contributions.

2. How does it work?

Open source projects are hosted on various platforms. For the sake of simplicity, let's assume you are going to use github.com. The process is very simple:

  1. create a github.com account and find a project you would like to contribute to.
  2. fork the project. This means you now have a "copy" of the project.
  3. make one or more changes (Github lets you directly makes changes using your browser, which is great to get started). At this point, your changes are "suggestions" and only exist in your copy.
  4. send a "pull request". This will notify the project maintainers about your change. If they disagree with the change, they will tell you why and you can go back to step 3. If they agree on the change, they will "merge" the change into their copy.
  5. Congratulations, you got your first commit.

3. Finding a project to contribute to

Here are a few suggestions on how to find a project:

4. Finding something to fix

Once you have figured out a project you like, you should join the mailing list and go over the archives. Try to help people on the mailing list and don't feel shy to ask questions.

Some projects have properly organized ToDo lists, which can help you get an idea on how you can help.

Here is a short list of things that nearly every project can benefit from:

5. A few things to keep in mind