<?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: Ayaan Shaikh</title>
    <description>The latest articles on DEV Community by Ayaan Shaikh (@iamayaansk).</description>
    <link>https://dev.to/iamayaansk</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%2F1177826%2Fc34fdd12-166f-4d9c-8117-f472d3063a3a.png</url>
      <title>DEV Community: Ayaan Shaikh</title>
      <link>https://dev.to/iamayaansk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamayaansk"/>
    <language>en</language>
    <item>
      <title>A Beginner's Guide for Open-Source Contributions</title>
      <dc:creator>Ayaan Shaikh</dc:creator>
      <pubDate>Sun, 21 Jan 2024 06:19:35 +0000</pubDate>
      <link>https://dev.to/iamayaansk/a-beginners-guide-for-open-source-contributions-bce</link>
      <guid>https://dev.to/iamayaansk/a-beginners-guide-for-open-source-contributions-bce</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, I will take you on the journey of making your &lt;br&gt;
very first open-source contribution. Along the way, I'll share the valuable lessons I learned, and I'll show you, as a beginner, how you can embark on your open-source contribution journey 🚀. It is recommended to have some knowledge of version control systems. So, let's dive in and explore the world of open source together!&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Heck is Open Source?
&lt;/h2&gt;

&lt;p&gt;Open source projects are public collaborations where anyone can suggest changes, make improvements, and contribute. This benefits both the project's creator and the contributors, creating a win-win 😎 scenario for all involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  But How Does it Benefit Me?
&lt;/h2&gt;

&lt;p&gt;The straightforward answer is that it fuels your personal growth 📈. Contributing to open source is a win-win situation because it provides you with a firsthand understanding of how codebases function in real-world, production-level projects. Beyond that, it allows you to establish your presence in the community, opening doors to a world of opportunities 💼.&lt;/p&gt;

&lt;p&gt;Exciting, isn't it? 😃 Let's now explore how to make your very first open-source contribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose a Project
&lt;/h2&gt;

&lt;p&gt;As we know Hacktoberfest is going on and it's the best time to make open-source contributions. go to Hacktoberfest's official website to register yourself. Go to the Participation page scroll down and locate participating projects. You will be redirected to a list of various amazing projects participating. Select a repository among it. Choose a project 📚 that aligns with your interests, skills, and goals. It's essential to find a project that excites you, as this enthusiasm will drive your contributions. Personally after analyzing I decided to go with Freecodecamp's repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flms2s835u5dqygs9kf7b.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flms2s835u5dqygs9kf7b.jpeg" alt="Example Readme Image" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 I would recommend picking a reputed project as it has well- &lt;br&gt;
defined guidelines and the support is amazing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Review the README for Contribution Guidelines
&lt;/h2&gt;

&lt;p&gt;Since you're now a part of an open-source project, it's crucial to follow the guidelines established by the project's author. These guidelines are typically outlined in the project's README section. Take the time to carefully read the README 📖 to understand the rules and recommendations for making contributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick an Issue
&lt;/h2&gt;

&lt;p&gt;Now, navigate to the "Issues" section of the repository and look for issues labelled as "Hacktoberfest." It's also a good idea to search for issues marked with "good-first-issue."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqo56dcxb0xspakurss3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqo56dcxb0xspakurss3.png" alt="Open Issues for Open Source in Github Repo" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you've identified an issue, take the time to read and understand its details thoroughly. If you require additional information or clarification about the issue, don't hesitate to ask by leaving a comment. When you're ready to work on the issue, you can simply add a comment saying "Assign me." In some repositories, this step may not be necessary but always refer to the project's contribution guidelines for specific instructions. Once the issue is assigned to you, you're all set to get started.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I picked up an issue regarding writing the e2e test for 404 page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Fork the Repository
&lt;/h2&gt;

&lt;p&gt;The next step is to fork the chosen repository. This action creates your copy of the project where you can make changes. Ensure that your forked repository remains up-to-date with the original project repository.&lt;/p&gt;

