One of the challenges I ever had was to get my foot into Open Source Code Contribution. Searching for open issues on Github relevant to my skills and level of knowledge was challenging. The challenge mainly was reading code, without having much idea about the project. But this year, I took it up as a challenge to get this done. I have started with baby steps. Here is how it went so far.
Baby steps to open source contribution:
Search for "good first issue" labels on Github.
Then filter on your programming language of choice from the options available in the Languages section.
Browse through them to see if anything looks good to you.
Beginners should start with documentation updates. My first open source contribution was a documentation update for scikit-learn. These are some of the most simple issues on Github. Here is my PR. Open source contributions don’t always have to be super complex features, they can be easy fixes as well.
It is important to start reading the contribution guidelines as it provides all the information on setting up the dev env and all the code testing/validation process. It immediately helped me understand some of the best practices for coding. I realized that I haven’t been giving much attention to coding best practices in my personal and work projects, which needs a gentle nudge.
After doing that documentation update, I decided to move one step ahead. I wanted to get my hands dirty with some code changes. So I picked up Mosec Issue#180. Mosec is an ML serving framework written using Python and Rust. The issue was related to fixing the linting issues in Python code. This would mean updating the Python files, adding docstrings, and rearranging code. It took me a day to set up my dev env, as I had to install a lot of dependencies as well. I was getting some Rust-related issues on my Mac machine.
Again this time, I took small steps and sought guidance from the repo’s author through posting queries on the Github issue/PR. The author was helpful in guiding towards the right approach and helping analyze some code errors as well. After multiple reviews from Mosec’s authors, my PR was eventually merged.
Taking the first step in Open Source contributions is always challenging and intimidating for new and experienced coders as well. Hence, taking a structured approach and making small steps is the right way to achieve it. Progress takes time and consistency.
“All progress takes place outside the comfort zone.”
- Michael John Bobak
Getting into open source contribution gives you a lot of benefits as well.
Learning the best coding practices.
Reading/Writing great documentation.
It helps build your resume.
I have interviewed a lot of candidates for job roles in my current and previous organizations, and only 1% of the candidates have open source contributions.
It’s a great way to stand out from the crowd.
Get peer recognition in the software dev community.
With a bursting ecosystem of the open source software community, adding contributions is the way to level up.
Empowerment of individuals is a key part of what makes open source work, since in the end, innovations tend to come from small groups, not from large, structured efforts.
-Tim O'Reilly
This is just the beginning, with more progress to follow.