If you’re looking to market yourself as a competent programmer, there’s no better time or place to show off your skills in the best way possible — by contributing to open source projects. There are many reasons why you should contribute to open source projects, but the most important reason of them all is that you can “learn by doing”. And once you learn, you can not only claim that you have coding skills, but you can prove it by showing your work.
Why Go Open Source?
Open source projects are an important resource to take advantage of as a programmer because they are always there, and always accessible to you. Contributing to open source projects could be as valuable as a programming internship, yet you don’t have to go through the searching and interviews for the slim chance of receiving one. As such, you have the freedom to pick which projects to contribute to as well as how much you contribute. It also gives you the flexibility to target which skills you’d like to learn by finding an appropriate project.
Look For Small Projects
Getting started, as you may imagine, is the hardest part of contributing to open source projects. Ideally, the easiest way to get started is by finding a small project to contribute to, as the development process is usually far less complex and more attention is given to each contributor. One project that aims to remain small to make getting started easier is Gina Trapani’s ThinkUp project.
Look For “Easy To Join” Projects
Otherwise, another project worth looking into is one which, although large, can make it easier for contributors to get involved in the project by giving them small bugs to work on and gradually giving them more code to write. A great example project would be KDE.
Smit Mehta, a contributor to KDE’s Digikam software, once wrote in an answer to a Quora question –
“Also they have something called “junior jobs”, the bugs reserved for new-comers. They help you in understanding the bug, and point you to the correct file location which needs to be fixed. After you start submitting patches towards such small small problems, the product manager of that particular app will give you slightly more challenging bugs, and you can deliberate with him on how to go with it, he will personally guide you, and polish your code. After enough bugs (depends on the app and the manager), he will give you git access to the kde codebase. After that you dont need any permission to push your changes.”
Go-To Places To Look
If neither of these projects interest you, there are several other places where you can look. The best two places to check out open source projects are GitHub and SourceForge. You should also check out SourceForge’s “Help Needed” page. I personally recommend GitHub more because the tools needed to use the service are better known, and I’ve even written an intro into getting started with a GitHub repository. Plus there’s even a native GitHub client for Windows as I know a handful of you use Windows.
Additionally, you can check out Ohloh which is another directory of open source projects that is editable by anyone, as well as Code52 where a different open source project is featured every week to help beginners “learn the ropes”. Google’s Summer of Code is another fantastic resource that makes a strong impact on the open source community. Finally, we’ve also highlighted 10 open source projects which you should contribute to.
Learning New Skills
Once you’ve found yourself an open source project you want to contribute to, great! Talk with people who are in charge of the project, start submitting patches, and otherwise study the code that already exists. While the best practice is to write code yourself, you can still learn a lot from the code that other people have written.
Don’t expect to have your fellow contributors teach you new skills, however. While many of them are more than happy to help you out with issues, they will not teach you entire courses. Instead, learning by open source contributions is very much a self-teaching process. You’ll see a project and its code, see a bug or a new feature that you’d like to add, and then figure out how to fix or add the feature as dictated by the project’s programming language and framework. So you’ll need to do a lot of Internet searches to learn new techniques, and then apply them to your open source work.
This way, you learn new skills, and you automatically have proof to back up your claim that you have that skill. Future employers can learn a lot by looking at your open source contributions, as these can tell them that you’re ready to do your job as soon as you’re hired. And best of all, you can do this even if you can’t manage to nab an internship position that ultimately gives you the same credentials.
If you’re not a coder, there are other great ways to help open source projects!
Have you contributed to open source projects? How has this helped you grow as a programmer, and do you have any tips for other beginners? Let us know in the comments!
Image Credit: Internet background with binary code via Shutterstock