<?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: Williams Oluwafemi</title>
    <description>The latest articles on DEV Community by Williams Oluwafemi (@vvilliam5).</description>
    <link>https://dev.to/vvilliam5</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%2F291635%2F4be0cd60-16db-49a0-a5cc-e61f2b660451.jpg</url>
      <title>DEV Community: Williams Oluwafemi</title>
      <link>https://dev.to/vvilliam5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vvilliam5"/>
    <language>en</language>
    <item>
      <title>Creating simple, clean yet beautiful UI layouts with Neomorphic designs</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Tue, 04 Feb 2020 09:03:12 +0000</pubDate>
      <link>https://dev.to/vvilliam5/creating-simple-clean-yet-beautiful-ui-layouts-with-neomorphic-designs-13bn</link>
      <guid>https://dev.to/vvilliam5/creating-simple-clean-yet-beautiful-ui-layouts-with-neomorphic-designs-13bn</guid>
      <description>&lt;p&gt;If like me, you get bored of repetitive and templated designs easily, then you probably are always looking for the next breath of fresh air design wise, Neomorphic designs ahve been around for a while now. While some people still dont think its here to stay, others have joined the bandwagon and so have i.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fl77y4hb0985d6ta01s19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fl77y4hb0985d6ta01s19.png" alt="Alt Text" width="800" height="768"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So i thought what else could be better to show i believe neomorphic designs are here to stay than to redesign my personal site to such standards. Below are screenshots, do let me kow what you think about Neomorphic Design and my implementation in the comment section&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6iv7owr67k53ot7u0l8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6iv7owr67k53ot7u0l8h.png" alt="Alt Text" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbi6yknu5ivt4b0mgfc7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbi6yknu5ivt4b0mgfc7d.png" alt="Alt Text" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to live project, theres also a dark mode ;)&lt;br&gt;
&lt;a href="https://vvilliam5.github.io/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;EDIT:&lt;br&gt;
Here is a link to the repo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vvilliam5/aboutme"&gt;https://github.com/vvilliam5/aboutme&lt;/a&gt;&lt;/p&gt;

</description>
      <category>design</category>
      <category>career</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Break The Psychological Barriers Holding Back Your Career</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Thu, 02 Jan 2020 10:02:38 +0000</pubDate>
      <link>https://dev.to/vvilliam5/break-the-psychological-barriers-holding-back-your-career-497e</link>
      <guid>https://dev.to/vvilliam5/break-the-psychological-barriers-holding-back-your-career-497e</guid>
      <description>&lt;p&gt;We tend to find reasons to blame others when our careers are not moving forward. Most of the time we don’t look critically at ourselves. It could be attributed to a bad boss, back-stabbing coworkers, bad luck or some sort of discrimination and prejudice. &lt;/p&gt;

&lt;p&gt;These things, unfortunately, occur all too often in the workplace. Those are not the only reasons that hold you back. Sometimes you are your own worst enemy and do harm to your career development and advancement. &lt;/p&gt;

&lt;p&gt;People have negative thoughts that play on endless loops. We experience feelings of anxiety and insecurity. Many of us have a fear of failure and are scared of the unknown. This prohibits us from taking action and moving forward in our careers. &lt;/p&gt;

&lt;p&gt;To become successful, it’s important to counter these bad thoughts and feelings. You need to adopt a positive mindset which motivates you into action. Waiting, wanting and wishing for a miracle to happen is not a realistic plan. What’s required is a burning desire to achieve a desired goal, along with assertive actions.   &lt;/p&gt;

&lt;p&gt;We have all experienced difficult and and some traumatic events in our younger years. You may be thirty or fifty years old, but still view the world through the eyes of young, afraid kid who was bullied in school. These feelings are real, but you have to find a way to effectively deal with and rise above it. Incessantly reliving bad events from the past will inhibit you from living in the present. The constant negativity will eat-up your energy and restrain you from achieving great things.  &lt;/p&gt;

&lt;p&gt;To move forward with your career and succeed you must let go of the past. Stop reliving bad memories and quit being the victim. You can’t undo the past but you can build a bright new future.  Forgive yourself and others so that you can move on with your life and career with a clean slate. Clear you mind to focus on the present moment and your goals for the future. &lt;/p&gt;

