Complete guide to kickstart your Open Source journey🚀
Tags: opensource, github, beginners, programming
Published: 2022-08-07 20:09:35

This article is written for BEGINNERS to help them to kick start the open-source journey🚀.
##What is Open Source?
**Open source** describes software where the source code is available for anyone to view, use, change, and then share. Making source code publicly available allows others to build on and learn from it, enabling broad collaboration from people around the world.
Not only can you contribute code to open-source, but you can also help with translations.
Everyone can benefit from Open Source. Learn on the go!

##Prerequisites:

> NOTE: You cannot begin your journey until you are familiar with the following topics.

• Basic Programming
• Open Source
• Git and Github

##1. Consume prior to contributing

Everything begins with a need.
Don't choose a random repository that you don't even use only for the purpose of the phrase "**open source contributions**"
Most individuals, in my experience, make this mistake in beginning.
In this situation, you will only have one motivation: "Open Source Contribution."
This is not to say that you cannot make an open-source contribution in this manner but you can't go any farther.
So don't do it.
Choose projects with a real use case and consume them.
You will understand exactly how it works (User-wise). The more you consume, the more ideas you will have and the more improvements/features you will require in that project.
If you don't receive any suggestions, go to the issues tab. Consumption is directly proportional to contributions as a developer.
You're contribution depends upon how much you consume the project.

##2. Understand how to track the code

Imagine, You've picked a project that fulfills your needs.
You've used it enough to understand how to utilise it and how it works from the user's perspective. You had some ideas for changes or took issues from the issues tab.
Now start tracking the code.
For example, suppose you wish to change a print line (Output) in a CLI tool.
In this situation, you can quickly trace out the section of the code responsible for **printing** by performing a simple search in the project for the string.
You can't readily trace the code for a **logical component**, such as a logic or dynamic content section, because you can't locate the exact words in the output as in the code.
In this situation, you must locate the static part connected with the dynamic part. Consider the title, header, or logs section (Typically strings).
Once you've located this section in the source code, you may simply locate the dynamic or logical section.
When projects are large and contain multiple packages/modules, tracking may be time-consuming and difficult. In this situation, one piece of code points to another, as well as another package/module.
This is where you need **patience**.

##3. Learn to Read
What happens now that you've successfully traced the code?
You must read that section of code and understand how it works. To contribute here, you do not need to study and comprehend the entire project source code. You must understand the exact portion that you want to edit.
You can easily understand and read it if you are familiar with the project's tech stack/language.

##4. Learn to modify
You already know what you're going to do and what that piece of code is doing. Now add your contribution there.
You can quickly translate your idea into code if you are familiar with the project's tech stack/language.

##5. Contribute
Commit the changes and push it to the fork. Submit a Pull Request to the original project repository.
Wait for the maintainer. **PATIENCE IS REQUIRED!**

> NOTE: If the project has contributing guidelines, make sure you followed them.

##6. Join the Community 
Without the participation of brilliant minds, Open Source would not have progressed this far.
If the project to which you are contributing has a huge userbase, it will almost certainly have a shared online platform where users and developers may connect.

**Participate and engage!**

> ######Thanks for reading this article, If you have any questions you can comment down. Do follow me for more content like this.

##What’s next?

1. [TypeScript vs. JavaScript](https://dev.to/iarchitsharma/typescript-vs-javascript-3i8d)
2. [The History of JavaScript](https://dev.to/iarchitsharma/the-history-of-javascript-5e98)
3. [You need to learn Kubernetes RIGHT NOW!!](https://dev.to/iarchitsharma/you-need-to-learn-kubernetes-right-now-583d)