Open source projects are a great way to develop your skills, share ideas and become part of the dev community. Open source means the source code that lies behind software’s functionality is shared openly with all who want to read it. That means you can see exactly how a system works – and, once you’re willing to take the plunge, contribute to it. And as well as being open to all for contributions, such open codebases typically powers apps and services that are free to install and use. As such it provides an important alternative ethos to the commercial model.
The open source movement is committed to expanding the reach of such technologies, helping a wider community to learn and contribute to the software they use every day. And it’s not just home-grown projects that use it. Major international companies like Google, Microsoft and IBM are increasingly relying on open source technologies for their own software.
So how do you find open source projects and how can you contribute? They can seem a little daunting at first, especially if you have limited technical know-how. But it’s perfectly possible to start small with minor interventions. What’s more, most projects welcome contributions from a wide range of contributors with different skill sets. There are many community resources and events to help you get initiated right now. February is open source month, so what better time to take a closer look and make your own contribution to the world of free software?
Open source month
Each February, coders and contributors gather to observe Free and Open Source Software (FOSS) Month. Across the world, hackathons, user groups, social media happenings and other events are organised to promote and encourage open source technologies. The event was founded by Onyx Point, a small IT business with strong interests in cooperative software development and has been officially recognised since 2017.
All aspects of the FOSS movement’s activities are celebrated, from minor bug fixes through to rapid-paced software engineering meet-ups where apps are developed from scratch. These ‘hackathons’ are typically structured around agile software development practices like sprints. They involve engineers, designers and project managers working together to produce quality software in a limited time. As well as being great fun, these events help to show the importance of close collaborative work from the ground up, in contrast to the long haul of many corporate projects. But you don’t need to join a hackathon to do your bit for free software
How to contribute?
If you’ve any interest at all in open source software, you’re almost certain to find a way to contribute. The FOSS movement is primarily driven by its community, so it benefits from its diversity and global reach. You needn’t be in the top divisions of the world hacker league – all levels of technical ability have something to offer. Tech skills can be in front and back end coding, databases, networking, DevOps and more. In fact, you needn’t be a coder at all, since many open source projects also need contributions to help with UI design, documentation and translation. And large projects need many of the same skills found in proprietary software production like marketing and project management. So how to make a start?
Open source software uses tools like Github to manage code and resources as well as host discussions about future directions and fixes. Take a look at the repositories for major FOSS projects like Mozilla Firefox or LibreOffice. You can freely join these communities and add your own ideas for features or report bugs. Also, look out for beta-tester openings if you want to be the first to try out new developments at the cutting edge.
Where to find open source projects
It’s important to know how to find open source projects, especially if you are a first-timer. If you’re ready to add your own contributions to the code base, you’ll find many resources to help you find ways to get involved. In Github repositories, look out for issues tagged “Good First Issue”, a convention designed to help newbies find their feet in the FOSS community. You should be able to find openings for minor bug fixes, documentation, testing and more. Anything you contribute will be reviewed by maintainers or project owners and the community can help you with any questions you have.
There are also many websites dedicated to helping you find suitable openings for beginners. Here are a few to try:
First Contributions is a GitHub project providing you with resources to help you start contributing in just 5 minutes.
Codetribute is specifically designed for first contributors on Mozilla projects. It features suitable projects and issues, which you can search by various criteria.
Ovio Projects offers a community platform with loads of beginner-friendly projects to get your teeth into.
Up For Grabs provides you with a curated list of tasks that are perfect for beginners.
Hacktoberfest Projects lists opportunities by coding language. Hacktoberfest takes place every October, but you can contribute at any time.
Each of these platforms offers a selection of OS projects suitable for your skillset as well as guidance on how to contribute. Also check out Open Source Guides, for comprehensive coverage of how to get started, how to join communities, contribution best practices, legal questions and much more.
Is open source for beginners?
Despite its establishment in the wider software development community, some uncertainty still remains about who can contribute to open source projects, as well as how and why you might do so. Do you need to be a maverick hacker? Is it only for hobbyists? Or do professional developers also get involved?
In fact, the FOSS community is very broad, including contributions from developers at all skill levels and career situations, as well as documenters, testers, admins and more. The fact that major players in international software systems like IBM and Google use open source should be enough to show that it isn’t just an amateur pursuit.
Take a look at some of FOSS’s most successful projects: Mozilla Firefox has been recognised as one of the top web browsers for around two decades. Linux, among the most widely used operating systems for servers, is also open source, along with web server software like Apache and Nginx. So you need have no doubt about the professionalism of open source.
But if you’re just taking your first steps, open source is also a great place to gain experience in real-world projects and develop your career. Because of its vibrant community, you’ll almost always find experts to offer you guidance and support. And because of the public ethos, there’s less guardedness than you might find working on proprietary projects. With open source, sharing benefits everyone.
The role of codebases
If you’re relatively new to programming, it can be difficult to translate the examples you use to learn the structure of code into the complex architectures of major projects. Major projects often have large codebases which simply cannot be understood in one go and entry points may not be obvious. So how do you start?
If you haven’t already, you’ll need to gain some knowledge of Git and Github. Git is a collaborative version control system that allows you to manage your codebase, committing changes as you go and making reversions should something go wrong. GitHub is a free, web-accessible platform built on Git that hosts many open source projects as well as issue trackers and documentation. It allows developers to track and share code and make forks to try out new features or fixes. Therefore a working knowledge of these technologies is invaluable if you want to make your mark in the FOSS ecosystem.
However, large codebases can be a little daunting at first. Navigating a project with millions of lines of code is not an easy task for the uninitiated. Dozens of forks may look like an exercise in extreme multi-tasking and the issue tracker could be overwhelming. But there’s no need to panic.
The key is to start small. Begin by cloning, building and running the application, which will give you an idea of what’s at stake. Then you can begin to explore issues where you might contribute. Look for issues requiring simple fixes, like changing a method name to match an API update. This will get you started with your workflow. Go through the process of forking the repo, making the change and submitting for approval. You can always ask the community for guidance if you get stuck.
Once you’ve broken the ice, you can further your work. Try extending test coverage – tests are also a great way to get to know code functionality. And as you progress, you can start to think about feature changes and more major updates. Just bear in mind that to do any of this, you don’t need to understand all of the codebase all at once.
Hopefully, this article has demonstrated that there are plenty of resources out there to help you find open source projects that fit your experience and needs. You needn’t be an expert all in one go and once you start, you become part of one of the most exciting and dynamic developer communities in the world.