Learn how to get started in the big and scary Open Source community.
You are obviously here because you are interested in learning about contributing to the open source community. We all tend to aspire to be the a programmer that the community knows and recognizes by their name and contributions. This is a very difficult place to get your foot in the door and get started with, but if you follow my simple steps you will be an open source master in no time.
Picking an Open Source Project
This is probably one of the most difficult steps in starting your road to open source contributions. Picking which project you want to contribute to. Contrary to popular belief you do not need to pick a project that you have used before or are even interested in. As well, it is not necessary to have a knowledge base that aligns with that of the project. For example, I have always wanted to call myself a linux kernel programmer, this is something I have never done before and do not even have much interest in, but it sure would be cool if I could tell my friends and co-workers that I was a linux kernel developer. So I have decided that I am going to contribute to the linux kernel.
Prepping to Contribute
To some people contributing to a project that they know nothing about is an easy task, but truth be told it is not. Some people will struggle with it; therefore, I think it is necessary to cover some of the steps I use to prepare for contributing to a new project. I start with an extra large Pre-Boosted Jamba Juice Smoothie immediately followed by a rigorous spin class to get my blood pumping. Now that your feeling nice and healthy you need to ensure that you look the part; this usually consists of an Italian hand made suit, but a tuxedo will work in case your tailor is currently out of town. Now, you are ready to tackle the world and it is time to devote some of this prep time to the project at hand.
All that is really required is a quick glance at the wikipedia page for the topic, in my case Linux Kernel. Do not waste too much time reading the wikipedia page, since some of the articles can be fairly long, my article alone has more than 200 words (there is no way I am reading all of them). Usually just reading the introduction and skimming the table of contents will give you enough information so that you sound like you know what your talking about (since that is all that is needed).
Making Your First Open Source Contribution
Ok, so lets do this! What should we contribute? We want to make sure that we contribute something of merit to the project as well as something that other people will notice, since we really just want people to recognize us as being helpful contributors to the project. You should always start off small and work your way towards larger contributions. Let us start with opening an issue ticket. Most maintainers love issue tickets, it is how they get good (and bad) feedback from the users of their software. It also will help drive the development of the project. If you open a ticket asking for a feature or a bug fix then the maintainer(s) will have to work on it.
Picking an issue to report about can sometimes be a very difficult task, but luckily I have a quick and simple tip. Start by picking an already exiting ticket, preferably something that has been in the backlog for a very long time, and simple create a new ticket asking for the same feature or fix. Sometimes maintainers get very busy with other work and will forget about an issue, so it is usually best to try and flood their ticket system with repeat issues so they do not forget about them.
For my first contribution I have decided to pick this issue. It is a perfect candidate since it has not been updated since 2009 (remember, the older the better). As well as being old, it just sounds important. A memory leak? That sounds serious. I am shocked the maintainers have not fixed this issue yet. Remember it is not enough to just comment on the original ticket, instead we want to open a new ticket (this way it’ll show up as being new and not from 2009). I highly advise trying to re-word the original ticket rather than simply copy/pasting, but sometimes the original words are big and hard to understand and copy/paste might be the only/best way to ensure that you get your point across.
That is it, following these easy steps you have just made a worth while and ever lasting contribution to the project of your dreams. You are now one step closer to being able to call yourself an open source linux kernel developer.
Follow Up Contributions
Making only a single contribution to a project does not get you known in the community. You need to continue the above process as often as you can to ensure that those who are directly involved with the project know who you are. The more you contribute the faster you will get noticed. Contributing the same thing over and over again can get boring, so remember, you need to switch up your contributions from time to time. This means that you cannot just continue to open repeat tickets over and over again, it will get boring very quickly. So make sure that you comment on a few tickets here or there, even if you do not know what the issue is, just try to remember the few tidbits of information that you have picked up from scanning wikipedia and the other issue tickets you have read.
People think contributing to projects is all about writing code, but this is a very common misconception, you can get by with just creating and commenting on project issue tickets. Plus, no one actually reads the code or git history to see who has contributed to a project. Instead they are more inclined to monitor and notice the contributors to the issue or ticket system for the project.
That is about it. You have now contributed to the project of your dreams and can call yourself a contributing open source developer. Make sure to add this project to your website and your resume so people will known to associate you with that project (I am adding “linux kernel developer” to my resume right now!). Now that you are well known for one project you can move on to the next and next until you are known all across the internet for your valuable contributions to all sort of projects.