<?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: Rajatt</title>
    <description>The latest articles on Forem by Rajatt (@rajatgangwani).</description>
    <link>https://forem.com/rajatgangwani</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%2F641513%2Fee3ff570-89e0-4918-8191-2e3e0afbbb62.JPG</url>
      <title>Forem: Rajatt</title>
      <link>https://forem.com/rajatgangwani</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rajatgangwani"/>
    <language>en</language>
    <item>
      <title>JAVASCRIPT : Hard to understand Concepts</title>
      <dc:creator>Rajatt</dc:creator>
      <pubDate>Fri, 08 Apr 2022 07:05:53 +0000</pubDate>
      <link>https://forem.com/rajatgangwani/javascript-important-concepts-54m3</link>
      <guid>https://forem.com/rajatgangwani/javascript-important-concepts-54m3</guid>
      <description>&lt;p&gt;We web developers either hate or love JAVASCRIPT.&lt;br&gt;
I am here to make you fall in love with it again.&lt;br&gt;
GOAL: To make you understand few concepts in an easy way.&lt;br&gt;
TOPICS COVERED -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HOISTING&lt;/li&gt;
&lt;li&gt;SCOPE-CHAIN&lt;/li&gt;
&lt;li&gt;CLOSURE&lt;/li&gt;
&lt;li&gt;EVENT LOOP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SO LET'S START:&lt;br&gt;
&lt;strong&gt;HOISTING&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AS PER MDN DOCS-&lt;br&gt;
JavaScript Hoisting refers to the process whereby the interpreter appears to move the declaration of functions, variables or classes to the top of their scope, prior to execution of the code.&lt;/p&gt;

&lt;p&gt;In Simple words - &lt;br&gt;
you just need to remember two &lt;em&gt;GOLDEN&lt;/em&gt; rules here-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Variable declarations are scanned and made undefined.&lt;/li&gt;
&lt;li&gt;Function declarations are scanned and are made available.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Elaboration -&lt;br&gt;
Every time a JS code is executed a Global execution context is created.&lt;br&gt;
This Global execution context scans our code and assigns variables(i.e var) as undefined and when it comes across a function it stores the whole function definition before even the function is executed. And for each function a separate execution context is created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;hey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hey!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayHey&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hey!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;hey&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sayHey&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the output will be as we imagine it to be.&lt;/p&gt;

&lt;p&gt;But what confuses a lot of people is -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;hey&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sayHey&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;hey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hey!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayHey&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hey!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here, the first will after executing of code will say "undefined";&lt;br&gt;
Javascript is executed line by line and surprisingly the function sayHey() works perfectly.&lt;/p&gt;

&lt;p&gt;one more point to note here is that as the last line of code is initializing a variable without declaring it.&lt;/p&gt;

&lt;p&gt;yes its completely possible in variable initialization but not recommended as good practices. &lt;/p&gt;

&lt;p&gt;Conclusion- &lt;br&gt;
Remember the two &lt;em&gt;Golden&lt;/em&gt; rules from above and you are good to go.&lt;/p&gt;

&lt;p&gt;Before ES6 there was no other way to declare variables other than var. &lt;br&gt;
ES6 brought us let and const.&lt;br&gt;
Now lets talk about &lt;strong&gt;let&lt;/strong&gt; and &lt;strong&gt;const&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every developer says let and const is &lt;em&gt;Blocked&lt;/em&gt; scoped.&lt;br&gt;
But few get it.&lt;br&gt;
so lets clear the confusion.&lt;br&gt;
The scope in javascript is defined as -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;//BLOCK_SCOPE&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;And now the second important point here is let and const are not stored in global execution context and are stored separately(i.e in Temporal Dead Zone)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(a)
let a = 2;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, you will get an error "Uncaught ReferenceError: a is not defined"&lt;/p&gt;

&lt;p&gt;And trust me its better than "undefined".&lt;/p&gt;

&lt;p&gt;Another side note here- &lt;br&gt;
const cannot be initialized without assigned to a value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SCOPE-CHAIN&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To understand this concept lemme tell you a short story and you will never forget the concept.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zQ5Hhsfk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xx2nl200btnc4slrb430.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQ5Hhsfk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xx2nl200btnc4slrb430.jpg" alt="Image description" width="681" height="404"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;a&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="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;So now lets begin - considering a ice-cream is being eaten by a kid now as per society norms we don't ask it from a kid rather if a grand father is eating it can be asked by his child or grand child as they will pass it but a grand father or father won't ask it from his child for ice-cream.&lt;br&gt;
So, in scope-chain runs in a similar way you can ask for the value of var/let/const from a bigger child to pass it to you but not from a smaller child.&lt;br&gt;
Here in our case Global Execution Context is a Grand Father and everything precedes in a similar fashion. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CLOSURE&lt;/strong&gt; &lt;br&gt;
Definition(MDN) - A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment). In other words, a closure gives you access to an outer function's scope from an inner function. In JavaScript, closures are created every time a function is created, at function creation time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;makeAdder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;add5&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;makeAdder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;add10&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;makeAdder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;add5&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;  &lt;span class="c1"&gt;// 7&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;add10&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// 12&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;After placing a debugger in line 2 &amp;amp; 3 we see in scope a closure is formed.&lt;br&gt;
Closure in simple terms is the lexical environment of its parent function. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RycrDpq7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oz9pw3ia2lies1eac8hl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RycrDpq7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oz9pw3ia2lies1eac8hl.png" alt="Image description" width="522" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EVENT LOOP&lt;/strong&gt;&lt;br&gt;
To understand event loop lets take a piece a code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;START&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;when will i execute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;END&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here, if i ask what will be the output majority will say - as the setTimeout() has a delay of 0 ms.&lt;br&gt;
the supposed output would be-&lt;br&gt;
START&lt;br&gt;
when will i execute&lt;br&gt;
END&lt;/p&gt;

