<?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>Forem: Shubhra Agarwal</title>
    <description>The latest articles on Forem by Shubhra Agarwal (@shubhracodes).</description>
    <link>https://forem.com/shubhracodes</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%2F494010%2F8fb35722-5dcf-4c7b-9d10-e17f915a2ee1.JPG</url>
      <title>Forem: Shubhra Agarwal</title>
      <link>https://forem.com/shubhracodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shubhracodes"/>
    <language>en</language>
    <item>
      <title>The only Media Queries Cheatsheet you'll need</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Fri, 12 Nov 2021 17:40:05 +0000</pubDate>
      <link>https://forem.com/shubhracodes/the-only-media-queries-cheatsheet-youll-need-3plf</link>
      <guid>https://forem.com/shubhracodes/the-only-media-queries-cheatsheet-youll-need-3plf</guid>
      <description>&lt;p&gt;You learnt about media queries but now you're thinking how do I implement them, there are so many devices that it's practically impossible for someone to write media queries for each and every device.&lt;/p&gt;

&lt;p&gt;There is a common observation that a certain type of device has a particular range and we can easily implement media queries in this range rather than making it device specific.&lt;/p&gt;

&lt;p&gt;Let's take a look into what these groups are&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ Mobile Devices
&lt;/h2&gt;

&lt;p&gt;The general width of any mobile device ranges from 320px-480px, &lt;/p&gt;

&lt;p&gt;you can set the minimum to be 320px and max to be 480px. This is how I like to write breakpoints for my media queries&lt;br&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%2F0w67m76myzo57nrc7imc.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%2F0w67m76myzo57nrc7imc.png" alt="Mobile" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ iPads and Tablets
&lt;/h2&gt;

&lt;p&gt;The general width of any tablets ranges from 481px-768px, &lt;/p&gt;

&lt;p&gt;There are cases when the tablet is being used in landscape mode instead of portrait mode, but that dimensions are covered by laptop breakpoints&lt;/p&gt;

&lt;p&gt;This is how I write breakpoints&lt;br&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%2F4ocx6ifk3siasykiwt8t.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%2F4ocx6ifk3siasykiwt8t.png" alt="iPads" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣ Laptops
&lt;/h2&gt;

&lt;p&gt;The general width of any laptop ranges from 769px-1024px, &lt;/p&gt;

&lt;p&gt;This is how I write breakpoints&lt;br&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%2Fkjdr3um5g2h5bibyabfa.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%2Fkjdr3um5g2h5bibyabfa.png" alt="Laptop" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4️⃣ Desktops and Larger Screens
&lt;/h2&gt;

&lt;p&gt;The general width of any laptop ranges from 1025px-1200px, &lt;/p&gt;

&lt;p&gt;This is how I write breakpoints&lt;br&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%2F8gpb5b1hlih85m3xj5pc.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%2F8gpb5b1hlih85m3xj5pc.png" alt="Desktop" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5️⃣ Desktops and Larger Screens
&lt;/h2&gt;

&lt;p&gt;The general width of any laptop ranges from 1025px-1200px, &lt;/p&gt;

&lt;p&gt;This is how I write breakpoints&lt;br&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%2F5wxmm8agolwvpugxf73y.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%2F5wxmm8agolwvpugxf73y.png" alt="Extra large" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mobile Devices (320-480px)&lt;/li&gt;
&lt;li&gt;Tablets (481-768px)&lt;/li&gt;
&lt;li&gt;Laptops (769-1024px)&lt;/li&gt;
&lt;li&gt;Desktops (1025px- 1200px)&lt;/li&gt;
&lt;li&gt;TVs (1200px and further)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for reading this blog post. Do leave your reviews in the replies, I would love to hear them 🧡 &lt;/p&gt;

</description>
      <category>css</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Keyboard shortcuts which will make sure you don't have to touch your mouse while writing code</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Tue, 09 Nov 2021 17:24:22 +0000</pubDate>
      <link>https://forem.com/shubhracodes/keyboard-shortcuts-which-will-make-sure-you-dont-have-to-touch-your-mouse-while-writing-code-1i58</link>
      <guid>https://forem.com/shubhracodes/keyboard-shortcuts-which-will-make-sure-you-dont-have-to-touch-your-mouse-while-writing-code-1i58</guid>
      <description>&lt;p&gt;There are times when you might feel like reaching for the mouse to execute a certain task. But we all know that shifting our hand to and fro from the mouse reduces our productivity. So, &lt;/p&gt;

&lt;p&gt;Here are 10 keyboard shortcuts that will help you to speed up your coding process 🧵 &lt;/p&gt;

&lt;p&gt;These shortcuts work with a majority of code editors and IDEs like VS Code, Atom, Sublime etc. If these doesn't work for you, make sure to check the settings of you editor.&lt;/p&gt;

&lt;p&gt;Let's Begin 👇 &lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ Copy/Cut/Paste Entire Line
&lt;/h2&gt;

&lt;p&gt;You might be aware about Ctrl+C/X/V but there's a trick to it, if you don't select any portion in the line, your editor will copy/cut/paste the whole line including the line break.&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ Comment and Uncomment Lines
&lt;/h2&gt;

&lt;p&gt;Comments are extremely handy for us, but instead of going to each and every line individually and commenting it, just highlight whatever lines you want commented and then hit&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + /&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command will comment and uncomment the entire line&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣ Search for a file in your file
&lt;/h2&gt;

