by Roshan Jossey

How to make your first open source contribution in just 5 minutes

1Y79MDK42DLE7QYEowvuxAZKXkdQdZB7Nho-
Photo by Gareth Harper on Unsplash

The best way to level up your programming skills it to code more. The second best thing is to read others’ code.

What better way to do this than collaborating in open source projects?

You’ll be exposed to various coding styles. You’ll get awesome reviews on the code you write.

First contributions is a project to help you get started with contributing to open source projects. Excited to start your open source journey? You can follow the instructions in tutorial in Readme of First Contributions project on GitHub.

Why should you contribute to open source projects?

Contributing to open source projects came with benefits like having lots of fun, improving your skills, building an awesome profile that could help you in your career, meeting like minded people, finding awesome mentors etc.

Nevertheless, I’ve always felt that everybody should have personal reasons for contributing. When I started, I was excited about the freedom open source gives me. I could make the changes I want in tools I’m using. I could share my version with anyone I want.

I was also thrilled about giving back to the community I’m taking so much from. I’m standing on the shoulder of giants when I’m doing my work. I wanted to give back as much as I could.

This is starting to grow on me as a moral obligation now. I feel like open source is like the software equivalent of everybody who helped me to become the person I am today. Like family, friends, mentors etc., who helped without expecting anything in return.

Similarly, most of the tools such as programming languages, libraries, frameworks, text editors, version control system, various command line tools etc are open source. I couldn’t reach where I am now without them. The people who created all those did that without expecting anything in return from me.

I learned that many people have various reasons for contributing. Here’s a compilation of reasons why people contribute to open source.

Why I started this project

When I was studying, I had a strong desire to contribute to open source. Unfortunately, I faced a lot of obstacles in that path. Eventually I found what I was doing wrong. I was trying to do everything at once. I learned that a gradual approach is best to get started.

That’s when I stared First contributions. It started off as a hands-on tutorial to provide an understanding of contribution workflow (pull request style) in GitHub. I wanted to give everybody the joy of getting their first pull request.

I started collecting feedback from users on how to take it forward. Most people wanted suggestions on which projects to start contributing. We started building a web app for suggesting projects. We also started a slack group for anybody to ask questions or get help.

What we learned from first contributions

One thing I learned from this project is that there is a big gap between projects that are looking for new contributors and people who are trying to start contributing to open source projects. It’d be awesome to bridge that gap.

There is still a lot of friction for beginners to start contributing. Even with a lot of effort from maintainer’s side, it’s really hard to make your project beginner friendly. Take a look at this discussion in nodejs admins repo

Dreams and hopes for future

0AjsdfyYCXlbdxJY5mGT8baMM2pEx1Y1BTx0
Photo by Adrien Lemaire on Unsplash

It’d be great to get more people involved in the slack group. It’d be good to influence maintainers to make their projects more beginner friendly. We’re also actively trying to reach more people.

There is also another thing I wanted to do, but failed at it’s inception. Most students do a project in college. If this is to contribute to an open source project, that’d be much more rewarding and fruitful. It’d be wonderful to get that back on track.

Closing notes

Leave a few claps and a star in the project repository if you found this interesting.

I’m indebted to Quincy Larson for advising me to write this article and all his work for freeCodeCamp. Also Kent C. Dodds and Scott Hanselman for inspiring me to start this project.