Joining open source projects can be great for your career.
By contributing to publicly visible projects, you are automatically creating an online portfolio. If you only work on traditional projects, it’s likely that all your contributions will be locked away in a vault. College professors do not want class project solutions posted online since other students could use your solution to cheat. Work done for a company is often proprietary, and posting is simply not an option. Sure, it’s possible that your product could be featured on a company website or other visible location, but it’s difficult to point to your exact contributions.
How to Pick a Project
Picking an open source project can be more difficult than it seems, and it isn’t just about finding something you really want to work on.
You will be joining a team of many people (called an Open Source Community), and some communities can be quite uninviting. Even Linus Torvalds recognizes that developers can be “unfriendly” in a ZDNet interview. To make sure you really want to join a project, join the community first. Get on their mailing list, IRC, or whatever tool the team uses for communication. If you find out that you don’t like how they respond to people’s emails, code, or documents, chances are you won’t like how they respond to you.
Another thing to check out before joining a project is the code, tools, and processes. If you get annoyed by ugly code and the whole project has ugly code, you may want to find something else to work on. Or, maybe joining a team in need and helping guide them to better practices is what you really care about.
There are many interesting options out there, so don’t settle for something that isn’t exactly what you want.
How to Start Contributing
Although you may want to jump in and start coding right away, there are many ways to contribute.
One of the most important parts of open source is becoming a part of the community. You want to be seen as an important member of the team quickly. Each team has their own processes and specific coding formats, which can be difficult to learn at first. When a newcomer submits a patch that doesn’t follow suit, project leaders may think you did not take the time to do your research. By contributing in other ways first, you will learn the ropes, be recognized by the people in charge, and not be seen as an uninformed newbie, even if you get something wrong.
Other ways to contribute to open source projects to quickly get yourself up to speed include testing, bug updates/comments, and writing documentation. These often overlooked tasks don’t require you to know a whole lot about the project, but fill a much needed niche for the team.
Simply installing the tool (or whatever the project is developing), trying it out, and reporting what you find gives the team much needed data, while you learn more details at the same time. When it comes to bugs, helping to find, verify, reproduce, discuss, or categorize them helps any team tremendously. Besides, if the project has been around a while, there should be a team of developers waiting to fix a bug, once enough information is in place.
And, last but not least, is documentation. Many open source projects lack adequate source and user documentation. If you help update old documents or write new ones, you will likely be seen as a lifesaver. In the open source world many people want to code, but not so many want to write documentation. Helping a team in this area will get your reputation moving forward quickly.
Building an Online Portfolio
Building an online portfolio can be great for your career, whether you are a freelancer or a full time employee. Getting your work out there for the world to see will show what you are capable of. Companies with great opportunities don’t just wait for job applicants, but instead search for who they want to hire.
Open source projects track the entire software process cycle publicly. Showing your contributions online, from documentation to code, is how communities work together. Some open source hosting sites even give your contributions a value or score, like launchpad.net that gives you karma points for contributions.
Finally, the traditional career path has changed from working at the same company for 40 years to switching companies quite often. Keeping your resume up to date can help a lot, but if you have a large online presence, you are much more likely to find a new position.