This will be my first blog that attempts to help out people getting started in open source software (OSS). This blog will become a series of blogs that hopefully will be helpful to newcomers that desire to contribute to OSS. Note that I have close to zero experience in OSS — this will be a journal of my adventures in OSS.
The first thing to getting started in OSS is to find a project to work on. This is in my opinion an important aspect because an interesting project will be able to motivate you. I know that I am stating the obvious, so let me try to be more concrete about what you should be looking for.
Obviously, you need to find a project you are excited about. I have read a couple of blogs that suggest you to work on something that you are using but this may not always be the case. Therefore, at least the project should be interesting to you and excite you. In my case, I found compilers interesting and coincidentally I stumbled upon Babel, a JavaScript compiler.
Next, it is necessary that there is an active community and that communication is easy. An active community can easily be identified by looking at the commit history, issues, and pull requests of a project. Additionally, try to join their communication channel such as Slack, Discord, Gitter, etc. This will give you a good impression of the community. For me, this was a huge thing. I joined the Slack of Babel and said the following:
The core contributors were extremely welcoming and excited, which made me excited too. However, looking back at what I did, I do not think that this is the proper introduction unless a project does not have any documentation for contributors, i.e. no CONTRIBUTING.md
. If I could have done this again, I would have said something like:
Hi there, I am interested in contributing to BabelJS because I want to improve as a developer and it seemed to me that you guys are very welcoming. I have to admit, I am far from a JS expert but am willing to learn the ins and outs of the language. I have noticed that there is a
CONTRIBUTING.md
guide and will be reading this thoroughly. Hopefully you guys do not mind me asking questions. I am looking forward to be part of this community 😬
Pay attention to the emoji at the end — it is essential (sarcasm). I am saying this because project maintainers do not like to tell every newcomer to read the contribution guide. Note that I am just assuming this, I have not asked them. However, imagine yourself being a maintainer and every day someone is asking how to get started—wouldn’t you get crazy?
To keep this blog short, the conclusion of this blog is:
Find a project that interests you and has an active community that is easily to reach out to.
P.S. Feedback is always appreciated as to how I can improve the quality of my blogs 😬