<?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: Humza Hasan</title>
    <description>The latest articles on DEV Community by Humza Hasan (@thehumzahasan).</description>
    <link>https://dev.to/thehumzahasan</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%2F384195%2F958c68c5-b6f9-42f7-b498-4305ba1feb1a.jpeg</url>
      <title>DEV Community: Humza Hasan</title>
      <link>https://dev.to/thehumzahasan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thehumzahasan"/>
    <language>en</language>
    <item>
      <title>Code Splitting in React</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Wed, 11 May 2022 12:01:35 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/code-splitting-in-react-3ink</link>
      <guid>https://dev.to/thehumzahasan/code-splitting-in-react-3ink</guid>
      <description>&lt;p&gt;If you are someone like me who has just finished few projects in React and got his/her hand dirty with hooks, state management, etc. Your next stop should be &lt;strong&gt;performance&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;WHY ?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I don't know about you but a slow website me make sometimes wanna do this 👇&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4lsqzVUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8xl9ejme70umu8xe05s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4lsqzVUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8xl9ejme70umu8xe05s.gif" alt="Slow computer" width="498" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So without further adieu, lets get started!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So before jumping into "What is Code Splitting in React?", let's first understand why do we need this at all.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Traditionally in React, all components code are bundled into one single bundle.js file with the help of bundler such as Webpack, Rollup, etc. This helps the application to download the entire app code at once and eliminate the need of making further subsequent HTTP request. But the drawback here is as and when the application grows, so does the size of the bundle file which leads to a longer initial load time. To solve this problem Code Splitting was introduced in React.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Code Splitting is a feature where we can create multiple bundles that can be dynamically loaded on runtime. This helps us to &lt;code&gt;lazy load&lt;/code&gt; just the things that are currently needed by the user, which can dramatically improve the performance of your app.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Few common methods of Code Splitting in React are as follows:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic Export&lt;/li&gt;
&lt;li&gt;Lazy Loading&lt;/li&gt;
&lt;li&gt;Route-based code splitting&lt;/li&gt;
&lt;li&gt;Named Export &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;With the help of these techniques we don't reduce the number of lines of code in our app but we avoid loading code that the user may never need, and reduced the amount of code needed during the initial load, thus helping us &lt;code&gt;improve the overall performance of the app&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V4hLBb2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bhhfz60fkgxaawloni1l.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V4hLBb2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bhhfz60fkgxaawloni1l.gif" alt="Splitting" width="356" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also check out these amazing resources for in-depth understanding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/docs/code-splitting.html"&gt;React Official Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.logrocket.com/code-splitting-in-react-an-overview/"&gt;LogRocket Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Don't Know JS Yet: Hoisting</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Tue, 10 Nov 2020 18:11:56 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/i-don-t-know-js-yet-hoisting-4c0j</link>
      <guid>https://dev.to/thehumzahasan/i-don-t-know-js-yet-hoisting-4c0j</guid>
      <description>&lt;p&gt;In the &lt;a href="https://dev.to/thehumzahasan/i-don-t-know-js-yet-declaration-and-scope-4hpf"&gt;last post&lt;/a&gt;, we discussed the concept of declaration and scope of a variable in javascript. But what if we end up using a variable or a function before its declaration. That's where hoisting comes into play.&lt;/p&gt;

&lt;p&gt;In simple word, &lt;strong&gt;Hoisting is a Javascript behaviour of moving all the declarations to the top of the current scope&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Variable Hoisting&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Let's visualize this with a small code snippet, the below code can be treated as a low-level example of hoisting.&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;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;I will be hoisted&lt;/span&gt;&lt;span class="dl"&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;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;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code is internally converted by JS execution context to the below snippet&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;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;I will be hoisted&lt;/span&gt;&lt;span class="dl"&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;x&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 in both the case will be&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;I&lt;/span&gt; &lt;span class="nx"&gt;will&lt;/span&gt; &lt;span class="nx"&gt;be&lt;/span&gt; &lt;span class="nx"&gt;hoisted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thus we are safe in saying that the variable defined with &lt;strong&gt;'var'&lt;/strong&gt;, have their declaration hoisted to the top of their present scope.&lt;/p&gt;

&lt;p&gt;Now let's take another example to explore the concept of hoisting in a bit more depth.&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;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&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;x&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;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&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;x&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="cm"&gt;/*Output:
5
undefined
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we have a look at the output we would see the first console statement giving us '5', but the second console will give us 'undefined'. This is because as mentioned, in hoisting only the declaration are hoisted to the top of the scope but the initializations are not hoisted. &lt;/p&gt;

&lt;p&gt;So in this example, although when the compiler encounters the &lt;em&gt;console.log(y)&lt;/em&gt; statement, it hoists the variable declaration to the top, the variable is still not initialized. &lt;/p&gt;

&lt;p&gt;The above code can be thought of the following:&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;x&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;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&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;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;//5&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;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;//undefined&lt;/span&gt;
&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;In Hoisitng, only the declaration is hoisted to the top and not the initialization.&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;We have seen that the variables declared with 'var' are hoisted, but when you come to 'let' and 'const', it's a different story!&lt;/p&gt;

&lt;p&gt;Let's take a look at these code snippets to get a better understanding.&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="cm"&gt;/*Scenario 1*/&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9&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;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Error : Uncaught ReferenceError: Cannot access 'x' before initialization&lt;/span&gt;

