<?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: lioliveiraz</title>
    <description>The latest articles on DEV Community by lioliveiraz (@lioliveiraz).</description>
    <link>https://dev.to/lioliveiraz</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%2F349821%2Fc1f51215-3687-4024-aa57-9baa1b7256e5.jpeg</url>
      <title>DEV Community: lioliveiraz</title>
      <link>https://dev.to/lioliveiraz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lioliveiraz"/>
    <language>en</language>
    <item>
      <title>Moving up: the concept of Hoisting</title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Wed, 21 Apr 2021 08:02:01 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/moving-up-the-concept-of-hoisting-b43</link>
      <guid>https://dev.to/lioliveiraz/moving-up-the-concept-of-hoisting-b43</guid>
      <description>&lt;p&gt;Studying programming language is not an easy task. There are too many rules, and the logic is challenging. &lt;a href="https://dev.to/lioliveiraz/a-story-about-a-brazilian-journalist-who-became-web-developer-in-the-netherlands-57p1"&gt;While learning JavaScript&lt;/a&gt;, I realised that some concepts sound more complicated than they should be. &lt;/p&gt;

&lt;p&gt;Therefore, I decided to create a series of articles explaining JavaScript core concepts more lightly. &lt;/p&gt;

&lt;p&gt;In the first article of the series, I will explain what Hoisting is. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is hoisting?
&lt;/h2&gt;

&lt;p&gt;According to the Cambridge dictionary definition, Hoist is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hoist&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;verb [ T ]&lt;br&gt;
UK /hɔɪst/ US &lt;br&gt;
/hɔɪst/&lt;/em&gt;&lt;br&gt;
&lt;em&gt;to lift something heavy, sometimes using ropes or a machine&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Translating it to a programming language, hoisting means lifting your functions and variables declarations to the top of your file. Conceptually, this definition is not incorrect, but in real life, it is not the same. &lt;/p&gt;

&lt;p&gt;JavaScript does not physically move your code to the top of the page. However, Hoisting is what makes it possible to call your variables and function before declaring it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;iAmNotHoisting&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;iAmNotHoisting&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;variable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;//outuput ReferenceError: iAmNotHoisting is not defined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;iAmHoisting&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;iAmHoisting&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;variable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;iAmHoisting&lt;/span&gt;

&lt;span class="c1"&gt;// 1:undefined&lt;/span&gt;
&lt;span class="c1"&gt;// 2:variable&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;To understand why this runs without error, we need to have a better-understanding knowledge of how JavaScript deals with code in the background. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Compile-time?
&lt;/h2&gt;

&lt;p&gt;JavaScript reads the code in two different ways, and they are usually called Compile-time and Execution time. Why is this so important to Hoisting? Because it is in the Compile-time where the hoisting magic happens. &lt;/p&gt;

&lt;p&gt;When the JavaScript engine starts to work on your script, the first thing it does is to read all the code on the global scope and store data in its memory. This data is stored in the Global Execution Context.&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;iAmHoisting&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HELLO WORLD&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;getHoisting&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;iAmHoisting&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJl8OHy_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evejcqy5sr42jwmgjd2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJl8OHy_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evejcqy5sr42jwmgjd2q.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
In this phase, JavaScript organises itself – no code is executed yet. You could see as at a warm-up before running your code.  During this process, only declarations are stored, not the statements. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EtW6t3-H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/36ls72olhzk7f0ox1wmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EtW6t3-H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/36ls72olhzk7f0ox1wmj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Be aware that functions and variables are stored differently. The functions are stored as a reference, and the variables –  with a var keyword – are assigned to an undefined value, this process called Hoisting. &lt;/p&gt;
&lt;h2&gt;
  
  
  What is the Execution Phase?
&lt;/h2&gt;

&lt;p&gt;Once all the declarations are identified, the parser keeps a note in memory and asks the engine to start the execution phase. At this stage, JavaScript assigns the real values to the variables present in its memory. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qGDU4Dj2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atqvkhk96y0hqwnd5fp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qGDU4Dj2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atqvkhk96y0hqwnd5fp3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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;iAmHoisting&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;iAmHoisting&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;variable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;iAmHoisting&lt;/span&gt;

&lt;span class="c1"&gt;// 1:undefined   &amp;lt;-- Compile-Time&lt;/span&gt;
&lt;span class="c1"&gt;// 2:variable    &amp;lt;-- Execution Phase&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What is not Hoisted?
&lt;/h2&gt;

