Open source coding is intimidating.... but it's often recommended to start contributing to open source projects as a way to improve your skills. It seemed like such good advice but I didn't know how to get started.
So many times I would go to GitHub and try to find projects I could contribute to, and so many times I would leave GitHub without finding a project to work on. And, even if I had found a project I thought I could help with I didn't know the steps to take to do it.
There were a few factors that finally came together to help get me started, and now I am hooked!! As someone who is not yet employed (at least at the time of this writing) it gave me a sense of being a part of something and really helped to build my confidence.
The first thing that helped me was the course within Skillcrush on how to use git and GitHub with a focus on the aspects that would be important once employed. I was already familiar with the basics of using git for version control, but where this course helped me the most was that it walked through the steps of HOW to contribute to an open source project.
Now, I know that not everyone reading this has the desire or means to take an online course to learn this. So, here is an excellent article that goes through the why and how of contributing that you should find helpful: How to Contribute to Open Source.
While working through the later parts of the Skillcrush course they recommend that you put those skills to use and encourage you to begin contributing as a way to improve your skills and show the world what you know. At around this same time a member of my local meetup group gave a presentation about how to find a job and again emphasized the advantages of open source contributions.
The final push came after the director of my local meetup shared with the group his experience as an intern with Outreachy. This is an organization that provides internships for individuals who are underrepresented in the Free and Open Source Software (FOSS) community. He encouraged anyone interested in applying for the program to reach out to him for advise. It seemed like a great program, so I decided to apply and then reached out to him.
He explained how the Mozilla community, which is who he interned with, has many 'first bugs' for people to tackle that are very straightforward and allow you to get familiar with the contribution process without having to worry about a challenging coding task too. This made it feel a little less daunting, and knowing that he would help answer questions if needed I began getting set up to contribute to the Mozilla code base.
One thing to know about contributing to Mozilla is that their main code base is not on GitHub and uses Mercurial for version control. There is documentation to walk through how to use this, and as can be seen from browsing some of the open bugs the maintainers are very helpful in troubleshooting if needed.
Once I had Mozilla's code set up on my computer I found a 'good first bug' and asked to be assigned. This particular bug was a duplicate block of CSS code that needed to be removed. The mentor included an image with the section of the code highlighted and the file path listed which made is super easy to find (which was nice as it is a big code base). I simply removed the repeat code, saved it, committed the change as per the commit instructions, and then sent it in for review.
It was very exciting to get the emails letting me know that my patch had been received (Yay to not messing it up!!). Even more exciting was that my patch was accepted and soon after it was merged into the code base. As simple as the patch was it felt GREAT to have contributed to real live code for the first time. In fact, I pretty quickly tracked down another bug I could work on, and then another...
If you are wanting to contribute to open source but are feeling a bit overwhelmed by it I wholeheartedly recommend you check out Mozilla as a first attempt. The mentors are friendly and patient and they make it a point to have basic bugs that are easier for you to get started with.
I did end up applying to Outreachy and was accepted into the contribution period (more on HERE). I then spent the next month contributing to one of Mozilla's projects and ended up submitting 6 patches over that month. As this particular project has its code base on GitHub I was able to get more hands on experience and am now more confident with git and GitHub.
All in all, I'm so glad I took the advice of others and started contributing to open source. While most of my contributions have been for Mozilla, I have also contributed to 2 other repositories and plan to continue contributing as it is such a great learning experience and it feels good to know you helped even if only in a small way.