Chances are you’ve probably encountered the term “Open Source” before. Open Source Software, or OSS, is a kind of software that whose code is made available for everyone to read. Depending on the license, you can most likely reuse it in any of your applications.
You might be surprised to learn that many of the tools and apps you use lean on OSS. This Treehouse blog that you’re reading right now, for one, is mostly built with OSS. (Check it out on BuiltWith, a web service that takes educated guesses about which technology a site employs.)
You can see via BuiltWith that the server hosting this blog is Nginx. Nginx is open. So is WordPress, the blogging framework that’s rendering this page, and the programming language the framework is written in, PHP in this case. Also the client side browser libraries as well as the other transitive dependencies (packaged up reusable utilities that solve a specific problem). Oh yeah, your browser is mostly open, too.
In short, nearly everything you use has probably been viewed by thousands of eyeballs and crafted by a global network of helping hands.
The Internet would never have progressed as rapidly and successfully without the OSS movement. We benefit it in so many ways without knowing it, but have you thought about how else you might be able to take advantage of such readily available code?
If you’re just learning how to code or are exploring a new language, OSS is a potentially untapped resource available for your immediate disposal. Because it’s open, you can view the way popular source code is written. You can see what makes the tools that you love spin. You can explore and dig around without anyone ever knowing you’re there.
Even better than that, you can contribute. Yes, you too, can be a part of this movement! These days just about everything is hosted on the social coding site GitHub. Getting all set up and ready to submit changes to OSS code has never been easier.
And when you start contributing, you’ll see OSS is amazing for not only practicing coding, but also collaboration. You’ll work in a team in a set coding style. You’ll learn how to report and track issues, review code, and run things locally in your environment.
Best of all, you’ll be immersed in real-world coding scenarios, allowing you to pick up best practices along the way. And needless to say, this counts as experience in the eyes of most development hiring managers.
Getting started with Open Source
Contributing to open source is a lot like volunteering You’re freely giving your time, thoughts, and skills. But like most things, getting started is usually the hardest hurdle. There are a lot of projects and choices. It can be overwhelming.
Have no fear. Stick with it. You’ll find your community.
If you’re just beginning to explore, here are a few quick ways to avoid the dreaded impostor syndrome and get committing:
1. Read the contributor guidelines
This is the single most important thing you can do. Most projects have a text based file right off the root directory called CONTRIBUTING. If not, check the readme file and see if there are instructions there. They’ll tell you what’s expected on both what style you should be writing your new code in and how to get your changes submitted. As long as you follow their contribution guidelines, any little bit you can contribute will be much appreciated.
2. Correct or enhance documentation
GitHub provides a very simple way to do this using an online text editor, and allows you to submit the request from the same page. After your first commit is accepted, you’ll be very proud about the change you made. Everyone will have the correct documentation, all thanks to you. It’ll feel good.
3. Add tests
Practicing writing tests will help you get ready to start diving in deeper and fixing issues. Most projects will ask that you provide a test showing that your fix or enhancement works and didn’t break other code.
4. Be open-minded
So what do you say? Wanna give it a try? If you’re looking to gain confidence that you can do this work when you set out on your coding journey and are ready to give OSS a whirl, check out Up For Grabs. This awesome site lists projects that embrace new contributors. It uses labels on GitHub issues, and is a great way to get started on your new favorite habit.
And hey, let’s all be open about it. If you’re a maintainer of a library and are looking to reach out to those beginning to contribute, please share your libraries in the comments.
If this post inspires you to make a commit, please share your Pull Request in the comments to show fellow learners how they can do it, too. We’re all in this together.