&lt;p&gt;Now that you are done with the basic setup and you have the codebase, it's time to solve the issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Break the Keyboard!!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ferh3xx5cwboy8xr4p3rb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ferh3xx5cwboy8xr4p3rb.gif" alt="Intense Typing" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You've got this! The next step is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new feature branch from the main or the specified branch. Name it something meaningful related to the issue you're working on.&lt;/li&gt;
&lt;li&gt;Work on the issue in small chunks, write clean code, and add useful commit messages at each step.&lt;/li&gt;
&lt;li&gt;🧪Test your code at each step to ensure it works as intended.&lt;/li&gt;
&lt;li&gt;When you're ready, push your feature branch up to your forked repository on GitHub. This allows you to save your work and create a pull request when the feature is complete.&lt;/li&gt;
&lt;li&gt;Don't worry about making mistakes along the way. It's a learning process! The important thing is to keep moving forward, committing early and often, and asking for help when you're stuck.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you're confident that your changes are complete, it's time to initiate a Pull Request (PR).&lt;/p&gt;

&lt;h2&gt;
  
  
  Raising the PR
&lt;/h2&gt;

&lt;p&gt;Now follow these steps to raise a PR 🚀:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to your forked repository on GitHub.&lt;/li&gt;
&lt;li&gt;In the top left, select the dropdown that says "main" or the default branch, and change it to your feature branch.&lt;/li&gt;
&lt;li&gt;Check that your feature branch is current with the upstream repository by clicking the "Sync fork" button. This will fetch any changes from the main repository and merge them into your fork.&lt;/li&gt;
&lt;li&gt;Press the "Contribute" button in the upper right.&lt;/li&gt;
&lt;li&gt;Click the "Open pull request" button.&lt;/li&gt;
&lt;li&gt;You'll be redirected to the "Open a pull request" page.&lt;/li&gt;
&lt;li&gt;Set the base repository as the original repository you forked from.&lt;/li&gt;
&lt;li&gt;Set the base branch as the branch you want to merge your changes into, usually "main".&lt;/li&gt;
&lt;li&gt;The head repository will be your fork, and the compare branch will be your feature branch.&lt;/li&gt;
&lt;li&gt;Type a clear, descriptive title and details for your pull request. Explain what changes you made and why.&lt;/li&gt;
&lt;li&gt;Click the "Create pull request" button to open the pull request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrvg979fwcz921m4ua1w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrvg979fwcz921m4ua1w.jpeg" alt="Opening a PR" width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And Boom!! Congratulations on creating a PR. Now maintainers will be notified and they will review your request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Be Patient
&lt;/h2&gt;

&lt;p&gt;Take a deep breath and relax! After you've submitted your PR, it's perfectly normal to feel a bit eager. Pop in occasionally and see if there are any suggestions from maintainers. Embrace the chance to work on those improvements and then push them to your feature branch and your PR will update itself automatically. So, enjoy the process and keep up the awesome work!&lt;/p&gt;

&lt;h2&gt;
  
  
  Celebrate
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39cp29m1fpngtv1jlhr4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39cp29m1fpngtv1jlhr4.gif" alt="Minnions Celebrating" width="498" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether your pull request is merged or not, don't forget to celebrate your progress! 🥳 Creating and submitting your first PR shows that you have the courage and determination to contribute to an open-source project.&lt;/p&gt;

&lt;p&gt;The act of contributing itself is a victory - you've made your presence known in the community and demonstrated your skills. You've also learned valuable lessons through the experience, from writing high-quality code to interacting with maintainers and incorporating their feedback.&lt;/p&gt;

&lt;p&gt;So take a moment to feel proud of yourself! You've grown as a programmer and problem-solver by going through the pull request process. This experience will serve you well as you continue your coding journey and submit future pull requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Making your first open-source contribution can be intimidating, but as you've seen, the process is quite straightforward. The most important thing is taking that first step and choosing a project that interests you. From there, following the contribution guidelines, picking an issue to work on, forking the repository and creating a pull request are relatively simple technical tasks.&lt;/p&gt;

