<?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: Maximiliano Hernández Betancourt</title>
    <description>The latest articles on DEV Community by Maximiliano Hernández Betancourt (@hdezmax).</description>
    <link>https://dev.to/hdezmax</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%2F440762%2F400ca155-de35-4001-82b2-26627a20d5fa.jpeg</url>
      <title>DEV Community: Maximiliano Hernández Betancourt</title>
      <link>https://dev.to/hdezmax</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hdezmax"/>
    <language>en</language>
    <item>
      <title>How Does JavaScript Works with Scopes, Hosting, and Closures?</title>
      <dc:creator>Maximiliano Hernández Betancourt</dc:creator>
      <pubDate>Thu, 13 Aug 2020 12:14:35 +0000</pubDate>
      <link>https://dev.to/hdezmax/how-does-javascript-works-with-scopes-hosting-and-closures-14m7</link>
      <guid>https://dev.to/hdezmax/how-does-javascript-works-with-scopes-hosting-and-closures-14m7</guid>
      <description>&lt;p&gt;Scopes, Hoisting, and Closures are terms you will eventually have to deal with in your JavaScript codes. So, don't wait until you get an error you don't understand, and keep reading this post!&lt;/p&gt;

&lt;p&gt;Before defining what is Hoisting and Closure, we first need to understand how scopes work in JavaScript.&lt;/p&gt;

&lt;h1&gt;
  
  
  Scopes
&lt;/h1&gt;

&lt;p&gt;If you google the &lt;a href="https://www.google.com/search?q=scope+definition&amp;amp;rlz=1C1CHBF_esES908ES908&amp;amp;oq=scope+defin&amp;amp;aqs=chrome.0.0j69i57j0l6.3407j1j4&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8"&gt;definition of "Scope"&lt;/a&gt; you will find that it is &lt;em&gt;"the extent of the area or subject matter that something deals with or to which it is relevant".&lt;/em&gt; In simpler terms, a scope is an extent in which something is important. &lt;/p&gt;

&lt;p&gt;Talking in terms of JavaScript, the scope is the area in which variables and functions are accessible. There are two major scopes: Global and Local&lt;/p&gt;

&lt;h2&gt;
  
  
  A) Global Scope
&lt;/h2&gt;

&lt;p&gt;The global scope is the one where all other scopes can reach. Any variable or function declared in this scope, is accessible in any part of the code. Also, It is the first scope you can state variables and you can think of it as the father of all scopes. &lt;/p&gt;

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

&lt;p&gt;In the above example, you can see that the &lt;code&gt;outerVariable&lt;/code&gt; can be accessed inside the &lt;code&gt;foo()&lt;/code&gt; function. Also, the variable is stated outside of any variable, so it is declared in the global scope. Also, the function &lt;code&gt;foo&lt;/code&gt; is also declared on the global scope. So, you can access that function anywhere in your script. &lt;/p&gt;

&lt;p&gt;You realized that we thought of the inside of the function as another scope?&lt;/p&gt;

&lt;h2&gt;
  
  
  B) Local Scope
&lt;/h2&gt;

&lt;p&gt;There are different types of local scopes, exactly three types: &lt;strong&gt;Function&lt;/strong&gt;, &lt;strong&gt;Block&lt;/strong&gt;, and &lt;strong&gt;Module&lt;/strong&gt;. &lt;/p&gt;

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

&lt;p&gt;Every time you declare a function, it creates its scope. So, anything declared inside a function is only accessible inside the function. &lt;/p&gt;

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

&lt;p&gt;The &lt;code&gt;insiderVariable&lt;/code&gt; does not belong to the Global Scope, so it can only be accessed in the scope of &lt;code&gt;foo()&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;In JavaScript, a group of statements arranged inside curly brackets ( &lt;strong&gt;{}&lt;/strong&gt; ) is considered a block statement. These groups have their scope too. So, anything stated inside isn't available in outer scopes. &lt;/p&gt;

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

&lt;p&gt;Another example of a block scope are conditional statements:&lt;/p&gt;

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

&lt;h3&gt;
  
  
  c) Module Scope
&lt;/h3&gt;

&lt;p&gt;Any variable stated inside a JavaScript module can only be accessed inside it unless you export them. So every module has its scope too. &lt;/p&gt;

