Starting with Open Source As a Beginner
Published: 2022-11-04 10:00:53

Hello readers 👋 if you are someone who is looking forward to getting started with open source, you are in the right place! 

*Note:* *Hacktoberfest - the month-long celebration of open-source, just ended. If you started with your open-source journey, I urge you to continue doing that for the rest 11 months as well*. 

In this article, we will talk about some best practices that help you fight imposter syndrome. 

Here’s a little motivation for you before we start:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/reehe2wm0til9qc4cacg.png)

Irrespective of your background - technical or non-technical, the open-source world has learning opportunities for everybody. 

# The Idea Behind Open Source

The open-source model was created with the purpose of collaboration and community building and has grown to be an inclusive ecosystem where everyone and every contribution is welcome. With the advancement of technology, we see that there is so much more than “code”. Areas like designing, technical writing, and advocacy are proof that you can contribute to tech without writing code.

_Fun fact: Did you know open source was first conceptualized to [fix a printer driver that broke](https://amogh.medium.com/the-story-of-open-source-so-far-bfcb685d85a4)
?_ 

# Why Contribute To Open Source?

If you are reading this article, you possibly know why you should. 

As a person who learned so much from open source and communities, here are a few reasons why you should:

- Upskilling on tech by contributing
- Contributions are proof of your work and can help you in your career ahead
- You learn the art of async communication
- You learn people skills, as collaboration and networking is an integral part of open source

While the list is not all-inclusive, I hope it could give you a sneak peek of the wins you achieve by contributing.

# How Do I Start Contributing?

Now that you know what open source is and how it can help you, the next step is getting started.

Here are some ways to get started:

- Filter repositories according to your skill set and sort the top 5 projects (this can be depending on the stars or by reading the overview of the project)

_For eg: I searched for ‘python’ and it showed 2,429,866 repositories that use python_
    

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icxxznwf02x3gnaarj9h.png)

- The next task is to read and understand the architecture of the 5 projects. Join their communities, ask for help if needed, and, depending on your understanding and community support, choose one project to contribute to.
- After spending a good amount of time understanding the project, setting it up, and using it yourself, it is now time to contribute. The easiest way is to look for `good-first issues` from their repository, or if you find a new issue, you raise one and then contribute.

# Best Practices

While this article focuses on the contributor side, let us take a moment to appreciate all the open-source maintainers who are doing an incredible job.

Contributing to open source should be a win-win for the maintainer and the contributor, and to make that happen, here are some best practices:

- Make sure you go through the `README.md` file to get an overview of the project, the project structure and more details to get you started.
- Before contributing, make sure you read the `CONTRIBUTING.md` file, this tells you how to raise a PR, what conventions to follow, and every detail that you need to know for a successful contribution.
- Check if the project has a `LICENSE` file, if not, editing/using the code in any form can be illegal. Know more about the importance of a license from [here](https://www.digitalocean.com/community/tutorials/understanding-open-source-software-licenses).
- If you want to work on an issue, make sure you communicate with the maintainers and get it assigned to you.
- Read the documentation to have a good understanding of the project and its services
- Use `GitHub discussions` to ask questions, it is also a great way to see if there has been a similar query before.
- Join the communication channels of the projects you are interested in, this way, you get to know what is going on and also interact with the community.

# Resources

Finding places where you can learn from and meet similar people can be a little overwhelming, I have narrowed down the task for you, by listing my favorite communities that are beginner-friendly.

- [Appwrite](http://appwrite.io/discord)
- [EddieHub](https://github.com/EddieHubCommunity)
- [Cloud Native Computing Foundation](https://www.cncf.io/)

# About Appwrite 
Appwrite is an open-source Backend-as-a-Service (BaaS), packaged as a set of Docker micro-services, to give developers of any background the tools necessary to build modern apps quickly and securely. 

Check out Appwrite as the backend for your next web, Flutter, or server-side application. Here are some handy links for more information:
- [Appwrite Contribution Guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md)
- [Appwrite Discord](http://appwrite.io/discord)
- [Appwrite Github](https://github.com/appwrite)
- [Appwrite Documentation](https://appwrite.io/docs)