Contributing to open source is a monumental task. I have been a Software Engineer for 3 years now and have been building software for nearly a decade and I have never been able to contribute to an open-source project.
It has always seemed so daring and confusing.
I have opened PRs before, taken criticism from dozens of developers much better than me, and never shed a sweat.
But open source always seemed like something out of my reach.
Why does it matter? 🤔
90% of my code has been closed source. A lot of companies want to see my code and projects I have worked on but I don’t have anything to show other than the deployed applications and a few fullstack projects I did 3 years ago.
This is not enough!
If you have open-source contributions, you can usually straight up bypass the testing process of a company and get hired based on just your public contributions.
Open source code gives way more insight into how a developer works and what processes they follow and that is extremely valuable to somebody looking to work with you.
Why online tutorials might not be enough
Online tutorials only take you so far.
They can equip you with the step-by-step process of making a commit and opening a PR, but they cannot take away the fear and hesitation of actually being in the public with your code.
If you are a beginner, getting started with demo repositories might just be enough to dip your toes. You have a lot more to learn than just contributing and those repositories are perfectly fine to give you the experience.
Where are the issues...
So, after all this time I had to overcome all of these mental blockers.
My biggest problem has always been that I have been unable to find any issues that I have felt like working on.
I don’t necessarily want to spend too much time understanding the whole project yet I want to spend just enough time solving valuable problems.
I only want to delve really deep into the project after I have experienced its codebase a little bit and that is a bit difficult to do.
I found the issues 📝
I finally understood that I need to start somewhere.
I started searching for issues again but this time with the mindset to find smaller projects that might not have as many contributors, so I can pick and choose the issues I work on.
I found several projects in many different languages, just to point out here that I was okay with working in any language as long as the issue was straightforward.
Since I wanted to work on challenging problems, instead of finding challenging projects in the languages I’m proficient in, I found issues that are easy to do but are in a different language.
So, the challenge becomes intrinsic that I have to overcome by learning the ropes of the new language.
This method was highly effective and I was able to quickly find projects in Ruby, Deno, Go, and TypeScript where I was able to find small enough issues to contribute.
You should do the same!
So, if you want to get started contributing to open source, find small projects with a few contributors and pick issues from there.
If you are experienced in programming, you can choose from any language which will increase your chances of finding a potential issue to fix.
I hope this advice helps you and you don’t make the same mistakes as me and wait so long to contribute.