How to get involved with Open Source
Recently, a student reached out to me and asked:
Could you guide me in terms of how I can get started with contributing to open source projects?
I'm a strong believer of reusable contents and that's why I decided to write a blog post on this topic. If you're a student, newgrad or anyone who is looking to start/transition into the software industry; open source contribution will be a strong skillset on your resume.
What is Open Source?
Open Source or Open Source Software (OSS) refers to software code that is publicly available, open to modification and can be redistributed (some exceptions might exist based on licenses).
Do not confuse open source with free software as the focus is not on pricing. Please read more here.
Why YOU should start contributing to Open Source
Since the target audience of this blog is not enterprise clients, I'll focus on the benefits of open source contribution for jobseekers in the software industry.
- Gaining experience: If you lack internship or job experience, open source contribution can be a great way to gain relevant experience. Remember: the hiring manager is not looking for employment experience only. A relevant open source involvement can be valued higher by a team who is using that open source software in their product.
- Building new skills: Most open source projects encourage and welcome first-time contributions. In my opinion, this is one of the best ways to work with and learn from the industry experts WITHOUT actually being on the same team.
- Building confidence: Open source contribution can help minimize imposter syndrome. Once you start contributing to an open source project regularly, that's a solid proof of your understanding in the underlying technology. For example, imagine that you contributed to ArgoCD project before joining a team that uses ArgoCD in it's product. You'll be able to ramp up much faster than others as you're familiar with the codebase, features and the community. Your existing open source contribution(s) will boost your confidence in the enterprise team.
Things to consider
First of all, you need to consider the type of open source project you'd like to contribute to. You can consider three factors:
- The programming langugae: The most fundamental technology behind any application is a programming language. If you have a strong preference, you can choose an open source project using that language. If you're a complete beginner and don't have any preference, learn at least the basics of one programming language first.
- Area of interest: Once you decide on your language of choice, try narrowing down the list of open source projects in terms of their area i.e. backend framework, ML tool, frontend framework, packages, security - the list goes on.
- Size of the project: Established projects with thousands of lines of codebase can be daunting. Therefore, try choosing a relatively smaller sized open source project unless you find a large project that has awesome docs and welcomes new contributors.
What is git?
Git is a version control system that lets you manage and keep track of your source code history. With more than 100 million repositories and 60 million developers, GitHub is the first choice for most open source projects to host their git repositories. Since git is the primary way to contribute to these projects, learning the basics of git will be essential. Resources to learn git will be under the Resources section.
Time to start contributing
Block your calendar weekly for a certain time and commit yourself to open source contribution regularly. Open source contributions do not necessarily mean raising PRs only. The grunt work that goes in the background to learn git, read the contribution guide of open source projects and understanding the work that the issue requires - all of these are part of your open source contribution. The final PR that gets merged is simply the tip of the iceberg :)
Please find some super-helpful resources on choosing your first open source project/issue under the Resources section.
- Version Control with Git - Free Udacity Course
- Atlassian Tutorials on Git
- Getting started with contributing to open source - StackOverflow
- FreeCodeCamp GitHub Repo - How to contribute to open source
- Last but not the least - A website of AWESOME curated resources for first time contributors
If this blog encouraged you to contribute to open source, please give a shout-out to my LinkedIn or Twitter. If your first PR to an open source project got merged, please let me know and I'll reach out to you to hear your experience.