&lt;p&gt;You may feel stuck in a rut but don’t know what to do next. Time goes by and you become increasingly frustrated. It’s easy to start getting resentful and angry at your situation. You will promise that a change will be made next week or after the New Year.  &lt;/p&gt;

&lt;p&gt;Stop saying it and start doing something positive. Take constructive steps to move forward. Keep in mind, an object in motion stays in motion. If you don’t move forward, you are falling behind. It’s too easy to become complacent and take the path of least resistance by staying in a bad situation. &lt;/p&gt;

&lt;p&gt;It gets harder to change the longer you remain in a bad work relationship. Acknowledge your  feelings and start taking proactive steps. Devise a plan to change your circumstances. Write down the ideas to keep yourself honest, then take proactive measures every day. Push forward even if you’re tired and don’t want to do it. By cultivating these habits you will build mental and emotional muscle. You will become stronger, more confident and feel better about yourself as you take charge of your life.&lt;/p&gt;

&lt;p&gt;We teach our children that if they try hard enough they can become anything they desire.  Somehow as we get older, we’re not so sure about this. As grown working adults we doubt our abilities. After some setbacks, we believe that great success is solely for other people and not us. You need to heed your parent’s advice. Use the unique skills, attributes and gifts that you possess and relentlessly build upon them to achieve want you want in your career and life. &lt;/p&gt;

&lt;p&gt;To succeed you need to let-go of the past, ignore the negative voices in your head, take bold initiatives and don’t give-in to excuses.&lt;/p&gt;

&lt;p&gt;This article was first published&lt;br&gt;
&lt;a href="https://www-forbes-com.cdn.ampproject.org/v/s/www.forbes.com/sites/jackkelly/2020/12/31/break-the-psychological-barriers-holding-back-your-career/amp/?amp_js_v=a2&amp;amp;amp_gsa=1#referrer=https%3A%2F%2Fwww.google.com&amp;amp;amp_tf=From%20%251%24s&amp;amp;ampshare=https%3A%2F%2Fwww.forbes.com%2Fsites%2Fjackkelly%2F2020%2F12%2F31%2Fbreak-the-psychological-barriers-holding-back-your-career%2F"&gt;here&lt;/a&gt; &lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>motivation</category>
      <category>yearinreview</category>
    </item>
    <item>
      <title>Quick Tutorial - Routing with React</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Tue, 24 Dec 2019 22:57:34 +0000</pubDate>
      <link>https://dev.to/vvilliam5/quick-tutorial-routing-with-react-aad</link>
      <guid>https://dev.to/vvilliam5/quick-tutorial-routing-with-react-aad</guid>
      <description>&lt;p&gt;So you built that beautiful web app, Man and God were pleased with it, but whenever you try to route your app using the anchor tag, you lose all your App data, and you wonder why, maybe the gods aren't pleased after all? Probably not, using an anchor tag generally fetches a fresh version of your html file(short version) and to route in react you would have to use a package called react-router-dom. First you need to install the package, on your command prompt/terminal run&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;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nx"&gt;save&lt;/span&gt; &lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;dom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then import the package into your app&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;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Link&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So now to create your components that you want to route between&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;const&lt;/span&gt; &lt;span class="nx"&gt;Homepage&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;return&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;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;hoempage&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/aboutus&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;button primary&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;Click&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;go&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;About&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;/Link&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;AboutUs&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;return&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;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;About&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="nx"&gt;Link&lt;/span&gt; &lt;span class="nx"&gt;to&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="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;button primary&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;Click&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;go&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;back&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;/Link&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;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;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&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;BrowserRouter&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;div&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;Route&lt;/span&gt; &lt;span class="nx"&gt;path&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="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Homepage&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Route&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/aboutus&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;AboutUs&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Route&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&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;now you can route between pages, you might be wondering what the exact keyword is doing there, well it has to do with the way the BrowserRouter works, it creates an object called history which keeps track of the current url the user is visiting and uses it to also update the url as a user switches from 1 component to another and the way it works is, it queries the url and compares to the path that user is trying to visit and if it finds an occurrence in that path it renders the component, for example you are trying to access /aboutus, the BrowserRouter takes a look at the first route and checks if it contains "/", in this case it, does, so it renders it. To avoid this behavior, we add the exact attribute to the route to tell the Router that this component should only be rendered if the url is exactly '/'&lt;/p&gt;