&lt;p&gt;Navigating through a project can get hard, especially when the project is pretty big. You can just use&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + P&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;to search for any file in your whole project.&lt;/p&gt;

&lt;h2&gt;
  
  
  4️⃣ Search for a keyword in a file and in the whole project
&lt;/h2&gt;

&lt;p&gt;Searching for a keyword inside a file can be done using &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + F&lt;/code&gt; and then pressing Enter will let you navigate through the keywords&lt;/p&gt;

&lt;p&gt;To search in the whole project,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Shift + F&lt;/code&gt; is used. &lt;/p&gt;

&lt;h2&gt;
  
  
  5️⃣ Indent and Un-indent code
&lt;/h2&gt;

&lt;p&gt;Select the code block that you need to indent and then press the Tab key to indent the whole code block. &lt;/p&gt;

&lt;p&gt;Similarly, to un-indent the code block, select it and press Shift + Tab&lt;/p&gt;

&lt;h2&gt;
  
  
  6️⃣ Create a new file
&lt;/h2&gt;

&lt;p&gt;This might not be the most useful shortcut in bigger projects but you can create new files using &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + N&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7️⃣ Create a new line
&lt;/h2&gt;

&lt;p&gt;Usually, when we have to create a new line, we place our cursor at the end of the line and press Enter, but pressing &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Enter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;will create a new line just below the line where your cursor is present.&lt;/p&gt;

&lt;h2&gt;
  
  
  8️⃣ Navigate across the whole word rather than a character at a time
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Arrow Key&lt;/code&gt; will allow you to navigate across a whole word at a time as compared to just a character&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Backspace&lt;/code&gt; will allow you to delete a whole word at a time&lt;/p&gt;

&lt;h2&gt;
  
  
  9️⃣ Highlighting characters and words
&lt;/h2&gt;

&lt;p&gt;Holding down Shift key and pressing allow keys will allow you to highlight characters.&lt;/p&gt;

&lt;p&gt;Similarly,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Shift + Ctrl + Arrow keys&lt;/code&gt; will allow you to highlight a whole word at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ 0️⃣ The OG Shortcuts
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Ctrl + S&lt;/code&gt; -&amp;gt; Save the file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + A&lt;/code&gt; -&amp;gt; Select All&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Z&lt;/code&gt; -&amp;gt; Undo&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + Y&lt;/code&gt; -&amp;gt; Redo&lt;/p&gt;

&lt;p&gt;These are all the shortcuts you'll need to speed up your coding. Initially, it might be a little bit difficult to use them regularly.&lt;/p&gt;

&lt;p&gt;You need to use these shortcuts consciously and in no time they'll get into your habit without you even knowing.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>CSS Concepts every beginner should know</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Mon, 08 Nov 2021 15:35:35 +0000</pubDate>
      <link>https://forem.com/shubhracodes/css-concepts-every-beginner-should-know-1oie</link>
      <guid>https://forem.com/shubhracodes/css-concepts-every-beginner-should-know-1oie</guid>
      <description>&lt;p&gt;CSS is a very vast topic and can be intimidating to people getting started with CSS and can cause imposter syndrome. &lt;/p&gt;

&lt;p&gt;But, worry not here is a list of the topics you need to learn if you're just getting started with CSS and you can learn the else on the fly while working on a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ CSS Basics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Adding CSS (Inline, Internal and External)&lt;/li&gt;
&lt;li&gt;CSS Selectors (Classes and IDs)&lt;/li&gt;
&lt;li&gt;Display property&lt;/li&gt;
&lt;li&gt;Fonts and other formatting properties&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2️⃣ Elements Arrangement
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Float and Clear&lt;/li&gt;
&lt;li&gt;Positioning&lt;/li&gt;
&lt;li&gt;Box Sizing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3️⃣ Layouts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Flex&lt;/li&gt;
&lt;li&gt;Grids&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4️⃣ Responsive Design
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Text effects&lt;/li&gt;
&lt;li&gt;Images and video resizing&lt;/li&gt;
&lt;li&gt;Different Viewports&lt;/li&gt;
&lt;li&gt;Media Queries&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5️⃣ Advanced
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;CSS Variables&lt;/li&gt;
&lt;li&gt;Transitions and Animations&lt;/li&gt;
&lt;li&gt;2D and 3D transforms&lt;/li&gt;
&lt;li&gt;Shadows and Gradients&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CSS Basics&lt;/li&gt;
&lt;li&gt;Elements Arrangements&lt;/li&gt;
&lt;li&gt;Layouts&lt;/li&gt;
&lt;li&gt;Responsive Design&lt;/li&gt;
&lt;li&gt;Advanced&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That was it for this blog post. Thank you for reading it till the end.&lt;/p&gt;

&lt;p&gt;If you liked it, do give your views and opinions in the replies section below.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>NPM packages for custom hooks that you wouldn't wanna miss out on</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Sat, 06 Nov 2021 08:00:54 +0000</pubDate>
      <link>https://forem.com/shubhracodes/npm-packages-for-custom-hooks-that-you-wouldnt-wanna-miss-out-on-2ph3</link>
      <guid>https://forem.com/shubhracodes/npm-packages-for-custom-hooks-that-you-wouldnt-wanna-miss-out-on-2ph3</guid>
      <description>&lt;p&gt;Saloni : Hello, Shubh. Hooks have always been handy for me in react. They've made my job a lot easier. I wish React had more hooks than just useState, useEffect&lt;/p&gt;

