
This is the first step in many things
There is a common misunderstanding that contributing to open source is a difficult task. You might think, “Sometimes I can’t even understand my own code; how could I possibly understand someone else’s?”
Take it easy. Until last year, I thought the same. Reading and understanding others’ code and then writing your own code on top of it is a daunting task, but with the right resources, it’s not as bad as you think.
The first step is to choose a project. This decision is a crucial step in the transformation of a rookie into a seasoned open source contributor.
Many amateur programmers interested in open source are advised to start with Git, but this is not the best way to start. Git is maintained by many super geeks with years of software development experience. It’s a good place to find open source projects to contribute to, but it’s not beginner-friendly. Most developers who contribute to Git have enough experience that they don’t need to refer to various resources or documentation. In this article, I will provide a list of beginner-friendly features and give some suggestions that I hope will make it easier for you to contribute to open source.
Understanding the Product
Before you start contributing, you need to understand how the project works. To understand this, you need to try it yourself. If you find the product interesting and useful, it’s worth your contribution.
Beginners often choose to contribute to software they haven’t used. They will be disappointed and eventually give up contributing. If you haven’t used the software, you won’t understand how it works. If you don’t understand how it works, how can you fix bugs or add new features?
Remember: Try it, then change it.
Confirming the Product’s Status
How active is the project?
If you submit a pull request to a project that has been suspended, your request may never be discussed or merged. Look for active projects so that your code can get immediate feedback and your contribution won’t be wasted.
Here’s how to confirm if a project is still active:
- Number of contributors: An increasing number of contributors indicates that the developer community is willing to accept new contributors.
- Commit frequency: Check the time of recent commits. If it’s within a week, or even within a month or two, the project should be regularly maintained.
- Number of maintainers: The more maintainers there are, the more likely you are to get guidance.
- Chat room or IRC activity: A busy chat room means your questions can be answered faster.
Newbie Resources
Coala is an example of an open source project. It has its own tutorials and documentation that allow you to use its API (each class and method). The website also has an attractive interface that makes you interested in reading.
Documentation: Developers at all levels need reliable, well-maintained documentation to understand project details. Look for projects that provide comprehensive documentation on GitHub (or elsewhere) or on independent sites like Read the Docs, which can help you gain a deeper understanding of the code.

Tutorials: Tutorials explain to beginners how to add features to the project (however, you won’t find this in every project). For example, Coala provides a Bear Writing Guide (Python wrappers for code analysis linting tools).

Categorized issues: For beginners who have just figured out how to choose their first project, choosing an issue is an even more difficult task. Labels set to “difficulty/low”, “difficulty/newbie”, “beginner-friendly”, and “low-hanging fruit” all indicate that it’s beginner-friendly.

Other Factors

CI user pipeline log
- Maintainers’ attitude towards new contributors: From my experience, most open source contributors are happy to help newcomers in their projects. However, when you ask questions, you may also encounter some unfriendly people (and even a bit rude). Don’t lose confidence because of these people. They just don’t have an outlet for their frustrations with people more experienced than them. There are many others who are willing to help.
- Review process/mechanism: Your pull request will go through several reviews and changes from your peers and experienced developers - this is the main way you learn software development. A project with a strict review process helps you grow in writing production-level code.
- A robust continuous integration pipeline: Open source projects introduce newcomers to continuous integration and deployment services. A robust CI pipeline will help you learn to read and understand CI logs. It will also give you experience in dealing with failed test cases and code coverage issues.
- Participating in programming projects (such as Google Summer Of Code): Participating in an organization proves that you are willing to contribute to the long-term development of a project. They also provide newcomers with an opportunity to gain real-world development experience and get paid for it. Most organizations that participate in these projects welcome new people.
7 Beginner-Friendly Organizations
- coala (Python)
- oppia (Python, Django)
- DuckDuckGo (Perl, JavaScript)
- OpenGenus (JavaScript)
- Kinto (Python, JavaScript)
- FOSSASIA (Python, JavaScript)
- Kubernetes (Go)
About the Author
Palash Nigam - I am an Indian computer science undergraduate who is very happy to participate in the development of open source software. I spend most of my time on GitHub. My current interests include web backend development, blockchain, and All things python.