Contributing to open source can be intimidating and confusing depending on the project you’re working on. To add to that, most large open source projects have a steep learning curve. However, as evidenced by how widespread open source is, there are a lot of opportunities to break into it and thrive even if you’re new.
Open source refers to source code that is made available to the public to view, use, modify, and distribute under a license. It’s usually developed and maintained collaboratively by a community of its users. Some well-known open source projects include Django, Postgres, MongoDB, Vue, Go, Ruby, TypeScript, Git and so many more.
Although the main point of open source projects is to create valuable and accessible open source software, individual contributors can get plenty of personal benefit from contributing to them. You help maintain the software you use while honing your technical skills. When you’re applying for jobs, you can point to your work on open source software as proof of your skills.
By collaborating with others on open source you use, you get to become part of a community where you can practice your soft skills like communication, giving and receiving feedback, emotional intelligence, etc. These communities also introduce you to tons of people you can network with, who in turn will open you up to worthwhile opportunities.
GitHub Docs encourage library maintainers to apply the good first issue label to issues in their repositories to highlight opportunities for people to contribute. When looking for something on GitHub to match your needs, search for issues and pull requests, go to isses in a repository and narrow the results using label qualifier.
Another shortcut to find your first repository to contribute to is checking the list created by Masato Ohba. Using his script, he puts plenty of issues waiting for beginners’ contribution into this spreadsheet.
Do not be afraid of the docs
Documentation and usage examples might sound boring, but are a good way to get to know the project, and contribute something useful. You’d be surprised how many people resign from using a project as they can’t find a good, working (!) example, or a step-by-step tutorial aimed at beginners. Working on docs will allow you to learn the very basics of the software in question. It will make it easier for you to make meaningful contributions to the code later.
Important information for the first timers. Always start from the README.md file in the repository which contains rules on how to use and set up the project, and (if present), CONTRIBUTING.md, which outlines how to collaborate in the project.
Improve the tools you already rely on
It’s much easier to make time for things that are a part of your current work assignment.
If you’re using an open source software, library or framework, and you find a bug in it, open an issue. Make actual contributions and take it as an opportunity to demonstrate value, build trust, and gain skills. Even starting from a small patch, that gets merged, will build up your confidence. And finally, you’ll be able to use it in your project, and ship things faster.
Majority of the projects follow a standard fork and pull model for contributions via GitHub pull requests.
An ideal path to meaningful contribution can look like this:
- Find an issue
- Let library maintainers know you are working on it
- Build the project with your contributions
- Write tests, docs and examples
- Submit pull request
What will be your next Scala open source project?
Scala 3 is just around the corner. According to the voices of Scala programmers who took part in te Scala Developers’ Survey, we run at the turn of the year, there are many programmers who are quite content with their choice of libraries and frameworks. But thery also point out areas that could be improved.
When analyzing the survey entries, we identified the projects that attract most contributors. These are Zio and Akka.
This is mostly in line with the most liked libraries out there. And probably shouldn’t be surprising: both ecosystems are growing and hence there’s a lot of work to be done around them.
The results of the survey clearly show that the Scala community is engaged in OSS, also that there’s always a place for more contributors.
When it comes to specific pain points we concluded that these general areas need improvements:
- Relational databases
- Graphics and UI libraries
- ML and data science projects
- Json parsing
- Security and unified observability approach
Mozilla’s Firefox Source Tree contains dozens of projects on which you can get your hands dirty. Not only they are welcoming new contributors, but they also provide extensive documentation on how to contribute to their projects. Since the whole process seems long, they have a separate and dedicated channel where you can ask doubts and ask for help. On their documentation page, they have a column where they have specially mentioned websites, bugs, open issues, etc. for students and people who want to start contributing to open source.
While programming or building a project we all have used Visual Studio Code, isn’t it? So why not contribute to the software you have a great about! VS Code is a huge open-source software currently having more than five thousand open issues. This means there is a great scope for new beginners to find bugs that they can resolve and open other issues that they find while using VS Code itself. There are many ways in which you can contribute to their project. This can be either by submitting bugs, reviewing source code changes, submitting new feature requests, reviewing documentation and finding typos, or adding new content.
This powerful Python package is widely used in data manipulation and analysis and if you’re into data science, data analysis, or machine learning, you would have definitely used it. You can also contribute to the project activities as it currently has more than three thousand open issues to be resolved! The project is open to bug fixes, documentation improvements, and bug reports. They have a contributing guide and if the code seems confusing to you at first, try resolving issues in the documentation.
It is a Python module built over SciPy for machine learning. It also has a huge number of open issues and provides an issue tracker to get the latest updates about open issues so that you could jump right in to start contributing. The project welcomes contributors of all levels and has a development guide that lists information about contributing to the code base, documentation, tests, and more!
It is one of the most famous deep learning and machine learning libraries which is majorly used as a replacement for NumPy and as a deep learning reach platform providing a great deal of flexibility and speed. Since it has a 90-day release period, you can file a new issue if you find a bug. You can also contribute new features, utility functions, or extensions to the core by opening a new PR with discussion. It also has more than five thousand open issues, and therefore it could be a good place to start!
These were some repositories where you could get started with the issues marked for beginners. The projects are maintained by a lot of people who are always there to help. Not only that, but the open-source community is huge and there are people which will help you whenever you get stuck. So get going!
For those of you who are interested in contributing to open source, we hope this article was able to provide some guidance on where to get started. Of course, there’s always more than one open source project out there that you can contribute to, and it’s not always easy to pinpoint the best ones for your expertise. In fact, many developers will often devote some of their free time to more than one project. That said, however, it usually helps if you just choose a couple of projects and begin contributing actively to them. Then, over time, you can expand into other projects as your experience grows and as you meet new challenges. Either way, have fun out there!