&lt;p&gt;Shubh : You can create your own custom hooks in react and there are some awesome custom hooks on NPM as well.&lt;/p&gt;

&lt;p&gt;Let me tell you more about such hooks 🧵&lt;/p&gt;

&lt;p&gt;The first one is &lt;strong&gt;use-clippy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useClippy is a TypeScript-friendly React hook for reading from and writing to the user's clipboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/use-clippy" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/use-clippy&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Second in this list is  &lt;strong&gt;useScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It loads a third party script and returns a value when it's loaded or fails to load.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/use-script" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/use-script&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Third is  &lt;strong&gt;react-use-idb&lt;/strong&gt; (useIdb)&lt;/p&gt;

&lt;p&gt;It is a react side-effect hook that manages a single indexDB item.&lt;/p&gt;

&lt;p&gt;It's a drop-in replacement over useLocalStorage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-use-idb" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/react-use-idb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fourth is my personal favourite and it is &lt;strong&gt;use-dark-mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a custom React Hook which helps you implement a "dark mode" component for your application. The user setting persists to localStorage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-use-idb" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/react-use-idb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last one is  &lt;strong&gt;useDocumentTitle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React Hook (using useEffect()) to set your document title.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/use-document-title" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/use-document-title&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can look for more custom react hooks on this website&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reacthooks.org/" rel="noopener noreferrer"&gt;https://reacthooks.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope I was able to help you out Saloni.&lt;/p&gt;

&lt;p&gt;Saloni : Yes!! Thank you so much for telling me about it. I'm going to give you a like and a follow too!!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>hooks</category>
    </item>
    <item>
      <title>Simple Linear Regression explained so simply that even a 5yo can understand</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Tue, 21 Sep 2021 07:28:14 +0000</pubDate>
      <link>https://forem.com/shubhracodes/let-us-learn-about-simple-linear-regression-1p5c</link>
      <guid>https://forem.com/shubhracodes/let-us-learn-about-simple-linear-regression-1p5c</guid>
      <description>&lt;p&gt;Linear regression is an algorithm used to predict or visualise a relationship between two different features/variables. In linear regression tasks, there are two kinds of variables being examined: the dependent variable and the independent variable.&lt;/p&gt;

&lt;p&gt;Let us build our first Simple Linear Regression Model and learn along the way by building. &lt;/p&gt;

&lt;p&gt;This particular model is called as simple because it has only one independent variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's start by importing the modules
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sklearn.model_selection&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;train_test_split&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sklearn.linear_model&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LinearRegression&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;matplotlib&lt;/code&gt;: used to plot the data in a graphical manner&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pandas&lt;/code&gt;: used for working with the dataset&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sklearn&lt;/code&gt;: used to split the dataset and then apply the linear regression class onto the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Importing the dataset
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Salary_Data.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;X&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iloc&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iloc&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;
&lt;span class="c1"&gt;# X is taking all the values except the last 
# column whereas y is taking the last value
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we are using the data containing people's salary and working experience to predict someone's salary based on their experience.&lt;/p&gt;

&lt;p&gt;This is what the dataset looks like&lt;br&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%2Fxx6ps7ncknicr0df6wxz.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%2Fxx6ps7ncknicr0df6wxz.png" alt="image" width="197" height="207"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Splitting the dataset into training and test set
&lt;/h2&gt;

&lt;p&gt;We need to split the dataset into two models i.e. the test set and the training set.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;X_test&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_test&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;train_test_split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;random_state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# X_train contains the independent varibale
# y_train contains the dependent variable 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we have used the &lt;code&gt;train_test_split&lt;/code&gt; function that we imported from &lt;code&gt;sklearn.model_selection&lt;/code&gt;.&lt;br&gt;
x and y are the variables, test_size tells the function about the size of the test set. &lt;/p&gt;

&lt;p&gt;So, if there exists 100 lines of data, It will be split into following segments,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Training: 80 lines&lt;/li&gt;
&lt;li&gt;Testing: 20 lines&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Training the model
&lt;/h2&gt;

&lt;p&gt;After we are done with splitting the model, now is the time to actually train the model with the training set.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;regressor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LinearRegression&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;regressor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_train&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We simply initialise the LinearRegression class and then pass our training sets into the &lt;code&gt;fit()&lt;/code&gt; method of the LinearRegression Class&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualising the training set results
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;scatter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;red&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Plotting the data
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;regressor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;blue&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Add title to the plot
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Salary vs Experience(train)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Labels on x and y axis
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Years of Experience&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Salary&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#Finally, display the plot
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of the following code block will be&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%2F0dyd46d78lubmj2otahp.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%2F0dyd46d78lubmj2otahp.png" alt="image" width="633" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualising the test set results
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;scatter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_test&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_test&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;red&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Here we are not replacing X_train with X_test because this line tells us about the data predicted and how close our results are to the training set
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;regressor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;blue&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Add title and labels
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Salary vs Experience (test)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Years of Experience&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Salary&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Finally, display the plot
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of the following code block will be&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%2Fey5algsr1wtrj22nlx58.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%2Fey5algsr1wtrj22nlx58.png" alt="image" width="637" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was it!! We have successfully built our fully functional simple linear regression model.&lt;/p&gt;

&lt;p&gt;If you liked this, don't forget to give a like on the post and share it with your friends.&lt;/p&gt;

