Source: Made it Myself :P

Starting with Open Source as A Complete Beginner

Omkar Prabhune
7 min readSep 30, 2021

--

I am well aware that this is a topic beaten near to death by all the articles, videos and events surrounding it. But I still wanna give a shot anyways! Like my last blog about a similar topic, I will only outline what options you have and then resources regarding them.

As a beginner asking for advice on how to start, you'd often get told to find a FOSS (Free and Open-Source Software) tool that you use often, and then contribute to it. But what if you don't have this tool? Or don't know how to even find one? That's what I'm trying to help with 😤

Enough about that, Onto the real content now!

Let's review what options you have exactly as a beginner:

  • Open Source Events (HacktoberFest, GSoC, etc.)
  • Finding a Project and How?
  • Or just make your own!
Source: ᕕ( ◔3◔)ᕗ by Molly Hensley

Open Source Events

There's a lot of Open Source events around (HacktoberFest, GSoC, MLH Events, Other Summer of Code's) and you can take advantage of any of them as a beginner. While some are more popular than others, they all have their specific time period so you'll often be limited by those. Also, you should be aware of Git and GitHub before anything else.

I'll give a brief overview of the most popular ones and drop a list of the rest so you can check it out

Google Summer of Code

The big one and probably why you're even here. GSoC is basically Google sponsoring you to do a project for an Open Source organisation. In my case it was with Apertium in GSoC 2021.

As the name says, it's during summer (May - July). To get selected you must prepare an incredibly detailed proposal of what you're planning to do and submit it to an organisation of your choice. They'll then rate all the proposals they got and you'll get selected if yours stands above most.

And a few tips for staying just this cut above the rest:

  • Talk to the Mentors early on - This is extremely important. These people are the ones that'll eventually select your proposal. And from their POV, they're much more likely to select that of a participant they've talked to or gotten a feel for rather than someone who posted a proposal and didn't do anything afterwards. Also interact with them and other candidates on their preferred mode of communication (It'll be given on their profile on the GSoC page)
  • Be Realistic - This seems counterintuitive but a proposal about something wildly innovative is actually more likely to get rejected, simply because they don't have anyone to mentor you or because your timeline and goals are too unrealistic for the project. It's exciting to do new things, but as a maintainer, it's often preferable to do something simple yet meaningful than branching into an entirely new domain that'll just get abandoned after your project.
  • Focus on Proposal Quality, not Quantity — I experienced this in my own application as well as from experience of others. You have a total of 3 proposals you can submit, but there's no need to use all of them. I'd personally only made one and focused all the time I had on that one. In case you want inspiration, here's the link to my proposal. All these points actually boil down to one thing…
  • Think from a Maintainer's PoV - For a Maintainer of the Organisation, what they want is to continue their project and to add onto it so that it gets more popular. They don't need something too flashy, nor do they care about someone who's already involved in a ton of other stuff. One thing you should try after and during writing your proposal is; What would I think about this if I were the maintainer? And I guarantee this will help.

HacktoberFest

It's October at the time of writing this, so especially relevant right now! Hacktoberfest is the largest scale open-source event going on regularly. In this, you have to complete 4 Pull Requests (or interact with 4 PR's as a Maintainer but that's a bit too early for now) to get your swags or plant a tree.

It's also one of the easiest open source events out there, with basically no bar for entry and only a few Pull Requests required for completion. To find projects to contribute to, you can use the list in the Existing Project Section below for that. Also, obligatory advertisement: My own Open-Source Project, Junior is actively looking for anyone willing to contribute in any way, code or documentation.

Apart from Hacktoberfest and GSoC, there's a ton of other open source events too! And here's a list of links to all the more popular ones:

Finding an Existing Project to Contribute to

You don't really need an event or some organiser to tell you how you're supposed to go about starting in open source. You're perfectly capable of doing it on your own as well. This way, you actually have greater control and awareness of what you're doing to be honest.

The best method is of course to find a tool you like and use a lot already, but this can be hard, especially if you're very new and aren't even sure what you're using. In that case, there's really little else to do. But you can always find some popular repositories to contribute to or just use one of the many issue-finders that I've linked below to find a lesser known but still active repo.

The main problem with finding a project you want to contribute to, is that you don't know where to even look! So here's a list of link below about tools you can use to find these:

Use one of these to find an issue in a language or framework you know about (or even documentation!) and issue a new Pull Request.

Source: My own Open Source Project, Junior

Just Make your Own

I've done the above 2 before but I gotta say, none of them's as fulfilling or excited as creating a project you feel a need for and getting the community excited about it enough to contribute to it. I'm not sure how else to describe this so I'll just talk about how I got mine started!

A couple weeks ago I saw this post on the r/noveltranslations subreddit and noticed that a lot of people were also using their notes app to maintain their chapter progress. As for those who didn't, they had to maintain it in notes across different sites like NovelUpdates, RoyalRoad and all. So I set out to create one, maybe because I have too much time to waste and because I saw a genuine need for one.

So I created Junior, an Android App that maintains records of the novels you've read, completed or abandoned. It can also record your own personal rating for the novel, a link to the Novel if you're reading on mobile and chapter notes to remember the general progress. And it looks pretty as hell while doing it.

I eventually posted on the subreddit again and got an overwhelming response from the community, enough to make it worthwhile as a major project for me. I promptly open-sourced the code and released the app on the Play Store (200+ real installs as of now).

Enough about that! The point is, if you really believe you have a good project idea that your community would be excited about: Absolutely go for it! It can be a simple Command Line Tool to quickly do some operation (Idea: Automatic Wallpaper Changer for Linux, I'd definitely use it) or an entire product like Junior here.

Aaaand that's it for this blog. Whether it be through an event or completely on your own, it's incredibly commendable to contribute to Open Source, something that forms the bedrock of nearly all Websites, Applications, Tools in use today.

No matter how far you decide to go along with it, I do hope that this little 5 minute summary helped you at least a bit!

--

--

Omkar Prabhune

I’m Omkar Prabhune, a CompSci Senior especially interested in Natural Language, Open Source Development and writing these blogs!