&lt;span class="cm"&gt;/*Scenario 2*/&lt;/span&gt;
&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9&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;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;//Error : Uncaught SyntaxError: Missing initializer in const declaration&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So it's safe to say that only variable declared with &lt;em&gt;var&lt;/em&gt; are hoisted to the top of the scope but the variables declared with &lt;em&gt;let&lt;/em&gt; and &lt;em&gt;const&lt;/em&gt; aren't. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Function Hoisting&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Although both are called hoisting, function hoisting is different from variable hoisitng. In &lt;strong&gt;Function Hoisitng, not just the function name is hoisted but also the actual function definition is hoisted.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's take a quick look at the following code snippet,&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;isItHoisted&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;isItHoisted&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yes!&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This internally means same 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="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;isItHoisted&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yes!&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;isItHoisted&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above snippet will result in &lt;em&gt;'Yes!'&lt;/em&gt;, because in the first case even though we call the function first and then declare it, internally the definition is hoisted and to the top and then it's called. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;An important note which be should take is the fact that only function definition can be hoisted and not function expression.&lt;/em&gt; &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>I Don't Know JS Yet: Declaration and Scope</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Sun, 01 Nov 2020 18:05:57 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/i-don-t-know-js-yet-declaration-and-scope-4hpf</link>
      <guid>https://dev.to/thehumzahasan/i-don-t-know-js-yet-declaration-and-scope-4hpf</guid>
      <description>&lt;p&gt;In this first article of the series &lt;strong&gt;&lt;a href="https://dev.to/thehumzahasan/i-don-t-know-js-yet-1fhc"&gt;'I Don't Know JS Yet'&lt;/a&gt; '&lt;/strong&gt;, we will be looking at the various types of variable declaration along with their scope inside a particular program.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Declaration and Scope&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Pre ES6 we only had the &lt;strong&gt;'var'&lt;/strong&gt; keyword available to us for declaration of variables inside a javascript program, which was said to be &lt;strong&gt;function-scoped&lt;/strong&gt;. But after the release of ES6, we got two new keywords &lt;strong&gt;'let'&lt;/strong&gt; and &lt;strong&gt;'const'&lt;/strong&gt; for variables declaration which is said to be &lt;strong&gt;block-scoped&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To understand the difference between function scoped and block-scoped, let's look at the below two snippets of code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l7aDV2_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.popsugar-assets.com/files/thumbor/AOEG86oqgN7qR9GUXpVnEoMgQto/fit-in/1024x1024/filters:format_auto-%21%21-:strip_icc-%21%21-/2015/04/21/871/n/1922283/4ed5e81f2817033c_cap-leader-1424968038/i/Chris-Evans-Captain-America-GIFs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l7aDV2_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.popsugar-assets.com/files/thumbor/AOEG86oqgN7qR9GUXpVnEoMgQto/fit-in/1024x1024/filters:format_auto-%21%21-:strip_icc-%21%21-/2015/04/21/871/n/1922283/4ed5e81f2817033c_cap-leader-1424968038/i/Chris-Evans-Captain-America-GIFs.gif" alt="Aye aye cap" width="500" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  👇&lt;em&gt;Function scoped behaviour of var&lt;/em&gt;
&lt;/h4&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;fname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Captain&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;//Global Scope&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;displayN&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;lname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;America&lt;/span&gt;&lt;span class="dl"&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&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;displayN&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;//ReferenceError: lname is not defined&lt;/span&gt;