&lt;p&gt;For this example, first, we are going to create a module that exports a function &lt;/p&gt;

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

&lt;p&gt;Next, we are going to import this module inside our main JS and test the function&lt;/p&gt;

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

&lt;p&gt;As you can see, the function &lt;code&gt;sayHello()&lt;/code&gt; can access the &lt;code&gt;str&lt;/code&gt; variable because it belongs to the same scope but is not available in our importing module.&lt;/p&gt;

&lt;p&gt;But we exported the function to our main JS, so now &lt;code&gt;sayHello()&lt;/code&gt; belongs to this scope. Doesn't it seem weird that it can access the &lt;code&gt;str&lt;/code&gt; constant?  &lt;/p&gt;

&lt;h1&gt;
  
  
  Closures
&lt;/h1&gt;

&lt;p&gt;Well, scopes are not the only reason why the function &lt;code&gt;sayHello()&lt;/code&gt; can access the &lt;code&gt;str&lt;/code&gt; variable, closures are involved too! &lt;/p&gt;

&lt;p&gt;In simple terms, closure is the capability that functions have in javascript to access the variables defined in the parent scope. This scope is bundled with the function. &lt;/p&gt;

&lt;p&gt;In the previous example, &lt;code&gt;sayHello()&lt;/code&gt; can access &lt;code&gt;str&lt;/code&gt; in another module because the variable is defined in the father scope and closures allow the function to access it.&lt;/p&gt;

&lt;p&gt;Also, if you declare a function inside another one, the child can access the father function scope. &lt;/p&gt;

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

&lt;h1&gt;
  
  
  Hoisting
&lt;/h1&gt;

&lt;p&gt;Now that you know about scopes, we can talk about Hoisting. It is the default behavior in which variable declarations are moved to the top of their scope. &lt;/p&gt;

&lt;p&gt;First, let's get clear that the only variables that are affected are the ones declared with &lt;code&gt;var&lt;/code&gt; and with &lt;code&gt;function&lt;/code&gt;. So, &lt;code&gt;const&lt;/code&gt; and &lt;code&gt;let&lt;/code&gt; are not affected by the hoisting.  Second, declaration and initialization are different steps.&lt;/p&gt;

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

&lt;p&gt;In order to understand this, let see this example:&lt;/p&gt;

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

&lt;p&gt;The first time we execute &lt;code&gt;foo()&lt;/code&gt; we should get a &lt;code&gt;ReferenceError&lt;/code&gt;, instead, we are getting &lt;code&gt;undefined&lt;/code&gt;. This is the magic of the hosting!&lt;/p&gt;

&lt;p&gt;This is how the code would have look after the hoisting: &lt;/p&gt;

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

&lt;p&gt;As we said before, the declaration of the variable &lt;code&gt;a&lt;/code&gt; is moved to the top of the scope, so when we first call the function &lt;code&gt;foo()&lt;/code&gt; the variable has already been declared but not initialized, that why we get an &lt;code&gt;undefined&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Also, Hoisting is the reason why you can execute functions in the same scope before we have declared: &lt;/p&gt;

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

