How to get started with Open-Source
Tags: beginners, opensource, codenewbie, webdev
Published: 2022-03-10 07:46:18

You know you can write some code, you've in fact, written a **LOT**. You can also recognize typos in files and documentation, and now you want to give something back to the community. So what do you do 🤔? Huh, good question. 

Except you've got the finances, sponsoring the giants that help build our tech world is quite impossible. So, you decide instead that you want to give back by simplifying the learning process for other devs, you want to build softwares and modules that simplify tasks for others, you want to teach the community and make a lot of things easily accessible by others. But you can't 😐.
For starters, you are a shy speaker so you don't want to talk publicly. You also don't understand how to create anything "useful" for the community so you can't create "anything". Your writing creativity is null and more or less, underground. So your solution is to just just sit by the side and wait for the next brave person to give back to the community thinking you won't be able to give anything to the community. *Uh uh, I disagree*.

## <u>🚀 Open Source:</u>

According to [opensource.com](https://opensource.com), Open Source can be defined as: *something people can modify and share because its design is publicly accessible*. 

[Wikipedia](https://wikipedia.org) is even more direct with it's definition which is given as: *Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product*.

The last definition by [Synopsys](https://synopsys.com) is generalized as: *Open source software (OSS) is software that is distributed with its source code, making it available for use, modification, and distribution with its original rights. Source code is the part of software that most computer users don’t ever see; it’s the code computer programmers manipulate to control how a program or application behaves*.

These definitions of Open Source (*general definitions*) gives a pretty good idea of what open source is and what I am going to rant about next. 

## <u>🚨 Getting out of "that" mindset:</u>

Let's be realistic, deciding to get out of your comfort zone to create a project on the "global stage" is something that makes us feel queasy. Not only would your bad code be public to everyone, but you also want others to *go through it*, *contribute* and even *fork and improve it*! 

### ▶ Some things you should know about Open Source:

1. <u>**It's not always about creating a new project**:</u> Anything, literally anything that adds a single meaning or value is termed Open Source. If you saw a typo in Google's Docs and you create a Pull Request (PR) to fix it, congrats! That's Open Source. Want to create a brand new public framework? That's also Open Source. You don't need to be a *guru* to contribute. Heck, I don't even think such things exist in Programming.

2. <u>**If it can run, it can be public**:</u> Do you make all your repos private? I used to do that all the time too. It doesn't help matters at all. Take the leap of faith and start making them public! Except it's a private project that **needs** discretion, why make it private?

3. <u>**Stars don't matter**:</u> This might sound funny, but I had this mentality as well and I'm sure a lot of devs have it too.

> **GitHub stars doesn't rate the success of an Open Source project!**

That's important. Keep it in your mind when planning on creating that next public repo. *15.5k stars or 3 stars*? Duh, who cares. *Open Source is about the satisfaction, not the fame*. 

If you're looking for fame tho, the Show Biz industry might be what you want 😉.

## <u>Start Contributing!</u>

It's more of a mindset and less of an activity. You want it to become a reflexive thought, when you see a mistake, you either fix it or create an issue if the problem is beyond you. Make yourself a promise to pick up that mindset from today.

Okay, you have promised yourself and all. Let's get practical, the first thing I normally tell people looking to contribute is to look out for documentation issues and typos. Remember, humans are always humans and would make awful, hilarious mistakes so your "big fix" might be a wrong module import:

```js
// ❌ Wrong importing format
import { React, useState, useEffect } from "react"

// ✔ Correct importing format
import React, { useState, useEffect } from "react"
```
Or typo:

```
// ❌ Soo wrong...
..some preloaded some the links 

// ✔ Much better..
..some preloaded links
```

If you successfully created a PR and it got merged, you have contributed to Open Source 🎉!

In summary, get out there and start making those PRs!

## <u>🛣 The way beyond:</u>

So, you have made a lot of PRs and you have scanned codebases and learned a lot of useful practices, you now want to take on a bigger challenge. Create a public repo and start maintaining it! It doesn't have to be a complex CLI npm package meant to hack into human satellites and give you live video feed of Earth. It could even be a SaaS (**S***oftware* **a***s* **a** **S***ervice*) or a simple "Generate a random number" module. [Kent C. Dodds](https://kentcdodds) has an awesome [egghead.io course](https://egghead.io/courses/how-to-write-an-open-source-javascript-library) that shows how to create a basic, open source library. 

Remember, it's nice to be fancy with your projects but not everything needs to be a monumental bang 💥 to be considered Open Source 😝! 

---

That's it for this week's article peeps, what projects are you building? Have you already gotten into Open Source? If so, share your experience in the comments. I am currently re-building my portfolio with a personal blog (*stay tuned for that*), and I should be welcoming you guys there this month, hopefully. I haven't mentioned it here yet, but I recently joined [FreeCodeCamp](https://freecodecamp.org) as an author and member (*YAY* 🙌) and **⚠SPOILER ALERT⚠**, I'm building that mega Remix course I promised you guys, free and accessible. 

Remember to take breaks and even vacations, read, learn more, push yourself, you can do it 💪. We were all there at some point but only through perseverance did some of us move up and scale our hurdles, you would too, I know that. Enjoy yourself, stay positive and don't forget to play! See you in the next one 👋.