<?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: Parth Bhardwaj</title>
    <description>The latest articles on DEV Community by Parth Bhardwaj (@parth_codes).</description>
    <link>https://dev.to/parth_codes</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%2F546292%2F50ca1bd8-214d-4efd-b7fe-88390549f19d.jpg</url>
      <title>DEV Community: Parth Bhardwaj</title>
      <link>https://dev.to/parth_codes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parth_codes"/>
    <language>en</language>
    <item>
      <title>Side Projects as Learning Tools: How I learn new tech</title>
      <dc:creator>Parth Bhardwaj</dc:creator>
      <pubDate>Fri, 01 Sep 2023 12:38:40 +0000</pubDate>
      <link>https://dev.to/parth_codes/side-projects-as-learning-tools-how-i-learn-new-tech-3ag2</link>
      <guid>https://dev.to/parth_codes/side-projects-as-learning-tools-how-i-learn-new-tech-3ag2</guid>
      <description>&lt;p&gt;As a budding developer, side projects have become my invaluable companions on this learning journey, providing a beginner-friendly way to experiment with and understand new technologies.&lt;/p&gt;

&lt;p&gt;I've been there, navigating through countless tutorials and online courses, feeling like I'm stuck in what's often referred to as &lt;strong&gt;tutorial hell&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpzxf8s58doj108i8mob3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpzxf8s58doj108i8mob3.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be frustrating for devs who feel overwhelmed and unsure of how to take the next step in their learning journey. In this blog, I want to share how I'm using side projects to learn new technologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting specific learning goals
&lt;/h2&gt;

&lt;p&gt;Before I start working on my project, I set specific learning goals for myself. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What new technology or skill do I want to learn?&lt;/li&gt;
&lt;li&gt;How will I measure my progress?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When Next.js 13 was released, it brought major new changes in app routing patterns, improved layouts, react server components, streaming and many more. &lt;/p&gt;

&lt;p&gt;So I set my goal to learn and try out these new released features from Next.js 13 in my next side project.&lt;/p&gt;

&lt;p&gt;Setting clear goals will help keep me focused and give a sense of accomplishment as I work towards them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a project that interests me
&lt;/h2&gt;

&lt;p&gt;I try to choose a project that I am excited about ( maybe fun game or any productivity tool). &lt;/p&gt;

&lt;p&gt;When you're working on something that you find interesting, you're more likely to stay motivated and you'll be more likely to put in the time and effort to learn new skills.&lt;/p&gt;

&lt;p&gt;I choose a project where I can accommodate as much features/tools of the tech I want to learn as I can though not over-killing it, application of each feature/tool should be reasonable (If someone asks why have I used server components instead of client-side component, I should be able to answer that.)&lt;/p&gt;

&lt;p&gt;This gives me a wide view of what features the new technology is providing and how to use them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documenting my learnings
&lt;/h2&gt;

&lt;p&gt;While implementing the project, I simultaneously document my learnings (currently I maintain them in my notion docs, but I will be starting to blog about them and share my learnings and insight with other).This also serves as a reference for my future projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Celebrating and sharing my milestones
&lt;/h2&gt;

&lt;p&gt;I've also learned to celebrate my achievements and milestones along the way. Releasing a new feature or product these are a reason to celebrate, this keeps me motivated and reminds me of how far I've come on this learning journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Juggling side projects with my regular work commitments
&lt;/h2&gt;

&lt;p&gt;Balancing side projects with work commitments is challenging. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3x2ryd6awx2xitcx1vq8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3x2ryd6awx2xitcx1vq8.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I find it helpful to schedule specific blocks of time (at max 2hrs and on weekends in there are if there are no plans) for working on my side projects. This way, I can ensure that I'm making progress on my learning goals while also meeting my work responsibilities.&lt;/p&gt;

&lt;p&gt;Additionally, I plan out my project so that I can work on it incrementally, like release the project with core functionality first and incrementally ship other features. &lt;/p&gt;

&lt;p&gt;Side projects not only allow me to explore new technologies in a low-risk environment, but they also give me the opportunity to learn by doing. I find that I retain information better when I'm actively working on a project and applying what I've learned.&lt;/p&gt;