&lt;p&gt;Do give me a follow for more such blog posts.&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Github shortcuts that will make sure that you don't have to use your mouse while browsing</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Mon, 06 Sep 2021 09:25:27 +0000</pubDate>
      <link>https://forem.com/shubhracodes/github-shortcuts-that-will-make-sure-that-you-don-t-have-to-use-your-mouse-while-browsing-244c</link>
      <guid>https://forem.com/shubhracodes/github-shortcuts-that-will-make-sure-that-you-don-t-have-to-use-your-mouse-while-browsing-244c</guid>
      <description>&lt;p&gt;You must've heard that pressing the "." key in any Github repository will open it in an online code editor.&lt;/p&gt;

&lt;p&gt;But here are a few more shortcuts which will ensure that you don't have to touch the mouse again when using Github&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%2Fmj8t1azxt8ph35mswjxf.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%2Fmj8t1azxt8ph35mswjxf.png" alt="Intro image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Sitewide shortcuts&lt;/li&gt;
&lt;li&gt;Go to shortcuts&lt;/li&gt;
&lt;li&gt;Editing code shortcuts&lt;/li&gt;
&lt;li&gt;Browsing the code shortcuts&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;li&gt;Make Changes in a pull request&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting started with keyboard shortcuts
&lt;/h2&gt;

&lt;p&gt;Before I bore you out with all shortcuts or make you remember all of them, you just have to press the "?" key or "Shift + /" and you will see a dialog box which has all the shortcuts that work on github.&lt;br&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%2Fqgcj4h3z17opetlhuzgf.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%2Fqgcj4h3z17opetlhuzgf.png" alt="image" width="798" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Site wide shortcuts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;s&lt;/code&gt; or &lt;code&gt;/&lt;/code&gt; will focus the search bar&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;j&lt;/code&gt; and &lt;code&gt;k&lt;/code&gt; will move selection up and down respectively&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;x&lt;/code&gt; to toggle selection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;o&lt;/code&gt; or &lt;code&gt;enter&lt;/code&gt; to open selection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;esc&lt;/code&gt; to close selection&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Go to Shortcuts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;c&lt;/code&gt; -&amp;gt; Go to code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;i&lt;/code&gt; -&amp;gt; Go to issues&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt; -&amp;gt; Go to PR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;b&lt;/code&gt; -&amp;gt; Go to Projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;d&lt;/code&gt; -&amp;gt; Go to Homepage of current account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;g&lt;/code&gt; + &lt;code&gt;n&lt;/code&gt; -&amp;gt; Go to your notifications&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Editing the source code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ctrl&lt;/code&gt; + &lt;code&gt;b/i&lt;/code&gt; -&amp;gt; Markdown formatting for bolding/italicizing text&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ctrl&lt;/code&gt; + &lt;code&gt;k&lt;/code&gt; -&amp;gt; Markdown formatting for creating link&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;e&lt;/code&gt; -&amp;gt; Edit source code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;alt&lt;/code&gt; + &lt;code&gt;g&lt;/code&gt; -&amp;gt; Jump to line&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ctrl&lt;/code&gt; + &lt;code&gt;shift&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt; -&amp;gt; Toggle between edit file and preview file&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Browsing the source code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;t&lt;/code&gt; -&amp;gt; Activates the file finder&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;w&lt;/code&gt; -&amp;gt; Switch to a new branch or tag&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;y&lt;/code&gt; -&amp;gt; Expand a URL to its canonical form.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;i&lt;/code&gt; -&amp;gt; Show or hide comments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;a&lt;/code&gt; -&amp;gt; Show or hide annotations &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;b&lt;/code&gt; -&amp;gt; Open blame view.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Notifications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;e&lt;/code&gt; -&amp;gt; Mark as done&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;shift&lt;/code&gt; + &lt;code&gt;u&lt;/code&gt; -&amp;gt; Mark as unread&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;shift&lt;/code&gt; + &lt;code&gt;i&lt;/code&gt; -&amp;gt; Mark as read&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;shift&lt;/code&gt; + &lt;code&gt;m&lt;/code&gt; -&amp;gt; Unsubscribe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Make changes in pull request
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;c&lt;/code&gt; -&amp;gt; Open list of commits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;t&lt;/code&gt; -&amp;gt; Open the list of changed files&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;j/k&lt;/code&gt; -&amp;gt; Move selection down/up in the list&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That was it for this post. If you liked it don't forget to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hit the 🧡 button&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow &lt;a class="mentioned-user" href="https://dev.to/shubhracodes"&gt;@shubhracodes&lt;/a&gt; for more such informative posts&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>Some memes that only developers will relate to</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Tue, 31 Aug 2021 04:13:55 +0000</pubDate>
      <link>https://forem.com/shubhracodes/some-memes-that-only-developers-will-relate-to-jeg</link>
      <guid>https://forem.com/shubhracodes/some-memes-that-only-developers-will-relate-to-jeg</guid>
      <description>&lt;p&gt;Being a developer is a gift.&lt;br&gt;
