This story was originally published on Medium.com. Please check it out over there.
Once I decided I am going to pursue a career as a data scientist, I purchased and read The Data Science Handbook. The most significant impact this book had on me was allowing me to understand the benefits of participating in an open source project.
It was always an attractive idea to me. Of course, it’s easier said than done. Git is not particularly easy to understand if you don’t have any experience. And I wasn’t too excited about letting other people review my mediocre code.
I decided to get over my fears after reading the words of several successful data scientists evangelizing open source. Some light googling took me to First Timers Only, which is a resource for anyone who is new to GitHub. There, I found Up For Grabs, which tracks projects on GitHub with special tags denoting issues that are suitable for those with little experience. I would strongly recommend that anyone interested in joining an open source project check out these two resources.
If you don’t know already, Git is a tool that allows developers to collaborate. This process is called version control. Without it, it would be nearly impossible to amalgamate work from several individuals. GitHub is a platform that exists on top of Git. It uses the functionality from Git and takes the the process of version control to another level. Familiarity with these things is absolutely necessary for anyone interested in a career that involves writing code. An open source project is simply one that is hosted on GitHub (or another version control platform, but GitHub is by far the most prevalent), inviting all developers to participate.
The first step is selecting a project to join. I thought this part would be a lot easier than it actually was. There are a lot of projects on GitHub. Some are more welcoming than others. I would suggest you look around until you find a sufficient project instead of looking for the ideal one — you’ll never find it.
I eventually settled on the Oppia Project. It’s an open-sourced and completely free learning platform focused on delivering education to developing countries. It’s powered by the community, both in terms of code and content. It wasn’t hard to decide that Oppia was the project for me once I landed on their GitHub. The whole Oppia system is designed to help newcomers learn what they need and get started contributing. It makes sense that an open-source learning platform is, well, a platform for learning open-source.
When I first sat down to join Oppia, I had to fill out a survey that asked about my experience and interests. Not long after I submitted it, I got an email from the founder of the project, Sean Lip. I received a rundown of the project, some advice on where to start, and a warm welcome. It was definitely overwhelming. At this point, I still wasn’t very comfortable with using Git even though I had done a few tutorials. Fortunately, there a was a lot of information on the Oppia wiki that got me going. It was clear the maintainers of the project knew what sort of guidance I would need to be able to contribute, and it was provided in abundance.
I had a video call with Sean a few days later. He told me all about Oppia, and his passion for the project showed right through my computer screen. It was very exhilarating to talk with the founder of the project. and I felt important right away.
I got to work writing a backend test. Oppia has a whole infrastructure to support the work, so I always felt that I knew where I was headed. But I had no idea what I was doing (I still don’t). I went through this cycle every day of submitting work and receiving loads of feedback because there was so much wrong with it. I was ready for it, but it is still a little uncomfortable hearing that you have to start over for the third time.
And that’s exactly why you need to do it.
I learned so much in my first few days at Oppia by just forcing myself to make a pull request. Of course my code was terrible — but I had learned how to read code, create a branch, make commits, test my code, and make a pull request. Then, after it was reviewed few times, I had a pretty good idea of how a test is supposed to look.
It took about a week to get my first pull request merged, not to mention a lot of self-teaching. The team at Oppia didn’t hold my hand, they only pushed me in the right direction and encouraged me to do a lot of learning on my own. When I finally got my code merged, I felt so fulfilled! It was quite the feeling to know that an organization had accepted my work, even though I had hardly any idea what I was doing (and it showed).
Joining an open-source project is a valuable and fulfilling experience for anyone interested in development. I’m very proud to be a member of the Oppia project, and I encourage everyone to find something that they will make themselves proud.