Being involved in open-source software is a rewarding experience. It's not always easy, and it's definitely not always glamorous. You won't always be churning out amazing features. Often, it's about gathering consensus, assisting users with basic usage, or politely declining rude users demanding a feature get implemented right now.
But if you persevere, there are a lot of benefits. Through my journey in open-source, I've found myself improving in teamwork, written communication, problem-solving, code reading, and writing software for pure joy. My open-source contributions have led me to being paid to work on open-source projects. Which has been a lot of fun.
On this page, you can see a list of [[My Contributions]], which represents my journey and the projects I've contributed to. Starting out can be intimidating, or start the wrong way and get the current contributors annoyed leading to them ignoring you. Here are a few strategies I've found that helped me get involved and make meaningful contributions.
#### Start small
My journey into open-source began with small steps. I didn't dive straight into complex projects but instead started with bite-sized tasks that matched my skills. Don't try and rewrite large bits of the code base or criticise how it all works. Don't write large tickets on how the system is all wrong and you could re-write it in a weekend. There is often a larger context you will not be familiar with.
#### Join the community, ask questions
Joining the community and asking questions was one of the most crucial steps for me. I found it helpful to join platforms like Discord or Discourse where the project community gathers. I spent time lurking, reading up on development discussions, asking questions, and interacting with other contributors.
#### Start with trying the project and investigating the docs
Before diving into any contributions, I made sure to try out the projects for myself, read the docs and get a feel for the project. Again looping back to point 2 and asking questions while I try it all out.
#### Look for starter tags or ask the devs for something easy
Many open-source projects label certain tasks as "starter" or "beginner-friendly." These are perfect for newcomers. If you're unsure, don't hesitate to ask the project maintainers for suggestions on where to start.
#### Commit to finishing it even If It takes long
Contributing to open-source projects can sometimes be a slow process. But it's important to commit to finishing what you start, even if it takes longer than expected. Practising finishing a bug fix or feature by yourself is invaluable. It will help you in your paying job. If your team knows you can handle work by yourself you will get given a lot more responsibility and freedom.
#### Give updates on the ticket to let the community know you are still working on it
Make sure the functionality you working on has a GitHub ticket and it's assigned to you. Then don't ghost the community, rather keep the community updated on your progress. Post a status every time you can, even if it's to say I've made no progress and I'm stuck at this point. If you struggling to make progress, don't forget to ask for help or ask questions when you get stuck.
#### Be friendly, and ask lots of questions even if they're simple or "stupid
By now I hope you noticed the most important part, be involved in the community and ask questions. Even if it feels like a stupid question. This is the best way to learn a new code base. And getting into the habit of asking questions really helps in your software career.
#### Miscommunication will happen
Being involved in an international community means that there are things lost in translation; misinterpreted; or what you said is plain wrong. The most important part is acknowledging that you did something wrong, apologise and work to resolve the situation.
### Over-committing to open-source
A small note on over-committing because I think there could be books written on this topic. Doing too much open-source work in your spare time will lead to burnout and anxiety. Take breaks, say no to lots of things, and most importantly you don't owe anyone a fast turn-around on a bug, quick response to an issue or rushing a new release over your weekend. This is something you want to enjoy. So take your time, enjoy the work, community and being involved in something other people use.
### Have fun and learn as much as you can
Working on an open-source project can be so much fun and you get to meet lots of different people online and at community meetups. Have fun, learn as much as you can and be kind.