It teaches you how to think.&lt;br&gt;
It teaches you to be resilient when searching for days to fix a bug or make things work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Everybody should learn to program a computer, because it teaches you how to think” — Steve Jobs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  1- The Linux lovers:
&lt;/h1&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%2Fm25ot3v48447f13tisky.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%2Fm25ot3v48447f13tisky.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2- For observers:
&lt;/h1&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%2Fynpeya4ke1o06f0o61oe.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%2Fynpeya4ke1o06f0o61oe.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3- For starting developers:
&lt;/h1&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%2Fohcf5aamkxxzf9e8yke2.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%2Fohcf5aamkxxzf9e8yke2.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  4- For smart devs:
&lt;/h1&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%2Fw4omti722k0d8hj7qmp5.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%2Fw4omti722k0d8hj7qmp5.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  5- For developer teams:
&lt;/h1&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%2Flktlimu8el83pd363wgu.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%2Flktlimu8el83pd363wgu.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  6- For developers life:
&lt;/h1&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%2Fxbta115hfmh4jpc2r75x.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%2Fxbta115hfmh4jpc2r75x.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  7- For the production team:
&lt;/h1&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%2Fwtsnxz93t5noltb4zp5f.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%2Fwtsnxz93t5noltb4zp5f.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  8- For developers &amp;amp; managers relationship:
&lt;/h1&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%2Fv45ida6q9ofuga95z8kb.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%2Fv45ida6q9ofuga95z8kb.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  9- For developers experience:
&lt;/h1&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%2Fie80g8dfk979zbsigwvj.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%2Fie80g8dfk979zbsigwvj.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  10- For developers experience:
&lt;/h1&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%2Ffdeqet52mjwqs1yncz0w.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%2Ffdeqet52mjwqs1yncz0w.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  11- For beginner intern developers
&lt;/h1&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%2Fqcrhginkjug2x8lusrth.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%2Fqcrhginkjug2x8lusrth.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  12- For HTML developers
&lt;/h1&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%2Fzp7vxtgnlczthk02e51o.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%2Fzp7vxtgnlczthk02e51o.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  13- For developers life with managers
&lt;/h1&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%2F95k6mhaejf8zebny9k1x.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%2F95k6mhaejf8zebny9k1x.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  14- For developers life with Git
&lt;/h1&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%2Fmz3zy4ycafywhrmqv77s.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%2Fmz3zy4ycafywhrmqv77s.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  15- For debugging
&lt;/h1&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%2Fw4651abtly8p559civ5a.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%2Fw4651abtly8p559civ5a.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  16- For pair programmers
&lt;/h1&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%2F0fv1ppo12yj23sla739z.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%2F0fv1ppo12yj23sla739z.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>memes</category>
      <category>relatable</category>
    </item>
    <item>
      <title>Top 10 Tools🛠 For Web Developers👨‍💻to keep check In 2021🤘🏻</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Sun, 29 Aug 2021 12:26:12 +0000</pubDate>
      <link>https://forem.com/shubhracodes/top-10-tools-for-web-developers-to-keep-check-in-2021-63k</link>
      <guid>https://forem.com/shubhracodes/top-10-tools-for-web-developers-to-keep-check-in-2021-63k</guid>
      <description>&lt;p&gt;Using web development tools always makes your work easier and more smooth. Web dev is a field where you often need them and that’s why I made this list so that you can bookmark it and check any tool you are looking for.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Devhints.io&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here you will find sets of ready-made snippets with popular code snippets, configurations, and commands.&lt;/p&gt;

&lt;p&gt;If you don’t find the snippet you need, you can request the author to add it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bootstrap Cheatsheet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bootstrap cheat sheet is an interactive list of Bootstrap 5 classes, variables, and mixins. It helps you easily find the differences between Bootstrap 4 and Bootstrap 5.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bootstrap-cheatsheet.themeselection.com/" rel="noopener noreferrer"&gt;https://bootstrap-cheatsheet.themeselection.com/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Carbon&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you need to create a piece of code in the form of an image, Carbon is the perfect tool for this purpose. The application has support for many languages ​​and a ready set of different themes, thanks to which we can modify our snippet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://carbon.now.sh" rel="noopener noreferrer"&gt;https://carbon.now.sh&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Lighthouse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is an open-source, automated tool for measuring the quality of web pages. It audits the performance, accessibility, and search engine optimization of web pages. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MetaTags.io&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meta Tags is a simple online tool that you can use to quickly check the meta tags for your website.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frontendchecklist.io&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process of creating a website can often be long, tedious, and very complicated. The consequence of this is that we can forget some things. The Front-End Checklist is here to help&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gitignore.io &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that you don’t need higher math to create a .gitignore file, but a ready-made tool was created for that. The only thing you provide is information such as the operating system or development environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regex101&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application offers both instruction for creating regular expressions and a ready environment for writing and testing expressions. Additionally, after creating an expression, we get a detailed explanation of it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://regex101.com/" rel="noopener noreferrer"&gt;https://regex101.com/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ngrok &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you create a website on a local server and show off your work results to someone, you can use Ngrok. This tool allows you to “bring to the world” your local application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ngrok.com/" rel="noopener noreferrer"&gt;https://ngrok.com/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nibbler&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nibbler is a free online tool that you can use to scan your website. It will give you a report scoring the website for key areas, including accessibility, SEO, social media, and technology.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nibbler.silktide.com/" rel="noopener noreferrer"&gt;https://nibbler.silktide.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Gamify your CSS learning and learn better</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Sat, 21 Aug 2021 07:49:06 +0000</pubDate>
      <link>https://forem.com/shubhracodes/gamify-your-css-learning-and-learn-better-38ma</link>
      <guid>https://forem.com/shubhracodes/gamify-your-css-learning-and-learn-better-38ma</guid>
      <description>&lt;p&gt;CSS Arts is a great way to improve your CSS skills and show your artistic side to the world.&lt;/p&gt;

&lt;p&gt;This is what I have been using for the past few weeks and I can already notice considerable amount of improvement in my CSS skills already.&lt;/p&gt;

