What Happened When I Decided to Contribute to One Open Source Project Every Day for a Month
Tags: hack23contributor, hacktoberfest23, hacktoberfest, webdev
Published: 2023-10-19 01:44:00

Open source software is software that is used, modified, and shared freely. It is a team of developers who work together to develop and improve software. Many of the products and services we rely on every day use open-source software, such as the Linux operating system, the Android mobile operating system, and the Firefox web browser.

I am a software developer with an interest in open-source software. I’ve supported open-source projects for years, but this was my first Hacktoberfest. Hacktoberfest is an annual event that encourages developers to contribute to open-source projects during the month of October. It’s a great way to support the open-source community and get some cool swag.

In this blog post, I will share my experience contributing to one open-source project a day for a month.

I will talk about why I decided to do this challenge, how I found and chose the projects I contributed to, what I learned and did well this month, what challenges and challenges I faced, and what benefits and rewards I gained.

## Why I Decided to Contribute to One Open Source Project Every Day for a Month

I decided to contribute to one open source project a day for a month because I wanted to challenge myself and improve my skills as a developer. I wanted to explore new technologies and frameworks that I didn’t know about. And of course, I wanted to have fun and meet new people who also loved open source software.

I thought contributing to one open source project a day would be a great way to achieve these goals. By doing this, I would expose myself to different projects, problems, and solutions. 
I will also learn from other developers who have more experience or knowledge than me. And I will have a positive impact on the projects I’ve helped with.

## How I Found and Chose the Projects That I Contributed To

Finding and choosing the projects that I contributed to was one of the most challenging parts of this month. There are so many great open source projects out there, but not all of them are suitable or interesting for me.

To find the projects that I contributed to, I used various sources and methods, such as:

- [Browsing GitHub’s Explore page](https://github.com/) , which showcases trending and featured repositories.

- [Searching GitHub’s Topics page](https://github.com/label:hacktoberfest), which categorizes repositories by topics such as languages, frameworks, platforms, etc.

- Following hashtags such as #Hacktoberfest3 or #opensource on Twitter or other social media platforms.

- Reading blogs or newsletters that feature or review open-source projects.

- Asking for recommendations from friends or colleagues who are also into open-source software.

To choose the projects that I contributed to, I used some criteria and filters, such as:

- The project should be related to web development, which is my main area of interest and expertise.
- The project should have a clear README file that explains what it is, how it works, how to set it up, how to contribute, etc.

- The project should have some issues labeled as “good first issue”, “beginner-friendly”, or “hacktoberfest”, which indicate that they are suitable for new or inexperienced contributors.
- The project should have an active and welcoming community that responds to questions and feedback.

Using these sources, methods, criteria, and filters, I was able to find and choose 31 different open-source projects that matched my preferences and goals.

## What I Learned and Improved During This Month

During this month, I learned and improved a lot as a developer. Here are some of the skills and technologies that I learned or improved:

**Python:** Python is one of my favorite programming languages. It’s versatile, powerful, and easy to learn. During this month, I contributed to several Python-based projects, such as:

  - A new Python framework for movie rating applications This project taught me how to use FastAPI, a modern web framework for building fast and scalable web applications.

  - A Python script for dictionary retrieval This project taught me how to use an open-source dictionary library for retrieving meaning, anonymity, and synonyms for a word.


**React:** is another programming language that I love. It’s a JavaScript library for building user interfaces. During this month, I contributed to several React-based projects

**Debugging:** Debugging is the process of finding and fixing errors in code. Debugging is an essential skill for any developer, as it helps to improve the quality and functionality of the code. During this month, I improved my debugging skills by using various tools and techniques, such as:

  - Using the browser’s developer tools to inspect the elements, console, network, sources, etc. of a web page or app.
  - Using breakpoints to pause the execution of the code and examine the values of variables, expressions, etc.
  - Using print statements to display the values of variables, expressions, etc. in the console or terminal.
  - Using logging libraries to record the events and errors that occur during the execution of the code.

**Code Review:** Code review is the process of examining and improving code written by others. Code review is an important skill for any developer, as it helps to improve the readability, maintainability, and security of the code. During this month, I improved my code review skills by using various tools and techniques, such as:

  - Using GitHub’s pull request feature to propose changes to a project’s code and get feedback from other contributors.
  - Using GitHub’s code review feature to comment on specific lines or sections of code and suggest improvements or corrections.
  - Using GitHub’s merge conflict feature to resolve conflicts that occur when two or more contributors make changes to the same file or line of code.
  - Using GitHub’s code formatting feature to automatically format the code according to a predefined style guide.

## What Challenges and Difficulties I Faced During This Month

Despite all the learning and improvement I experienced this month, I also faced some challenges and difficulties. Here are some of them:

- **Finding time:** Finding time to contribute to one open source project every day was not easy. I had to balance my school, personal life, and other commitments. Sometimes I had to stay up late or wake up early to finish my contributions. Sometimes I had to sacrifice some leisure activities or social events to meet my deadline.

- **Finding motivation:** Finding motivation to contribute to one open source project every day was also difficult. Sometimes I felt bored or tired of working on similar types of projects or problems. Sometimes I have been discouraged by the complexity of certain tasks or issues. At times, I felt overwhelmed or intimidated by the amount or quality of work by other contributors.

- **Learning new things:** Learning new things was both fun and challenging. Sometimes I had to learn new technologies or frameworks that I didn't. Sometimes I had to learn new concepts or techniques that I didn’t understand. Sometimes I had to learn new good practices or values ​​that I didn’t follow.


## What Benefits and Rewards I Gained from This Month

Despite all the challenges and difficulties that I faced during this month, I also gained some benefits and rewards. Here are some of them:

- **Improving my skills:** Improving my skills was one of the main benefits that I gained from this month. By contributing to different types of projects and problems, I was able to improve my skills in various areas, such as Python, React, debugging, code review, etc. I was also able to learn new skills that I didn’t have before, such as FastAPI, etc.

- **Making an impact:** Making an impact was another benefit that I gained from this month. By contributing to different types of projects and problems, I was able to make a positive impact on the projects that I contributed to. I was also able to make a positive impact on the users who use these projects.

- **Meeting new people:** Meeting new people was another benefit that I gained from this month. By contributing to different types of projects and problems, I was able to meet new people who share my passion and interest in open-source software. I was also able to learn from them, get feedback from them, and collaborate with them.

## Conclusion

In summary, these initial 18 days of my open-source journey have been enlightening, and filled with challenges, growth, and a heightened dedication to the open-source community. though I have completed my Hacktoberfest challenge and here are verify able PR link.

[Built a movie rater app with FastApi:] (https://github.com/Mrinank-Bhowmick/python-beginner-projects/pull/385)

[Designed an issue template:](https://github.com/Would-You-Bot/website/pull/35)

[Fixed button functionality: ](https://github.com/newtoallofthis123/htmler/pull/12)

[Resolved:] (https://github.com/newtoallofthis123/htmler/pull/6)

[Improved the read for developer to directly understand:] (https://github.com/fb-sean/interactions.js/pull/23)

 🌟🚀 #OpenSource #GrowthMindset #opensourcecontributor #hacktober23