&lt;h1&gt;
  
  
  Wrap-Up
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;There are four different types of scopes:  &lt;strong&gt;Global&lt;/strong&gt;, &lt;strong&gt;Function&lt;/strong&gt;, &lt;strong&gt;Block&lt;/strong&gt;, and &lt;strong&gt;Module&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The difference between each scope is where you can access a variable in the script.&lt;/li&gt;
&lt;li&gt;The closure is the capability that functions have to access the variables stated in their parent scope.&lt;/li&gt;
&lt;li&gt;Hoisting is a default behavior where &lt;code&gt;var&lt;/code&gt; and &lt;code&gt;function&lt;/code&gt; declarations are moved to the top of their scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I recommend that you experiment with these concepts on your console to understand them better and if you have any questions ask me down on the comments section! 😬&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What is "This"? a JavaScript Explanation</title>
      <dc:creator>Maximiliano Hernández Betancourt</dc:creator>
      <pubDate>Fri, 07 Aug 2020 06:33:20 +0000</pubDate>
      <link>https://dev.to/hdezmax/what-is-this-a-javascript-explanation-46hj</link>
      <guid>https://dev.to/hdezmax/what-is-this-a-javascript-explanation-46hj</guid>
      <description>&lt;p&gt;We all have used &lt;code&gt;this&lt;/code&gt; inside a function just to find out that it's not working as thought. Do you want to understand what happens? Let me explain it to you:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/js/js_this.asp#:~:text=The%20JavaScript%20this%20keyword%20refers%20to%20the%20object%20it%20belongs%20to.&amp;amp;text=Alone%2C%20this%20refers%20to%20the,strict%20mode%2C%20this%20is%20undefined%20."&gt;W3School&lt;/a&gt; defines &lt;code&gt;this&lt;/code&gt; as  "... &lt;em&gt;The keyword that refers to the object it belongs to".&lt;/em&gt; Certainly, the definition is kind of confusing. Let's start by remembering that in JavaScript anything that is not a primitive type is an object. So, &lt;code&gt;this&lt;/code&gt; is a keyword that you can use to refer to a particular object. &lt;/p&gt;

&lt;p&gt;The tricky part is to know what object &lt;code&gt;this&lt;/code&gt; belongs to. It's simpler to think of &lt;code&gt;this&lt;/code&gt; as the reference to the object that is executing that block of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standard Behavior of &lt;code&gt;this&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;By default, &lt;code&gt;this&lt;/code&gt; will refer to the global object. In frontend JavaScript, this object is the &lt;code&gt;window&lt;/code&gt;. &lt;code&gt;this&lt;/code&gt; will only change its reference in these two cases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Inside a &lt;strong&gt;Method&lt;/strong&gt;: it will reference to the owner object&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;experience&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="na"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`I have &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;experience&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years of experience`&lt;/span&gt;      
        &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//I have 3 years of experience&lt;/span&gt;

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


&lt;p&gt;Note that in this example the function is executed as a method of the &lt;code&gt;person&lt;/code&gt; object. If you execute it as a normal function, &lt;code&gt;this&lt;/code&gt; will refer to the global object.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;introduction&lt;/span&gt;
  &lt;span class="nx"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;//I have undefined years of experience&lt;/span&gt;

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

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Inside an &lt;strong&gt;Event Handler&lt;/strong&gt;: it will reference the element that triggered it.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
   &lt;span class="nx"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&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="s2"&gt;red&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
   &lt;span class="p"&gt;});&lt;/span&gt;

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

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;This&lt;/code&gt; inside Arrow Functions
&lt;/h2&gt;

&lt;p&gt;In all of the above examples, I only used regular functions, and there is a reason why: Arrow Functions are a compact alternative to a regular function, but they don't bind their own scope. This means that arrow functions inherit the reference of &lt;code&gt;this&lt;/code&gt;, which in most cases it would be the global object.  &lt;/p&gt;

&lt;p&gt;So, in order to get the &lt;code&gt;persona.introduction()&lt;/code&gt; working with Arrows Functions, we have to enclosure it inside a regular function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;experience&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="na"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;introduction&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;gt;&lt;/span&gt; &lt;span class="s2"&gt;`I have &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;experience&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years of experience`&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;       
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//I have 3 years of experience &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The Arrow Function is inheriting the reference of &lt;code&gt;this&lt;/code&gt; from its father function, which is a regular function as a method of &lt;code&gt;person&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explicit Binding
&lt;/h2&gt;