&lt;p&gt;With the help of this website you can gamify your learning experience and make it more interesting.&lt;/p&gt;

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

&lt;p&gt;The basic idea is to replicate the drawing displayed to you on the website in the minimum lines of code and then you are given a score on the basis of that. &lt;/p&gt;

&lt;p&gt;You can either play it against someone else in real-time or you can play again yourself.&lt;/p&gt;

&lt;p&gt;This is a really fun way to learn and get better at CSS without getting bored.&lt;/p&gt;

&lt;p&gt;Thank you for reading :)&lt;/p&gt;

&lt;p&gt;You can also check out my other social media handles to connect with me.&lt;/p&gt;

&lt;p&gt;Do leave your feedback in the comment section&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>What is up with var, let and const? What the hell is the difference between these three?</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Tue, 17 Aug 2021 15:56:24 +0000</pubDate>
      <link>https://forem.com/shubhracodes/what-is-up-with-var-let-and-const-what-the-hell-is-the-difference-between-these-three-5dk1</link>
      <guid>https://forem.com/shubhracodes/what-is-up-with-var-let-and-const-what-the-hell-is-the-difference-between-these-three-5dk1</guid>
      <description>&lt;p&gt;With ES2016 came two new methods to declare variable i.e. &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt;. Before that the developers had access to only &lt;code&gt;var&lt;/code&gt;(I feel bad for them, no kidding). &lt;/p&gt;

&lt;p&gt;So, what's the catch here? Why are there three different ways to declare variables? Wasn't JavaScript already confusing enough and now they're making it more confusing.&lt;/p&gt;

&lt;p&gt;Before we can understand how &lt;code&gt;var&lt;/code&gt; and &lt;code&gt;let/const&lt;/code&gt; differ we need to understand a computer science-y concept called &lt;code&gt;scope&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Function scope vs Block Scope
&lt;/h2&gt;

&lt;p&gt;JavaScript comes with two kinds of scope i.e Function scope and block scope. Let's have a look at the difference in both of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Function Scope
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

function myFn() {
  var foo = 'peekaboo!';

  console.log(foo); // 'peekaboo!'
}

console.log(foo); // ReferenceError: foo is not defined


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Variables are function-scoped when using var because their visibility is restricted to the function. You'll get an error if you try to utilise it outside of the function.&lt;/p&gt;

&lt;h3&gt;
  
  
  Block Scope
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

if (true) {
  var foo = 'peekaboo!';
  let bar = 'i see u';
  const baz = 'baby blue!';

  console.log(foo); // 'peekaboo!';
  console.log(bar); // 'i see u';
  console.log(baz); // 'baby blue!';
}

console.log(foo); // 'peekaboo!';
console.log(bar); // ReferenceError: bar is not defined
console.log(baz); // ReferenceError: baz is not defined


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Notice the visibility of foo isn’t limited by the if-statement block. However, both &lt;code&gt;bar&lt;/code&gt; and &lt;code&gt;baz&lt;/code&gt; are limited in visibility to the block of code.&lt;/p&gt;

&lt;p&gt;This concept of scope is the most prominent distinction between the old-fashioned &lt;code&gt;var&lt;/code&gt; and modern &lt;code&gt;let/const&lt;/code&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%2Fpbhe41h74iecbev8p1r6.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%2Fpbhe41h74iecbev8p1r6.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://twitter.com/mpjme" rel="noopener noreferrer"&gt;https://twitter.com/mpjme&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  VAR
&lt;/h2&gt;

&lt;p&gt;Let's have a look at the following code snippet&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

for (var i = 0; i &amp;lt; 3; i++) {
  console.log(i);
}

console.log(i);


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;According to you what will be the output of the following program??&lt;br&gt;
If you said &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

//0
//1
//2
//3


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;then you're absolutely correct.&lt;/p&gt;

&lt;p&gt;The variable &lt;code&gt;i&lt;/code&gt; is accessible outside of the for-loop. This is expected since variables defined with var have a function scope rather than a block scope i.e they're accessible within the whole function in which they are defined in.&lt;/p&gt;

&lt;p&gt;If it's so cool then what's the problem with using var? Why aren't we using it?&lt;/p&gt;

&lt;p&gt;I'll use the example below to explain:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

    var greeter = "hey hi";
    var times = 4;

    if (times &amp;gt; 3) {
        var greeter = "say Hello instead"; 
    }

    console.log(greeter) // "say Hello instead"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;So, since &lt;code&gt;times &amp;gt; 3&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt;, greeter is redefined  to "say Hello instead". While this is not a problem if you knowingly want greeter to be redefined, it becomes a problem when you do not realise that a variable greeter has already been defined before.&lt;/p&gt;

&lt;p&gt;If you have used greeter in other parts of your code, you might be surprised at the output you might get. This will likely cause a lot of bugs in your code. This is why let and const are necessary.&lt;/p&gt;

&lt;p&gt;In layman terms, &lt;code&gt;var&lt;/code&gt; can be redefined and it's values can also be changed?&lt;/p&gt;

&lt;p&gt;So Shubhra, what can we do to save ourselves from making such blunder in production code???&lt;/p&gt;

&lt;p&gt;Well, worry not, the people in the JavaScript headquaters knew that you would be having this problem and already gave a solution for this.&lt;/p&gt;

&lt;p&gt;Here comes &lt;code&gt;let&lt;/code&gt; to save the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  LET
&lt;/h2&gt;