&lt;p&gt;What side projects have you worked on to learn new technologies? Share your experiences and tips below!&lt;br&gt;
keep creating🤘🏻!&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What happens when you load freecodecamp.com in your browser?</title>
      <dc:creator>Parth Bhardwaj</dc:creator>
      <pubDate>Sat, 28 May 2022 07:51:18 +0000</pubDate>
      <link>https://dev.to/parth_codes/what-happens-when-you-load-freecodecampcom-in-your-browser-43cb</link>
      <guid>https://dev.to/parth_codes/what-happens-when-you-load-freecodecampcom-in-your-browser-43cb</guid>
      <description>&lt;p&gt;Understanding how the web works is as important as learning any skill about the web. What users see is a webpage which loads in the browser as soon as the user enters a URL but, there's a lot more things happening in the background which we will get know in this blog post by taking an example of loading &lt;strong&gt;freecodecamp.com&lt;/strong&gt; in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It all starts with entering the website URL (freecodecamp.com) into your browser&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser looks up the IP address for the domain name via DNS
&lt;/h2&gt;

&lt;p&gt;Computers talk to each other using IP addresses but since humans cannot memorize thousands of strings of numbers so we use Domain names. For example, if we want to buy something from amazon, we think of 'amazon' and not any large string of numbers.&lt;/p&gt;

&lt;p&gt;DNS (Domain Name System) is responsible for translating domain names into its corresponding IP address.&lt;/p&gt;

&lt;p&gt;After typing the URL and pressing enter, the browser looks-up for the IP address for the domain name &lt;strong&gt;(freecodecamp.com)&lt;/strong&gt; through DNS. This is done so that we can get the IP address of the server to which we have to establish a connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser sends HTTP request to the server
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F36vrpetfqmmari254kxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F36vrpetfqmmari254kxk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The servers supports multiple services like email, webpages, chats etc.&lt;br&gt;
After the browser has connected to the server, it sends a HTTP request to the server to access these services. A HTTP request contains a request method, headers and a body.&lt;br&gt;
A request method is the method which is performed on a given resource. Some examples of request methods are GET, PUT, POST etc.&lt;/p&gt;