&lt;p&gt;You can explicitly indicate to a function the reference &lt;code&gt;this&lt;/code&gt; should use. To achieve this, you can use the function's method &lt;code&gt;.bind()&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;In the next example, I will execute the &lt;code&gt;introduction()&lt;/code&gt; method of &lt;code&gt;person&lt;/code&gt; indicating the reference that &lt;code&gt;this&lt;/code&gt; will use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;experience&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="na"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`I have &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;experience&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years of experience`&lt;/span&gt;      
        &lt;span class="p"&gt;}&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;anotherPerson&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;experience&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;7&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;fn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;anotherPerson&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//I have 7 years of experience&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;bind()&lt;/code&gt; will return a function bound with the object that you indicated. If you don't want a return, you can bind and execute with the methods &lt;code&gt;call()&lt;/code&gt; and &lt;code&gt;apply()&lt;/code&gt;. Like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;introduction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;anotherPerson&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//I have 7 years of experience&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The difference between &lt;code&gt;call()&lt;/code&gt; and &lt;code&gt;apply()&lt;/code&gt; is how you can pass in arguments. You may find more information on this topic on the JavaScript documentation of &lt;a href="https://developer.mozilla.org/en-US/"&gt;MDN&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap-Up
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;this&lt;/code&gt; references to the object that is executing the block of code.&lt;/li&gt;
&lt;li&gt;Arrow Functions inherit the reference of &lt;code&gt;this&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can define what reference of &lt;code&gt;this&lt;/code&gt; a function should use with the methods: &lt;code&gt;bind()&lt;/code&gt;, &lt;code&gt;call()&lt;/code&gt;, or &lt;code&gt;apply().&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope this post helped you understand something more about JavaScript. &lt;/p&gt;

&lt;p&gt;Ask me any questions you have down on the comments section! 😉&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Personal Branding For Developers</title>
      <dc:creator>Maximiliano Hernández Betancourt</dc:creator>
      <pubDate>Sat, 01 Aug 2020 08:09:54 +0000</pubDate>
      <link>https://dev.to/hdezmax/personal-branding-for-developers-g0f</link>
      <guid>https://dev.to/hdezmax/personal-branding-for-developers-g0f</guid>
      <description>&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@jtzanno?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@jtzanno?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Joao Tzanno&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/s/photos/brands?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/s/photos/brands?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;We are always behind the screen, having the minimum interaction with the world, right? &lt;em&gt;"So, why do we need to care about our presence?"&lt;/em&gt; Well... if you think you have more than a pretty code to show to the world, this guide is what you're looking for.&lt;/p&gt;

&lt;p&gt;Your Personal Brand is the way you have to tell a stranger who you are. That first impression we are always talking about, that is our brand. So, everyone has a personal brand, the difference is that some of us consciously design that impression.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JYooOu5s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/34lrrektl35lak8fcv9u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JYooOu5s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/34lrrektl35lak8fcv9u.jpg" alt="Hand Shake"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@sincerelymedia?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@sincerelymedia?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Sincerely Media&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Good enough, but why should I care about what others think of me?&lt;/em&gt;". The idea behind Personal Branding is to expose to the world why you are the best option for whatever they are considering you: your dream job, the project you want to lead, or even getting a date with your crush. You don't know what people are considering, but you know what you want them to see.&lt;/p&gt;

&lt;p&gt;Now that you have realized the importance of your brand. Let's own it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining Core Values
&lt;/h2&gt;

&lt;p&gt;No, I'm not referring to those values your primary school teacher talked about. We want to define what we want to be known for. An example could be: &lt;em&gt;"I want to be known for my assertiveness, generosity, security, and expertise".&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I recommend that you chose four values at most. It can get complicated if you are figuring out how to meet many adjectives. It's up to you, there are only correct answers for this step. Below is a table where you can get inspiration.&lt;/p&gt;

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

&lt;p&gt;Table extracted from &lt;a href="https://www.mindtools.com/pages/article/newTED_85.htm"&gt;mindtools.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you have an idea of what values you want people to see in you, you may think that Personal Brand is all about pretending. I think is more about &lt;em&gt;"Fake it till you make it".&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Personal branding is about exposing the best versión of you, and in some cases, you are not there yet. There is nothing wrong with that, but you will have to work on yourself to meet the expectation. That is another plus of designing your brand, you end up designing who you want to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Online Presence
&lt;/h2&gt;

&lt;p&gt;Nowadays, the first impressions are not only made when meeting someone in person. Some of them are going to hear about you online, like you are meeting me now! So, we have to take care of all the roads that people could follow to know who you are.&lt;/p&gt;

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

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@christianw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@christianw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Christian Wiediger&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;As developers, a great part of our lives happens online. We meet many people on the web, and we need to make a great digital impression. For most people, you are your digital presence.&lt;/p&gt;

&lt;p&gt;The first idea you got on your mind, &lt;em&gt;"social networks",&lt;/em&gt; let's start there. In my opinion, there are two types of networks: Personal and Professionals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Networks
&lt;/h3&gt;

