<?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: Kaustav Banerjee</title>
    <description>The latest articles on DEV Community by Kaustav Banerjee (@kaustav1810).</description>
    <link>https://dev.to/kaustav1810</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%2F460803%2F28c0e510-83d8-4099-bf78-56aef87a930c.JPG</url>
      <title>DEV Community: Kaustav Banerjee</title>
      <link>https://dev.to/kaustav1810</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaustav1810"/>
    <language>en</language>
    <item>
      <title>Glam up your form using vanilla js!!</title>
      <dc:creator>Kaustav Banerjee</dc:creator>
      <pubDate>Sun, 31 Mar 2024 19:49:34 +0000</pubDate>
      <link>https://dev.to/kaustav1810/glam-up-your-form-using-vanilla-js-4356</link>
      <guid>https://dev.to/kaustav1810/glam-up-your-form-using-vanilla-js-4356</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for DEV Challenge v24.03.20, Glam Up My Markup: Camp Activities&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;What I Built&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;I've built an interactive form panel using CSS and Vanilla JS . Already provided with an HTML snippet for the form,I've added a nice simple UX for an user filling the form.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Demo&lt;/u&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/kaustav1810"&gt;
        kaustav1810
      &lt;/a&gt; / &lt;a href="https://github.com/kaustav1810/Glam_My_Markup"&gt;
        Glam_My_Markup
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h4&gt;
  
  
  Please view the live demo &lt;a href="https://kaustav1810.github.io/Glam_My_Markup/"&gt;here&lt;/a&gt; !!
&lt;/h4&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%2F80bk7j6z6qlc8z8x70f7.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%2F80bk7j6z6qlc8z8x70f7.png" alt="Form Snippet" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Journey&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;I learnt about many new CSS pseudoselectors such as &lt;strong&gt;:not ::after, ::before&lt;/strong&gt; among many others. Also I learnt about new dom manipulation techniques using vanilla js for add/update elements in the DOM TreeNode.&lt;/p&gt;

&lt;p&gt;Dev username: &lt;a class="mentioned-user" href="https://dev.to/kaustav1810"&gt;@kaustav1810&lt;/a&gt; &lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Turn a chicken wrap into css art!!</title>
      <dc:creator>Kaustav Banerjee</dc:creator>
      <pubDate>Mon, 25 Mar 2024 16:53:54 +0000</pubDate>
      <link>https://dev.to/kaustav1810/turn-a-chicken-wrap-into-css-art-2nhh</link>
      <guid>https://dev.to/kaustav1810/turn-a-chicken-wrap-into-css-art-2nhh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for DEV Challenge v24.03.20, CSS Art: Favorite Snack.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Who doesn't love a nice juicy mouth melting chicken wrap! We know it's absolutely delicous and to increase your appetite even further take a sneak peek &lt;a href="https://kaustav1810.github.io/CSS_Art_Challenge/"&gt;here&lt;/a&gt; at how I turned a chicken wrap to css art! wohoo!&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Code: &lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/kaustav1810"&gt;
        kaustav1810
      &lt;/a&gt; / &lt;a href="https://github.com/kaustav1810/CSS_Art_Challenge"&gt;
        CSS_Art_Challenge
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/h3&gt;

&lt;h3&gt;
  
  
  Live: &lt;a href="https://kaustav1810.github.io/CSS_Art_Challenge/"&gt;https://kaustav1810.github.io/CSS_Art_Challenge/&lt;/a&gt;
&lt;/h3&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%2Fhz7ez40s4tr29bwpcx5g.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%2Fhz7ez40s4tr29bwpcx5g.png" alt="screenshot" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;I learned about animation keyframes in vanilla css and also how to manage transitions.Proud of making this without writing a single line of Javascript(crazy ikr!!). Hoping to keep sharpening my css skills by building similar small projects and participating in challenges.&lt;/p&gt;

&lt;p&gt;Dev username: &lt;a class="mentioned-user" href="https://dev.to/kaustav1810"&gt;@kaustav1810&lt;/a&gt; &lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>All you need to know about Hoisting in Javascript</title>
      <dc:creator>Kaustav Banerjee</dc:creator>
      <pubDate>Mon, 28 Dec 2020 15:35:46 +0000</pubDate>
      <link>https://dev.to/kaustav1810/all-you-need-to-know-about-hoisting-in-javascript-4j6g</link>
      <guid>https://dev.to/kaustav1810/all-you-need-to-know-about-hoisting-in-javascript-4j6g</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Hi All,this is my 3rd blog.Really enjoying sharing my learning&lt;br&gt;
 through these blogs.This is my first blog where&lt;br&gt;
