
Photo by Annie Spratt on Unsplash
Open source technically started in the 1960s when software with source code came alongside clunky commercial computers, but the trend fell away the in next decade in favor of proprietary replacements. It became a thing again in the ‘80s and skyrocketed in the ‘90s with wider recognition of Linux and the release of Netscape’s source code.
Whether you’re a new computer science grad or a developer with many years under your belt, contributing to open source can be intimidating. Once you get past the nerves, you’ll find an immensely rewarding way to spend your time.
Here are some of the benefits you’ll find along the way:
Learn by doing
Regardless of your experience, by working on open-source projects, is a great learning experience. When you get stuck, there is plenty of input from other people who have also contributed that you can then apply to the solution you’re looking for. Once your mindset changes from I don’t know how to do this to How can I use what I know and what I have at my disposal to find a solution, it’s a game-changer. And you can learn without paying for a class or having the stress of doing it under your boss’ eye. Depending on you level, you can focus on different things. Experts can skip the easy parts and dive into core functions and complex bug repairs while beginners can look for bugs.

Photo by sydney Rae on Unsplash
Beginners build confidence
Along with building skills, newer developers can glean a lot of confidence from immediate feedback on contributions. Plus, it feels great to find a solution for something. And the more pull requests you create and learn from, the better your code will become. There are often mentorship programs with many open-source projects, or you may eventually become one yourself. It’s an overall chill environment to grow in. While there may be an occasional troll, most people are supportive and encouraging.
Network
Make connections and learn about different approaches and perspectives. Be open to constructive criticism and feedback, and learn the best way to give it to others. You never know who you’ll meet when you join the community of potentially thousands of other developers contributing. The more people you have a working relationships with in the industry, the more people you can reach out to when looking for a new opportunity. Some people get hired straight from an open-source community to a company engineering team. It can be hard to fully understand a candidate’s skills by solely looking at their resume. Think of contributing to open source as adding to your portfolio. Sometimes, all it takes to impress people is active involvement as a show of enthusiasm. Always try to do your best work, but don’t worry about being perfect.

Brush up on your communication skills
Open source is all about collaboration. You’ll be working with hundreds of different people, so if you need to practice your communication, this is a good place for it. Learn to explain technical things to non-technical people or to simplify and make things more concise. You’ll also get a feel for asking for help. Maybe there’s too much for you to do and too little time. Maybe it’s just out of your wheelhouse. No worries. There are lots of people who can help, but you have to be able to ask. And finally, you can learn to give good feedback . Everyone learns from feedback, but it should be given in a way that is constructive and clear, without negativity attached.
Pick your experience
Even devs who have been in the game for a while might not have the opportunity to work on a new framework or programming module at the office. Open-source projects can be a way to get experience to add to your resume or CV, boosting your career or making you a better job candidate. Your contributions are available for anyone to see and can show future employers your skills, dedication, and commitment to learning. It’s helpful at any stage of your career.

Photo by Ian Schneider on Unsplash
Altruism
At the end of the day, in open source, you’re making things for the benefit of others and the community as a whole. It might not give you the warm and fuzzies like volunteering at the local animal shelter, but make no mistake; you’re making life easier for other developers. And that’s a nice thing to do. Plus, a codebase maintained by a bunch of devs is going to be higher quality than one maintained by a single person.
In general, open-source projects make development more accessible and encourages collaboration and innovation. Contributing to the community helps build on that culture and the ideas it promotes.
It reduces the cost of software
Any engineering team at a company can get ideas or help from open source. The ideas found can save time and money. You can also expect what you find there to have been combed for bugs. Because there are more people working on each project than a typical company team, bugs are found and fixed faster. The key here is turning around and giving back to the community as a contributor.
On the flip side, as a contributor, you can focus on improving the software you use and rely on yourself. There’s a direct benefit from patching that bug you found last time you used it.
Just getting started? Here are some tips for interacting with the open source community:
Be transparent
Transparency is a core value of open source. Not only will your code be public, but collaboration you have with others will be on open channels. Consider this carefully if having project-related conversations or making decisions on public vs. private channels.
Respect other devs
Approach the work with empathy. You might never be face-to-face with the people you’re working on a project with, and you’re likely to be working asynch. Think about the way you give feedback and interact with others. Stay positive.
It’s simple, really. Be kind. Negativity drives away newbies who might otherwise be amazing contributors. And it’s definitely an inspiration-killer. Keep in mind that trying to get developers to shoot for perfection every time slows things down and is incompatible with the agile methodology most companies and communities use. No one owes you anything, so build people up, and the code will follow.
Get comfortable with failing
In open source, like in Agile, the goal is experimentation and iteration. Failing—or at least imperfection—is welcome and normal. Don’t stress. Your pull request may be declined for different reasons, but don’t worry about it! It’s all about learning and growing, and everything is done with good intention.
Be consistent
Open source isn’t a one-and-done project. Stay consistent to get the most out of it. There are a lot of benefits from contributing, but most of them will only come to fruition over time.