&lt;p&gt;but that's not the case this is not how the callback works.&lt;br&gt;
as js code is executed line by line.&lt;br&gt;
as the js v8 engine see setTimout() it automatically goes to the next line and will execute it at the end.&lt;br&gt;
now after every executing the whole code now as the setTimeout func is a web API and the func inside it will go to callback queue and the event loop will now pass this func to the execution context only when the execution context gets empty.&lt;/p&gt;

&lt;p&gt;If you learned anything even a little bit.&lt;br&gt;
Drop a like and for any queries related to the post do drop a comment i will answer it.&lt;br&gt;
Thank you. :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>React JS How/where to Start ? : Best Way to learn React</title>
      <dc:creator>Rajatt</dc:creator>
      <pubDate>Wed, 02 Jun 2021 03:47:52 +0000</pubDate>
      <link>https://forem.com/rajatgangwani/react-js-how-where-to-start-best-way-to-learn-react-3n9l</link>
      <guid>https://forem.com/rajatgangwani/react-js-how-where-to-start-best-way-to-learn-react-3n9l</guid>
      <description>&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%2Fa9uek44unq7avid1yc0x.jpg" 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%2Fa9uek44unq7avid1yc0x.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to share my experience as I coded my way from being a noob to an intermediate developer.&lt;br&gt;
when we learn programming its all about docs(documentation) and practice.&lt;br&gt;
Its like building our muscle memory to retain most of the syntax and understand the concepts pretty well by practicing and finding divergent use case scenarios where the concept can fit.&lt;br&gt;
I personally love the environment where we can understand the concepts of programming paradigm and practice it there itself i.e. in an interactive environment.&lt;br&gt;
Although React in itself is a small library. Its weight is more over carried by npm packages.&lt;br&gt;
Now, moving over to the resources-&lt;/p&gt;

&lt;p&gt;First of all to simplify how react works i would suggest a small course which will make you think how amazing a library can be.&lt;br&gt;
This two-and-half hour course would clear your concepts how react works on the foreground.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://egghead.io/courses/the-beginner-s-guide-to-react" rel="noopener noreferrer"&gt;https://egghead.io/courses/the-beginner-s-guide-to-react&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;It's a beginner friendly guide.&lt;/p&gt;

&lt;p&gt;Next to make our learning process more interactive this platform offers us an amazing interaction where you can just pause the video and start writing code.&lt;/p&gt;

&lt;p&gt;This four-hour free react course lets you play around while understanding concepts and makes you practice on the go.&lt;br&gt;
MOST RECOMMENDED.&lt;/p&gt;

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

&lt;p&gt;It offers various other free/paid courses you can check-out.&lt;/p&gt;

&lt;p&gt;Now moving on to one of the most insanely recommended course you can find on the internet on react is Epic-react by Kent C. Dodds. &lt;br&gt;
It clears your fundamentals from basic level.&lt;br&gt;
Moreover, the course is designed as a gameplay where different emoji's are used to communicate while practicing and the interface of the course is amazing.&lt;/p&gt;

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

&lt;p&gt;Being an Indian how can i not recommend you the course offered by one of my all time favorite mentor - "Hitesh Choudhary"&lt;br&gt;
I would like to say his course is worth every penny spent and if you are getting a course for as low as $3 with more than 7 projects deployment and also ISO certification what else you need. Here you can post your doubts and get it solved quickly. Moreover Hitesh sir provides a free JavaScript course where he has covered more of the ES6 concepts and in a much simplified way. You should check out his courses once.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://courses.learncodeonline.in/learn/Complete-ReactJS-developer-Bootcamp" rel="noopener noreferrer"&gt;https://courses.learncodeonline.in/learn/Complete-ReactJS-developer-Bootcamp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is one last resource that i would like to share and is absolutely free and interactive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freecodecamp.org/learn/front-end-libraries/#react" rel="noopener noreferrer"&gt;https://www.freecodecamp.org/learn/front-end-libraries/#react&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;freecodecamp.org offers free courses and gives you an assignment where you have to code five projects by following the instructions provided in order to get yourself certified for free.&lt;/p&gt;

&lt;p&gt;And on the side note i ain't providing any affiliate links just sharing my journey and how i was able to learn React efficiently. &lt;/p&gt;

&lt;p&gt;All these resources helped me become a better React JS developer.&lt;/p&gt;

&lt;p&gt;Hope you like it.&lt;/p&gt;

&lt;p&gt;Do comment if you find it helpful.&lt;/p&gt;

&lt;h5&gt;
  
  
  Some quick Points to keep in mind while learning -
&lt;/h5&gt;

&lt;p&gt;1.)Focus more on understanding the concept.&lt;br&gt;
2.)Practice Practice Practice.&lt;br&gt;
3.)Code on the go.&lt;br&gt;
4.)Documentation is the key.&lt;br&gt;
5.)Patience is the most essential mantra.&lt;br&gt;
6.)Debugging is a part of learning.&lt;/p&gt;

&lt;p&gt;Finally, i would like to conclude by saying most of the aspiring learners fall in a trap of courses as there are plethora of resources available on internet these days.&lt;br&gt;
To be precise it is called "TUTORIAL HELL".&lt;br&gt;
To avoid this focus on the concept and find more use-case scenarios where the concepts can be applied and work around your way by writing more and more code.&lt;br&gt;
THANKYOU. &lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
