Open source development is an area of software engineering that relies on the collaboration of people from different backgrounds. Beginning with simple contributions to existing projects, contributors can build a reputation and a portfolio of work in their free time, which can lead to opportunities for employment in the industry – or just the satisfaction of getting involved.
Do you want to learn how to write code for Open Source projects? Are you looking for a way to start contributing meaningful work for little cost, but with a big impact? Open Source software is everywhere, and it powers many of the devices that run our lives. Writing code for an open source project will help you learn and grow as a developer. It’s also one of the best ways to meet like-minded people and expose yourself to new ideas. Here in this book I focus on the first steps needed to get started by learning about the many different types of contributions, assessing your own skills, and writing your first contribution.
Get to know GitHub
GitHub is the most popular platform for open source collaboration, so you’ll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.
Open Source your projects
If you have already done some projects, open-sourcing your projects might be a good way to get started. Put it on GitHub and seek contributions from the community. This will not only add value to your project but will also help you to collaborate with many developers around the world.
Many widely-used frameworks and libraries were open-sourced by individual developers. Several people started collaborating and maintaining these projects after the projects got popular.
If you do not wish to start with your project, it is totally fine to move to the next step directly.
Learn the basics
When working with GitHub, you should know how to use Git – one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.
Start contributing to Open-Source actively
- Find projects or organizations that you are interested in contributing to.
- Go to their GitHub repository, read the documentation, and search for first-timer issues as mentioned above.
- Try to work on as many issues as you can either across projects or for a single project.
- Join their IRC channel (Gitter/Discord/Slack, etc.). Introduce yourself and ask for help when stuck. You can find the link to the channels on their GitHub pages.
- You can also create issues after running the application locally.
- Once you are comfortable with contributing to open-source, start participating in open source programs.
Join the community
You can easily join an open source project by subscribing to the mailing list for that project. You can find mailing lists on official websites or on GitHub pages. After being accepted to the list, you can communicate with team members and get support if necessary. Thanks to the vibrant communities present in nearly every OSS project, you are likely to get quick replies to your questions.
Open-Source Programs/Contests you can participate in
There are many open-source coding programs that you can participate in.
- Google Summer of Code (GSoC)
GSoC is the Olympics of Open Source. It is a global program focused on encouraging more student developers to do open source software development.
Students work with one of the selected open-source organizations for 3 months and get a handsome stipend on completing the project. Students need to propose changes that they want to work on to get selected.
It is a good idea to start contributing to your favorite orgs/project much before GSoC.
HacktoberFest is a month-long celebration of open source software carried out in October. You can sign up anytime between October 1 and October 31.
It is open to everyone in the global community!
One needs to complete a certain amount of quality PRs to get swags in return. The swag motivates many people to get started with open-source contributions through this program.
- GirlScript Summer of Code
GirlScript Summer of Code is a 3 month long Open Source program during summers conducted by GirlScript Foundation, started in 2018, to help beginners get started with Open Source Development while encouraging diversity.
Note that it is open to everyone and not just girls as the program name might suggest.
Outreachy (previously the Free and Open Source Software Outreach Program for Women) is a program that organizes three-month paid internships with free and open-source software projects.
It is for people who are typically underrepresented in those projects.
This is generally carried out biannual throughout the year.
- Rails Girl Summer of Code
Rails Girls Summer of Code is a global fellowship program aimed at bringing more diversity into Open Source.
Successful applicants are paid a monthly stipend, from July-September, to work on Open Source projects of their choice.
- MLH Fellowship
The MLH Fellowship is an internship alternative for software engineers.
Instead of working on a project for just one company, selected candidates contribute to Open Source projects that are used by companies around the world and are paid a competitive stipend during this tenure.
All skills are welcomed
Even non-programmers can contribute to open source projects! Documentation is needed for all projects, and sometimes this is poorly written and maintained. Thus, you can help by writing, updating or even translating documentation. Also, your design skills might come in handy: every application needs an interface, after all. Finally, you can contribute by managing a community by replying to questions and guiding newcomers.
Clone the project
After you fork the project, you have to clone the project on your machine to work on it. Go to the repository on your GitHub profile and click on the green button saying “Code”.
Open source software is free and available to the public, but in order for these projects to grow and succeed, they need volunteers!