&lt;p&gt;There is a misconception that &lt;strong&gt;let&lt;/strong&gt; and &lt;strong&gt;const&lt;/strong&gt; declarations are not hoisted; this is not exactly true. Those declarations are also hoisted, but the value is assigned as restricted until the execution phase. This phenomenon is called &lt;a href="https://dev.to/alexdevero/temporal-dead-zone-in-javascript-explained-tdz-1nb1"&gt;Temporal Dead Zone&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Some declarations are indeed not hoisted, such as: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functions defined with an expression&lt;/li&gt;
&lt;li&gt;Arrow Functions&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Hoisting may seem confusing initially, but Hoisting is nothing more than assigning a default value to declarations. This process allows us to call a variable before it is declared. &lt;/p&gt;

&lt;p&gt;Keep in mind that, even though it is possible to declare your variables and function at the bottom of the file,  it is recommended to always write code readable for humans. Your colleagues cannot hoist, so keep your declaration on the top of your file.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to master CSS?</title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Fri, 07 Aug 2020 11:37:16 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/how-to-master-css-4p7n</link>
      <guid>https://dev.to/lioliveiraz/how-to-master-css-4p7n</guid>
      <description>&lt;p&gt;In Web Development when we start to code the first things that we learn are HTML, CSS and JavaScript, but more we learn more far we go from the basic. &lt;/p&gt;

&lt;p&gt;Now I am in a point of my career where I want to focus on learning CSS. Not the syntax nor the basic bits of knowledge that are needed to build a stylesheet, but the best practices and best ways to build a responsive application — using pure CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thus, what do you think? What is the best way to master CSS?&lt;/strong&gt;   &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>css</category>
      <category>html</category>
      <category>codequality</category>
    </item>
    <item>
      <title>5 steps to make a simple request using Axios in React
</title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Wed, 05 Aug 2020 14:56:09 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/5-steps-make-a-simple-axios-request-on-react-2bjp</link>
      <guid>https://dev.to/lioliveiraz/5-steps-make-a-simple-axios-request-on-react-2bjp</guid>
      <description>&lt;p&gt;If you started to develop an application on React, you probably have to connect your front-end with a server. Usually, this communication occurs with an HTTP protocol. &lt;/p&gt;

&lt;p&gt;There are many ways to retrieve, post or modify data from a server; you can use Fetch API, XMLHttpRequest or multiple libraries. &lt;/p&gt;

&lt;p&gt;Axios is a lightweight NPM library similar to Fetch API, the pack provides an easy way to use REST API and make requests. In this article, I will show in 5 steps how to use Axios in your React application.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Install it in your project
&lt;/h3&gt;

&lt;p&gt;We can start by adding Axios to our project. Open your terminal and go to the root of your project — where the package.json is — Then install the pack. &lt;/p&gt;

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

&lt;h3&gt;
  
  
  2.Create a service folder
&lt;/h3&gt;

&lt;p&gt;Once you have Axios install, it is essential to decide which folder the API requests will be. Separating your request is a good way to keep your code clean and refactored. &lt;/p&gt;

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

&lt;h3&gt;
  
  
  3.  Build your function
&lt;/h3&gt;

&lt;p&gt;In this next step, we will finally start to write some code. First, import the library on the top of your JavaScript file. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;import axios from 'axios'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you can start to write your function. Remember to choose a name that makes sense of what do you expect from this function.&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;fetchFilmsApi&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;Axios is promise-based; for this reason, we can make use of async and wait to create nice and asynchronous code. We will transform our function in an async function and create a variable to store the response of our request.&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="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fetchFilmsApi&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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;insertUrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;// insert the API url&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we have to create a return that provides us with the data of our response. Do not forget to export your function!&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="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fetchFilmsApi&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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;insertUrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;// insert the API url&lt;/span&gt;
 &lt;span class="k"&gt;return&lt;/span&gt;  &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.Import the function
&lt;/h3&gt;

&lt;p&gt;Our function is done, now we have to build our main component — where the data will be used. There we will import our API function. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;import fetchFilmsApi from "../../services/api"&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Handle the response
&lt;/h3&gt;

&lt;p&gt;Once we have our HTTP request done, Axios will return for us a promise with a successful or failure response. To handle the result, we will use two methods then() and catch().&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;getData&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="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;fetchFilmsApi&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="k"&gt;catch&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;If the response is fulfilled, then() will be called and inside the method, we will decide what to do with the data. In our case, we are assigning it to a state.&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;getData&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="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;fetchFilmsApi&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="o"&gt;=&amp;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;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="k"&gt;catch&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;In case the promise is not fulfilled, catch() will be called. We can log the response to understand which errors are happening.&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;getData&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="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;fetchFilmsApi&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="o"&gt;=&amp;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;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="o"&gt;=&amp;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;`Something went wrong. ERROR: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;´))
    }
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Wrapping up
&lt;/h3&gt;

