How to get started with open source?- 4 mins
I recently started contributing to open source. On my way till now, I have learned a lot from writing reusable code to collaborating with others on version control system(VCS).
What are Open Source Softwares(OSS)?
Yes, these are computer software, whose source code is made publicly available (like as on Github, Gitlab, cloud storage etc). A contributor can modify, enhance, optimize in order to make it more feasible. OSS may be licensed. What a license does is, grant specific permissions for others to use that work.
How to contribute to open source projects?
Explore open source softwares. Find a bug. Report it. Take a challenge and try to resolve it. Take help from mentors to understand the codebase.
Work on an existing issue. You can find some opened issues in the repository of the projects.
Reporting a bug
Bug/issue management is one of the easiest ways to contribute to an open source project but also is one of the most important parts of maintaining the project. I, myself, started contributing by reporting a bug. One can also start via enhancing feature.
How to contact mentors?
There are many ways to contact mentors:-
via the mailing list.
via Google Groups/Slack/Gitter etc.
My journey throughout this world until now
Getting started with an open source project can be intimidating. I wanted to contribute to open source projects, but struggled with where to start.
I started my journey exploring Android projects on Github, found some bugs and made some pull requests(PR) for the latter. When my first PR got merged it gave me feeling of accomplishment. I was really motivated to enter the world of Open Source.
Here’s my experience
- Improved my code understanding skills
It is really important to understand existing code in order to solve a bug or enhance a feature.
- Learn from mistakes
Nobody is perfect. Everyone makes mistake. So, don’t get disappointed and stop working. Accept them, make a note and learn from it.
- Have patience
It’s human behavior, when we achieve something big, we forget to do some necessary checks and take actions. In this context, when a critical bug is resolved, don’t rush to make PR, test it properly, clean the code, write relevant comments, remove unnecessary Logcat used in the process of debugging. After checking all this, take a deep breath and hope for good. Finally, commit with a descriptive commit message and submit a new PR.
- Include your approach in issues and PR
It helps mentors in reviewing PR, how the issue has been solved. Also, it is better to discuss your approach.
- Solving bugs
No matters how difficult it is to solve a bug, solutions always exist. Start debugging, include break points and hit debug option. This will not only give you the value of a variable at any particular time instance but also will help you in understanding the event flow of the project. You can also print log in the console in order to get a better picture of what is going on. For some critical bugs, it takes some time to resolve them, so in between stay motivated and don’t give up in your heart. Have faith in you. You can and you will do it.
- Don’t run away from errors
Usually, we are familiar with creating new projects and successfully deploying it. But we are not sure, when we clone a project and run it, whether it will build without any error. For larger projects, you will definitely face some error. This is because the project may be using some libraries or modules which are not installed on your local machine. Dig into the error, search about them, ask help from mentors and try harder everytime.
This point played a major role in my journey. 70-80% of the cloned projects gave me errors while building. Carefully read the README file of projects. You may get hints about what you are missing. Look for the error, try different solutions.
Of course, Git is a powerful tool for version controlling of the project. I was really scared using it, but as my journey proceeded I become more and more familiar with it.
- Share your experience and help others
Yes, this community motivated me to share my experience and eventually today I am writing this Blog. It is well said that “In any open source community, Teaching and Learning go side by side.”
If you’ve ever tried to debug a frustrating problem within the codebase of a software, you will probably be Googling to find the answer. Google doesn’t know the answer, of course. It can only point you to web pages that others have created. That’s where forums(like StackOverflow) and blogs( like Android Authority) come into the picture.
Contributing to open source projects is not as scary as it may look. Dig a bit and you will definitely find projects which excite you. You can search “Open source projects for “<your interest>”.
I hope this encourages you to find a project you’re interested in and to be courageous enough to make that first commit.