Having open-source contributions adds weight to your resume and helps you stand out of the crowd if you want to get into the field of IT.

People often associate open source with large-scale projects and prodigy programmers coding from their basements. But the reality is different. Contributing to an open-source project is much easier than you might think. And you don't even need to know how to program to get started.

Step 1: Identifying Your Skills and Tech Stack

Before hopping on to GitHub or other software development platforms, you should analyze your skills. Maybe it's web development with React. Or if you're into operating systems, you might be proficient at C and device driver development.

Make a list of all the technologies you're familiar with, along with some you want to learn along the way. Then, sort those technologies based on your expertise so you can find a project that matches your domain.

Prerequisite Technologies

All open-source projects use a version control system, be it Git, Apache Subversion, or Mercurial. Therefore, it's crucial to educate yourself about any of these version control systems, so you can actively participate in the project's development.

Step 2: Finding an Open-Source Project

The next step is to search for a good open-source project that is currently active and open to contribution. You can judge a project's popularity by looking at its number of stars and forks.

But where do you find a project? Here are three well-known platforms to search for projects:

1. GSOC Organizations

Head over to the Google Summer of Code Organizations web page to find a complete list of open-source projects currently open to contributions. And no, you don't need to register for GSoC to do so.

The website gives you a search field, sort functions, and a categorical view of the organizations so you can filter out the ones that don't correspond to your skill set.

gsoc open source organizations list

You can even search for a specific technology and it'll return the organizations using that particular tech.

When you're ready, click on an organization's card and you'll be taken to its web page. From there, you can learn more about it, browse through the available projects, and view their code.

2. CNCF Contributors Page

Visit the CNCF Contributors page and scroll down to find a well-organized list of open-source projects along with the primary programming language used.

cncf contributors web page open source

You can click on a particular project, which will take you to a section highlighting the project's repository, official website, social media handles, and more.

3. GitHub Topics

Yet another remarkable, and undoubtedly the best, way to search for open-source projects is using GitHub. If the large-scale organizations listed on GSoC and CNCF's website scare you, rest assured as you can find many small projects gaining traction on GitHub.

Choose a topic that interests you (for instance, "kernel development") and plug it into the URL below:

        https://github.com/topics/topic-name
    

Make sure to substitute topic-name with the technology or topic you're interested in.

github topics kernel development

GitHub will return projects in that particular domain including details like their description, star counts, tags, and more. From here, you can choose any that piques your interest and continue from there.

Step 3: Understanding an Open-Source Code Base

So you've finalized a project. It looks promising and the topic seems fascinating. But how do you go about understanding the entire code base? It feels like a tough nut to crack, even to experienced programmers.

The first thing you need to know is: if it's a huge open-source project, most probably the developers would have divided it into sections, and you don't need to understand each line of code to be able to contribute. Instead, have a bird's eye view of the project and dig deeper into the section you want to fiddle with.

It's also recommended that you use the software in personal projects to get an idea of how it works. This would help you learn more about the software even when you're not directly working on it.

1. Join the Mailing List

The best way to ask for queries and understand code is to join the official mailing list. If it's a huge project, get ready to be bombarded with mail after mail containing issues and feature requests. Check the project's README file for the mailing list URL.

kubernetes minikube readme file

As a beginner, you can send a mail stating you're a newcomer and would like to contribute to the project. Most of the developers would appreciate it and help you with a bug or issue that's your level.

2. Join the Project's Communication Platform

Many open-source projects have Discord, Slack, or some other communication platform for the developers to chat. Similar to the mailing list URL, you can find these listed in a project's README file.

Step 4: Contributing to an Open-Source Project

You've established contact with existing contributors and feel fairly confident about the code. What next?

Now it's time to find some low-hanging fruits and fix an issue by writing some code.

1. Finding Good-First Issues on GitHub

On GitHub, developers list bugs and feature requests in a section labeled Issues. You can scroll through this list and find a problem that looks fixable to you. For beginners, click the Labels option and filter the list by clicking on Good First Issues or For Beginners.

filtering good first issues github

2. Using goodfirstissue.dev

goodfirstissue.dev is a fantastic website that makes the job easier for you. It aggregates good-first and beginner issues from thousands of repositories and lists them in an easy-to-read format. You can choose issues from a project and filter the list by language and technology used.

goodfirstissues.dev python open source projects

Clicking on an entry will expand it and display issues that are ideal for beginners starting with open-source contributions.

3. Looking for Issues With Help Tags

If you don't feel confident enough to solve an issue yourself, you can filter issues with the label Help, Help wanted, or Help required. These are listed by developers who are already working on an issue but require help.

github help wanted issues open-source

Assisting someone else is a good way to find a mentor and learn more about the project.

4. Beautifying the Documentation or User Interface

People who don't know how to code can also contribute to open source. You can help create a user interface for the project's website or improve the existing README file or documentation to make it comprehensible for beginners. The latter requires you to know some fundamentals about the project and its working, though.

You can find issues related to improving the README or developing a UI/UX for the project's website. If you can't, mail the project's owner highlighting your skills and the reason why you want to contribute. Most developers would appreciate the help and will get you on board.

Step 5: Getting Your First Pull Request Merged

Now, all that's left is to fix an issue and create a pull request to submit your changes to the code for approval. You can use Git to contribute to the project. If your modifications fix the problem without breaking anything, the owner will merge your pull request and you'll have made your first open-source contribution.

If you made a mistake, you can ask them to clear your doubts before you start working on the problem again. Either way, it takes time, effort, and persistence to be able to learn a project and contribute to it.

Now You’re an Open-Source Contributor

You've now learned everything you need to do from choosing an open-source project to getting your first pull request merged. This is just the start, though. If you like the project, you can keep contributing and become a well-known developer in the community.

Open-source code is different from proprietary code. You should know the characteristics of each and how they're different from one another.