I am covering a purely technical topic!&lt;/p&gt;

&lt;p&gt;Javascript works very differently than many other programming languages.&lt;br&gt;
In certain aspects it works completely different than any other languages!.There are many typical concepts in JS and 'Hoisting' is just one of them.Here in this blog I have talked about&lt;br&gt;
how JS works in depth and what hoisting exactly is!&lt;/p&gt;
&lt;h3&gt;
  
  
  The Execution Context
&lt;/h3&gt;

&lt;p&gt;Before we move on to &lt;strong&gt;'hoisting'&lt;/strong&gt;,let us first understand what JS Execution Context is.&lt;br&gt;
I am sure many people are not aware of what it is.&lt;br&gt;
As a matter of fact,I did'nt know that such a thing existed until&lt;br&gt;
a few days back!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Execution context is the heart of any JS program!!&lt;/strong&gt; Even before our program starts it's execution,the execution context gets created in two phases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Memory Creation Phase&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Code Execution Phase&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let us see with a visual aid what this means.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1qAs0P6l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kixc0xbes7heh9izlqbu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1qAs0P6l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kixc0xbes7heh9izlqbu.png" alt="Javascript Execution Context"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the memory creation phase,memory is allocated to the variables and functions.&lt;strong&gt;In case of variables 'undefined' is allocated and in case of functions,the whole function definition itself&lt;/strong&gt;.Refer to the below code snippet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xaWtl4HN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ixwg26zl9a6ixoupdf73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xaWtl4HN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ixwg26zl9a6ixoupdf73.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What happens even before the above program starts executing?Well this is the state of the execution context before program execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IVlH56uc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6896dojuddmk4wc8m3vt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IVlH56uc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6896dojuddmk4wc8m3vt.png" alt="Execution Context(Stage I)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As discussed the variables &lt;strong&gt;'a'&lt;/strong&gt; and &lt;strong&gt;'b'&lt;/strong&gt; are assigned &lt;strong&gt;'undefined'&lt;/strong&gt;(which may be regarded as a placeholder) and the 2 functions fun1() and fun2() are assigned their own function definition only.All this happens in the memory creation phase.&lt;/p&gt;

&lt;p&gt;In the next step,i.e. in code execution phase when fun1() and fun2() gets called,&lt;strong&gt;a brand new execution context gets created&lt;/strong&gt; in the code area of the global execution context.These two child execution contexts also have the memory and code&lt;br&gt;
phase as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ho6gILxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g1c6xbcizsqub4d9crnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ho6gILxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g1c6xbcizsqub4d9crnu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As in global execution context,here also memory gets allocated for the local variables,parameters belonging to each function.If any nested function is present then the whole function definition is assigned to that particular function.&lt;/p&gt;

&lt;p&gt;Let's see what happens next.This is getting interesting already!&lt;/p&gt;

&lt;p&gt;The functions were called with arguments(&lt;strong&gt;a&lt;/strong&gt; &amp;amp; &lt;strong&gt;b&lt;/strong&gt;).So at first &lt;strong&gt;'undefined'&lt;/strong&gt; was stored in place of &lt;strong&gt;'x'&lt;/strong&gt; and &lt;strong&gt;'y'&lt;/strong&gt;,but in the next step the actual value gets allocated as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tKxbJDB_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g9t53eep0hlc2u7y05qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tKxbJDB_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g9t53eep0hlc2u7y05qf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After each function gets executed,the individual child execution contexts gets destroyed and control comes back to the parent execution context from where the functions were invoked(the global execution context in this case).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zZfP8Zoe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nu4ujkzt2vasz8q9ofvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zZfP8Zoe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nu4ujkzt2vasz8q9ofvp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally at the very end after program finished execution,the global execution context itself is destroyed and popped out from the call stack.&lt;/p&gt;

&lt;p&gt;Eww! Call Stack!? What is that!??&lt;/p&gt;

&lt;p&gt;Well,the call stack is where JS stores the different tasks to be performed in a particular program one after another.&lt;strong&gt;Call stack maintains the order of execution of execution contexts&lt;/strong&gt;.For our example program,the call stack would be something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tWrlldSu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x6i1xtktmrpiiaavobin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tWrlldSu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x6i1xtktmrpiiaavobin.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first the global execution context gets pushed into the stack as it is the starting point of the program.Then execution contexts of fun1() and fun2() are pushed respectively.&lt;/p&gt;

