There are times when we want to start of our career, we want to learn, explore and more importantly understand how things work. We start to build small projects to kick start with our thinking, and eventually we bump up into the question that what we are building is still not global, only our friends and limited number of people know about us and our work, we lack the knowledge of working upon real life projects which are being built by a large number of people around the world. This is where open source comes in, the spirit of open source lies in the fact that it provides freedom and allows a person to contribute according to their will and in the area of there interest. The knowledge and the support of community you get while contributing to open source is immense. There is a lot to learn, lot to explore and infinite possibilities.
Why Open Source?
During the recent years, Open Source projects have gained a lot of traction, there are a lot of projects which are being used by a number of large corporations and even individual people to realize their products. One of the biggest Open Source project, The Linux Kernel project, involving thousands of contributors from all over the world, is being used in a wide range of areas for example powering the software stack of Supercomputers to running on a SoC being used in our handheld devices. Currently, there is an open source alternative to nearly every famous proprietary software we use, for example, we have Gimp as an alternative to Photoshop, there is LibreOffice in place of Microsoft Office and then there are projects like Wine, which provides us the functionality to run Windows software on Linux.
How the process works?
The Open Source projects work in a way that the people building it, put their source and ideas into the public domain, giving everyone the chance to tinker and use their projects. Usually this source is available through source tarballs or version control systems. Now, when a person who is interested in working on the project, he clones the source of the project, makes his modifications and uses the project. If the person feels that his modifications can benefit a larger set of audience, the person can send his code to the upstream project where after it get merges, will be available to every user of the project. Taking a real life example of this, consider what happens in Android. Android project uses Linux kernel as the core of the OS. At every release cycle of Android, the development team forks the kernel source from the mainstream Linux kernel release and integrate their patches into the release and build the kernel for Android. In return, they frequently submit patches to the mainstream kernel fixing bugs or adding architecture support. This is how the cycle goes on.
What’s in for you?
As a contributor you have a number of benefits while working for an Open Source project of your choice. Firstly, you get a chance to enhance your knowledge, the skills and all that with complete work freedom, i.e., contribute when you can. Secondly, behind every open source project is a great community which supports that project, continuously working on to improve the projects and onboard new people as contributors. The experience of working with these communities is great in itself, you get to interact with a lot of different people over online meetings, during workshops and community events. Not only does this help you make your voice heard but it also helps you develop your soft skills. Thirdly, when you contribute to as a newbie to an Open Source project, your contributions are reviewed by the community, which suggests you the improvements, give you tips on how to improvise, and these things help you a lot in becoming better in your work.
Is there any recognition?
Now, you might be thinking, as a contributor, will your work get recognized or will it get lost in the crowd. When you contribute to a project, you are directly affecting the way the people use the project. Currently, many of the big and medium sized open source projects have a recognition system which involves giving badges to the contributors who have done a significant amount of contributions. Above this, no one knows what your contributions may lead you to become, one day you just might be leading some team working on the same project.
Where to start from?
The first step in becoming a contributor to an open source project is to go and search about the project. Visit their website and try to figure out what you can help with. The next step in the process is to reach out the community through the project communication channels such as IRC or mailing lists where you should introduce yourself, mention your areas of interest and where will you like to contribute. Working on something but got struck? No issues. Head over to the project IRC and discuss your issues, still not satisfied? Drop a mail to the project mailing list. But remember one thing, be calm and polite to people. They are voluntarily giving their time to the project and no one likes being shouted upon.
Happy journey! 🙂