The best way to level up your programming skills is to code more. The second best way is to read others’ code. What better way to do these things than collaborating in open source projects?

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

Why should you contribute to open source projects?

Contributing to open source projects comes with lots of benefits: You'll have fun, improve your skills, build a profile that could help your career, meet like-minded people, find terrific mentors, and more.

Nevertheless, I’ve always felt that everybody should have their own personal reasons for contributing. When I started, I was excited about the freedom that open source gave me. I could make the changes I wanted to the tools I was using. I could share my version with anyone. I was also thrilled about giving back to the community from which I’m taking so much. I’m standing on the shoulders of giants when I’m doing my work, and I wanted to give back as much as I could.

This is starting to become a moral obligation now. I feel like open source is the software equivalent of everybody who helped me to become the person I am today—family, friends, mentors, and others who have helped me without expecting anything in return. Similarly, most of the tools I use, such as programming languages, libraries, frameworks, text editors, version control system, various command line tools, etc., are open source. I couldn’t have reached where I am now without them.

The people who created these tools did so without expecting anything in return from me.

Starting First Contributions

When I was studying, I had a strong desire to contribute to open source. I faced a lot of obstacles on that path, but eventually, I discovered 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 started First Contributions.

It started as a hands-on tutorial to help others understand 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 the project forward. Most people wanted suggestions on which projects to start contributing to. We started building a web app for suggesting projects. We also started a Slack group, where anybody could ask questions or get help.

One thing I learned from this project is that there is a significant gap between projects that are looking for new contributors and people who are trying to start contributing to open source projects. It’d be wonderful to bridge that gap. There is still a lot of friction for beginners to start contributing. Even with the effort from the maintainer’s side, it’s hard to make your project beginner-friendly. Take a look at this discussion in Node.js admins repo.

Next steps

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

Here's another thing I'd like to see: Most students do a project in college—wouldn't it be rewarding and fruitful if they contributed to an open source project? It’d be fantastic to get that back on track.