&lt;p&gt;The first ones are networks like Instagram, Facebook, or Twitter. Here you are exposing your opinion and your day to day life. So, you should be exposing your core values, and be coherent with them in your interactions. If you choose to be friendly, then you should be friendly with everyone on that network. Just ask yourself before posting: Is this content representative of my values?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C-Z4D95X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2hyct95vz9sj4v8xfjox.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C-Z4D95X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2hyct95vz9sj4v8xfjox.jpg" alt="Facebook Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@konkarampelas?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@konkarampelas?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Kon Karampelas&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;We all have that old profile in a network we don't use anymore. What impression a stranger will have if they see it? They don't know that it is an old profile, they just found it and picture you that way.&lt;/p&gt;

&lt;p&gt;Choose the networks you want to take care of and delete the ones you don't use anymore. The fewer roads we have, the better we can consistently maintain the brand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Professionals Networks
&lt;/h3&gt;

&lt;p&gt;People use these networks to get to know your professional self. They are looking for your professional achievements, career, and even what other people think of you as a team member. These are social networks like LinkedIn, Meetup, or Xing.&lt;/p&gt;

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

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@linkedinsalesnavigator?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@linkedinsalesnavigator?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;LinkedIn Sales Navigator&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;You should keep your interactions consistently with your core values. This is the key to effectively communicate your brand. Also, you want to filter the information on these sites taking into consideration what is the next step you want your career to have.&lt;/p&gt;

&lt;p&gt;For example, if you want a job as a React developer, then you should give more exposure to your experience in this library.&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Website
&lt;/h3&gt;

&lt;p&gt;For those of you who want to take a step further in your online presence, the next level is a personal website. People should be able to find all the information you want them to know about you just by googling your name.&lt;/p&gt;

&lt;p&gt;My recommendation is to keep it simple: a page with your elevator pitch, a contact page with a form to send you an email, a portfolio with the same information as your professional's networks, and a blog where you can share your opinions.&lt;/p&gt;

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

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@halacious?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@halacious?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Halacious&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/s/photos/website?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/s/photos/website?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Blog
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Wait, who said anything about writing?"&lt;/em&gt; Yeah, I know it could get hard to write consistently, but writing is the most powerful way someone has to know how you think. You can write about anything you want. You have a great opportunity for each post to reinforce your values and to express them to the readers.&lt;/p&gt;

&lt;p&gt;I write articles about the topics I'm learning weakly. This helps me to consolidate the things I learned. If you want to know more about that, you can read my article: &lt;a href="https://dev.to/hdezmax/an-effective-strategy-to-better-learning-1h23"&gt;An Effective Strategy for Better Learning&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offline Presence
&lt;/h2&gt;

&lt;p&gt;This is the most simple one to manage. You only have to stick your actions to your values. If you want to be a disciplined person, you just have to be disciplined. There is no need to tell people about it, they will see it as soon as they start to know you.&lt;/p&gt;

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

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="%5Bhttps://unsplash.com/@dylandgillis?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/@dylandgillis?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Dylan Gillis&lt;/a&gt; on &lt;a href="%5Bhttps://unsplash.com/photos/g1Kr4Ozfoac?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText%5D(https://unsplash.com/photos/g1Kr4Ozfoac?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, it can get hard to stick to values that we are improving, but the whole idea is to be a better versión of yourself every day.&lt;/p&gt;

&lt;p&gt;People who already have an impression of you will start to change it as you start to change yourself. Opinions are not written in stone.&lt;/p&gt;

&lt;p&gt;Hope this article helps you get a little close to your goals and I will love to hear about your thought on this topic.&lt;/p&gt;

&lt;p&gt;Thanks for reading! 😬&lt;/p&gt;

