# First Hacktoberfest Learnings

## **Table of contents**

* What is Hacktoberfest?
    
* How I searched for issues?
    
* My mistakes and learnings
    
* Don’t
    
* Failures
    

It was my first time participating in Open Source. I have done new mistakes, corrected a few approaches. Here in this article I will tell my experience from scratch.

# **What is Hacktoberfest?**

`Hacktoberfest` is a month-long event in October that encourages Open Source contributors and developers worldwide to give back to the global tech community. It’s a fantastic opportunity for the contributors to showcase their skills and get to know about other Open Source communities.

In this event, we need to get our **4** pull requests merged in `Hacktoberfest` accepted repos. After that, it usually take 7 more days to make it count as a contribution. How to find repos/issues? Everything is written in their **website**. If you still have questions, feel free to ask below.

# **How I searched for issues?**

I joined the webinar they had after initiating **my github** in their **website** so that my PRs get tracked. There I came to know about **https://goodfirstissues.com/** . This is a treasure for beginners. There is a section where you can search for the `Hacktoberfest` labeled issues with your stack.

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1729672776643/fe5a1b55-e879-4418-bc59-26a9ac8edbd3.png?auto=compress,format&format=webp align="left")](https://goodfirstissues.com/)

This will show the issues based on your inputs. I did the same and went to see the issues one by one.

But **I was disappointed** to see that all the listed issues are already assigned. I was thinking to wait for new issues. Suddenly I thought about going through each repo to see if they have other issues **which is not listed** but accepted in `Hacktobest`. I contributed mostly to these repos:

1. [**Codse/Animata**](https://github.com/codse/animata) (3 accepted PRs)
    
2. [**ZTM**](https://github.com/zero-to-mastery/Animation-Nation) (1 accepted PR)
    

# My mistakes and learnings

1. My first contribution was in ZTM where I had to do animations without JS. **Check here**
    
    Here the workflow and setup was not too complicated.
    
    Clone → Change → Push → Create PR
    
2. My **second contribution** was a bit challenging. I had to setup locally. The main thing you need to know is how to setup and run the project locally. Always search for files like `contributions.md` or `contributing.md` or `readme.md` where the procedure is given. I followed the steps and set it up. I had to work with [**storybook**](https://storybook.js.org/) which I had never heard of before. So I just followed their guide to create new components. Did the required changes and pushed. But I **did not notice** that I was not pushing to my fork and to their **main repo** instead. So I learned about a new git command.
    
    **Copy**
    
    **Copy**
    
    ```plaintext
     git remote set-url origin <my_fork_url>
    ```
    
3. In this I made a huge mistake. In fear of not getting repo to get assigned, I got myself assigned 2 issues at once.
    
    I followed the steps, did the change, raised the first PR. Before this PR got merged, I hurried and solved another issue and then tried to create another pull request. But but but.. I noticed that all the commits of the second solution is referencing the first PR. I was in panic for a moment.
    
    Then I got to know that we can also `delete commits` permanently. Here we go, new git command added to my list.
    
    **Copy**
    
    **Copy**
    
    ```plaintext
     git reset --hard <commit_hash>
     git push --force origin main.
    ```
    
    Each commits has an unique hash.
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1729678209800/6012e06e-9a74-4a5d-a3c1-86be188a5ae2.png?auto=compress,format&format=webp align="left")
    
    So to delete a commit, we need to provide the hash of that commit after what we want to delete the commits. For example,
    
    If my commits are hashed as b2, b3, b4 and I want to delete b4 commit, I need to provide the hash b3. So I deleted the commits and pushed to the fork as it reached to the normal state of solving and referencing only one issue.
    
4. My 4th issue was boggling my head a bit. I solved it but I was not sure that my code is a ready to push or not. And as per the guidelines, I only can create one PR in one issue. So I asked the maintainer about the code. He was very polite and humble to suggest me to raise the PR and he will tell after reviewing if I need any change or not. I raise the PR and within 3-4 days, my **4th PR** got merged and I received this message from **Hacktoberfest**
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1729676735778/a59950c6-e710-42bc-871c-25d206e01795.png?auto=compress,format&format=webp align="left")
    

# Don’t

One more mistake we as a beginner usually do it asking the maintainer to review our PR too frequently. They are also busy. So wait for 3-4 days to get the response and after 3-4 days if you do not receive any update regarding your PR, you can simply ask in the discord tagging the maintainer or any other communication channel the org have.

# Failures

I got my assigned 2 good issues with totally unknown stack. One was Kotlin in backend with TypeScript and another one was Rust. I failed to solve those. And another one **documentation issue** I solved that did not get merged. I am a bit disappointed thinking and I could have solved the issue if I would have stick with it longer. But I lost the motivation. This was between my 3rd and 4th PR getting merged.

This was my first time experience to contributing in **Hacktoberfest’24** event. It was a great learning.