&lt;p&gt;This was all about the execution context.I know it's quite a lot at first but it is important to know before jumping into 'hoisting'.&lt;/p&gt;
&lt;h3&gt;
  
  
  Hoisting
&lt;/h3&gt;

&lt;p&gt;Now that we have seen what Execution Context is,let's deep dive into hoisting in JS.There is a common misconception that hoisting means &lt;em&gt;variables are moved at the top of the program or something&lt;/em&gt;.&lt;strong&gt;This is not true! Nothing gets moved to the top/bottom by JS!! It's all the magic of execution context!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---QlHsMTi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ynt6hq6q1q2irrmieb8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---QlHsMTi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ynt6hq6q1q2irrmieb8l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Refer to the above code snippet.What do you think will be the output?&lt;br&gt;
  .&lt;br&gt;
  .&lt;br&gt;
  .&lt;br&gt;
  .&lt;br&gt;
Surprise! Surprise! The output is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inside fun1!!
undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now why is that you may be wondering,well if you remember our good old friend execution context,even before the program starts execution, fun1() is assigned it's function definition and variable &lt;strong&gt;'x'&lt;/strong&gt; is assigned &lt;strong&gt;'undefined'&lt;/strong&gt;.So when fun1() gets called before initialization,it works perfectly....but printing &lt;strong&gt;'x'&lt;/strong&gt; gives &lt;strong&gt;'undefined'&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let's see another scenario...can you guess what happens in this case?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RUe_wG_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rbjvf1coockkdxs4l9xu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RUe_wG_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rbjvf1coockkdxs4l9xu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well it prints &lt;strong&gt;'undefined'&lt;/strong&gt; for &lt;strong&gt;'x'&lt;/strong&gt; but then when fun1() is called it throws &lt;strong&gt;'TypeError'&lt;/strong&gt;.This is because &lt;strong&gt;fun1&lt;/strong&gt; here acts like a variable only and thus initialized &lt;strong&gt;'undefined'&lt;/strong&gt; just like &lt;strong&gt;'x'&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bIhU0Ao2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p9hoft7vvkoyrw1u60jm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bIhU0Ao2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p9hoft7vvkoyrw1u60jm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is it! yes,this is only hoisting.All you have to understand is the execution context and that's all!!&lt;/p&gt;

&lt;p&gt;Well, you might now say that hoisting does not work on all JS objects.Like,&lt;strong&gt;'let'&lt;/strong&gt; and &lt;strong&gt;'const'&lt;/strong&gt; are not hoisted.Well,that is somewhat true and there is a reason behind that.&lt;/p&gt;

&lt;p&gt;Let's see the different type of JS variables!!&lt;/p&gt;

&lt;h3&gt;
  
  
  Let vs Var vs Const
&lt;/h3&gt;

&lt;p&gt;As many of us know,there are three types of JS variables(&lt;strong&gt;let&lt;/strong&gt;,&lt;strong&gt;var&lt;/strong&gt; &amp;amp; &lt;strong&gt;const&lt;/strong&gt;).&lt;br&gt;
While 'var' was there from beginning, 'let' and 'const' were introduced few years back to avoid this issue of hoisting.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;var:&lt;/strong&gt; This is simple.When a variable is declared with keyword 'var',it gets attached to the &lt;strong&gt;global scope&lt;/strong&gt;(the &lt;em&gt;'window'&lt;/em&gt; object).They can be reinitialized any no. of times and are hoisted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;let:&lt;/strong&gt; variables declared with 'let' are a little more strict.&lt;strong&gt;Redeclaration of these variables are stricly 'NO NO!' and will result in SyntaxError&lt;/strong&gt;.Also these variables are not attached to the global scope but in a separate scope alltogether(also referres to as the 'block scope').&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;const:&lt;/strong&gt; This is pretty much similar to 'let' only.Only that,unlike 'let' variables which can be initialized later,&lt;strong&gt;'const' variables must be initialized at the time of declaration only and can't be reinitialized&lt;/strong&gt;.This is also not present int the global scope but in a different scope like 'let'.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_-OKAoKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3ssqxythrxlibjd7jnxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_-OKAoKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3ssqxythrxlibjd7jnxb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hoisting in 'let' and 'const'
&lt;/h3&gt;

&lt;p&gt;Since 'let' and 'const' are present in a different scope alltogether,hoisting does not work in a similar way like with 'var' variables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FqPHWQ-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hvezkhfqwlc3pb6x094y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FqPHWQ-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hvezkhfqwlc3pb6x094y.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why does this happen?Well here also both &lt;strong&gt;'a'&lt;/strong&gt; and &lt;strong&gt;'b'&lt;/strong&gt; are assigned &lt;strong&gt;'undefined'&lt;/strong&gt; in the execution context.But since both are being accessed before initialization,they result in &lt;strong&gt;ReferenceError&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But with 'var' it was giving 'undefined' right? Not any 'ReferenceError'!&lt;/p&gt;