</description>
      <category>developers</category>
      <category>learning</category>
      <category>personalbrand</category>
      <category>guide</category>
    </item>
    <item>
      <title>An Effective Strategy for Better Learning</title>
      <dc:creator>Maximiliano Hernández Betancourt</dc:creator>
      <pubDate>Sun, 26 Jul 2020 11:00:19 +0000</pubDate>
      <link>https://dev.to/hdezmax/an-effective-strategy-to-better-learning-1h23</link>
      <guid>https://dev.to/hdezmax/an-effective-strategy-to-better-learning-1h23</guid>
      <description>&lt;p&gt;&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@dtravisphd?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;David Travis&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/notes?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;As developers, we are constantly studying. There is always a new language to learn, a trending framework to try, or even a function that you didn't realize it will make your code more efficient. We consume a lot of information, but we keep forgetting a great chunk of it. So, we go again to the source and try to retain a little bit more this time, over and over again, until we have fully incorporated this new piece of information.&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%2Fr6g7ck6poc61vsbn3mgz.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%2Fr6g7ck6poc61vsbn3mgz.png" alt="Wrong Process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pretty ineffective, don't you think? It seems that there is a better way to learn. So, I gave myself the task to try to come with a strategy to optimize this process and learn more in fewer iterations. That is not only the problem, we are also beings of habits, therefore, trying to adopt a whole different way to learn, is unrealistic. It has to be an upgrade to our already existing strategy, so we don't have to put a lot of effort into sticking to it. In this article, I'm going to explain to you the stages of learning, where are we failing, and how to improve.&lt;/p&gt;

&lt;h1&gt;
  
  
  How do we learn?
&lt;/h1&gt;

&lt;p&gt;Learning is the ability to acquire knowledge. There are two steps to acquire it. First, getting some information about the topic and second processing it. As easy as pie! So, what are we doing wrong?&lt;/p&gt;

&lt;p&gt;Let me explain it to you with an example: let's say you want to learn how to change a flat tire, you Google it and click on the Bridgestone's article on &lt;a href="https://www.bridgestonetire.com/tread-and-trend/drivers-ed/how-to-change-a-flat-tire" rel="noopener noreferrer"&gt;How to Change a Flat Tire&lt;/a&gt;. For the next 20 minutes, you are reading on tools you will need, the process of changing a tire, and the best practices on doing so. After finishing the read, you end the study and wait for the opportunity to put on practice this newly acquired knowledge.&lt;/p&gt;

&lt;p&gt;A month later, you are driving to your work and hear a weird noise. You stop on the side road, get out of your car to find out that opportunity you were waiting for: a flat tire! You try to remember all these amazing tips and tricks you read on that article last month but you can only recall just a few of them. What happened to that knowledge?&lt;/p&gt;

&lt;p&gt;You didn't acquire knowledge, you just went over some information. We are poorly processing information. That's why we have to go over and over on these steps to finally accumulate enough knowledge of the topic.&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%2Fvob3kijdzkoprrippmzw.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%2Fvob3kijdzkoprrippmzw.png" alt="Incomplete Process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Acquire more
&lt;/h1&gt;

&lt;p&gt;After some research, I found out three steps you can follow to start acquiring more knowledge from the same source.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Assimilate
&lt;/h2&gt;

&lt;p&gt;The first one is to &lt;strong&gt;Assimilate.&lt;/strong&gt; Here you want to help your brain to structure the information you are trying to incorporate. Each brain is unique, so is the way you structure information. It just has to make sense to you. To achieve this, there are some remarkable tools:&lt;/p&gt;

&lt;h4&gt;
  
  
  a) Take notes
&lt;/h4&gt;

&lt;p&gt;Notes are the way to translate what you heard or read on a more suitable syntax for your brain to structure it. I recommend that you check &lt;a href="http://lsc.cornell.edu/study-skills/cornell-note-taking-system/" rel="noopener noreferrer"&gt;The Cornell Note-Taking System&lt;/a&gt;. It is a really simple system to improve your notes.&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%2F6u196s9sqx3mf0yr0dbr.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%2F6u196s9sqx3mf0yr0dbr.png" alt="Cornell Note-Taking Example"&gt;&lt;/a&gt;&lt;br&gt;
This example is taken from &lt;a href="http://lsc.cornell.edu/study-skills/cornell-note-taking-system/" rel="noopener noreferrer"&gt;Cornell University&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  b) Make diagrams
&lt;/h4&gt;

&lt;p&gt;Diagrams are structured data. So, making diagrams will force you to connect all the information in a way you and your brain understands it. It can be as simple as a bunch of words connected by lines or as complex as a conceptual one. It is up to you!&lt;/p&gt;

