Contributing to Open Source projects
Open Source started many years ago to help programmers and developers learn from each other. This sharing of knowledge allowed programmers to learn faster by being part of a community. Every person who has ever written code has made a silly mistake and would benefit from someone else reviewing it for them. We may still be stuck in the stone ages if it wasn’t for Open Source.
There are several types of Open Source licenses, and it may be confusing which one to use or what they mean. It’s a shame that there are so many and that they could potentially deter someone from contributing. There are resources available to help you understand the different licenses, such as choosealicense.com or Wikipedia. The majority of licenses give you free reign to use the code if you keep their license as part of your program. They also limit liability and disclose there is no warranty associated with the software.
Reasons to contribute to Open Source
There are many reasons to contribute to an Open Source project, and each person’s intention may vary. Regardless of the reason, it is great that you are participating in the Open Source community. While your contributions may be small, they can be extremely beneficial to the overall project. When you’re writing code other people will read, it’s important to make sure they can understand it.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
– Martin Fowler
Practicing anything helps you become better at it, and the same goes for programming. It is often hard to think of use cases for a new language you’re learning, but if you find an Open Source project in that language, you can use it as your muse. I often find breaking someone else’s code is often a great way to learn more about it.
New developers often find it hard to find a career due to lack of experience. It seems like a catch-22 scenario. Moreover, you may not think of contributing to GitHub as experience, but it is, and it’s some of the best experience you can get for free. Every developer I’ve met over the last few years all use GitHub for their Open Source projects. If a potential employer sees you actively contributing to projects, they’ll most likely accept that as required experience.
Being part of the Open Source community is a great way to meet other developers. Building your social network of developers can help you learn new code at a quicker pace, find bugs, share bugs, and much more. Realizing you don’t have to code alone is a warm feeling.
Ways to contribute to Open Source
There are several ways you can contribute to an Open Source project. Those ways can vary based on your experience, what the project needs, or what you need it to do.
While the core developers of a project may be great at what they do, they can’t always think of everything. So even the simple act of requesting new features can be a way for you to contribute to an Open Source project. Please be sure someone else hasn’t already made this request. Feature requests are one of my favorite ways to help. They might even ask you to help write the new feature!
Finding bugs is another way to help contribute. While the developers may write tests and have 100% code coverage, that doesn’t mean there aren’t any bugs. Be polite when reporting a bug, and I’m sure the developer will appreciate it. Often the repository will have a template to follow for bug reports. Do your best to follow the model provided, and if you need to stray from it, that’s fine too!
Feel free to fork ANY project on GitHub and play around with the code. If you develop a new feature or find a bug or whatever, you can then create a Pull Request. A Pull Request is a way of asking the original maintainer to allow your changes in their code. They might request you make some changes before accepting your request.
Don’t be worried about making a mistake when you’re contributing to a project. The only way to learn is to try, and we all started somewhere. If you have questions, feel free to email me, and I’ll do my best to help you out.