&lt;p&gt;Yes,and that's because for the time between the declaration of 'let' and 'const' variables till the time they get initialized,they are in so called &lt;strong&gt;'Temporal Dead Zone'&lt;/strong&gt; and thus inaccessible.As a result when we try to access these&lt;br&gt;
during temporal dead zone,it results in the famous &lt;strong&gt;'ReferenceError'&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's always a good practice to &lt;strong&gt;keep your initializations at the very top of your program&lt;/strong&gt; to avoid any unforeseen error.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Wow!! This was heavy!!😅 haha!! I hope it was helpfull to some extent.When I first learnt 'hoisting' I learned it in a very wrong way.Don't want anyone to face the same! &lt;strong&gt;Just remember nothing gets hoisted to the top or anywhere!! It is just the execution context.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hope you liked this.In my next blog I will try to cover another important concept in JS.Until then goodbye and thank you for taking the time to read!😊&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Beginners guide to programming</title>
      <dc:creator>Kaustav Banerjee</dc:creator>
      <pubDate>Mon, 09 Nov 2020 07:44:52 +0000</pubDate>
      <link>https://dev.to/kaustav1810/beginners-guide-to-programming-3aae</link>
      <guid>https://dev.to/kaustav1810/beginners-guide-to-programming-3aae</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hello,this is my second post.And in this one I have decided to talk about programming.Nothing in particular,just how you can start learning to code as a complete beginner.&lt;br&gt;
Well let’s be very frank,programming is difficult.As a matter of fact any new thing seems difficult at the beginning right?For someone like me even making poached egg can be difficult simply because I don’t visit my kitchen very often(except for munching on things from the fridge 😂).Anyways,the point is you will be good at something only when you are doing it on a regular basis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you should code?
&lt;/h2&gt;

&lt;p&gt;Yes,you read that right.Let’s talk about why one should be familiar with atleast the basics of programming even if he/she is not looking to choose a developer career.Well…coding is everywhere.Be it the social media you are scrolling on your smartphone(not to mention the smartphone itself!) or even the washing machine/air conditioner in your home.Everything is operating on some prewritten set of instructions(program) telling the machine what to be done. Infact the very website you are reading this blog on is running on code!&lt;br&gt;
As I mentioned,even if one chooses to never touch code again, learning about it can still be helpful. Everyone will be using technology in one way or other no matter what he/she wants to do in the future, and understanding how technology is created and developed is important. Do you want to make video games? Learning to program is a great start. If you want to be an artist, being able to create your own beautiful portfolio website can be helpful. There are lots of jobs that can use coding skills,but one can also make a program just for fun!&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start?
&lt;/h2&gt;

&lt;p&gt;This is possibly the most burning question among beginners.Where to possibly start!? There are so many resources be it youtube,online sites(like GFG,tutorialsPoint etc.) or even books! My answer would be a book(considering you are a beginner and looking to learn your first language!).There are many good books available which can get you started on any particular language you are looking to learn.Once you learn the basics you can then refer the internet for learning any additional topics on the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you practice?
&lt;/h2&gt;

&lt;p&gt;As I have mentioned,once you get comfortable with the syntax, try solving some very basic problems(textbook problems) like finding prime nos within a range or maybe finding the max/min element in an array.Write down the algorithm if you feel uncomfortable with writing the full code straightaway.Once you have figured out the steps to solve the problem,you can then easily wrap it inside syntax.&lt;br&gt;
Now don’t just stop there! Take a sample input,go through each step of your code and check on pen and paper whether your code gives the correct result(often called dry running the code).&lt;/p&gt;

&lt;p&gt;Now if you feel you are done and can move on to solving the next problem…that would be a mistake.Always and I repeat &lt;strong&gt;&lt;em&gt;always run your code on your machine&lt;/em&gt;&lt;/strong&gt; even if you feel pretty confident about the code you wrote.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to be good at this?
&lt;/h2&gt;