&lt;p&gt;For these purposes, and in my mission to use less paper, I use the web application of &lt;a href="https://app.diagrams.net/" rel="noopener noreferrer"&gt;Draw.io&lt;/a&gt;. It has a simple interface and you can achieve appealing diagrams in just a few steps.&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%2Fghvk7mpiwpucm7h2filp.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%2Fghvk7mpiwpucm7h2filp.png" alt="Draw io diagram example"&gt;&lt;/a&gt;&lt;br&gt;
This Example is taken from Draw.io&lt;/p&gt;

&lt;h4&gt;
  
  
  c) Chunk Information
&lt;/h4&gt;

&lt;p&gt;Chunking is a strategy where you divide information into smaller pieces. The idea behind these is to make big chunks of information into smaller, more digestible, ones. This way, you can focus on assimilating smaller pieces of information that, at the sum, will make you assimilate the whole information.&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%2Fukrz5ec4e265td2455rh.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%2Fukrz5ec4e265td2455rh.png" alt="Chunking Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  d) Recall
&lt;/h4&gt;

&lt;p&gt;After you have taken notes, chunked the information, and made a cool diagram you have the whole picture of what you want to learn in a way you can comprehend it better. So, it's a good idea you recall the notes and the diagram every now and then. Just to make sure that your brain got it all right.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Explain
&lt;/h2&gt;

&lt;p&gt;The second step is to &lt;strong&gt;Explain.&lt;/strong&gt; By now you should be able to try to explain, in simple terms, what you have learned. The idea is to make complex concepts your brain has saved into simple ones. Your brain can only do so if he tries to explain it to someone who doesn't know anything about it and does not share your same mental structure.&lt;/p&gt;

&lt;p&gt;The best way to achieve these is by making yourself a teacher for one day. Let's start teaching how to change flat tires! If you put it that way, it sounds a little bit exaggerated. The truth is that we can't go around our city offering free classes of a specific topic every time we want to learn something.&lt;/p&gt;

&lt;p&gt;A simple way could be to explain it to your friends or family during dinner but your loved ones will not always want to hear about JavaScript Hoisting while eating pizza. So, the problem is that your learning process should not depend on having available people to explain random topics.&lt;/p&gt;

&lt;h4&gt;
  
  
  a) Write articles
&lt;/h4&gt;

&lt;p&gt;A good solution to these is to write articles! You will always write for a generic public, one that doesn't think as you do. So, this way you still force your brain to translate your thought into simple ideas anyone can read and understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Debate
&lt;/h2&gt;

&lt;p&gt;The last step is the &lt;strong&gt;Debate.&lt;/strong&gt; Now you have incorporated new information and digested it to its simplest form, you should enrich this knowledge with other people's thoughts. Like I said at the beginning of these sections, every brain is different. People process the same information in different ways and it is curious to found out how others thought of it.&lt;/p&gt;

&lt;h4&gt;
  
  
  a) Argue about it
&lt;/h4&gt;

&lt;p&gt;For these steps, you have to rely on the people you know and understand you will not always have someone you can argue with. But my recommendation here is that every time you have a chance to debate a topic with someone, do it. If you don't have someone, it's fine. This is just complementary to what you already acquired. Remember, the goal is to make more knowledge of the same information.&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%2F8z3r4gjyjiz345m1wmfs.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%2F8z3r4gjyjiz345m1wmfs.png" alt="Finall Process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusions
&lt;/h1&gt;

&lt;p&gt;The proposal I make to you is to own your process of learning. It doesn't have to be the one you learned in high school, but the one that makes sense to you. You don't have to follow all the recommendations I made, you just have to find out what better suits you. Remember, the idea is to make an upgrade of your current strategy to stick to it. Don't force yourself into a complex process, because is theoretically the best. What works is what you can keep doing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The capacity to learn is a gift; the ability to learn is a skill; the willingness to learn is a choice." -&lt;/em&gt; Brian Herbert&lt;/p&gt;

</description>
      <category>personalgrowth</category>
      <category>learn</category>
      <category>developer</category>
      <category>effective</category>
    </item>
  </channel>
</rss>
