Why
I think everyone has different goals, however, I’d like to offer a different way for you think about open source.
I think of open source as a very under rated way to work with, collaborate with and learn from some of the best and smartest people in the industry (and often times they’ll be industry leaders).
Think about it.
In what industry can you:
Work on projects using industry standards and best practices
Collaborate with some of the best people building a particular software
Get peer review from industry professionals and leaders on your work
Hone your skills & gain real world experience
Work on something that impact thousands and thousands of people
In my opinion, it truly is a blessing
You may ask... But how the heck do I get started ?
The reality is that contributing to open source has a really high learning curve.
It’s not the easiest thing (especially when you are a beginner)
(You do need a little bit of persistence but I assure you that it will be worth it)
This guide should help to set you up for success.
Here are a few tips to get you going! 🙌
1. Focus on packages you already use
Guess what’s the easiest path toward your first open source contribution ?
It’s contributing to something you already use!
Of the packages that you already use in your development:
- Do you see errors in the documentation ?
- Some bug in a package you are using ?
- Some features missing or could be improved ?
- Is the package lacking test cases ? 👈 (If you can write tests, open source projects will love you!)
💡 Pro Tip:
Helping out with documentation may be the easiest way to contribute.
In general, it’s difficult to maintain a technical documentation.
They get outdated very frequently with changes, releases and so forth.
2. Focus on smaller projects
When people first try to ”contribute to open source”, most folks try to contribute to the most popular projects.
Ones that have thousands of Github stars 🌟.
Honestly, I think you’ll have more difficult time getting your pull request through in these cases.
This is not always the case because every project is different.
In general, larger projects are more difficult to manage and chaotic hence can be a little lacking in some areas.
Why should I focus on smaller projects ?
- More attention from the core team
- Every small project lacks a helping hand, and there are more opportunities
- The code and process is typically not as complex (It’s not always the case though)
3. Don’t try to force it
What do I mean by force it ?
Don’t force yourself to contribute to open source because that’s what all the “influencers” are doing.
Or “that’s what everyone is doing”.
Remember, you are taking time out of your day to do this for free. So, make sure you are enjoying the process.
Ask yourself: Do you enjoy it ? and are you interested in the project ?
If you find a project too difficult or you are just not enjoying the process.
Find another project, and move around a bit.
There are plenty other great projects on Github looking for a helping hand.
Seriously, there are plenty of project lacking contributors!
4. Focus getting a small change through
Try to make your first pull request as simple as possible.
This is because when ramping up on a new project, there is always a lot of things you need to know:
- Style guides
- Builds, Installations and local development setup etc
- Contributing guidelines
- Learning the codebase
- Setting up your git workflow
- The list goes on...
Don’t make it too difficult for yourself.
This is why I recommend contributing to a package that you are familiar with and already use!
In fact, you don’t even have to get your pull request accepted.
As a first step, try to just make a small edit on the documentation, and create a pull request to the main repository.
It doesn’t matter if it doesn’t get accepted, just close it afterwards.
The goal is to feel out the process and try to remove as much friction along the way.
⚠️ Note:
If you plan to do this, try not to spam the repository with this approach.
The core team will get notifications if you do this.
5. Participate in multiple projects
I think this advice might be counter-intuitive but I believe it makes sense.
At the start, it may be difficult to know which projects you’d enjoy the most.
I would say try a few projects just to feel out the process.
Every project is different, and each on has an unique process, you want to find one that you like.
Again, going back to the enjoying the process (Very Important❗️).
There are plenty of projects looking for help, so if you don’t like one, just try out another.
That’s all from me.
What about you ?
Any question or is there anything else you’d add ?
Let me know in the comments below 👇