&lt;p&gt;Now lets take a look what an HTTP request looks like&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fta9dnsrahyh6ev2juker.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fta9dnsrahyh6ev2juker.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The request URL is the URL which we entered in our browser &lt;/li&gt;
&lt;li&gt;&lt;p&gt;The request method is set to &lt;strong&gt;GET&lt;/strong&gt; as we want to get &lt;br&gt;
those webpages from the server&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The remote address is the IP address of the domain name we &lt;br&gt;
got via DNS.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along with the IP address, there's an integer attached (443), this is called a &lt;strong&gt;PORT number&lt;/strong&gt;. The PORT number 443 signify that this a secured request (HTTPS) for a web page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fmzoxk5inw03a77vpyhhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fmzoxk5inw03a77vpyhhx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a HTTP request is initiated, a request header is generated by the browser and sent to the server. This header contains all the necessary information about the request like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requested URI&lt;/li&gt;
&lt;li&gt;Request method&lt;/li&gt;
&lt;li&gt;Path&lt;/li&gt;
&lt;li&gt;The type of data that browser will accept (html, xml, text 
etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The server sends back a HTTP response
&lt;/h2&gt;

&lt;p&gt;The server processes the request, creates a response and sends it back to the client :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Status code, which informs the client the status of the 
request&lt;/li&gt;
&lt;li&gt;Response header&lt;/li&gt;
&lt;li&gt;Requested resource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The response &lt;strong&gt;Status Code&lt;/strong&gt; indicates whether a specific HTTP request has been successfully completed.&lt;/p&gt;

&lt;p&gt;The response status codes are grouped in five classes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Informational responses (100–199)&lt;/li&gt;
&lt;li&gt;Successful responses (200–299)&lt;/li&gt;
&lt;li&gt;Redirection messages (300–399)&lt;/li&gt;
&lt;li&gt;Client error responses (400–499)&lt;/li&gt;
&lt;li&gt;Server error responses (500–599)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fta9dnsrahyh6ev2juker.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fta9dnsrahyh6ev2juker.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our example, the response status code we got in response is &lt;strong&gt;301&lt;/strong&gt;, which indicates that the requested resource has been moved to a different URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fduai3d6suk9n9604opju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fduai3d6suk9n9604opju.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This new URL is mentioned in location key of the response header, which is &lt;strong&gt;freecodecamp.org&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now a new HTTP request is created for &lt;strong&gt;freecodecamp.org&lt;/strong&gt; and is sent to the server.&lt;/p&gt;

&lt;p&gt;The response status code we get is &lt;strong&gt;200&lt;/strong&gt;, which indicates that the request has succeeded.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fws9kgkxqcq93tl4btmil.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fws9kgkxqcq93tl4btmil.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser begins rendering the HTML
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftvqjnxpt0xfhke1aa6w0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftvqjnxpt0xfhke1aa6w0.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The browser renders the index.html which we get as a response from response header.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The browser sends HTTP requests for additional objects embedded in HTML (images, css, JavaScript).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There it is! Our webpage has successfully loaded in our browser. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Launched my first product 🔥</title>
      <dc:creator>Parth Bhardwaj</dc:creator>
      <pubDate>Sun, 01 Aug 2021 07:32:05 +0000</pubDate>
      <link>https://dev.to/parth_codes/launched-my-first-product-59g4</link>
      <guid>https://dev.to/parth_codes/launched-my-first-product-59g4</guid>
      <description>&lt;p&gt;I have created my first ever Chrome extension called &lt;strong&gt;Page Pad&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I launched it on &lt;strong&gt;Product Hunt&lt;/strong&gt; few weeks ago and it was featured at &lt;strong&gt;#4&lt;/strong&gt; Product of the day!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pagepad.netlify.app"&gt;&lt;strong&gt;Page Pad&lt;/strong&gt;&lt;/a&gt; is a productivity tool for creating notes on any web page you visit. It allows you to edit and organize notes for a particular web page and also notifies if the user has already created notes for the current web page. Re-visit any web page where notes were created and all your notes will be present as it is from where it was left off!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pDERICRJcf8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;FEATURES:&lt;/p&gt;

&lt;p&gt;📝 Create notes for individual web pages.&lt;br&gt;
🔍 Refer to notes of all web pages of a website at once!&lt;br&gt;
🌟 Rich text editor&lt;br&gt;
✍🏽 Fully editable notes&lt;br&gt;
💾 Autosave feature&lt;br&gt;
⚡️ Works offline&lt;br&gt;
♿️ Keyboard accessible&lt;br&gt;
🌈 Custom themes&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/page-pad-make-quick-notes/igobdfagkcadgcfooegonbbeeggagakn?hl=en&amp;amp;authuser=0"&gt;Download the extension from here&lt;/a&gt; and any review or feedbacks are most welcomed!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>chromeextension</category>
      <category>javascript</category>
    </item>
    <item>
      <title>CSSBattle - Improve your CSS skills by doing awesome CSS challenges.</title>
      <dc:creator>Parth Bhardwaj</dc:creator>
      <pubDate>Sat, 13 Feb 2021 08:26:41 +0000</pubDate>
      <link>https://dev.to/parth_codes/cssbattle-improve-your-css-skills-by-doing-awesome-css-challenges-mjb</link>
      <guid>https://dev.to/parth_codes/cssbattle-improve-your-css-skills-by-doing-awesome-css-challenges-mjb</guid>
      <description>&lt;p&gt;I came across a sweet website for practicing CSS or challenging yourself to figure out solutions to CSS problems!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1rdQtdqW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cz3zwb0ctgqydo1sgup0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1rdQtdqW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cz3zwb0ctgqydo1sgup0.png" alt="Alt Text" width="505" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CSSBattle is an online CSS Code Golfing battleground. Here, players try to visually replicate "Targets" in smallest possible CSS code and battle it out to get to the top of the leaderboard.&lt;/p&gt;

&lt;p&gt;Visit the website now and start doing the awesome CSS challenges&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cssbattle.dev/"&gt;https://cssbattle.dev/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Created my first CSS UI library.</title>
      <dc:creator>Parth Bhardwaj</dc:creator>
      <pubDate>Thu, 24 Dec 2020 05:52:33 +0000</pubDate>
      <link>https://dev.to/parth_codes/created-my-first-css-ui-library-4bin</link>
      <guid>https://dev.to/parth_codes/created-my-first-css-ui-library-4bin</guid>
      <description>&lt;p&gt;I have created a CSS UI library named '&lt;strong&gt;Scratch&lt;/strong&gt;' for creating websites and giving users a jump-start for creating website.&lt;/p&gt;

&lt;p&gt;Scratch provides all major components and utilities to create a website and all components are made with pure CSS.&lt;/p&gt;

&lt;p&gt;link to website is given below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://css-scratch.netlify.app/"&gt;https://css-scratch.netlify.app/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please do give your reviews and all suggestions are welcomed.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>webdesign</category>
      <category>framework</category>
    </item>
  </channel>
</rss>
