Contributing to open source projects is work -- like actual work. It's like joining a new company -- getting to know the product, the people, the codebase. Setting up a new environment, learning new tools before you can start contributing. And it's work not only for the contributors but also the maintainers of the project. They have to code and write docs and keep improving the project -- all on their own time. They also have to keep training and mentoring new folks. It's a lot of actual work.
And not everyone has the bandwidth, the mental state, or even the desire to spend off-work hours doing more work. And that's totally okay! The hustle culture feeds into this "need to do more" mentality which is incredibly stressful. But it's totally okay to not want to do more work in your free time!
So before you start contributing to open source projects, I urge you to take a moment, think about why you want to contribute -- what's your goal here?
- To get started with open source contributions?
- To get more experience with a particular technology?
- To learn a new technology?
- To build a portfolio?
- To help make your favorite open source project even more awesome?
Setting your goal upfront will help you stay motivated when you inevitably hit the rough patches in your open source journey.
Once you set your goal, think about how much time and effort you can allot to the project without hurting your mental health and work-life balance. Then take stock of your current experience and skillset. Are you a beginner, intermediate, or advanced professional. This will help you identify the right project for you.
Things to look for in a project:
- Communication channels/ community
- If the technology interests you
- If you can contribute to the project without requiring personal attention from the maintainers
- Does the scale/brand name matter to you? (Maybe yes, if you are want to feature in your portfolio)
The final question to answer is are you willing to self-learn and to accept and work on feedback?
As I said earlier, open-source projects is not only work for the contributors but also for the maintainers. In fact, it's far more work for the maintainers. Most open source maintainers have full-time jobs and they work on their open-source projects on their own time. So if you want to contribute to their project, please be respectful of their time and bandwidth. Self-study and do your own research, try things out, and then ask informed, pointed questions. I guarantee you will get better responses than if you ask uninformed, open-ended questions.
Then when you make a PR and the maintainer gives feedback and asks for an iteration, know that it's a good thing. My professor in grad school once said something that has stuck with me ever since - "If someone gives you feedback, it's a sign that they care". It's very easy for folks to just approve your changes. But if they take the time and put in the effort to give feedback, it's a sign that they care about your work and want to help you get better and make your work stronger.
If you answered the questions and still want to contribute to open-source, join us for Hacktoberfest! If not, I will see you elsewhere on the internet :)