An Alternative Way to Begin Contributing to Open Source
Contributing to open source projects can be daunting for newcomers. When seeking information on how to get started, most of these newcomers are usually told to just jump right in. Find a project you are interested in on GitHub, go through their issues, and submit a pull request. There isn’t anything wrong with this approach. Being a software developer, I heavily advocate “learn by doing”, so this would also be my typical advice. However, this is commonly met with fear.
“What if I’m not good enough?”
“What if my contribution is rejected?”
“What if the maintainers are unfriendly?”
I have had the same thoughts when looking to contribute to a new project. These are really just mental roadblocks. Project maintainers are generally open to new contributors and will often help you out with working on an issue. With that said, I recently stumbled upon a new and interesting way of jumping into the land of open source…
I generally begin my day by checking out trending repositories on GitHub with a cup of coffee. When scrolling through these repos, I start opening those that may interest me in new tabs. I then go through each tab and check them out. If I find a project particularly interesting (and it isn’t from a developer I already follow or know of) I’ll check out other projects that person might have.
As I was following this daily routine the other day, I came across the repo for Learn Anything trending. I checked it out and thought it was really awesome, so I started looking at the repo owner’s (@NikitaVoloboev) other projects. That’s when I found crafting-ideas.
All it had was a README which contained, simply put, an idea. An idea and a section titled “Help” that contained this:
I was intrigued, and joined his Slack channel. Two days later, we already had something up and running to play with.
Then it hit me. I just started contributing to a new project that was nothing more than an idea at that point in time. Not once did I run through the normal mental roadblocks discussed above. I joined that Slack channel without a second thought and immediately started working with Nikita, the repo owner, on the project. I had realized then that I had discovered two new ways to start contributing to a project.
You could be on the side of Nikita, and create a repo that contains nothing more than an idea and a call for help (having something like a Slack channel linked is a nice touch too). Or, like me, look for those like Nikita who would like to start a new project.
This approach feels a lot less daunting. Rather than trying to jump into a large, popular project with a lot of contributors, you’re only engaging with one or a few more people. There’s the added benefit of building something new from scratch. You don’t have to learn the ins and outs of a pre-existing code base. It is also more personal, and can help you gain new connections.
Interestingly enough, the project we are working on really fosters this idea of bringing people together to work on new ideas in a social way. If you are new to contributing, I invite you to try this different approach and join us in working on this project.