&lt;p&gt;In many ways &lt;code&gt;let&lt;/code&gt; is like a cousin of &lt;code&gt;var&lt;/code&gt;. It has a lot of similarities but differentiates in ways that makes ES2016 a more modern-feeling language.&lt;/p&gt;

&lt;p&gt;Let us take the same example we took in &lt;code&gt;var&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

for (let i = 0; i &amp;lt; 3; i++) {
  console.log(i);
}

console.log(i);


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This time what do you think the output is going to be?? Well if you said&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

//0
//1
//2
//ReferenceError: i is not defined


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;then you're in luck.&lt;/p&gt;

&lt;p&gt;Hey Shubhra, if &lt;code&gt;let&lt;/code&gt; is a cousin of &lt;code&gt;var&lt;/code&gt; then why is it coming undefined? &lt;br&gt;
Let me tell you, so &lt;code&gt;let&lt;/code&gt; is blocked scope instead of being function scoped.&lt;/p&gt;

&lt;h3&gt;
  
  
  let can be updated but not re-declared.
&lt;/h3&gt;

&lt;p&gt;Just like &lt;code&gt;var&lt;/code&gt;,  a variable declared with &lt;code&gt;let&lt;/code&gt; can be updated within its scope. Unlike &lt;code&gt;var&lt;/code&gt;, a &lt;code&gt;let&lt;/code&gt; variable cannot be re-declared within its scope. So while this will work:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

    let greeting = "say Hi";
    greeting = "say Hello instead";


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;this will return an error:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

    let greeting = "say Hi";
    let greeting = "say Hello instead"; // error: Identifier 'greeting' has already been declared


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;However, if the same variable is defined in different scopes, there will be no error:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

    let greeting = "say Hi";
    if (true) {
        let greeting = "say Hello instead";
        console.log(greeting); // "say Hello instead"
    }
    console.log(greeting); // "say Hi"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Why is there no error? This is because both instances are treated as different variables since they have different scopes.&lt;/p&gt;

&lt;p&gt;This fact makes &lt;code&gt;let&lt;/code&gt; a better choice than &lt;code&gt;var&lt;/code&gt;. When using &lt;code&gt;let&lt;/code&gt;, you don't have to bother if you have used a name for a variable before as a variable exists only within its scope.&lt;/p&gt;

&lt;p&gt;Also, since a variable cannot be declared more than once within a scope, then the problem discussed earlier that occurs with &lt;code&gt;var&lt;/code&gt; does not happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  CONST
&lt;/h2&gt;

&lt;p&gt;The keyword &lt;code&gt;const&lt;/code&gt; is an abbreviation for constant. Similar to &lt;code&gt;let&lt;/code&gt;, it’s block-scoped, however, you can’t reassign it.&lt;/p&gt;

&lt;p&gt;What do you think is the output of this code?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

const myBoolean = true;

if (myBoolean) {
  const turtles = [
    'leonardo',
    'donatello',
    'michaelangelo',
    'raphael'
  ];
  // turtles = turtles.concat('Shredder');  // 🙅‍♀️ this would throw an error

  console.log(turtles);
}

console.log(turtles);


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The output &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

// ['leonardo', 'donatello', 'michaelangelo', 'raphael']
// ReferenceError: turtles is not defined


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Because the &lt;code&gt;const&lt;/code&gt; is not transferred in this scenario, items can still be added to a const variable that links to an array or an object.&lt;br&gt;
This is a topic for another blog. I will discuss it later.&lt;/p&gt;

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

&lt;p&gt;Because function-scope isn't as evident as block-scope, it's best to avoid using &lt;code&gt;var&lt;/code&gt;. The objective of ES2016-2019 appears to be to replace &lt;code&gt;var&lt;/code&gt; with &lt;code&gt;let/const&lt;/code&gt; because they encourage better code habits.&lt;/p&gt;

&lt;p&gt;If you need to construct a variable, you should usually use const. Use let instead if you know or suspect you'll need to reassign it (for-loops, switch statements, algorithm swapping).&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Some cool JavaScript Shorthand that will make your code cleaner than your peer's</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Mon, 16 Aug 2021 10:35:30 +0000</pubDate>
      <link>https://forem.com/shubhracodes/some-cool-javascript-shorthand-that-will-make-your-code-cleaner-than-your-peer-s-5fh8</link>
      <guid>https://forem.com/shubhracodes/some-cool-javascript-shorthand-that-will-make-your-code-cleaner-than-your-peer-s-5fh8</guid>
      <description>&lt;p&gt;Here are 7 JavaScript shorthands that you as a JavaScript developer should know because who doesn't like shorter and cleaner code ¯_(ツ)_/¯&lt;/p&gt;

&lt;h2&gt;
  
  
  Convert string to number
&lt;/h2&gt;

&lt;p&gt;Normally we use the &lt;code&gt;parseInt()&lt;/code&gt; to do this. But, you can do this using the unary operator &lt;code&gt;+&lt;/code&gt;. Sick right?&lt;br&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%2F8xhn4bsi89k0cvqfwbn1.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%2F8xhn4bsi89k0cvqfwbn1.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also do this by just adding the unary operator to an empty string&lt;br&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%2Fjr3b6pui1dzzz6ct4ixp.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%2Fjr3b6pui1dzzz6ct4ixp.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The ternary operator
&lt;/h2&gt;

