Open Source has been around for quite some time. And it all started with the idea of freedom for the source code of software. This freedom implied the following things:
- Users should be able to get access to the actual lines of code that make up the application they're using.
- They should be allowed to modify those lines of code however they want. This lets them fix errors, improve the application, and so on.
- And users should also be free to repackage and redistribute that source code. For example, if someone made some improvements, this lets them redistribute this new and improved app.
Thus, open source gave birth to innovation through collaboration. This led to the creation of great projects, such as Linux, Blender, Android, and programming languages like Python and Rust.
Today, open source is much more than it was in the beginning. First of all, it is not just about code anymore. Though the term is "open source," there's greater focus on "open" nowadays, more than on the "source" part. Let's see how open source grew beyond the mere scope of source code.
Open Source has evolved to define an idea and a set of practices:
- An idea which promotes freedom and openness in building software, solutions, specifications, and communities.
- A set of practices which result in collaborative work, transparent project governance, and permissive ideology.
Through these philosophies, open source sets up the stage for the public innovations of tomorrow. And these innovations are done through open governance models, open collaboration and open communities. Open source is a philosophy of not what was yesterday, but of today, and what will be tomorrow!
The community is what makes open source so powerful. One person can only have so many great ideas. But hundreds of people that collaborate can have thousands of great ideas. A project will continuously improve with so many collaborators. Someone will report a bug. Someone else will fix that bug. Someone might have a good idea for a new feature. And a skilled programmer can implement that new feature.
And since open source is… well, open, it allows anyone to join this process. So you can contribute as well. No matter what skills you have and what you love to do, there are many ways you can be part of an open source project.
If you are a developer, you can contribute to code, design, and documentation. You can also work on user experience, testing, and security. Seasoned developers who wear the hat of project maintainers can also contribute by mentoring new contributors, reviewing contributions, and providing feedback.
Yes, contributing to code is still one of the most popular ways to get into open source. But there is much more beyond that!
You can even get involved by organizing community events, writing blog posts, and giving talks to spread awareness.
You can also get involved in the quality assurance of open-source projects. You can work on bug triaging, code reviewing, and project management.
If you're good with the social side of things, you can get involved in community building, developer relations, or community management.
In many ways, you can contribute to open source without writing a single line of code. Let's explore examples of what you can do, based on your skill set and role.
If you are a graphic artist / designer
Open source can be a great platform for graphic artists and graphic designers to contribute and promote their work. Imagine if you'd be the one designing the logo for Kubernetes. And then it takes off. Millions of people will see your work. This can be highly satisfying and rewarding, not to mention a great boost to your professional career.
- You can contribute to open source design by working on the design documentation, mockups, wireframes, and visual designs.
- You can also contribute by working on the user experience and user interface (UX/UI) of software applications.
- You can contribute by working on the branding, logos, and marketing visuals of an open-source project or an open community.
If you are a researcher
Open source can also be an excellent means to conduct research. There's the advent of "open data", which is the liberalization of data for anyone to freely use. This considerably increased the research opportunities available. Here are some examples:
- You can publish your research papers online under an open license.
- You can join an open research project, and find solutions to the problems that are still unsolved. You can pick your favorite category to support and contribute to, since you'll find open research projects under data analytics, artificial intelligence, computer vision, and so on.
If you are a student
Open source welcomes new contributors and there are different channels you can go through as a student. First of all, there are numerous student programs that run throughout the year. In addition to that, there are open communities and projects that welcome new contributors through student communities, university events, and so on.
As a student, you could be involved by:
- Sharing your interesting projects and code with the open-source community.
- Giving talks in your university / college, on open source ideas, practices, and technology.
- Organizing meetups and workshops for other students, around open source technologies. Or simply taking part in existing local meetups and other open community events.
- Writing blog posts about your learning journey in open source; sharing your insights with the open source community.
- Participating in open source student programs like Google Summer of Code, Outreachy, MLH Fellowship, and so on.
If you are a writer
Open source is a great place for writers. Writing is a great way to share your ideas and inspire others to get involved in open source. New programs like Google’s Season of Documentation promote technical writing and encourage technical writers to contribute to open source.
As a writer:
- You can contribute to open-source projects by writing documentation, tutorials / how-to guides.
- You can also contribute to the project’s website by writing content for it.
- You can get involved in community building by writing articles about the community. You can also write blog posts and articles about the project’s events.
- You can contribute by making videos, giving talks, and giving presentations.
If you like to plan and organize:
As a planner / organizer, you can try the following:
- Planning community events, such as conferences, meetups, and hackathons can be great ways to get involved.
- Organizing community outreach programs to get people involved in open source. Several communities do such programs around the year and this could just be your chance to get involved in open source and open communities.
- Organizing online and offline training sessions to help people get started with open source. You could start alone, in a group, or as part of a community.
- Organizing online and offline Hackathons for students, professionals and amateurs could just be another way to participate in open source. You could also join several such events already being organized by different people, groups, or communities. In this case, you'd be able to contribute as an additional organizer, or a volunteer helping with other tasks.
If you like developer advocacy:
Developer advocates are a special breed of open-source contributors. They are a community of engineers who are passionate about promoting the project, in various ways. For example, as a developer advocate:
- You can contribute to open source by promoting the project, talking about the project, and making videos.
- You can also contribute by working on the project’s developer experience, and helping other developers get started with the project.
- You can also get involved in community building and developer relations.
And there are several other opportunities in open source for people no matter where they are located in the world, the skill sets and interests they have, or their professions. Open source is all about collaboration and community. So don't be afraid to reach out to people and get started. It can be a great stepping stone in your career. It shows to an employer that you have skills in certain areas, and that you can get things done. Imagine you'd have 30 code contributions that are accepted in the Linux kernel. That would prove that you have some skills as a programmer in the C language.
KodeKloud's recently launched course on open source aims to get you started with open source. It will take you on a journey starting from understanding the open-source ecosystem, making your first contribution, all the way to managing your own open-source projects, and getting involved in open communities. It will cover open-source concepts, but also practical aspects, through conversations, demo sections, case studies, and labs where you can test your knowledge.
Learn about open source and more with KodeKloud. Enroll now in the Open Source Course.