Photo by: Tran Mau Tri Tam on dribbble
What is Open Source?
The term open source have been around for quite a long time. From the man who built the Linux Kernel which powers the modern internet to your favorite libraries, which are the effort of hundreds of individuals and organizations, All we know is it's freely modifiable pieces of softwares. But the term holds the definition more than the boundaries of software development. Open source today is a principle which upholds the values of transparency, open initiatives, collaborative participation and community driven development. In other words the open source can be simply termed as an open collaborative effort towards a specific goal.
It's everywhere! The world's largest encyclopedia which is driven by the content contributed by individuals is a good example for open collaborative effort. The ability of humans to come forward to solve problems for the community is what driving the modern open-source culture. Talking about Open source softwares as Engineers its worth knowing the fact that most of the technologies we use today is vastly built by the lines written by millions of engineers around the world. Even the giants in the tech industry rely on these softwares built by people who contributed to open source for a better future.
Why you should care
Being an open source contributor, there are more benefits than you'd imagine. From improving your programming skills to potentially landing a job, that might happen. Most of the famous and iconic developers in the tech industry became who they are, just because of their involvement in open source development. As budding CS Engineers the golden benefits of open source are quite handsome.
These are the valuable rewards to you from open source throughout your journey. Feeling confused? Let me break it down for you.
Or maybe something even more fun! A library which checks a given number is 13. Best part is getting it ported to other languages by others. lol.
From being part of an open source community, you'll be directly exposed to technologies that you'd have never had a good project to work with. You'll sharpen your skills and always be informed about emerging technologies and how you can update your current skill set without leaving the field. In short, technologies are born here! Being part of the development is something that's worth spending your time on.
Even if you are from a remote area where you can hardly find a person to talk about html or css, open source projects and communities opens the door to interact and work with the best developers from any of your dream company around the world, no barriers! The best part of gazing around open source projects is the opportunity to learn to code and read code written by experts and developers with years of experience (rather than just writing C lab programs from PDFs) and learning from them.
Your contributions to open source projects is more of fun or contribution to community and most of the time a direct route to showcasing your abilities to work on projects, fixing bugs or even understanding a large codebase. Each line you contribute to good open source project is a step towards getting into a company or even a good weight in your resume. Having said this, there are good number of companies who hire engineers who contributed to their open source projects. Being an open source contributor, Exposure is something that follows you without having to concentrate on it. This a place where your skills value the most and adds up to your personal achievement. Most of all, having even a single line of your code in a product that's being used by millions around the world is soul satisfying.
Making your first contribution
This might be hard for many people since most of us have our imposter syndrome kicking in whenever we start to do something. But the fact is most of the open source projects are beginner friendly and supportive for new contributors. Having your line of code land in to some of the largest and famous code base might be hard. But that's not the only way to become an open source contributor. Supporting the development, giving feedback, helping others with the issues regarding an open source software, or even open sourcing your project to others can be a little step towards becoming an open source contributor.
GitHub is a great place to start this journey, which is indeed one of the largest developers community and home for largest number of open source projects. Found a bug while using a software? If the software is open source, you can likely submit issues and start working on a fix, this is the most common way of entering into a project. Some projects might be complex, or some of your favorite softwares need a good amount of programming skill to make a contribution, but there's always a way to be part of it. From fixing typos to adding or updating documentation can be one way to contribute. Finding issues in a repository with labels
good-first-issue might be the right place to start as a beginner.
Here are few links to get you started!
- FreeCodeCamp's repo for beginner's to learn how to contribute to open source
- Udacity's free git and GitHub tutorial
- Katie's Oh Shit, Git! to help you out from git mess.
- Linus Torvalds : The Mind Behind Linux a Ted interview with Linus Torvalds.
- GitMe.js.org : Learn how to submit your first pull request on GitHub.
If you have read the post this far, you would be likely interested in being part of an open source community. Join us to learn and teach students to become open source contributors and help shape a better career in the industry. Drop a comment if you liked the article or reach out to me for any help :)