&lt;p&gt;As you could see, for a simple request Axios take less time and effort to retrieve data, besides that, the library is supported for old browsers and transform JSON data in its background. There are many other aspects that I didn`t discuss, and you can check it all in &lt;a href="https://github.com/axios/axios"&gt;Axios GitHub page &lt;/a&gt;. &lt;/p&gt;

</description>
      <category>react</category>
      <category>npm</category>
    </item>
    <item>
      <title>5 websites to help you crush your tech interview. </title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Mon, 22 Jun 2020 15:49:21 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/5-websites-to-help-you-crush-your-tech-interview-4dnf</link>
      <guid>https://dev.to/lioliveiraz/5-websites-to-help-you-crush-your-tech-interview-4dnf</guid>
      <description>&lt;p&gt;It would not be a surprise to say that one of the biggest nightmares for junior developers is the technical interview. Besides all the pressure that the hiring process already has, the candidates must deal with technical question or algorithmics challenges – which I personally have a love and hate relationship with it.&lt;/p&gt;

&lt;p&gt;If it seems not hard enough for you, most of the time, we do not know what to expect. The interview can be a few questions about your stack,  90 minutes of an algorithmic challenge or even a complete surprise. &lt;/p&gt;

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

&lt;p&gt;&lt;b&gt;WAIT!&lt;/b&gt; Don’t give up yet!!! The best way to overcome this situation is to feel comfortable with the language you are working with and practice a lot. &lt;/p&gt;

&lt;p&gt;In this article, I will show the best websites that you can use to train your logical thought and the capacity to solve algorithmic challenges. &lt;/p&gt;

&lt;ol&gt;
&lt;a href="https://www.codewars.com/"&gt;&lt;b&gt;&lt;li&gt;Codewars&lt;/li&gt;&lt;/b&gt;&lt;/a&gt;

&lt;p&gt;This is one of the most popular websites in the development community. You start with the level 8kyu, and as you progress through the obstacles, you level up and gain more points in the rank.&lt;/p&gt;

&lt;p&gt;You can choose the language that you prefer and what kind of exercise you are more into it. Besides that, you can create clans and be allies with other code warriors.&lt;/p&gt;

&lt;p&gt;The Codewars community is enormous, and they create the content for the webpage, which make it almost impossible to finish all the challenges available. Besides that, when you finish – or not – the challenge you can sneak a peek other answers and give your feedback about it. &lt;/p&gt;

The best thing about Codewar is that they use TDD to test your code, which makes it more complicate but assures that your code will work in any possible scenarios. 

&lt;a href="https://www.hackerrank.com/"&gt;&lt;b&gt;&lt;li&gt;HackerRank&lt;/li&gt;&lt;/b&gt;&lt;/a&gt;

&lt;p&gt;This one is more focus on the market, if you have an interview a few days from now, this is the right website for you. &lt;/p&gt;


&lt;p&gt;There you can choose which skill you want to improve and what language you are most comfortable with. Besides that, there is an interview preparation kit with 14 different abilities to promote – such as Arrays, string manipulation, search...&lt;/p&gt;


&lt;p&gt;The website shows the percentage of companies that use the same subject and challenge. I am sure that after you pass through their preparation kit, you will be ready for any technical interview. &lt;/p&gt;

&lt;a href="https://cyber-dojo.org/"&gt;&lt;b&gt;&lt;li&gt;Cyber-Dojo&lt;/li&gt;&lt;/b&gt;&lt;/a&gt;

&lt;p&gt;This one is also a gamified platform where you train your skills. It is a simpler version than Codewars, but the webpage offers more than 30 programming language and uses TDD to test your code. &lt;/p&gt;

&lt;p&gt;You can choose to do the test individually or with a group, and people can join later your party to help you to crush the challenge. &lt;/p&gt;
 
&lt;a href="https://nevolin.be/codr/#"&gt;&lt;b&gt;&lt;li&gt;Codr&lt;/li&gt;&lt;/b&gt;&lt;/a&gt;

&lt;p&gt;I love the interface of Codr. It is pretty, simple to navigate and – the best part – is also available for mobile. So, if you are bored in a waiting room, you can take your phone and expend some minutes trying to solve code problems. &lt;/p&gt;

&lt;p&gt;The challenges have a vast range of difficulty, you can go from simple to expert level. It tests your abstract thinking, math, and programming skills with games and puzzles. &lt;/p&gt;

&lt;a href="https://screeps.com/"&gt;&lt;b&gt;&lt;li&gt;Screeps&lt;/li&gt;&lt;/b&gt;&lt;/a&gt;

This one is an MMO, it means that a massive number of people can play this game simultaneously. Screeps is a game where you develop your colony using JavaScript code. In your colony, you can mine resources, build units and conquer territory. 

&lt;p&gt;It is an amazing and complex game, where you can play together with other players from all over the world. The game developed by itself and you can code in a way that your game will continue running without you monitoring it. The main goal is to improve your programming skills and have fun. &lt;/p&gt;

&lt;p&gt;Screeps has a high level of complexity, for this reason, I recommend you to read the &lt;a href="https://docs.screeps.com/introduction.html&amp;gt;documentation%20&amp;lt;/a&amp;gt;%20before%20you%20play%20it.&amp;lt;/p&amp;gt;%0A&amp;lt;/ol&amp;gt;%0A%0A&amp;lt;p&amp;gt;Those%20are%20my%20tips%20to%20improve%20your%20programming%20skills%20and%20crush%20your%20interview.%20If%20you%20know%20more%20websites%20that%20can%20help%20to%20improve%20our%20logic,%20please%20let%20me%20know%20in%20the%20commentaries.%20%20&amp;lt;/p&amp;gt;%0A"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/ol&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>5 tips if you want to study in a coding Bootcamp</title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Wed, 27 May 2020 12:35:24 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/5-tips-if-you-want-to-study-in-a-coding-bootcamp-1911</link>
      <guid>https://dev.to/lioliveiraz/5-tips-if-you-want-to-study-in-a-coding-bootcamp-1911</guid>
      <description>&lt;p&gt;Imagine yourself in a classroom in a country that is not your homeland. A teacher is speaking a foreign language that you don’t domain, teaching a computer language that you know absolutely nothing. It sounds a bit scary, right? Welcome to a coding Bootcamp.&lt;/p&gt;

&lt;p&gt;Actually, this was my personal experience in a Bootcamp. I was living in the Netherlands for two years already, and then I decided to change from journalism to Web Development. Although I am grateful to have taken this decision, I cannot deny that some tips beforehand could help me to pass through it more easily. &lt;/p&gt;

&lt;p&gt;That is why I prepared five tips for those who are planning to join a Bootcamp. &lt;/p&gt;

&lt;h2&gt;
  
  
  Be prepared
&lt;/h2&gt;

&lt;p&gt;It is undeniable that being in a Bootcamp was a fantastic experience for me; the amount of knowledge that you gain in a short time is impressive though this crazy experience may not be for everyone. &lt;/p&gt;

&lt;p&gt;The level of commitment that it takes require a high level of discipline and passion. With the right amount of motivation, you can pass throw the whole course and start a fantastic career,  but if you get distracted, you lose track and miss the basic concepts what will – for sure – be a problem in the future.&lt;/p&gt;

&lt;p&gt;Thus, be prepared for each day learn one different concept, study 14 hours a day and do two projects a week. That will be your life during the course. &lt;/p&gt;

&lt;h2&gt;
  
  
  Do not wait for a miracle.
&lt;/h2&gt;

&lt;p&gt;Since the market started to require more and more professionals from IT, I hear people join Bootcamps seeking those jobs with high salaries. Most of them think that they will finish a 5-month course and land on a fantastic job, and never learn anything again. Unfortunately, that is not the reality. &lt;/p&gt;

&lt;p&gt;Coding requires a lot of logical skills, and you will have to study for the rest of your life. Every day a new tool is released, and – to be on top of your game – you must be aware of everything that is out there. It is true that many companies are looking for an engineer, but do not forget that there are tons of people who are learning and improve themselves. &lt;/p&gt;

&lt;p&gt;Thus, if you want to enter this world, be prepared to fight for it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Self-learn
&lt;/h2&gt;

&lt;p&gt;I see Bootcamp being a guideline, where your teacher gives you a few directions, and you must choose which one you will follow by yourself. It is impossible to learn everything in such a short period, and they know that.&lt;/p&gt;

&lt;p&gt;You will have access to different frameworks, libraries, languages. Hence, you have to follow what you like more and study as much as you can those technologies. Do not wait for anyone to show you the right way, mostly because there is no right way.  &lt;/p&gt;

&lt;h2&gt;
  
  
  It is not all about code.
&lt;/h2&gt;

&lt;p&gt;Network! Network! Network!&lt;/p&gt;

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

&lt;p&gt;There are two essential things that I learn with journalism:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do not burn your sources&lt;/li&gt;
&lt;li&gt; Do not burn your network. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have to say that I will be carried this for my whole life, and during Bootcamp cannot be different. &lt;/p&gt;

&lt;p&gt;If you are planning to change your field completely, the Bootcamp will be your gateway to any company. During my course, I had my first contact with engineers, and I had to make sure that they would remember my name after the five months. &lt;/p&gt;

&lt;p&gt;It is essential to talk to people, and learn with them not just algorithmics, but the jargons, what computer they use, how they learn, what they eat. The best way to learn is observing; then when you join a company, you will not be lost in the middle of people speaking things that you do not understand.    &lt;/p&gt;

&lt;h2&gt;
  
  
  Have fun
&lt;/h2&gt;

&lt;p&gt;This course will drain your energies and at some point, will be hard to think anything else but “It is time to code”, but it does not mean that you cannot have fun with it. Make challenges, games, competitions. Bootcamp is much about having experience as it is about learning a new concept.&lt;/p&gt;

&lt;p&gt;Those are my tips to turn your Bootcamp even better. &lt;br&gt;
Let me know if you liked!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>A story about a Brazilian journalist who became Web developer in the Netherlands.</title>
      <dc:creator>lioliveiraz</dc:creator>
      <pubDate>Sun, 10 May 2020 12:50:35 +0000</pubDate>
      <link>https://dev.to/lioliveiraz/a-story-about-a-brazilian-journalist-who-became-web-developer-in-the-netherlands-57p1</link>
      <guid>https://dev.to/lioliveiraz/a-story-about-a-brazilian-journalist-who-became-web-developer-in-the-netherlands-57p1</guid>
      <description>&lt;p&gt;Seven months ago, I was in a completely different place than I am right now, I was in a job that I did not fit in, without much hope to find something better. Then, I saw a post on Linkedin about scholarships for women who want to start their career in tech.  &lt;/p&gt;

&lt;p&gt;My first thought was: “This is not for me”. I was never comfortable with technologies. Since I graduated in communication and study humanities my whole life, I thought I was good with people, not with computers. &lt;/p&gt;

&lt;p&gt;I am not afraid to take challenges, so I decide to apply for it, and for my surprise, I got the scholarship.&lt;/p&gt;

&lt;p&gt;January 20, I was attending my first class. &lt;/p&gt;

&lt;h2&gt;
  
  
  Lost in the middle of algorithms
&lt;/h2&gt;

&lt;p&gt;The first month was the most overwhelmed of my life. We had 8 hours of class every day, five days a week. In one day, we had to learn at least three different concepts. &lt;/p&gt;

&lt;p&gt;I was utterly lost, mostly because the last time that I studied math was in 2010 and was not even good at it. Now, I was sitting in class trying to remember how we can discover the average of an array of number – yes, I did not know what ‘average’ was. &lt;/p&gt;

&lt;p&gt;We must solve two algorithmic challenges per week, and I had to spend at least 10 minutes trying to understand the problem. I was uncomfortable with all those tons of information, and, because of that, many times, I wondered if this field was something for me or if I had made a colossal mistake. &lt;/p&gt;

&lt;h2&gt;
  
  
  The right amount of effort
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PFKppscu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.pexels.com/photos/34580/pexels-photo.jpg%3Fauto%3Dcompress%26cs%3Dtinysrgb%26dpr%3D2%26h%3D650%26w%3D940" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFKppscu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.pexels.com/photos/34580/pexels-photo.jpg%3Fauto%3Dcompress%26cs%3Dtinysrgb%26dpr%3D2%26h%3D650%26w%3D940" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the terrible result of my first JavaScript test, I woke up. The test made me see that if I wanted to achieve something in web development, I had to stop using my background as an excuse and put some effort into it. &lt;/p&gt;

&lt;p&gt;I spent the next three months studying and creating projects. All the information that I learned I applied right away, building websites, or creating new features. There was not one second of my time that I was not coding or thinking about it. I started to read about code, listen to podcasts about development, and even watched the series Silicon Valley.&lt;/p&gt;

&lt;p&gt;I am not going to say that it was easy, but now I am extremely comfortable coding, and I am entirely passionate about it. New technologies finally do not make me scared, and my background in humanities is not hunting me anymore. Instead, I believe that being a communicator helps me to code and build applications that better respond to the user’s needs. &lt;/p&gt;

&lt;p&gt;To sums up, if you are facing a career transition, remember that if you put in the right amount of effort and like what you are doing there is absolutely nothing that you can not achieve. &lt;/p&gt;

&lt;p&gt;Did you like this piece? Have a subject that you would like me to write about? Please let me know. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
