<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Subhajit Shaw</title>
    <description>The latest articles on DEV Community by Subhajit Shaw (@subhajit_shaw).</description>
    <link>https://dev.to/subhajit_shaw</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2624663%2F74bf8724-a0ee-476b-93c0-9b185a4173d1.png</url>
      <title>DEV Community: Subhajit Shaw</title>
      <link>https://dev.to/subhajit_shaw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/subhajit_shaw"/>
    <language>en</language>
    <item>
      <title>How to Contribute to Open Source as a Beginner</title>
      <dc:creator>Subhajit Shaw</dc:creator>
      <pubDate>Wed, 13 Aug 2025 08:49:34 +0000</pubDate>
      <link>https://dev.to/subhajit_shaw/how-to-contribute-to-open-source-as-a-beginner-1m99</link>
      <guid>https://dev.to/subhajit_shaw/how-to-contribute-to-open-source-as-a-beginner-1m99</guid>
      <description>&lt;p&gt;Contributing to open source might seem intimidating when you’re just starting out. You may think that you need to be an expert or you should know the entire codebase but that’s far from reality!&lt;br&gt;
In this guide, I’ll walk you through everything you need to know to make your first open source contribution, even if you’ve never contributed to any project before.&lt;/p&gt;

&lt;p&gt;Before we dive in, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Github account &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual Studio Code installed in your computer &lt;a href="https://code.visualstudio.com/Download" rel="noopener noreferrer"&gt;(download here)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  What is Open Source and Why Contribute?
&lt;/h2&gt;

&lt;p&gt;Basically Open source refers to projects whose source code is freely available for anyone to view, modify, and distribute. It’s built collaboratively by developers from all over the world.&lt;/p&gt;

&lt;p&gt;There are benefits of contributing to open source&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Learn real-world coding practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build a strong portfolio&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improve your problem-solving skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collaborate with developers globally.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you’re a beginner, participating in programs like GirlScript Summer of Code (GSSoC) and Hacktoberfest is a great way in getting started. These events encourage contributions from beginners and provide mentorship and guidance, do check those out.&lt;/p&gt;
&lt;h2&gt;
  
  
  Finding Beginner-Friendly Projects
&lt;/h2&gt;

&lt;p&gt;One of the best ways to start is by finding repositories with beginner-friendly issues. If you participate in GSSoC or Hacktoberfest, you can easily get the available projects list in their discord server. From there, you could easily search for beginner-friendly projects that match your expertise and tech stack.&lt;br&gt;
Look for labels such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;good first issue&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;easy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;beginner&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tip: You can also create issues yourself! If you spot a bug, broken link, UI issue, or even documentation errors while exploring a project, open an issue describing it. Maintainers often welcome such contributions. You can also request new features by opening an issue and clearly describing your idea or use case.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reading a Project’s Documentation
&lt;/h2&gt;

&lt;p&gt;Before making changes, always familiarize yourself with the project’s guidelines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;README.md: This gives an overview of the project, setup instructions, and usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CONTRIBUTING.md: Know step-by-step process for contributing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CODE_OF_CONDUCT.md: Expected behavior while engaging in the community.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These documents will help you understand how the project is structured and how you can contribute effectively.&lt;/p&gt;
&lt;h2&gt;
  
  
  Making Your First Contribution
&lt;/h2&gt;

&lt;p&gt;Once you’ve been assigned an issue, follow these steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Fork the repository&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click the Fork button on the top right of the repository’s GitHub page to create your own copy.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszxwlq7y11eh1czpj9s8.png" alt="fork button" width="800" height="223"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Clone the Repository&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, open an empty folder in VS Code and run this command in the terminal.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/your-username/repository-name.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Replace your-username and repository-name with your actual GitHub username and the name of your forked repository, respectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Navigate into the project folder&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd repository-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Create a new branch&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can name it anything you want, but it's best to keep it meaningful, it's usually named after the issue you're working on.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b your-branch-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Make the Changes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the issue assigned to you (UI, documentation, bug fix, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Stage and Commit Your Changes&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Description of your changes"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. Push Your Changes to GitHub&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin your-branch-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;8. Open a Pull Request (PR)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After you've successfully pushed your code, go to your forked repository. There, you'll see a "Compare and Pull Request" button.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8aqqg1n0w1hn5ryd1kus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8aqqg1n0w1hn5ryd1kus.png" alt="Pull request" width="800" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now submit the PR with a clear description.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;9. Handling Merge Conflicts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If someone else’s PR modifies the same file you worked on, you may face merge conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First, add the original repository as an upstream remote:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add upstream https://github.com/original-owner/repository-name.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Pull the latest changes from the upstream main branch:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch upstream
git rebase upstream/main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Resolve conflicts manually in VS code, then:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git rebase --continue
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Push your updated branch:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin your-branch-name --force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;10. Wait for Review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Be open to feedbacks from maintainers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once approved your changes will be merged&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yay! You made your first contribution! Take a moment to celebrate  you’ve officially joined the open source community and taken your first step towards making an impact in the developer world.&lt;/p&gt;

&lt;p&gt;If you found this blog useful and insightful, share it and comment down your views on it.&lt;/p&gt;

&lt;p&gt;Do follow me for more such content.&lt;/p&gt;

&lt;p&gt;If you have questions, want to collaborate, or just want to share your open source journey, feel free to reach out.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/subhajit-shaw-56610b208/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="//subhajitshaw16@gmail.com"&gt;Email&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>github</category>
    </item>
  </channel>
</rss>
