FirstContributions
A step-by-step guide for everyone in getting started their open-source journey.
Install / Use
/learn @MahadMuhammad/FirstContributionsQuality Score
Category
Education & ResearchSupported Platforms
README
FirstContributions
A step-by-step guide for everyone to get started on their open-source journey.
Many beginners (developers or non-developers) find it challenging to contribute to open source projects. They may feel that they are not skilled enough or that they don't know how to get involved. However, this is not true. Anyone can contribute to open source, regardless of their level of expertise. The key is to have a learning and helping others mindset, follow the best practices, and follow the specific guidelines of each project.
This repository provides a basic roadmap for anyone who wants to start their open source journey from scratch. It covers the essential steps and tools that you need to become a successful open source contributor.
Table of Contents
- What is Open Source?
- Benefits of Contributing to Open Source
- Find your Passion
- Find a project to contribute
- Do I have the right skills?
- Learning the right skills
- Make your first contact
- Communicate Effectively and ask smart questions
- How to understand Large and Complex Codebases
- Don't hesitate to help others
- Document your journey
- Slides
What is Open Source?
The term open source means that anyone can see, understand, learn, modify, or distribute (depending upon the license) the source code of the software. The amazing technology that we use nowadays became possible due to the rise of the open source movement.
The source code of:
- Linux
- Blender
- Android
- Firefox
- Chromium
- Apache HTTP Server
- MySQL
- Git
- TensorFlow
- PyTorch
- VsCodium
- GIMP
- VLC
- InkScape
- FFmpeg
- Kubernetes
- Docker
- MongoDB
- Godot
- Krita
- Almost all the programming languages
And even many machine learning models like Meta LLAMA 2 and OpenAi's general-purpose speech recognition model Whisper are open source. Also, there are some open source games like Doom. All of these are open source projects. You can see their source code, learn from them, modify them, and even contribute to them. You can also use them in your own projects. This is the power of open source.
Main philosophy of Open Source
The main philosophy of open-source products is the freedom to think, create, learn, and share. It is a collaborative effort of many developers who are working together to create something amazing. In the early phases of technology, open source helps the technology to not become handicapped by some big entities and is developed by people who really have the passion to make that piece of technology better.
Benefits of Contributing to Open Source
As a complete beginner in technology, we face a common problem that we are unable to make our hands dirty on the products or software that we use in our daily life and the software that powers the whole world. Here, open source solves the problem.
By working on an open source project you:
- Understand the magic behind the amazing technology.
- Improve your skills by working with other developers.
- Work and learn from the best developers and technology.
- Make an impact on the world by contributing to the projects that are used by millions.
- Open your door to the world of opportunities.
- Learn people skills like communication, teamwork, leadership, etc.
- Work on the thing that you are passionate about.
- Get paid (as a job or through some programs)
If you want to know if open source is for you or not, then ask these questions to yourself:
- Do you want to become a technology maker?
- Do you want to grow your network?
- Do you like improving the technology that you use in your daily life?
- Building a community?
Find your Passion
You will be much more successful if you work on your passion. Therefore, the first step is to find your passion.
- The thing which you like to do in your free time.
- Which thing excites you the most?
- The thing which you do without any external or monetary motivation.
- Where do you see yourself in the next 2-3 years?
- Find the intersection of your passion and your technology.
For some people, it's like gaming or art, or poetry which they love to do in their free time. For example, if you like art then you can contribute to artistic software like Blender, Inkscape, GIMP, Openshot, Krita. This way you can improve your skills, learn from the best developers and make an impact on the world.
Find a project to contribute
Now, you have identified your passion. The next step is to find a project to contribute to. Selecting a project is one of the crucial steps in your open source journey.
Identify the project that you use in your daily life. This is the best way to find a project to contribute to. As you have the passion for that project and you know the pain points or features that you want to add or improve in that project.
- One of the easiest ways to find the project and the welcoming community is using the Google Summer Of Code website.
- Just go there, and search for the term that you are passionate about and you will find organizations that work on that technology.
- Use GitHub Explore
- See GitHub trending repositories
- See GitHub choosing a project
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- First Contributions
- SourceSort
- OpenSauced
- Ovio
- For finding good first issues on this platform use this search powerful issue search tool
- Contribute-To-This-Project
- Open Source Welcome Committee
See freeCodeCamp/how-to-contribute-to-open-source for more resources.
Do I have the right skills?
One of the myths that people have is that they need to be an expert in order to contribute to open source. This is not true. You don't need to be an expert to contribute to open source. You just need to have the right skills.
Soft Skills
- You know where to find help.
- You learn from the feedback and respond well to it.
- You can work in a team or independently.
- You know when to ask questions.
- You can communicate effectively.
- Respect other people's opinions.
Note: If you are not interested in the developer side, then you can also look for the Google Summer Of Docs program, which is specifically tailored for technical writing people.
Technical Skills
- You know the basics of a specific programming language.
- You can fix common issues that are related to the project.
- You have basic experience with a project workflow.
- Knowledge of Git and GitHub is a plus.
Learning the right skills
The right skills depend on the project that you want to contribute to. For example, if you want to contribute to a Python project then you should know the basics of Python. First, identify your project and then learn the skills that are required for that project.
-
Use class central website
-
Use edX website
-
Use Coursera website
-
Use Udemy website
-
Use Udacity website
-
Use Khan Academy website
-
Use Codecademy website
-
Use freeCodeCamp website
-
Use YouTube website
-
For learning from the best universities, use this: https://csdiy.wiki/en/
Learning how to use a search engine is also a great skill to have, which you can learn from here:
Learning Git
Security Score
Audited on Mar 20, 2026