&lt;p&gt;The real value lies in the experience itself. You get to learn from more experienced developers, improve your own code through feedback, and establish yourself as part of an active open-source community. Even if your first pull request isn't merged right away, don't let that discourage you 💪. Use it as an opportunity for growth.&lt;/p&gt;

&lt;p&gt;If you guys have any questions or feedback do share it in the comments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect with me:
&lt;/h2&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/IamAyaanSk"&gt;IamAyaanSk&lt;/a&gt; &lt;br&gt;
GitHub: &lt;a href="https://github.com/IamAyaanSk"&gt;IamAyaanSk&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>learning</category>
    </item>
    <item>
      <title>Node JS - An Introduction</title>
      <dc:creator>Ayaan Shaikh</dc:creator>
      <pubDate>Thu, 11 Jan 2024 11:13:30 +0000</pubDate>
      <link>https://dev.to/iamayaansk/node-js-an-introduction-3hlb</link>
      <guid>https://dev.to/iamayaansk/node-js-an-introduction-3hlb</guid>
      <description>&lt;h2&gt;
  
  
  What is Node JS?
&lt;/h2&gt;

&lt;p&gt;Going back in time, Javascript was majorly used in web browsers and was meant to add interactivity to websites. 🌐 The use of Javascript was quite limited as we couldn't directly run it on a machine.&lt;/p&gt;

&lt;p&gt;🤔 You might be wondering what magic browsers do to run Javascript. The answer resides beneath the Javascript engines developed by various browsers to run Javascript. Google Chrome uses the V8 engine which was built in C++ to run Javascript in Chrome.&lt;/p&gt;

&lt;p&gt;Before continuing it is important to note how we can run code on machines. The machine understands machine code which is similar to binary and is very complex to read and understand. Hence Assembly Language was introduced which provides some abstraction but it still was complex. Another layer of abstraction was done by introducing low-level programming languages like C which compiles the code to machine code and executes it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq64taypl4lwbumwowzn2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq64taypl4lwbumwowzn2.gif" alt="Image explaining level of abstraction in different programming languages" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now it is more clear to us why we are not able to run Javascript directly on our machines and to solve this problem Node JS came into the picture.&lt;/p&gt;

&lt;p&gt;👉 Node JS in simple terms is a cover around the V8 engine which allows us to execute Javascript code directly in machines. Although we are now no longer in the browser, the ability to manipulate DOM elements is lost in Node JS but instead more backend-specific features like file methods, connecting to the database, and listening for requests (acting as a server) come with it.&lt;/p&gt;

&lt;p&gt;Now we can imagine it as a layer above the stack which helps us to convert Javascript to machine code and execute it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ew7wf4nwo5slx3mw86.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ew7wf4nwo5slx3mw86.gif" alt="Addition of Node JS to abstraction stack" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do we need Node JS?
&lt;/h2&gt;

&lt;p&gt;You might be wondering what's the point of Node JS why we want to run it on our Machine. So initially whenever we request a web page from the client side (a browser), we need a server that is capable of generating a response and to achieve the same we need to have scripts residing in the server that direct the overall logic. To write this logic on the backend we can use Node JS.&lt;/p&gt;

&lt;p&gt;Node JS vs other Server side languages&lt;br&gt;
Apart from Node JS, we can use various languages on our server like Python, GO, Ruby, PHP etc. but what makes Node JS a better option?&lt;/p&gt;

&lt;p&gt;We do not need to learn a new language for programming the backend.&lt;/p&gt;

&lt;p&gt;Huge amount of tools and packages to help.&lt;/p&gt;

&lt;p&gt;Node JS has a massive community.&lt;/p&gt;

&lt;p&gt;Node JS delivers great performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;🎉 In conclusion, Node JS is a powerful tool that has revolutionized the way we write server-side code. With its ability to execute Javascript on the server, it has made it possible to write both client and server-side code in the same language. Its growing community and vast array of packages make it a popular choice among developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect With Me 🔗
&lt;/h2&gt;

&lt;p&gt;Feel free to reach out if you have questions, want to share experiences or simply want to chat!&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/IamAyaanSk"&gt;IamAyaanSk&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>beginners</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