&lt;p&gt;You can copy out this code and play around with it, to learn more about the behavior of the react router :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>tutorial</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Awesome Starting Eleven Skillset for your resume</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Thu, 19 Dec 2019 12:28:18 +0000</pubDate>
      <link>https://dev.to/vvilliam5/awesome-starting-eleven-skillset-for-your-resume-2mol</link>
      <guid>https://dev.to/vvilliam5/awesome-starting-eleven-skillset-for-your-resume-2mol</guid>
      <description>&lt;p&gt;&lt;strong&gt;Football fans gather here&lt;/strong&gt;&lt;br&gt;
So you want to update your resume, make it stand out and look really nice. Well so do I, trying to figure out how to achieve this, I came up with making my skill set in the formation of a starting eleven - football being my favorite sport (sorry American if you can't relate)&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1o7apgls0xpo4d14qlor.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1o7apgls0xpo4d14qlor.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vvilliam5.github.io/" rel="noopener noreferrer"&gt;Click here to check it out live&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>tutorial</category>
      <category>career</category>
      <category>design</category>
    </item>
    <item>
      <title>Javascript - misconception of this</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Wed, 18 Dec 2019 09:32:20 +0000</pubDate>
      <link>https://dev.to/vvilliam5/javascript-misconception-of-this-32pp</link>
      <guid>https://dev.to/vvilliam5/javascript-misconception-of-this-32pp</guid>
      <description>&lt;p&gt;Whether you are a seasoned engineer or new to coding, 1 common error you are likely to come across alot is 'Cannot read the value undefined of this'&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ra8sydcS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/ph0md9emuswsleh98cx8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ra8sydcS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/ph0md9emuswsleh98cx8.jpg" alt="Alt Text" width="616" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is a very confusing concept that puts many people off, so I'll be trying to explain concisely what this is&lt;/p&gt;

&lt;p&gt;Take the following for example&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="nf"&gt;getLetters&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="p"&gt;{&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;firstLetter&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="na"&gt;secondLetter&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="k"&gt;return &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;obj&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;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getLetters&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We would expect display to equals to {a, b} right?&lt;br&gt;
well no, what you would get is undefined&lt;/p&gt;

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

&lt;p&gt;Lets see another example&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;shoppingList&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="na"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;banana&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="na"&gt;cake&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;chocolate&lt;/span&gt;&lt;span class="dl"&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;getItems&lt;/span&gt;&lt;span class="o"&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&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;fruits&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt; &lt;span class="o"&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;cake&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getItems&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;cake&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
javascript&lt;br&gt;
We would expect results to equal 'banana chocolate' right?&lt;br&gt;
Nope what you get is an error&lt;/p&gt;

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

&lt;p&gt;So what exactly is wrong? Well this is not what you think this is, one might think in the first example that this would refer to the obj and the fruit and cake keys in the second example but it does not&lt;/p&gt;

&lt;p&gt;This actually gets its value at the function invocation, meaning the binding of a value happens when you invoke the function, and the object to the left of the invocation is what gets binded to the value of this &lt;/p&gt;

&lt;p&gt;Illustration&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;wishlist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;games&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Xbox Scarlett&lt;/span&gt;&lt;span class="dl"&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;viewWishlist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;games&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="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;games&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;wishList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;viewWishList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PS5&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
javascript&lt;br&gt;
In this scenario, what will we expect the value of result to be? Well if you guessed 'Xbox Scarlett' you are absolutely right, the value of this was binded to the object that was invoked with the function, but you might ask, hey Williams, what if we don't call the function with a value to the left of the dot, what then becomes the value of this? Good question&lt;/p&gt;

&lt;p&gt;The value of this in this situation will the global object, why? Because our rule still applies, what is to the left of the function invocation viewWishlist()? You can't see it but the function is actually being invoked with global object. Which is why the values of this is being binded to the global object&lt;/p&gt;

&lt;p&gt;Now that that's out of the way, you might be wondering, hey Williams, what if I want to tell my function the object I want to be binded with the value of this, well you call the function with a call or apply function and pass the value you want to be binded to this as the first argument&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;viewWishList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;objToBind&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So here the value of this is going to be binded to the object objToBind. &lt;/p&gt;

&lt;p&gt;I hope with my illustrations I've been able to explain to you what this means and how to use it in your codes :) &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>react</category>
    </item>
    <item>
      <title>Automated Testing - is it really worth it?</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Tue, 17 Dec 2019 08:45:14 +0000</pubDate>
      <link>https://dev.to/vvilliam5/automated-testing-is-it-really-worth-it-39d7</link>
      <guid>https://dev.to/vvilliam5/automated-testing-is-it-really-worth-it-39d7</guid>
      <description>&lt;p&gt;'one of the challenges of being a software engineer is proving that your code works'&lt;/p&gt;

&lt;p&gt;-Unknown&lt;/p&gt;

&lt;p&gt;Well I buy into this, many times I find myself in a situation where I believe I just created a masterpiece, where everything functions properly (or at least makes me think it does) only for me to run into some serious logic errors. So what's the solution to this dilemma? Automated Testing?&lt;/p&gt;

&lt;p&gt;Automated testing is writing a bunch of test suites to assert whether your piece of code is functioning as desired. A very popular testing framework I also work with is Mocha, which allows your import assertions styles whether BDD or TDD, it's so convenient because the syntax is near natural language, a popular assertion library to use hands in hand with Mocha is Chai which gives you the flexibilty of using multiple assertion styles. &lt;/p&gt;

&lt;p&gt;Consider the following&lt;/p&gt;

&lt;p&gt;So you want to create a function that accepts a card number and returns a the name of the card ie&lt;br&gt;
detectNetwork('12365478635') should return either mastercard or visa depending on the first 3 characters or the length&lt;/p&gt;

&lt;p&gt;detectNetwork = function (cardNumber) {&lt;br&gt;
if(cardNumber.startaWith('31') &amp;amp;&amp;amp; cardNumber.length == 16)&lt;br&gt;
 return 'Visa' &lt;br&gt;
} &lt;/p&gt;

&lt;p&gt;Creating this function is relatively easy, but how do you test it? Manually console log the function with the card number argument? Good idea, but what happens when you have numbers going into thousands? Console log them too? Probably not. That's where automated testing comes in&lt;/p&gt;

&lt;p&gt;Simply write your test suites using for loops for larger numbers and voila, life is easy again, some thing as simple as&lt;/p&gt;

&lt;p&gt;//TDD&lt;br&gt;
const expect = chai.expect&lt;/p&gt;

&lt;p&gt;describe('Visa', function() {&lt;/p&gt;

&lt;p&gt;it('should return Visa for cardNumber with prefix 31 and length of 16', function() {&lt;br&gt;
expect(detectNetwork('3143688426790').toEquals('Visa')&lt;br&gt;
} &lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;//BDD&lt;br&gt;
const should = chai.should(()&lt;/p&gt;

&lt;p&gt;describe('Visa', function() {&lt;/p&gt;

&lt;p&gt;it('should return Visa for cardNumber with prefix 31 and length of 16', function() {&lt;br&gt;
(detectNetwork('3143688426790').should.equals('Visa')&lt;br&gt;
} &lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;Another beat trick to get compiling your test cards is to store them in an array and call them with the test suite using a for loop.&lt;/p&gt;

&lt;p&gt;You can get started with the Mocha and Chai with the links below&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mochajs.com/"&gt;http://mochajs.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.chaijs.com/"&gt;https://www.chaijs.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Using React - Context vs Redux</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Mon, 16 Dec 2019 09:18:16 +0000</pubDate>
      <link>https://dev.to/vvilliam5/using-react-context-vs-redux-fk6</link>
      <guid>https://dev.to/vvilliam5/using-react-context-vs-redux-fk6</guid>
      <description>&lt;p&gt;Working with React, at some point would make you think there has to be a better way to manage your states across your application - well yes, Redux (walking in with some Pyro effects) Redux allows your manage your states through our your entire App using reducers. It also allows you create action creators, which automates the operations you perform on your states - not to mention a super useful plugin that helps you debug your react apps running on Redux&lt;/p&gt;

&lt;p&gt;But here's the catch (not really) setting up redux can be somewhat tedious, you would have to install 2 dependencies, create your action creators, create your reducers then create your store. As a matter of fact, most blogs would advice you use redux only for complex and large apps, using Redux for a simple app without much logic is like Trump telling us to read the transcript (totally unnecessary)&lt;/p&gt;

&lt;p&gt;So what that being said, when Context was introduced as a replacement (substitute maybe) for redux, there was jubilation all round, but like Trump after a couple years, allot are disappointed, but why? Well you see, context doesn't really replace redux. It's only gives you a pipe for you to pass your props to grand children of your App&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cy142XzM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/uv94hijxo6xyuca488yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cy142XzM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/uv94hijxo6xyuca488yr.png" alt="Alt Text" width="508" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0jpIonsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/eq7ql5idbrsvyd06bytr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0jpIonsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/eq7ql5idbrsvyd06bytr.png" alt="Alt Text" width="757" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It doesn't create a store neither does it facilitate action creators, not to mention the complex implementation and nasty code you create with it, especially when you are attempting to pull out multiple resources from connect to your App&lt;/p&gt;

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

&lt;p&gt;OH did I mention, you have to create 2 components when using connect? One to create and 1 to use - the Provider and Consumer component(face palm) &lt;/p&gt;

&lt;p&gt;But with all disappointments, there are still some who see it as a blessing. So you might ask which way should you go? I think that's left for you to decide after reading this post :) &lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The best text editor/IDE for beginners (and pros)</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Sat, 14 Dec 2019 16:57:46 +0000</pubDate>
      <link>https://dev.to/vvilliam5/the-best-text-editor-ide-for-beginners-and-pros-11f8</link>
      <guid>https://dev.to/vvilliam5/the-best-text-editor-ide-for-beginners-and-pros-11f8</guid>
      <description>&lt;p&gt;So you just thought out a new project or you want to start coding, after you have chosen your preferred choice of language and frameworks, the next question is what text editors do you use to write out your codes?&lt;/p&gt;

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

&lt;p&gt;Visual Studio Code is arguable the best free text editor out there, here are a few points to support my argument&lt;br&gt;
 autocomplete: have you ever had to rewrite the same code over and over again? (You should probably copy and paste) but with VS Code, you get suggestions on auto fill properties be it values or functions, as long as they are in the scope of the file, you are good to go&lt;br&gt;
 indenting: ive used quite a number of text editors and i have to say VS Code has the best auto indentation system. You dont have to worry about formatting your codes to make them clearer, just save your file and VS Code does all the magic for you&lt;br&gt;
 debugger: whilst most ides have good debuggers, VS Code's debugger is the easier to understand and work with&lt;br&gt;
 there are so much more add benefits of using VS Code like extensions, language adaptation etc, a very long list. &lt;br&gt;
You can get started with VS Code in the link below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://code.visualstudio.com/"&gt;https://code.visualstudio.com/&lt;/a&gt;  :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Ultimate React Redux debugger</title>
      <dc:creator>Williams Oluwafemi</dc:creator>
      <pubDate>Sat, 14 Dec 2019 10:29:59 +0000</pubDate>
      <link>https://dev.to/vvilliam5/the-ultimate-react-redux-debugger-30g6</link>
      <guid>https://dev.to/vvilliam5/the-ultimate-react-redux-debugger-30g6</guid>
      <description>&lt;p&gt;I like me, you are also new to using Redux, you would agree with me, things can get complicated real quickly, and to make matters worse, the conventional google debugger isn't much helpful.&lt;/p&gt;

&lt;p&gt;But i found a google chrome extension to help make your life a lot easier and make your coding more of a pleasant experience. &lt;/p&gt;

&lt;p&gt;The name of the debugger is Redux-devtools-extensions, below is a link to my forked version of it&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vvilliam5/redux-devtools-extension.git"&gt;https://github.com/vvilliam5/redux-devtools-extension.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is awesome because it has a really nice GUI that shows you all your action creators and reducers, and your store as a whole, and you can click on actions to revisit the state of your app at that particular point in time, i am still exploring it, but these are still the cool features ive discovered so far. I be sure to update on my new findings.&lt;/p&gt;

&lt;p&gt;It works as a chrome extension, just download, import your applyMiddleware and compose objects from the redux library and add this line of code to your App component&lt;/p&gt;

&lt;p&gt;const composeEnhancers = window.&lt;strong&gt;REDUX_DEVTOOLS_EXTENSION_COMPOSE&lt;/strong&gt; || compose;&lt;br&gt;
const store = createStore(reducers, composeEnhancers(applyMiddleware()));&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8M65SP1b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/4u81fjno3xtusa0xvot3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8M65SP1b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/4u81fjno3xtusa0xvot3.png" alt="Alt Text" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And your all done :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