&lt;p&gt;Well let us talk about a scenario first.&lt;em&gt;Manu(fictional) a class five student is very afraid of Maths.Though he is able to manage other subjects, but somehow Maths tends to slip out of his grasps. To overcome this difficulty,his trainer proposed a quite simple solution. He asked him to do only two problems per day.But to do it everyday!. Manu listened to his trainer and very soon he could see the benefit himself! within a few months he started loving Maths more than any other subject!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hope you got the point.It’s not about whether you are able to solve the next difficult problem on the internet, but on solving two simple problems everyday. But to keep on doing it everyday! that’s the most important part. &lt;strong&gt;&lt;em&gt;Consistency is the key&lt;/em&gt;&lt;/strong&gt; and being good at something,anything requires enough practice.Right?&lt;/p&gt;

&lt;p&gt;While running code on your machine,you may wonder what might be the output if line X was omitted,or what if variable X was used instead of Y?Do that change and observe the output.Just by tweaking your code here and there you will be able to learn many concepts around your code!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“For the things we have to learn before we can do them, we learn by doing them.” ― Aristotle&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I hope this helped.Learning a new language can be very daunting and definitely difficult.But all you need to do is interact with it on a daily basis to overcome your fear! Just Do it!As a popular commercial says.&lt;/p&gt;

&lt;p&gt;Feel free to drop a message if you liked this one! In my next blog I will try to talk about something more technical. Until then goodbye!🤗&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Building Projects vs Doing the next online course.What should You Do?</title>
      <dc:creator>Kaustav Banerjee</dc:creator>
      <pubDate>Fri, 18 Sep 2020 16:01:36 +0000</pubDate>
      <link>https://dev.to/kaustav1810/building-projects-vs-doing-the-next-online-course-what-should-you-do-1d9i</link>
      <guid>https://dev.to/kaustav1810/building-projects-vs-doing-the-next-online-course-what-should-you-do-1d9i</guid>
      <description>&lt;p&gt;Hello All! This is the first time I am writing a blog!! This is completely new to me which makes it more interesting!!!&lt;br&gt;
Coming to the point straightaway,recently I have seen students debating over whether to do online courses on sites like Udemy,Coursera, Udacity etc. or to build projects on their own in order to gain a new skill. While this is a very common confusion among students let’s talk about the aspects of both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Online Courses
&lt;/h2&gt;

&lt;p&gt;Let’s talk about online courses.While sites like Udemy,Udacity etc. were already there from before, the online learning curve has seen a steep rise in this pandemic.While people are in their home,everyone is looking to use these sites to their advantage for learning new skills.Be it learning a new language or mastering the new framework currently in the market… curated courses are there for everything you are looking forward to learn!&lt;/p&gt;

&lt;h4&gt;
  
  
  CAN ONLINE COURSES MAKE YOU A MASTER?
&lt;/h4&gt;

&lt;p&gt;Well…truly you cannot be good at anything unless you give it a try.Online courses are good enough to introduce you to libraries, frameworks,the basics of a language.But unless you yourself go out there and explore more on your own it won’t benefit much.&lt;/p&gt;

&lt;h4&gt;
  
  
  ARE ONLINE COURSES WASTE OF MONEY THEN?
&lt;/h4&gt;

&lt;p&gt;No of course not.But learning every new course out there just for the sake of certificates definitely is.The job of these sites is to lure you into buying courses which sometimes may not be very useful for you.You yourself have to figure out what exactly you need which will help you get the initial boost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Projects
&lt;/h2&gt;

&lt;p&gt;As I was saying earlier,no matter how many courses you get yourself enrolled into,if you truly want to master something,practice is the only key.&lt;br&gt;
Building a project from scratch truly helps in strengthening your concept.You encounter thousands of difficulties…you search for the correct solution… you learn a lot of other things along the way.That’s how it should be.&lt;br&gt;
After completing a course,instead of jumping into another,take some time.Build something with what you have learnt.Read the docs of the library/framework you came to know about in the course.If a project was built in the course improvise on that.Knowledge is not much of use if you are not applying it.&lt;/p&gt;

&lt;h4&gt;
  
  
  WHAT SHOULD I DO THEN?
&lt;/h4&gt;

&lt;p&gt;Do what suits you better.Some people are pretty comfortable going through the documentation and building something from scratch right from the start,others(including me) find a course more helpful to begin with.Totally depends on you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thoughts
&lt;/h2&gt;

&lt;p&gt;I think I have made my point.While courses can be helpful to get you an introduction,only practice can make you better day by day.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;At the end of the day only one thing matters.&lt;strong&gt;PRACTICE!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Woah! It’s been quite a long post.Hope you liked it.Feel free to drop a message if you did.&lt;/p&gt;

</description>
      <category>selflearning</category>
      <category>codenewbie</category>
      <category>projects</category>
      <category>onlinecourses</category>
    </item>
  </channel>
</rss>