&lt;p&gt;I'm pretty sure all of you must be aware about this but what's the harm in sharing it again.&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%2Febwt1x5mfqtm0mfe9izp.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%2Febwt1x5mfqtm0mfe9izp.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The short circuit
&lt;/h2&gt;

&lt;p&gt;Ever wanted to check for a condition and output something only if the condition was true? Were you also using &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; like me? Well, not anymore, I present to you the short circuit.&lt;br&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%2Fiz2cwm82jmng6uospgp7.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%2Fiz2cwm82jmng6uospgp7.png" alt="image"&gt;&lt;/a&gt;&lt;br&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%2Fqdezbqwpmyvhr6tyqrrs.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%2Fqdezbqwpmyvhr6tyqrrs.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Flattening an array
&lt;/h2&gt;

&lt;p&gt;A lot of people use various methods to flatten an array like filter(), concat etc. But using the flat() method can get the job done quicker and better.&lt;br&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%2Ft50dcuxvaiqj0v95wr5x.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%2Ft50dcuxvaiqj0v95wr5x.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Merging arrays
&lt;/h2&gt;

&lt;p&gt;Merging of arrays is one of the tasks that we need to do in our day to day coding. Be it the data from an API or whatever. Using the spread operator can get this job done in no time.&lt;br&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%2Ffweqma08sp5imreecehi.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%2Ffweqma08sp5imreecehi.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloning Arrays
&lt;/h2&gt;

&lt;p&gt;Just like merging, spread operator comes in handy even when you want to clone an array&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%2Fvh7g0gcd832a15gm79nm.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%2Fvh7g0gcd832a15gm79nm.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The shorthand of &lt;code&gt;for&lt;/code&gt; loops
&lt;/h2&gt;

&lt;p&gt;We all have been writing for loops the C++ way up until now, but now it's time to do it the modern way. &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%2Fm3x3pq8a9oijqes52r44.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%2Fm3x3pq8a9oijqes52r44.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Convert string to number&lt;/li&gt;
&lt;li&gt;Ternary Operator&lt;/li&gt;
&lt;li&gt;Short Circuit&lt;/li&gt;
&lt;li&gt;Flattening an array&lt;/li&gt;
&lt;li&gt;Merging arrays&lt;/li&gt;
&lt;li&gt;Cloning Arrays&lt;/li&gt;
&lt;li&gt;The shorthand &lt;code&gt;for&lt;/code&gt; loop&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>shorthands</category>
      <category>javascript</category>
    </item>
    <item>
      <title>8 Projects you should make to take your React Game to the next level</title>
      <dc:creator>Shubhra Agarwal</dc:creator>
      <pubDate>Fri, 06 Aug 2021 06:10:52 +0000</pubDate>
      <link>https://forem.com/shubhracodes/8-projects-you-should-make-to-take-your-react-game-to-the-next-level-11pj</link>
      <guid>https://forem.com/shubhracodes/8-projects-you-should-make-to-take-your-react-game-to-the-next-level-11pj</guid>
      <description>&lt;p&gt;We all want to show off our skills in front of others.. Why not make some cool projects so that we also have evidence for our words!!&lt;/p&gt;

&lt;p&gt;Let's dive into these 8 projects that will help you improve your react skills...&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build a Photo Gallery with React and Firebase
&lt;/h3&gt;

&lt;p&gt;This tutorial teaches you how to create a photo gallery. The tutorial not only covers the basics and fundamentals of React but also shows you how to create your own custom hooks. Yes, custom hooks!&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build an Expense Tracker using React Hooks and Context API
&lt;/h3&gt;

&lt;p&gt;In this tutorial, create an Expense Tracker Application using React Hooks and Context API. Use this to track your expenses and never go broke again.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=XuFDcZABiDQ" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=XuFDcZABiDQ&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build Hangman with React by CodeSTACK
&lt;/h3&gt;

&lt;p&gt;In this tutorial, Brad builds a hangman game using codeStackr. A must watch for those looking to learn React basics, fundamentals and Hooks.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=jj0W8tYX_q8" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=jj0W8tYX_q8&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build an Exercise Tracker using React.js and Hooks
&lt;/h3&gt;

&lt;p&gt;In this video, You will be building a exercise tracker and you'll get to learn Hooks and React Router. Build this and go hang your own man😂😂😂&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=iqewbHLKkQk" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=iqewbHLKkQk&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ React.js Full Crash Course with a Meetups Project
&lt;/h3&gt;

&lt;p&gt;A crash course by Maximilian Schwarzmuller (Academind) that teaches you all the fundamentals of React.js. This tutorial also includes a project that uses Firebase as a database.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Dorf8i6lCuk" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Dorf8i6lCuk&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build a Weather Application
&lt;/h3&gt;

&lt;p&gt;This tutorial uses the Open Weather Map API to make calls to a restful api to return the current weather data. This uses the Modern Javascript Fetch AP along with React hooks and conditonals.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=GuA0_Z1llYU" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=GuA0_Z1llYU&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ Build a Todo Application in React.js
&lt;/h3&gt;

&lt;p&gt;DevEd shows you how to create a Todo Application in React.js&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=pCA4qpQDZD8" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=pCA4qpQDZD8&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑ How To Build A Better Spotify With React
&lt;/h3&gt;

&lt;p&gt;Spotify is pretty cool, but what if you could make a better version? In this video, you will create a Spotify clone that not only has many of Spotify's features but also includes lyric lookup.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Xcet6msf3eE" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Xcet6msf3eE&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>firebase</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
