I’ve been using open source software for as long as I remember banging out the zeros and ones. The Red Hat Linux distribution was probably my first memory (along with Caldera and Mandrake distros) and even my first intro to any sort of tech community. But for the longest time, I never really felt like I was contributing back beyond submitting and commenting and upvoting issues. I had created public repositories on GitHub of some of the projects I was working on and found that others were referencing them in some way, which was fun to see, but I wanted to do more. Last year, I became more of an active contributor to other people's open source projects. My contributions were nothing big, at least not in my mind, but I know that they were greatly appreciated by the project maintainers.
The unexpected side effects
I got more out of contributing than I ever expected I would and I want to share those unexpected side effects with you here in case you're looking to do more but just need a little bump.
It was empowering
Making my first contributions to other people's projects made me feel like I had a voice and could have some influence on it. I also felt more in control of my own technical skills. I could pick and choose where to contribute and how in a way that worked for me and my own career goals. If I found a typo or some condescending language in the code or documentation, I could fix it myself. If I found a bug, I could fix it or collaborate with others to help get it fixed quicker.
I learned something
I've worked in massive codebases before on large teams of developers and have been doing Rails work off and off for the last decade, but cloning the Dev.to repo, I found that I was in for a treat! It was huge compared to the other Rails apps I've dealt with. And I didn't build it from scratch, so it was unknown to me. I was able to see how others structure their Rails codebases for the scale of users, but also to support the scale of the developers that needed to work on it. I was able to see how others had solved problems I've also solved (or those I haven't) and which tools and gems they used to do that.
If you're new to programming or new to a particular tech, you can learn what production code really looks like and see how it works in the real world. We often choose smaller projects, tutorials, and getting started demos to learn from and we're often the only person building out a project to learn a new technology. These barely even scratch the surface of size and scale and problems to solve. Contributing to open source is a way to learn more about production-scale applications and libraries.
It helped with my boredom
We all go through ups and downs in our tech careers and sometimes need a little bit of redirection to get back on track, inspired, or even a bit of a pivot. 2019 was weird for me in that I was questioning the current state of my career and what my next step would be. My work projects at the time weren't very invigorating and I was even losing interest in what I was doing. I looked to other people's open source projects for some inspiration and a new challenge. Contributing to open source can be a way to get more variety and offers you a new challenge.
You can make an impact
Not all contributions are in the form of code. An open source contribution can be anything from submitting, commenting, and upvoting issues to writing or fixing documentation, reproducing bugs, fixing bugs, building out new features, helping to run the project, prioritizing issues, helping to set the roadmap, and moderating various communication channels. All of these make an impact.
I improved some documentation to make the language more inclusive and less condescending so that those who come after me aren't immediately turned away from contributing to or using the project. Documentation is also a great starting point for beginners or those who aren't programmers but who still want to contribute.
Are you ready to start contributing?
Hopefully these unexpected side effects I shared above are enough to get you motivated to start your open source journey. Here are some other resources to get you going:
- How to Contribute to Open Source
- What open source project should I contribute to?
- How To Contribute To Open-Source Projects As A Beginner
- How to remove condescending language from documentation
Do you have other suggestions or resources for contributing to open source software? What other unexpected side effects did you encounter when you first started? Drop them in the comments below to share with others!