An immersive introductory guide to Open-source
Tags: opensource, beginners, showdev, github
Published: 2021-01-16 13:06:23

## Introduction.
Hello there, welcome to my blog. Do you know I can close my eyes and list 10  great software and apps that you use every day that are open-sourced and you can add a feature to it if you feel the need to? That quite a long question, Lol. But do you know the source code of [VLC](https://www.videolan.org/vlc/index.html) media player is free and available for the public? which means you can actually download the source code, modify it, add new features. Isn't that amazing?. That is the power of Open-source, and in this article, you and I are going to learn what this "open-source" means and how to get started with it. Are you ready? Alright! make sure you grab some popcorn.


> Another great example of Open-source software is [Andriod](https://www.android.com/), the software that runs on mobile phones, if you aren't using an iPhone, you are definitely using android.

This article is aimed to cover :
- What is Open-source software(OSS)?
- Why Open-source is important?
- Why should you contribute to open-source software?
- How to contribute to Open-source software?
- Making your first contribution. ( This would be fun, trust me)

### What is Open-source software(OSS)?

 Open-source software is a type of software in which the source code is publicly available and gives users the license and right to freely use it, download the source code, modify, distribute it, and also contribute to it. 

 Open-source is free not because it is free of charge but free that it gives anyone the freedom to do what they want with the software and of course won't face any legal issues. One awesome example is Linux, created by [Linus Torvalds](https://twitter.com/linus__torvalds?lang=en) in 1991 is an Open-source kernel operating system for desktop, servers, embedded systems, AI(Artificial Intelligence) e.t.c. Many Fortune 500 companies use this software for their day-to-day activities and have modified, and contributed to this Open-source software. Do you need more examples? 

Google is a big-time fan of Open-source software, being the maintainers of Andriod have some other Open-source software they maintain and make it freely available to the public, the softwares can be found [here](https://opensource.google/projects/list/featured). Maybe after this article, you can go back and check them out. Google uses a desktop environment in the company called [Goobuntu](https://en.wikipedia.org/wiki/Goobuntu), which is an operating system built upon Linux.

## Why Open-source is important?

I really don't think that without Open-source software life would be enjoyable. From VLC for playing music and videos to Andriod that powers your phone and even your Facebook app that runs on Open-source server software called Apache. 

The importance of Open-source software(OSS) can not be overemphasized as many companies and lives depend on it. Let us see  some examples here:

- If you are a React developer, how would you feel each time you want to create a react app, you are asked to pay? - I know that 
 the React library has upgraded since it was created and thanks to all the JavaScript engineers all over the world who contributed to this software, React is getting better every day.

- Aside from the creator of the python programming language [Guido van Rossum](https://twitter.com/gvanrossum), python developers all over the world have contributed to this language which makes the language get better every day. Do you honestly think as sweet as python feels, that only one person was able to make it that powerful? Of course not, that was the effort of thousands of developers out there. The same thing applies to languages and framework such as PHP, JavaScript, Laravel, Go, TailwindCSS e.t.c

When software is open-sourced, it invites collaboration from different expert around the world which results in :

- Finding bugs and resolving them.
- Collaboration as people bring their ideas to make the software better.
- More features.
- Love and unity among developers who contribute to this software. and many more.

So you can see why OSS is important. Go and check all the software that is open sourced and see how amazing they are, but note that it is not the effort of a single person but thousands of people coming together.


> Two heads are better than one.

## Why should you contribute to open-source software?
Yes, why should you? Can you take a minute and close your eyes, now imagine that your favorite app and imagine you can add that feature you think that app needs. Now that one of the many reasons you should contribute to open-source. Aside from that let's look at some of the reasons:

- **Collaboration** - By contributing to an OSS you get to meet different people around the world, learn from them, and also learn how to collaborate even though you are miles away from them. Through OSS many have made life partnerships, friendships that lasted for decades and some even met their spouse.

- **Improvement** - Be you a developer, designer, or writer contributing to OSS, you are sure to improve your skills as you learn new ways of writing code, designing, and also writing. Take for example you are contributing to Andriod as a developer, the codes there are standard and top-notch and before your contribution can be accepted it must follow that style of quality. See you get to learn as you contribute.

- **Job opportunities** - Yes, as a contributor you can get remote jobs as people from all over the world are seeing your code, contribution, and effort. I know of Henry Yu, who got to work for Babel after he has contributed to the software many times others include [Samson Goody](https://twitter.com/Samson_Goddy), [Prosper Otemuyiwa](https://twitter.com/unicodeveloper) and many others. That may be your own case too.


> Open-source is the new sauce.

## How to contribute to Open-source software?
So I guess you are ready now and you must be asking "Okay, how". We are going to discuss that now.

One of the misconception beginners in Open-source are fed with, is that contributions to an Open-source software must be code and code alone, but am here to tell you that is not true. Even as a writer you can contribute, here are the various ways you can contribute:
- **Documentation**- This includes writing guides, translations, tutorials e.t.c for the OSS on how it is used, installed, or how someone can contribute. Okay let me use myself as an example, I am an active contributor to the [TailwindCSS](https://tailwindcss.com/) framework, aside from codes which I do contribute, I have written tutorials on it which include:

  - [Getting Started with TailwindCSS - An Overview and Walkthrough Tutorial](https://developeraspire.hashnode.dev/getting-started-with-tailwindcss-an-overview-and-walkthrough-tutorial)
 - [A gentle guide to customization in TailwindCSS](https://developeraspire.hashnode.dev/a-gentle-guide-to-customization-in-tailwindcss)
 - [Creating customized Utility and Components classes in TailwindCSS](https://developeraspire.hashnode.dev/creating-customized-utility-and-components-classes-in-tailwindcss)
 - [Building a testimonial card with TailwindCSS](https://developeraspire.hashnode.dev/building-a-testimonial-card-with-tailwindcss)

And also an active contributor to [Golang](https://golang.org/), I have also written tutorials and articles, which you can find here on this blog. All these are aimed at contributing to the OSS.


- **Planning and organizing events and communities** - You can also plan and host events and build communities to promote the usage of open source software and get more people to contribute. Some of those events and communities include forLoop Africa, OSCA, Gnome Africa e.t.c

- **Designing** - As a designer, you can contribute by proposing a new design to the software or adding new colors to the old one. There are many designers who are in the Open-source, if you are a designer reading this, yes there is so much room for you to join. We are waiting for you.

- **Onboarding and helping new members** - This is also a way, and again I will use myself as an example, am sure after reading this article you will be ready to make your own contribution, and yes I have onboarded you by writing this article for you, another one is my contributions to Go and TailwindCSS, through my articles, many people have started making use of it, and many ask me question concerning it. So can you see what onboarding means? You too can contribute in this way.

- **Code reviews and mentoring** - You can also contribute by reviewing the codebase by checking for bugs, quality of the code, errors, and checking if the best code practices are being followed.

Many beginners make the mistake of jumping into the large codebase and start trying to understand it due to the misconception that they have been fed with, that contributions should be code alone which in turn leads to frustration. Even non-developers are scared to try due to this same misconception. But I think this article has highlighted some of the ways anybody can contribute without even knowing how to write code. So start small, but most importantly START!.


## Making your first contribution.
Github as most of us know is an online place where we store our OSS codes, there is also a paid option for those who don't wish to make their code open-source. If you are ready to get started and make your first contribution or should I say pull request as the OSS community calls it, I have one beginner-friendly project you will like.

It is called Developers Fact Card, which means a website that contains facts, motivational quotes that can help a person in his/her career as a developer, writer, or designer in a card-like form. Do you have a motivational quote or fact about life that you need the world and the next generation to know? You can make a contribution to the project. The documentations are very simple and easy to understand, you don't need to be a super-coder to contribute as the project is geared towards beginners.  Below are the details:

- Github repo: [Developers-fact-card](https://github.com/DeveloperAspire/Developers-fact-card)

- Live website: [Devfact card](https://devfact.vercel.app/)

The maintainers are super friendly and you ask them for help if you get stuck along the way, everything you need to get started is explained in the documentation of the project. Get on board and make your contributions now!

## Conclusion
We have reached the end of this amazing article, did you finish your popcorn? or you didn't get one at all? Anyways, if you find this article helpful, like, comment and share, just do anything to make it get into the hands of many other beginners interested in Open-source.

I would be posting more articles, so be sure to follow me to get notified when I post them.

If you have any questions concerning Go, Javascript, TailwindCSS, Open-source, or this article? You can reach me on [Twitter](https://twitter.com/DeveloperAspire). Till next time, see ya. Thank you.