Introduction to Open Source
Tags: opensource, programming, ai, webdev
Published: 2023-05-26 21:53:15

### What exactly is open source?

Open source refers to the collaborative approach of developing software where the source code is freely available, allowing anyone to view, modify, and distribute it. 

This helps to foster a community driven ecosystem that allows anybody around the world to copy , modify  and collaborate  on building software.

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

It brings forth a lot of transparency in how software is built when everyone and their grandmother can actually see the source code and identify any flaws.

### My Experience in Open Source
Exactly Three months ago , I took it upon myself to venture on a 30 day challenge in Open Source, my objective , to actively participate in open source development , whether it was code  contributions , helpful comments or documentation fixes. I decided to document my journey by constantly tweeting my progress.

### Just do it
At the start of the challenge, I absolutely had no idea about what I was going to contribute to as there was an unbelievable gap between my current knowledge about coding and what I was actually seeing on the repositories I planned to contribute to.


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

It might be quite counter-intuitive but the only way to get better is by actually surpassing your limits and actually making those contributions.

### Start Small

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hobquwzn9uo5x63859i.jpeg)
So whatever repository you plan to contribute to, I assure you , you most likely aren't going to understand the codebase the first time you go there. So you start by raising an issue(it could be in form of a question about a bug you've experienced in the past with the library) , you could easily get more experienced contributors put you through and answer your question

You see!, Just asking a question in itself already counts as open source contribution

Most open source communities(as far as I know) are very welcoming and would not hesitate to help you out.


Still on starting small , most repositories have a "good first issue" policy, this is a tag found on their issues page and it consists of issues/bugs in the repository that are quite easier to resolve. It mostly is a dependency issues,  import errors or even typos.

Speaking about typos , yes they also count as Open source contributions😂.

### Create your own Open Source projects
There is no better way of contributing to open source projects than actually writing your own , and quick tip , it doesn't even have to be code , it could be a list of some useful tools for developers which would absolutely be appreciated.  

### Consistency

Proceeding with my journey , I subconsciously proceeded from making typo-fix contributions to actually making code contributions, and it became quite interesting.

I finished my 30 days challenge, and ended up contributing to over 10 repositories.I also got to learn useful things about software projects like how unit testing is done and the importance of most weird files.

### Talk More

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d8sfyifudbaljn0nczzw.png)
What's the point in doing open source if you don't talk about it .Talk about it everywhere, to your friends, to your dog, in church, also whenever you go to the club🙂.

On a more serious note , the secret to enjoying open source is continuous interaction. The codebase becomes seemingly clearer and uncomplicated the more you interact with other people on the project, you could interact with other contributors mostly through a discord / IRC channel which is available for most repositories

### Conclusion
Of course I wouldn't end this writeup without giving you some resources to aid you in your journey
* [Learn Git Properly](https://www.w3schools.com/git/) - This teaches you git , a version control system 
* [Up For Grabs](https://up-for-grabs.net/) - Shows you repositories that need your attention , it's quite amazing because it's mostly beginner rated issues that are quite easy to solve
* [Eddie Hub](https://www.eddiehub.org/)- An amazing Open Source community that I'd absolutely recommend for you  to join

Thanks for reading 👋