&lt;span class="cm"&gt;/*
Output:
Captain America 
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Explanation 👉*When the program executes the first variable 'fname' is defined in the global scope (i.e, it is accessible throughout the program) and then the function displayN() is declared and called. Inside this function, the 'lname' variable is declared and accessible only inside the function and any attempt to call it outside the function will result in *'ReferenceError'&lt;/em&gt;.    &lt;/p&gt;

&lt;h4&gt;
  
  
  🛑Note: Variable defined with 'var' in the global scope as well as inside a function scope can be updated at any point of the program.
&lt;/h4&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qqlGxyPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://images6.fanpop.com/image/photos/42500000/Captain-Marvel-GIF-marvels-captain-marvel-42588203-540-268.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qqlGxyPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://images6.fanpop.com/image/photos/42500000/Captain-Marvel-GIF-marvels-captain-marvel-42588203-540-268.gif" alt="Marvel" width="540" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  👇&lt;em&gt;Block scoped behaviour of let &amp;amp;const&lt;/em&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Captain&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//Global Scope&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Red and Blue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;//Global Scope&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;superHero&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;lname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Marvel&lt;/span&gt;&lt;span class="dl"&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;58&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; was &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years old.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;59&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years old.`&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years old.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//ReferenceError: age is not defined&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;superHero&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; loves &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Green&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;//TypeError: Assignment to constant variable.&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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;lname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; `&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;//ReferenceError: lname is not defined&lt;/span&gt;
&lt;span class="cm"&gt;/*
Output:
Captain Marvel
Captain Marvel was 58 years old.
Captain Marvel is 58 years old.
Captain loves Red and Blue.
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*Explanation 👉*When the above snippet runs, the first two variables are declared using 'let' and 'const' respectively. The only difference is that once you’ve assigned a value to a variable using const, you can’t reassign it to a new value. &lt;/p&gt;

&lt;p&gt;Continuing further, we declare a function superHero() and call it, which has the variable 'lname' defined inside it making it block-scoped along with 'age' inside another block. Both these variables are only accessible inside their particular block and any attempt to call them outside the defined block will result in &lt;em&gt;'ReferenceError'&lt;/em&gt;.*    &lt;/p&gt;

&lt;h4&gt;
  
  
  🛑Note: Variable defined with 'let' in the global scope or inside a block can be updated at any point of the program whereas 'const' type of variable's value can't be updated as those values are assumed to be constants.
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Quick Snapshot&lt;/strong&gt;
&lt;/h4&gt;

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




&lt;p&gt;Let's Connect on &lt;a href="https://www.linkedin.com/in/humzahasannit/"&gt;LinkedIn&lt;/a&gt; || Follow me on &lt;a href="https://www.instagram.com/codewithbravopy/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>es6</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>I Don't Know JS Yet (Weekly Updated)</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Fri, 30 Oct 2020 12:18:27 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/i-don-t-know-js-yet-1fhc</link>
      <guid>https://dev.to/thehumzahasan/i-don-t-know-js-yet-1fhc</guid>
      <description>&lt;p&gt;When I started my &lt;strong&gt;web development journey&lt;/strong&gt;(roughly 2 years ago), my &lt;strong&gt;first experience&lt;/strong&gt; was with &lt;strong&gt;legacy codebase with pre-ES6 syntax&lt;/strong&gt;. It was ok-ish to honest cause I had no idea about the existence of ES6+ syntax.&lt;/p&gt;

&lt;p&gt;Fast forward to today where ES6 is pretty much the benchmark, and after doing a dozen of projects using Vanilla JS(using ES5 and ES6+ syntax) with intermediate experience in ReactJS as well. &lt;strong&gt;I decided to jot down my learnings in this Series 'I Don't Know JS Yet'&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Head over to the below articles where we start from the stepping stone of Javascript and move our way towards intermediate level 👇 &lt;/p&gt;

&lt;p&gt;👉&lt;a href="https://dev.to/thehumzahasan/i-don-t-know-js-yet-declaration-and-scope-4hpf"&gt;Declaration and Scope&lt;/a&gt; &lt;strong&gt;(Published)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉&lt;a href="https://dev.to/thehumzahasan/i-don-t-know-js-yet-hoisting-4c0j"&gt;Hoisting&lt;/a&gt; &lt;strong&gt;(Published)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🤚Next article publishing soon.&lt;/p&gt;

&lt;p&gt;Follow me to get notified as soon as I publish an article in this series.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/codewithbravopy"&gt;Hit Me up on Instagram&lt;/a&gt; or &lt;a href="https://www.linkedin.com/in/humzahasannit/"&gt;Let's Connect on LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>es6</category>
    </item>
    <item>
      <title>How does the Internet work?</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Sat, 01 Aug 2020 15:13:27 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/how-does-the-internet-work-1oo3</link>
      <guid>https://dev.to/thehumzahasan/how-does-the-internet-work-1oo3</guid>
      <description>&lt;p&gt;We all have been using the &lt;strong&gt;Internet in our daily life for communicating, streaming, trading, shopping, sharing, travelling, etc purposes to name a few&lt;/strong&gt;. Our lives have been revolving around the usage of the internet where on &lt;strong&gt;average a person uses 31.4 GB per month&lt;/strong&gt; (as per The NPD Group Market Analysis) which is at almost 25% increase from the data collected the last year.  Another report suggests &lt;strong&gt;users spend around 2 hours on average per day on social media&lt;/strong&gt; and is &lt;strong&gt;nearly 4 hours on average active on the internet&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Since we are so much depended on the internet, let's dive deeper into the world of the internet and explore how the internet actually works! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's start with our favourite Browser first.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fov429lvn1msq4zsv1dzo.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%2Fi%2Fov429lvn1msq4zsv1dzo.png" alt="Browser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A browser is a software application used to &lt;strong&gt;makes a request to the server using URL's and then render the response data&lt;/strong&gt;. The modern browsers can also interpret and run code written by other applications too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The next big word is URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uniform Resource Locator or URL&lt;/strong&gt; as we commonly know it, helps us to find the server and render the resource of the server. &lt;strong&gt;A URL is a heterogeneous combination of protocols, hostname, path and query string(if any).&lt;/strong&gt; Each URL is mapped with a unique IP address of its own. This &lt;strong&gt;IP address is then passed onto the DNS&lt;/strong&gt; which takes the IP address and &lt;strong&gt;looks up in different servers&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fx30hlih6caw7xp3j4ps4.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%2Fi%2Fx30hlih6caw7xp3j4ps4.png" alt="URL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This brings us to the next set of fancy terms, which is DNS and IP Address.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DNS or Domain Name Server is responsible for converting the human-readable URL (eg: &lt;a href="https://codingdeck.com/" rel="noopener noreferrer"&gt;https://codingdeck.com/&lt;/a&gt;) into machine-readable IP Address(eg: 104.24.123.112).&lt;/strong&gt; This is possible because the DNS system works like a phonebook which maps the name with the number. This entire process is popularly known as &lt;strong&gt;DNS Lookup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frgntbxapjzwbcz3eu4vg.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%2Fi%2Frgntbxapjzwbcz3eu4vg.png" alt="DNS Lookup"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's take up these fancy numbers which we called IP Address earlier. &lt;strong&gt;Each computer in order to communicate with other machines over the internet has been allotted with a unique identity which we call as IP address&lt;/strong&gt;. We can think of IP address as the physical address where each computer or website resides and in order to visit them, we have to go to their address.&lt;/p&gt;

&lt;p&gt;This brings us to the last stage were &lt;strong&gt;using the IP address we hit the Web Server and get back the response data rendered in our browser&lt;/strong&gt;, which is nothing but the website we were trying to access. &lt;/p&gt;

&lt;p&gt;This, in short, is how the internet works in the background when we try to access a website or web application from our devices. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>internet</category>
      <category>network</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Getting started with Git and Github</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Wed, 17 Jun 2020 17:49:45 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/git-cheat-sheet-3jn4</link>
      <guid>https://dev.to/thehumzahasan/git-cheat-sheet-3jn4</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Steps for working on a new Project from scratch&lt;/strong&gt;:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Precondition: You have already created a Github repository to commit codes to.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;git init&lt;/strong&gt; (Initialize git repository)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;git status&lt;/strong&gt; (check for untracked and tracked files)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;git add .&lt;/strong&gt; (for all files) or &lt;strong&gt;git add {filename}.&lt;/strong&gt; (for a specific file)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;git commit -m “message”&lt;/strong&gt; (save changes to the local repository)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;git remote add origin {remote url}&lt;/strong&gt; (connecting to Github repository)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;git push origin master&lt;/strong&gt; or &lt;strong&gt;git push origin {branchname}&lt;/strong&gt; (pushing code from local to remote master branch or other named branch)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : &lt;em&gt;Please remember not to work on the master branch directly, always create different branches for different purposes.&lt;/em&gt; To work on branch use the following command always before adding codes to the staging area:&lt;br&gt;
&lt;strong&gt;git checkout -b {branchname}&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Steps to start working with other's repository and contributing&lt;/strong&gt;:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Precondition: Fork the repository in Github which you want to contribute to.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git clone {remoteurl}&lt;/strong&gt; (Clones your fork repository in local. For first time user) &lt;br&gt;
or &lt;br&gt;
&lt;strong&gt;git pull {original_repo_url} master&lt;/strong&gt; (To always pull the latest code from main repository, from second time don't clone but pull)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git checkout -b {branchname}&lt;/strong&gt; (Change the branch from master to other)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git add .&lt;/strong&gt; or &lt;strong&gt;git add {filename}&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git commit -m “message”&lt;/strong&gt; (save changes to the local repository)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git remote add origin {remote url}&lt;/strong&gt; (connecting to Github repository)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;git push origin {branchname}&lt;/strong&gt; (pushing code from local to remote branch)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NOTE: &lt;strong&gt;Post push request go to Github and create a pull request so that your changes can be added to the main program and be viewed by others too.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>codenewbie</category>
      <category>versioncontrol</category>
    </item>
    <item>
      <title>API 101</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Sun, 07 Jun 2020 11:20:40 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/api-101-d43</link>
      <guid>https://dev.to/thehumzahasan/api-101-d43</guid>
      <description>&lt;p&gt;&lt;strong&gt;API or Application Programming Interface&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;is a software intermediary that allows two applications to talk to each other.&lt;/em&gt;&lt;/strong&gt; In simple words API is a software which helps you get your end result according to your need without worrying what process happens in the backend. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT1Ra3wTO48NvrgVY4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT1Ra3wTO48NvrgVY4/giphy.gif" alt="Catering"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, the &lt;em&gt;waiter&lt;/em&gt; of a restaurant you visit caters to your need by providing you the menu card, taking your order, serving your food and finally giving you the bill. You don't have to worry about how the food is getting prepared, you don't have to go to the kitchen to collect it nor you have to do the calculation of the bill. The waiter here serves the purpose of API between you and the restaurant, who does all the work without exposing you the detailed process which happens in the behind the kitchen doors.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Types of API&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Based on Ownership&lt;/strong&gt; - Public API, Partner API, Internal API, Composite API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Based on Protocols&lt;/strong&gt; - Rest, SOAP, RPC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Based on Categorized&lt;/strong&gt; - Data API, Internal Service API, External Service API, User Experience API &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Based on Communication Level&lt;/strong&gt; - High level abrstraction, Low level abstraction &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.reactiongifs.com%2Fwp-content%2Fuploads%2F2012%2F12%2Ftoo-much.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.reactiongifs.com%2Fwp-content%2Fuploads%2F2012%2F12%2Ftoo-much.gif" alt="Too Much"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article we will be looking into the first two types, i.e, Based on Ownership and Based on Protocols.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Based on Ownership&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Public API&lt;/strong&gt; - Also known as Open API, are those APIs which are publically available for use without any restriction to access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Private API&lt;/strong&gt; - In this type of API a developer needs specific rights or licenses in order to access as they are not available to the public.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Internal API&lt;/strong&gt; - These types of API are used internally inside an organization. It can be used to different teams internally to improve its product and services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Composite API&lt;/strong&gt; - In this type of API design we approach to batch API requests sequentially into a single API call. Rather than multiple round trips to a server, a client can make one API request with a chain of calls and receive one response.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Based on Protocols&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SOAP&lt;/strong&gt; - SOAP – Simple Object Access Protocol – is probably the better known of the two models.SOAP relies heavily on XML, and together with schemas, defines a very strongly typed messaging framework.Every operation the service provides is explicitly defined, along with the XML structure of the request and response for that operation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;REST&lt;/strong&gt; - REST&lt;br&gt;
REST – stands for Representational State Transfer. It is a software architecture style that relies on a stateless communications protocol, most commonly, HTTP. REST structures data in XML, YAML, or any other format that is machine-readable, but usually JSON is most widely used. REST follows the object-oriented programming paradigm of noun-verb. REST is very data-driven, compared to SOAP, which is strongly function-driven. You may see people refer to them as RESTful APIs or RESTful web services. They mean the same thing and can be interchangeable. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Resources&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://public-apis.xyz/" rel="noopener noreferrer"&gt;Public API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rapidapi.com/" rel="noopener noreferrer"&gt;Rapid API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.rapidapi.com/docs/private-apis-api-logo" rel="noopener noreferrer"&gt;Private API&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Array Operation with Javascript</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Wed, 03 Jun 2020 07:22:19 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/array-operation-with-javascript-3bc</link>
      <guid>https://dev.to/thehumzahasan/array-operation-with-javascript-3bc</guid>
      <description>&lt;p&gt;In this article, we will be discussing the various functionalities offered by Javascript for Arrays. We will be starting with the basic Javascript functionalities along with some new features added in ES6.&lt;br&gt;
So it’s almost summer and I guess fruits gonna be the best array name to start our experiments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Writing this article to serve the purpose of quick revision through most of the array features offered by Javascript.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Array Declaration&lt;/em&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;let&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output :[ ‘mango’, ‘apple’ ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Array length&lt;/em&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;let&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&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;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output : 2 &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Adding element at the end of the array&lt;/em&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="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;watermelon&lt;/span&gt;&lt;span class="err"&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output : [ ‘mango’, ‘apple’, ‘watermelon’ ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Deleting element from the end of the array&lt;/em&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="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pop&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ ‘mango’, ‘apple’ ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Deleting element from the start of the array&lt;/em&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="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;shift&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ ‘apple’ ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Adding element at the start of the array&lt;/em&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="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;unshift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="err"&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ ‘banana’, ‘apple’ ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Slicing Array into parts&lt;/em&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="nx"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;45&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fristTwo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;slice&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="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;fristTwo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [12, 31]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Sort numeric array&lt;/em&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="nx"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;45&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="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="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;Original&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;numberSort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sort&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;b&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="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="c1"&gt;// return b-a for decending order&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="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;Sorted&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;numberSort&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="cm"&gt;/*Output:
Original Array: 12,31,23,76,3,9,45,2
Sorted Array: 2,3,9,12,23,31,45,76 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Sort array alphabetically&lt;/em&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="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;watermelon&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruitSort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sort&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;fruitSort&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ 'apple', 'banana', 'mango', 'watermelon' ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Reversing Array&lt;/em&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="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;watermelon&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reverse&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;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ 'banana', 'watermelon', 'apple', 'mango' ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Array Iteration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Looping through array using forEach&lt;/em&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="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;watermelon&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;index&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="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="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is at index &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; in the array`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="cm"&gt;/*Output:
mango is at index 0 in the array
apple is at index 1 in the array
watermelon is at index 2 in the array
banana is at index 3 in the array */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Filtering array according to the requirement&lt;/em&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;let&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;45&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;evennumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&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="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="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;Original&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;numbers&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="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;Filtered&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;evennumber&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="cm"&gt;/*Output:
Original Array: 12,31,23,76,3,9,45,2
Filtered Array: 12,76,2 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Modifying array according to requirement&lt;/em&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;let&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;45&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;timeTwo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;number&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="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;Original&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;numbers&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="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;Modified&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;timeTwo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="cm"&gt;/*Output:
Original Array: 12,31,23,76,3,9,45,2
Modified Array: 24,62,46,152,6,18,90,4 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Array to String&lt;/em&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="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;apple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;banana&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mango&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;watermelon&lt;/span&gt;&lt;span class="dl"&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;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;//Output: apple,banana,mango,watermelon&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Concatenation of two array&lt;/em&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;let&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;apple&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;mango&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;banana&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;veggies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;potato&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;onion&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nx"&gt;spinach&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;food&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;veggies&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;food&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;//Output: [ 'apple', 'mango', 'banana', 'potato', 'onion', 'spinach' ]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To be updated soon with few more functionalities of Array&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>array</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>React 101</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Mon, 01 Jun 2020 06:35:36 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/react-101-541b</link>
      <guid>https://dev.to/thehumzahasan/react-101-541b</guid>
      <description>&lt;p&gt;Welcome to the fifth article of &lt;em&gt;'The Learning's 101' series&lt;/em&gt;. I am at &lt;strong&gt;Day 99 of 100DaysOfCode challenge&lt;/strong&gt;. Pretty happy with the entire journey, this is going to be the second last article for this series!&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%2Fimages.indianexpress.com%2F2016%2F02%2Ffacebook-reactions-820.jpg%3Fw%3D350" 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%2Fimages.indianexpress.com%2F2016%2F02%2Ffacebook-reactions-820.jpg%3Fw%3D350" alt="Let's React"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;So Let's React&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;React is an open-source Javascript library for building user interface&lt;/strong&gt; originally introduced by Facebook in the year 2013. React now is maintained by Facebook and a community of individual developers and companies.&lt;/p&gt;

&lt;p&gt;Before Reactjs, developers were occupied building UI the hard way using Vanilla JS or with jQuery. But the development was slow, with plenty of bugs and errors as both of the said technology were not very UI centric.&lt;br&gt;&lt;br&gt;
That's when &lt;em&gt;Facebook engineer Jordan Walke created&lt;/em&gt; &lt;strong&gt;React JS specifically to improve UI development&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So let's dive deeper into the world of React and start of with the fundamental piece of any React application, the &lt;strong&gt;component&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Component&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A component is a piece of the user interface. So when we talk about a React application, we mean a bunch of components working together to form a seamless experience. For example,&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%2Fgithub.com%2Fhumzahasan%2FDev.to-Images%2Fblob%2Fmaster%2Ftwitter.png%3Fraw%3Dtrue" 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%2Fgithub.com%2Fhumzahasan%2FDev.to-Images%2Fblob%2Fmaster%2Ftwitter.png%3Fraw%3Dtrue" alt="Twitter"&gt;&lt;/a&gt;&lt;br&gt;
if you see in the picture above, you can see a bunch of components such as Profile component(grey box), Vertical Navigation Bar(red box), Media component(green box),etc. All this together form the parent component which is called the &lt;strong&gt;App component&lt;/strong&gt; which is basically your entire Twitter Application.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When you design a react application you start with identifying different components you have then slowly integrating each small components inside the App component to get the final application.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hope this gave you an overview about react applications and components, now let us look into two big words which react brings along , &lt;em&gt;JSX&lt;/em&gt; and &lt;em&gt;Virtual DOM&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;JSX&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;JSX or Javascript Extension is a syntax used by React which allows you to write Javascript code which looks like HTML. This combined syntax of HTML like text co-existing with Javascript, is then used by preprocessor  (i.e., transpilers like Babel) to transform into standard JavaScript objects which can be parsed by Javascript engine present in the browsers.     &lt;/p&gt;

&lt;p&gt;So basically, by using JSX you can write code with HTML like text inside a Javascript file, and then Babel transforms it into actual Javascript code. Unlike our previous practise of putting Javascript into HTML, we have started placing HTML inside Javascript, all thanks to JSX!&lt;/p&gt;

&lt;p&gt;Here is what JSX looks like:&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;nav&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ul&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nav&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Clients&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Contact&lt;/span&gt; &lt;span class="nx"&gt;Us&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ul&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pretty cool! &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Virtual DOM&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before jumping onto what Virtual DOM is, let's just revisit on DOM(Document Object Model). When a web page is loaded, the browser creates a Document Object Model of the page which is basically a structured tree like representation of the page. Something like this:&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%2Fwww.w3schools.com%2Fjs%2Fpic_htmltree.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.w3schools.com%2Fjs%2Fpic_htmltree.gif" alt="DOM"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;So the question lies that if we already have a DOM which can be manipulated why do we need a Virtual DOM ? The most appriopritate answer being the &lt;strong&gt;DOM manipulation is inefficient and slow&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;When it comes to Virtual DOM, it is a lightweight representation of the DOM. It only a virtual representation and does not exist in memory. It's a tree data structure of plain Javascript object. It came into existence with React and now is effectively used by other frameworks like Angular and Vue.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So on the initial render JSX tells the compiler how to construct the Virtual DOM tree. Post this the Render() function of React will render the Virtual DOM to the Real DOM.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>100daysofcode</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Nodejs 101</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Sat, 30 May 2020 18:44:37 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/nodejs-101-1i66</link>
      <guid>https://dev.to/thehumzahasan/nodejs-101-1i66</guid>
      <description>&lt;p&gt;Welcome to the fourth article of my series &lt;strong&gt;'The Learning's 101'&lt;/strong&gt;. At the time of writing this article, I am on Day 97 of the #100DaysOfCode challenge.&lt;/p&gt;

&lt;p&gt;In this article, I am not going to start with the basic answer to &lt;strong&gt;' What is Nodejs?'&lt;/strong&gt; as we generally do. I am starting with giving you reasons to love Nodejs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why do I love Nodejs ?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;First things first, I love Javascript! Even though there were times when I was literally banging my against a wall while understanding DOM manipulation. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The fact that we can have javascript at frontend(React, Angular or Vue) as well as backend(Node) along with a javascript based data storing format(JSON). All this makes life easier for a developer&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;#JavascriptEverywhere&lt;/em&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%2Fmedia1.tenor.com%2Fimages%2Fa22b7cd8dc2855aa29f41e53219e98d9%2Ftenor.gif%3Fitemid%3D14779645" 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%2Fmedia1.tenor.com%2Fimages%2Fa22b7cd8dc2855aa29f41e53219e98d9%2Ftenor.gif%3Fitemid%3D14779645" alt="We love Javascript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When Nodejs walks into the room it also brings along the largest package repository(npm) with it. &lt;strong&gt;npm&lt;/strong&gt; has a collection of about 350,000 packages to make your life easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;npm ecosystem is open to all, and anyone can publish their own module that can be listed in the npm repository.Some of the most useful npm modules are &lt;em&gt;express, socket.io, connect, router, mongoose, etc&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Javascript gives power to your Nodejs app to be asychronous and of non-blocking nature which is very satisying for everyone. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I can send a request to an API which will not sent result back instantly, but even during the wait, I can work on a separate task without being blocked by the API.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Where does NodeJS shines, and where it doesn't ?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Like every other programming langauge,there are some bright side and some gray areas as well. Not all kind of application can be made using Nodejs as it does have some drawbacks.&lt;/p&gt;

&lt;p&gt;Here are few types of application which shine out when using Nodejs for developement.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Non-blocking&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Event driven&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Intensive&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;I/O Intensive&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2F3o7TKNjg8dxB5ysRnW%2Fgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2F3o7TKNjg8dxB5ysRnW%2Fgiphy.gif" alt="Node will help you"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your application focuses majorly on Data retrival, I/O operation, API call in an eventful manner and  run in a non-blocking manner with an asychronous approach then Nodejs is your go to techstack.&lt;/p&gt;

&lt;p&gt;But if you are dealing with an application which wants you to do any of the following :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Calculation&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Processor Intensive&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blocking Operation&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.tenor.com%2Fimages%2F644d026b6eaf517a72cb94653f6ec027%2Ftenor.gif%3Fitemid%3D13730615" 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%2Fmedia1.tenor.com%2Fimages%2F644d026b6eaf517a72cb94653f6ec027%2Ftenor.gif%3Fitemid%3D13730615" alt="Node no help"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In these senarios, Nodejs isn't the best solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Your Ideal Built with Nodejs are...&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you are planning to build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.tutorialsteacher.com/nodejs/create-nodejs-web-server" rel="noopener noreferrer"&gt;Web Server&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.freecodecamp.org/news/simple-chat-application-in-node-js-using-express-mongoose-and-socket-io-ee62d94f5804/" rel="noopener noreferrer"&gt;Real time server&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm" rel="noopener noreferrer"&gt;RESTful API's&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.sitepoint.com/javascript-command-line-interface-cli-node-js/" rel="noopener noreferrer"&gt;Command Line Utilities&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://brainhub.eu/blog/15-best-node-js-tools-developers/" rel="noopener noreferrer"&gt;Build Tools&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Version Control 101</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Thu, 28 May 2020 04:59:25 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/version-control-101-4bd2</link>
      <guid>https://dev.to/thehumzahasan/version-control-101-4bd2</guid>
      <description>&lt;p&gt;Welcome to my third article from the series &lt;strong&gt;'The Learning's 101'&lt;/strong&gt;. In this article, I will be sharing with you my experience with the Version control system i.e, &lt;strong&gt;Git&lt;/strong&gt; and the cloud-based hosting services i.e, &lt;strong&gt;Github or Bitbucket&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Version Control&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Well according to me, &lt;strong&gt;&lt;em&gt;Version control&lt;/em&gt;&lt;/strong&gt; is one of the most important skills for a developer. Right from using it for personal projects to using it at an organization level for the projects, version control plays a vital role in my life. Without the help of the version control system, I would be somewhat like this..&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%2Fmedia1.giphy.com%2Fmedia%2Fl2Je6xTnSDh4dmA4o%2Fgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2Fl2Je6xTnSDh4dmA4o%2Fgiphy.gif" alt="Without Version control"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From helping me keep track of my work, creating checkpoints, and reverting back to original code if things don't go as planned in a personal project to collaboratively contributing with my fellow developers on different files and codebases on the organization level, &lt;em&gt;Version control is the answer to all&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But what exactly is Version control, let's find out.&lt;/p&gt;

&lt;p&gt;By a quick google search we get this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why you should love Version Control?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When you are developing a project, irrespective of the domain at some point in time you come to trial, error, and correction to finally reach a successful outcome. That's where version control enters the room!&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%2Fi.chzbgr.com%2Ffull%2F7969032192%2Fh97BE7883%2Fa-new-door-way-to-open-the-door" 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%2Fi.chzbgr.com%2Ffull%2F7969032192%2Fh97BE7883%2Fa-new-door-way-to-open-the-door" alt="version control enters"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Version control helps you keep track and log all these changes by creating a virtual snapshot of each of the scenarios with the added ability to go back if things don't turn the way you want it to be. Apart from logging changes made to different files, version control also helps when collaborating with other developers by always helping you work on the latest version of the files so that even if someone else had made changes on a particular file you get to work on the latest version after you pull the changes.&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%2Fthumbs.gfycat.com%2FSharpUnluckyGuernseycow-small.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthumbs.gfycat.com%2FSharpUnluckyGuernseycow-small.gif" alt="Cool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Version Control system vs Cloud-hosting Services&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Version Control system vs Cloud-hosting Services or let's just say Git vs Github !&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When it comes to the version control system, &lt;strong&gt;Git&lt;/strong&gt; &lt;em&gt;is by far the most favorite developer toolkit&lt;/em&gt;. Other than Git, we have &lt;strong&gt;Subversion&lt;/strong&gt; and &lt;strong&gt;Mercurical&lt;/strong&gt; but clearly Git hub is preferred by 92% of the developers.&lt;/p&gt;

&lt;p&gt;We have already discussed a lot on version control lets just pick up speed on cloud-hosting services too. Cloud-hosting services are the online database that allows you to keep track of your version control project which is available locally on your computer.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For simplicity, we can say that Github is to Git what Facebook is to you. Well, this means that Facebook is your online record of activities and you are you. Right?&lt;/em&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%2Fmedia.tenor.com%2Fimages%2Fdb13fea1dac06f8aef5bd1dd7dc07cfb%2Ftenor.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.tenor.com%2Fimages%2Fdb13fea1dac06f8aef5bd1dd7dc07cfb%2Ftenor.gif" alt="Confused"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When it comes to cloud-hosting services, we do have plenty of options. &lt;strong&gt;Github&lt;/strong&gt; &lt;em&gt;being most favorite among the developers and open-source enthusiast which give the option to create unlimited public as well as private repositories&lt;/em&gt;, but when it comes to &lt;em&gt;organization&lt;/em&gt; &lt;strong&gt;Bitbucket&lt;/strong&gt; &lt;em&gt;is preferred one because it comes from Atlassian software family, which lets you integrate your other Atlassian products like Jira, Bamboo, and HipChat, and communicates well with all of these&lt;/em&gt;. Another popular name being &lt;strong&gt;GitLab&lt;/strong&gt; &lt;em&gt;because of its continuous integration (CI) capabilities which automate the testing and delivery of your code, which means you can get more done and spend less time waiting for tests to pass&lt;/em&gt;.      &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Wrapping It Up&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;So although all this might sound very sketchy to few, honestly it is not. Version control is just one of the toolkit which was designed to make a developer's life &lt;strong&gt;easy-peezy&lt;/strong&gt;. It does not matter if you are working single-handily on a project or with co-workers, version control will surely lift things up for you!&lt;/p&gt;

&lt;p&gt;With that said, &lt;strong&gt;"Happy Committing"&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>bitbucket</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>UI and UX Design 101</title>
      <dc:creator>Humza Hasan</dc:creator>
      <pubDate>Mon, 18 May 2020 23:16:43 +0000</pubDate>
      <link>https://dev.to/thehumzahasan/ui-and-ux-design-101-46j8</link>
      <guid>https://dev.to/thehumzahasan/ui-and-ux-design-101-46j8</guid>
      <description>&lt;p&gt;Welcome to my second article from the series &lt;strong&gt;'The Learning's 101'&lt;/strong&gt;. In this article, I will be sharing with you about the things I explored in UI and UX domain, the differences between UI and UX designer, and lastly my take as a newbie developer on UI &amp;amp; UX Design.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;First things first, let us address the elephant in the room&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;UI and UX Design are two separate entities in the web and app development world&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Ao8J2me--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://thumbs.gfycat.com/UltimateNeighboringInsect-max-1mb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Ao8J2me--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://thumbs.gfycat.com/UltimateNeighboringInsect-max-1mb.gif" alt="What?" width="320" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, I bet you already knew that. &lt;strong&gt;UI Design or User Interface Design&lt;/strong&gt; is the design of the user interface. &lt;em&gt;The goal of UI design is to make the user's interaction with the website/application as simple and efficient as possible&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;When it comes to &lt;strong&gt;UX Design or User Experience Design&lt;/strong&gt;, &lt;em&gt;it more about enhancing customer satisfaction during their interaction with the product(website/application) by improving its usability and accessibility&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;UI is how good the car looks, while UX is how you feel driving it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WRiRy9rL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.gifer.com/1UXK.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WRiRy9rL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.gifer.com/1UXK.gif" alt="Driving" width="400" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A little about UI and UX Designer's&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;UI Designer&lt;/strong&gt; - A UI Designer, is someone whose work starts with the market standard analysis and ends with an application efficient enough to make user interaction and perform actions. In between this starting and ending point, there are many things which a UI designer work on, here are some to name a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;structuring the look and feel of the application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;designing the various components with varied color schemes and typography&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;adding result of user interaction and animation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;cross-device compatibility&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;UX Designer&lt;/strong&gt; - The work-life of a UX designer usually starts with competitor and market research, moving on to brainstorming, implementation, and finally reporting. In between these general steps which a UX designer follows, here are some of the prominent ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;content structuring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;communication with the developer and UI designer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;post-launch experience analytics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;gathering user feedback and improvement based on it&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note :&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Just like a developer who is constantly working to improve the features and add functionalities to an application, both UI and UX designer work on improving the user's experience while interacting with the application.&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;From a personal prespective&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Sv88aPj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.tenor.com/images/c7e0ba341701c7144d34b13e84b2177f/tenor.gif%3Fitemid%3D13987150" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Sv88aPj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media1.tenor.com/images/c7e0ba341701c7144d34b13e84b2177f/tenor.gif%3Fitemid%3D13987150" alt="I am thinking" width="498" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From a personal point of view, I have come to an understanding that if you are more towards &lt;strong&gt;designing and visual problem-solving&lt;/strong&gt; approach then &lt;strong&gt;UI Design&lt;/strong&gt; is the domain for you, but if you are looking for something more &lt;strong&gt;cognitive and analytical&lt;/strong&gt; then you should go with &lt;strong&gt;UX design&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not all UI designers are UX designers, but mostly all UX designers are good UI designers.&lt;/strong&gt;     &lt;/p&gt;

&lt;p&gt;Also to add, when the comparison between front-end developer and UI/UX designer comes to play, I will suggest that if you are someone who enjoys writing code along with designing stuff then you should definitely go for front-end, but if you are more of someone who likes the visual and the analytics more than the coding experience then UI/UX is the field which is going to take you to heights.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;The Resources I Love&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RmCN6JGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://gifimage.net/wp-content/uploads/2018/04/read-gif-10.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RmCN6JGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://gifimage.net/wp-content/uploads/2018/04/read-gif-10.gif" alt="I am loving it" width="400" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here are few of the zillions websites I visit to draw some inspirations for better UI/UX while creating a new website&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.awwwards.com/"&gt;awwwards&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dribbble.com/"&gt;Dribble&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.behance.net/"&gt;Behance&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, do check out &lt;a href="https://careerfoundry.com/"&gt;Careerfoundy&lt;/a&gt;, this has a complete package of everything you want to know about UI/UX along with coding and analytics.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Designing&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ui</category>
      <category>ux</category>
      <category>100daysofcode</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
