Recently, we at Appwrite hosted a Twitter Space on Becoming A Better Developer Through Open Source with special guests, such as Rizèl Scarlett, Developer Advocate at GitHub, Santosh Yadav, Co-Founder of ThisIsLearning, and Khushboo Verma, Software Engineer at Microsoft. We had a riveting conversation about what open-source is, how it makes tech better, how newcomers can get started contributing, and so much more.
Before discussing the benefits of open source, it’s necessary to understand what open source is. Open-source software refers to software that allows anyone to view the underlying source code, contribute to it to enhance the software by adding new features or fixing prevalent issues, and is free to use and distribute.
Open-source software has been around for a long time now. Some prominent examples of commonly used open-source software are the Linux kernel, Git version control system, Python programming language, and more. Appwrite started merely as an open-source project too, and they intend to remain the same in the future!
Open source isn’t just an alternative way of building software; it has been making the tech space healthier, safer, and better for all of us, and here’s why:
The source code behind open-source software is easily accessible and visible to all. Therefore, any changes in the code, whether enhancements or fixes, can be seen by everyone. This makes the contributors and maintainers more accountable to ensure that the software is developed ethically and ensures safer tech for everyone using the software.
Whenever anyone contributes to an open-source project, there tends to be a public review process where the maintainers review the changes and share feedback. The public nature of this process allows other contributors and observers to participate. The result here is that all contributions are typically well-vetted, resulting in more robust software overall.
It can be argued that the public nature of open-source software makes it more vulnerable to attacks by malicious entities. On the contrary, this nature allows people to discover and fix vulnerabilities a lot faster. Moreover, public oversight and participation make it easier to get feedback and support for this earlier in the development process rather than just post-incident. This results in highly secure software being developed in the first place.
A very wholesome aspect of open-source software is that many projects have communities of learners, builders, contributors, and supporters present around them. The communities enable more newcomers to join in, take their first steps in open-source, and continually provide support to help them grow in their developer journeys. This makes the open-source space very inclusive for everyone. In addition, being part of these communities will educate you to learn about inclusivity in various cultures.
Empowers individuals and companies equally
It’s truly amazing how open-source software will provide you with an equal amount of access and support, no matter whether you're an individual developer or a large company.
An underrated aspect of open source is that various projects actively create substantial social impact, like Sharing Excess, which helps fight food insecurity, or Moja Global, which allows people to estimate greenhouse gas emissions and removals from the AFOLU sector.
Contributing to open source doesn’t just help you impact your peers. It also allows you to grow as a developer too. Here’s how contributing can help you become a better developer:
Learn new technologies
A big part of open-source development is the continuous learning process. Working on different projects with their challenges exposes you to newer technologies and causes you to upskill in them.
More feedback loops
The review process of most open-source projects comprises thorough inspection(s) of your contribution, followed by necessary feedback. Such feedback is often positive as it allows you to gain constructive criticism, leading to improvement and growth in skills and experience.
Better communication skills
Throughout the contribution process of open-source projects, contributors will have to communicate their thoughts at various stages, starting from the RFC or issue creation to explaining their proposed solution and eventually handling feedback during the communication process. Regularly collaborating with their peers allows contributors to improve their communication skills over time.
Understand coding standards and conventions
As individuals, we can have our coding styles and quirks; however, bringing those to larger projects with multiple contributors can cause inconsistencies in the project. Due to this, projects follow certain standards to ensure consistency with expected industry conventions. This can enable a lot of newcomers to understand the correct practices developers and organizations follow across the world.
Participate in communities
Most open-source projects have active communities consisting of contributors, builders, and learners to come together and collaborate for the betterment of these projects. Such communities are often inclusive and enable their members to grow in their personal lives too, and the best part is that they’re freely accessible for all.
Collaborate with people across the world
Open-source projects see contributions from people all across the world. A reason here is that open-source projects look past your background or qualifications. This allows anyone to participate, interact with people from different cultures and learn more about their journeys and perspectives, thus leading to a healthier, more well-informed community.
Contributing can often be scary, especially for newer developers who don’t have the necessary skills to add value. Fortunately, there are lots of ways to contribute to open source beyond contributing code:
A project’s documentation is often the only available content that educates others about the project and how to set it up and work with it. This is why any contributors willing to update documentation, fix issues, or improve aspects are always appreciated.
Maintainers of open-source software often manage this responsibility aside from their day-to-day lives. It is a thankless role that can become highly cumbersome, so any help provided in reviewing contributions and sharing useful feedback goes a long way in making the life of maintainers easier.
One thing most open-source projects lack is a dedicated support team. This is because most open-source project creators and maintainers manage these responsibilities aside from their jobs and lives as a majority aren’t paid for this work but love to do it anyway. Helping solve doubts and helping your fellow community members allows them to focus more on the growth and development of the project.
Many open-source projects don’t get the reach they deserve because the project creators and maintainers may not always have the time to create those conversations. So if you like working with any such projects, promoting them on social media or creating blogs and videos around them can substantially extend their impact.
Many open-source projects across the globe need contributors, and the best part is that you can pick whichever ones you want to contribute to. It’s alright to start with smaller projects to help you gain the necessary momentum as a contributor and build your experience. It’s a good idea to look for the “good first issue” tag whenever you look for issues to solve on a project, as this tag is conventionally used to denote beginner-friendly issues. Aside from this, an excellent starting step is to join existing open-source communities and initiatives such as Hacktoberfest that allow newer developers to find projects that need help and the relevant mentors to help you with your journeys.
Contributing to open-source projects allows people to become better developers while impacting the world around them, and we hope to see more of you supporting your peers and building more in the days to come. You can hear a previous recording of the Twitter Space, hosted by Appwrite, on Becoming a Better Developer Through Open Source here: