Introduction
Open source concept refers to any project which people can share, modify, collaborate on because it is publicly available(normally under a License). Open source can be virtually any project such as publications, products and not limited only to software.
In this blog article, I’d like to share why it is beneficial to contribute to open source software projects. Contributing doesn’t have to explicitly be about the code. Documentation, opening new issues, engaging users on a platform such as Discord(not spamming) is a major part of contributing to open source.
1. Learn collaboration
Working on open source software projects helps learn about collaborating with other developers and maintainers of a project through discussions, code reviews, and positive feedback which are beneficial. Sofware development involves humans, collaboration with others is good.
2. Improve soft and hard skills
a. Soft skills
Contributing to open source projects helps improve ‘soft’ skills, such as communicating and receiving/handling feedback. Taking requirements for an issue to work on improves these skills as one keeps contributing to a project or multiple projects.
b. Hard skills
Hard skills are the skills that one needs to get the actual job done. Think of hard skills as a painter doing the actual painting job. Contributing to open source helps improve programming skills. For example, good practices such as TDD(Test Driven Development), Design patterns, and code. I recently had to work on a C++ project, a retro game I played back in High School, and learned how CMake worked and what the compilation process looked like.
One gains exposure to production-level projects and code listings something one can not get from personal projects.
- Job opportunities
Plenty of times I’ve been asked “Send me your Github”. There are plenty of paid open source software engineering opportunities. Most open source product owners are more inclined to check your Github activity as a way to gauge your contribution to open source. Contributing to open source projects is quite handy for landing jobs in the open source realm.
-
Paid Bounties Paid bounties can be a good way to make income as a freelancer and as an open source contributor. There is plenty of bounties and the good part? Anyone can contribute at any time. Most funders are willing to pay contributors on working on certain issues. There are always limitless issues to choose from.
-
Satisfaction Humans are all about satisfaction. Say, I use an open source game engine for my tiny indie game. If along the way I notice there are ways to improve certain aspects/features or even fix an issue. I’d go to the publicly hosted repository(on Github, Gitlab or Bitbucket) open a new issue/feature ticket to begin working on the feature.
Once the feature is ready, I’ll submit the changes and wait for feedback from the maintainers of the project. Once the changes and revisions are done the changes can be “merged” into the main branch of the project to update the game engine.
This leaves a sense of satisfaction besides making the project better than you were using it before. It’s even more satisfying for people to use something you have made/contributed to.
Summary
Open source is a powerful concept that has seen developers and maintainers pool resources to create the most powerful and successful products such as the The Linux Kernel Project Benefits of contributing to open source software projects:
- Helps one learn about collaboration with other developers and maintainers
- Improve skills as a developer- Both soft and hard skills
- Exposure to production-level code listing and projects
- Earning income from paid bounties for issues that require a bounty
- Satisfaction- Improving an existing open source project not only makes the project better but also gives a contributor a sense of satisfaction.