<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Amarachi Johnson-Ubah</title>
    <description>The latest articles on Forem by Amarachi Johnson-Ubah (@amarachijohnson).</description>
    <link>https://forem.com/amarachijohnson</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%2F227153%2F405fb91f-88ff-4edc-bb1e-c93f1a83b83d.jpg</url>
      <title>Forem: Amarachi Johnson-Ubah</title>
      <link>https://forem.com/amarachijohnson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/amarachijohnson"/>
    <language>en</language>
    <item>
      <title>Productivity Hacks for Developers</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sun, 14 Feb 2021 17:06:26 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/productivity-hacks-for-developers-2pmj</link>
      <guid>https://forem.com/amarachijohnson/productivity-hacks-for-developers-2pmj</guid>
      <description>&lt;p&gt;For some people, productivity as a developer means the number of codes you can write in minimal time, while for some, it is the number of quality codes you can churn out in the barest amount of time. Whichever definition you choose is great. This is how I define mine: Productivity is the ratio between the output churned out and the volume of inputs. &lt;/p&gt;

&lt;p&gt;Being a productive developer has its perks which include: Job satisfaction, higher pay, work-life balance, and a happy-boss.&lt;/p&gt;

&lt;p&gt;There are a thousand and one things fighting for your attention on a daily basis,  and knowing where and when to respond to them and with which tools, would place one developer in front of the other on the productivity radar (If there is anything like that).&lt;/p&gt;

&lt;p&gt;In this article, you’ll learn how to set goals, take charge of your day, and become a super-productive developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does it matter?
&lt;/h2&gt;

&lt;p&gt;Humans are not machines and even machines pack up if not serviced. You can use up will-power and mental resources - and become a vegetable.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412194144%2Fan6OPrxig.jpeg" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412194144%2Fan6OPrxig.jpeg" alt="fully charged head.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Productivity != being busy. You can be busy a whole day, doing things with very little significance.&lt;/p&gt;

&lt;p&gt;Whether you’re a newbie, intermediate, or a very experienced developer, you need to be more productive to become better.&lt;/p&gt;

&lt;p&gt;Companies love to have productive developers in their team with the ever teaming competition on their neck daily, they want someone who can deliver quality codes in less time. &lt;/p&gt;

&lt;p&gt;So, the question is, with the distractions flying around vying for one’s attention, how can one be more productive as a developer? &lt;/p&gt;

&lt;h3&gt;
  
  
  Set Goals
&lt;/h3&gt;

&lt;p&gt;Without clear goals to drive you forward, you won’t know if you’re making progress in the activities you consider most important.&lt;br&gt;
Map out what you want to achieve within a particular time frame, and outline how you're set to achieve them. When making a goal, bear the following in mind:&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412279266%2Foq3vp-peU.jpeg" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412279266%2Foq3vp-peU.jpeg" alt="goal.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Your goals should be Specific&lt;/strong&gt;. Make a list of what you want to achieve and in simple and straightforward terms too. &lt;br&gt;
Saying "I'd build a full Vue application this week" is vague compared to when you say "I'll build a todo-app using Vue this week"&lt;br&gt;
This specificity will help you in breaking the task further down to daily goals, and hourly goals as the case may be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your goals should be measurable&lt;/strong&gt;. If you can't measure your goals, then it'd be difficult to monitor progress or digress. Instead of saying "I'll become a better developer this year" ("better" is relative and can't be measured) say, I'll build 20 applications using Vue, NuxtJs, and GraphQl. This way, if you're able to build 10, you'd at least discover that you achieved a percentage of your goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your goals should be attainable&lt;/strong&gt;. Don't make goals you and your guts clearly know you can't achieve. You'll only be setting yourself up for disappointment and sap your motivation when you don't achieve them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your goals should be relevant&lt;/strong&gt;.&lt;br&gt;
The goal you pick should be pertinent to your field or should benefit you directly. It would be awkward for me to want to be the best actress in Nigeria in 2020 when I've not starred in a local drama concert for once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your goal should be time-bound&lt;/strong&gt;. Adding a timing to your goals gives you a sense of urgency needed to wake you up to do something even on days you don't feel like it. Example #100daysofCode&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Distractions
&lt;/h3&gt;

&lt;p&gt;Distractions come in a number of ways, with social media being the all-time enemy of developers. As a developer, it is given that you spend a lot of time with your laptop, iPad, and phone. Notifications could pop up just the time you're about testing a feature with your phone🤦🏼 and this minute, you're deciding to check out this one notification, and in the next 1 hour, you're wondering what made you pick up the phone in the first place. Tragic!&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412700675%2F-iETBj5bN.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412700675%2F-iETBj5bN.png" alt="meme.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are a few things that have worked for me against social media distractions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Putting a considerable distance between me and my phone. Keeping my phone a room or 2 away from me makes it difficult for me to reach for it, and aids in resisiting the impulse to check one message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turning off social media notification. All of them, except my email and Slack. This ensures that I do not get tempted to "check" a notification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Calendar blocking. In my daily calendar, I have times designated for my daily activities including social media.&lt;br&gt;
You may be wondering, so how can one be active on social media and be a good developer at the same time? This is your answer.&lt;br&gt;
Those who you consider active on social media may be spending considerably lesser amount of time on social media than you do. They schedule posts and engage with people during their "social media times" and then log off while you spend 5 hours doom scrolling. Please don't.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Have a good project structure
&lt;/h3&gt;

&lt;p&gt;Breaking down your project into chunks or sprints helps you set up systems to execute them in sprints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bring in Automations
&lt;/h3&gt;

&lt;p&gt;Automate the small stuff. There are a few tasks that could be cleared off your table if you cease to do them manually. Eg, using schedulers for social media posts, labeling emails.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sleep more
&lt;/h3&gt;

&lt;p&gt;A lot of eyes would have had to stay open 24hours everyday, if there were nothing like sleep. A lot of developers still consider sleep a luxury or a phenomenon for the "weak". &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;According to the National Sleep Foundation, healthy adults need between 7 and 9 hours of sleep per night.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I inserted this fact to encourage you to sleep more. An unaccredited source also discovered that sometimes, it only takes few hours of sleep and a walk in the park to solve the bug that had kept you awake for days.&lt;/p&gt;

&lt;h3&gt;
  
  
  Don’t burn out
&lt;/h3&gt;

&lt;p&gt;Burn out is a chronic state of exhaustation at which point you lose the will to do all the things that usually fascinate you. At this point, productivity would be alien to you, because it takes a vibrant mind to be productive.&lt;br&gt;
Burn out is mostly caused by stress and can be &lt;a href="https://amarachiazubuike.com/what-do-you-do-when-you-have-a-burn-out-ckdkvsrif03yyz2s16c3z7yvu" rel="noopener noreferrer"&gt;prevented&lt;/a&gt; via regular exercise, social activities, taking both mental and physical breaks.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412991375%2FL8tDfsdD5.jpeg" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1611412991375%2FL8tDfsdD5.jpeg" alt="tiredgif.jpg"&gt;&lt;/a&gt;&lt;br&gt;
By all means, do not burn out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep learning
&lt;/h3&gt;

&lt;p&gt;The more you know, the more productive you become. Take new courses, try new methods of achieving a thing, be a lifelong learner. Make it a habit to learn something new each day.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read books
&lt;/h3&gt;

&lt;p&gt;Reading can be both relaxing, educating, and entertaining (Depends on what you're reading).&lt;br&gt;
If you're looking to learn, relax or simply entertain yourself, a good book could bring that along with good vibes for maximum productivity.&lt;/p&gt;

&lt;p&gt;We've been able to go through 8 ways of becoming more productive as a developer. Which ones will you be practicing first?&lt;/p&gt;

&lt;p&gt;I hope you found these tips useful. If so, follow me on &lt;a href="https://twitter.com/amara_thelight" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is an excerpt of my talk at the &lt;a href="https://twitter.com/vuejsng" rel="noopener noreferrer"&gt;VueJs Nigeria Meetup&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>developers</category>
    </item>
    <item>
      <title>A Beginners Guide to Web Accessibility</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Fri, 04 Sep 2020 20:41:30 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/a-beginners-guide-to-web-accessibility-293h</link>
      <guid>https://forem.com/amarachijohnson/a-beginners-guide-to-web-accessibility-293h</guid>
      <description>&lt;p&gt;Making the web accessible is essential for everyone, including developers and organizations because, it means that everyone can use the products and services you create.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Web Accessibility?
&lt;/h2&gt;

&lt;p&gt;Web accessibility simply means building websites, tools and technologies in such a way that people with disabilities can use them.&lt;br&gt;
The web is designed to work for everyone, irrespective of their hardware, language, ability or location and when this goal is met we can say that accessibility has been achieved.&lt;br&gt;
However, when websites or applications, technologies or tools are built such that there is a barrier that exclude some people from using it, we can say such product failed accessibility test.&lt;/p&gt;

&lt;p&gt;Few weeks ago,  &lt;a href="https://blog.twitter.com/en_us/topics/product/2020/your-tweet-your-voice.html" rel="noopener noreferrer"&gt;twitter launched a voice tweet feature&lt;/a&gt; , which was met with a lot of complaints pertaining accessibility (Those with hearing impairments can't use this features and twitter created no other means for them join in the audio conversations)&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1273306969953222660-897" src="https://platform.twitter.com/embed/Tweet.html?id=1273306969953222660"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1273306969953222660-897');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1273306969953222660&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Twitter has however apologised for its slack in accessibility and as we hope they come back with a more accessible feature, it's good to understand how important this is.&lt;br&gt;
Accessibility should be considered even while building, and not as an after thought.&lt;/p&gt;

&lt;h2&gt;
  
  
  Considerations for Accessibility
&lt;/h2&gt;

&lt;p&gt;While building, here are some disabilities accessibility encompasses which should be taken note of&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Neurological&lt;/strong&gt;: People who have been affected by a brain injury that can begin during the development process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive&lt;/strong&gt;: People with limitations in mental functioning in skills such as communicating, taking care of themselves-, and social skill. There may be some things they cannot learn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual&lt;/strong&gt;: Blind people, color blind or people with partial vision loss.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech&lt;/strong&gt;: People who are mute, have communication disorder or whose normal speech is disrupted (stuttering, lisps etc)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditory&lt;/strong&gt;: People with hearing impairments, deaf or partially deaf.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web accessibility also benefits people without disabilities, for example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People using mobile phones&lt;/li&gt;
&lt;li&gt;People with temporary disabilities, such as broken glasses&lt;/li&gt;
&lt;li&gt;People with slow internet connections&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why is Web Accessibility Important?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Web accessibility is important as the web and internet have become important parts of our lives. Making sure the web is accessible allows people with disabilities to be able to have equal access to the important services/features the web provides, such as education, online shopping, recreation, health services and others.&lt;/li&gt;
&lt;li&gt;Web accessibility ensures that everyone is carried along in trends, innovations and no one is left behind.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Simple Ways of Making the Web Accessible
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Use Alt Tags
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./images/img1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description of image&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An alt tag is used on images to allow a description of the image to be output if the image can’t be displayed/seen. Making sure this alt-tag is as descriptive as possible will help screen readers to relay the information you are trying to portray.&lt;/p&gt;

&lt;h4&gt;
  
  
  Keyboard ShortCuts
&lt;/h4&gt;

&lt;p&gt;Some users do not have access to a mouse or are unable to use a mouse.&lt;br&gt;
What this means is that the only way they can get around your website is by using keyboard shortcut, hence it is important to enable them to do so.&lt;/p&gt;

&lt;h4&gt;
  
  
  Title Tags
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;A&lt;/span&gt; &lt;span class="nx"&gt;Beginners&lt;/span&gt; &lt;span class="nx"&gt;Guide&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;Accessibility&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Making sure you have a short yet descriptive title tag on all pages will allow visitors to know what the page is about which is especially helpful for people using a screen reader.&lt;/p&gt;

&lt;h4&gt;
  
  
  Test your websites on mobile devices
&lt;/h4&gt;

&lt;p&gt;A lot of people access websites on their phones rather than a PC. So it is important to build websites that are user friendly across both PCs and phones. To ensure a website is user friendly, you have to test it across multiple devices.&lt;/p&gt;

&lt;h4&gt;
  
  
  Provide Captions for Videos
&lt;/h4&gt;

&lt;p&gt;This is helpful for those who do not have access to audio. They can understand the videos through the texts provided.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1599061609766%2FmCrZ2ok55.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1599061609766%2FmCrZ2ok55.png" alt="Screenshot_20200902-164527~2.png"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;We just looked at what accessibility is and how to implement it basically.&lt;br&gt;
Remember to always consider accessibility during you design process and not as an afterthought.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Relevant Materials on Accessibility
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/WAI/fundamentals/accessibility-intro/" rel="noopener noreferrer"&gt;Web Accessibility Initiative&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webaim.org/intro/" rel="noopener noreferrer"&gt;WebAIM’s Introduction to Web Accessibility&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.a11yproject.com" rel="noopener noreferrer"&gt;a11y stands for&lt;br&gt;
ACCESSIBILITY&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoyed this article? Follow me on &lt;a href="https://twitter.com/msamarachukwu" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building a Palindrome Checker using Split, Join and replace methods</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Thu, 13 Aug 2020 13:20:19 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/building-a-palindrome-checker-using-split-join-and-replace-methods-1o7k</link>
      <guid>https://forem.com/amarachijohnson/building-a-palindrome-checker-using-split-join-and-replace-methods-1o7k</guid>
      <description>&lt;p&gt;So, recently I embarked on building the projects on the FreeCodeCamp JavaScript course, and I've decided to write about the steps I took to build them out as I proceed.&lt;/p&gt;

&lt;p&gt;So, first, I created a palindrome identifier- a function that can be able to figure out if a word is a palindrome irrespective of whether it has non-alphanumeric characters or spaces.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, what is a palindrome?
&lt;/h2&gt;

&lt;p&gt;Palindrome are words or sentences that spelled the same way both forward and backward, ignoring punctuation, case, and spacing, this means that the words are exactly the same even when they are turned upside down. For instance, the word &lt;code&gt;eye&lt;/code&gt; looks the same even when turned both ways.&lt;/p&gt;

&lt;p&gt;So, in the next few minutes, you'll be building along with me a function that returns &lt;code&gt;true&lt;/code&gt; if a word is palindrome and &lt;code&gt;false&lt;/code&gt; if it's not, &lt;em&gt;ignoring spaces and non-alphanumeric characters&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;Before we proceed, you should have a knowledge of the following JavaScript methods:&lt;br&gt;
&lt;code&gt;split&lt;/code&gt;&lt;br&gt;
&lt;code&gt;replace&lt;/code&gt;&lt;br&gt;
&lt;code&gt;join&lt;/code&gt;&lt;br&gt;
If you don't have an idea, take few minutes to read up this articles on  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split"&gt;split&lt;/a&gt; , &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse"&gt;reverse&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace"&gt;replace&lt;/a&gt;  and  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join"&gt;join&lt;/a&gt;  methods.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Let's write our algorithm&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove spaces and alphanumeric characters from the string and store in a variable&lt;/li&gt;
&lt;li&gt;Reverse the string and also store in a variable.&lt;/li&gt;
&lt;li&gt;Compare the string and the reversed string&lt;/li&gt;
&lt;li&gt;Return true if they are same and false if they are not equal&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Let write our code
&lt;/h2&gt;

&lt;p&gt;First,we'll define our function. Our function will be taking a string &lt;code&gt;str&lt;/code&gt; as 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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;palindrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&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;Secondly, we have to eliminate spaces and alphanumeric characters from the string. We'll be using regex for this.&lt;br&gt;
We'll also convert the word to lowercase. &lt;em&gt;You can choose to change yours to uppercase&lt;/em&gt;&lt;br&gt;
The aim of this is to keep all the alphabets on the same case to ease comparison.&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;palindrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&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;palindrom&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;0-9a-z&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&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;Having done this, let's create another variable &lt;code&gt;reversed&lt;/code&gt; where we'll store the reversed string. (We'll be reversing the variable &lt;code&gt;palindrom&lt;/code&gt; above)&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;palindrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&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;palindrom&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;0-9a-z&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&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;reversed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;palindrom&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;reverse&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

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

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

&lt;/div&gt;



&lt;p&gt;Let's compare&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;palindrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&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;palindrom&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;0-9a-z&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&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;reversed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;palindrom&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;reverse&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;reversed&lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="nx"&gt;palindrom&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;palindrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;racecar&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quite a short one, but yeah, we have a function here which can detect palindromes.&lt;/p&gt;

&lt;p&gt;I'd love to entertain feedback from you. Thanks for reading. &lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>javascript</category>
    </item>
    <item>
      <title>CSS Selectors, Simplified</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Wed, 12 Aug 2020 20:52:55 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/css-selectors-simplified-129j</link>
      <guid>https://forem.com/amarachijohnson/css-selectors-simplified-129j</guid>
      <description>&lt;p&gt;When I started out with CSS, I always used the class and Id selectors and nothing else. &lt;br&gt;
With time I learnt about some other ways of selecting items in CSS and I'll be sharing them with you with illustrations of how they work.&lt;/p&gt;

&lt;p&gt;So, let's get to it.🎾&lt;/p&gt;
&lt;h2&gt;
  
  
  What are CSS selectors?
&lt;/h2&gt;

&lt;p&gt;CSS selectors are a means through which we're able to identify, find or call up elements in HTML so we can style it.&lt;br&gt;
The most common selectors are the &lt;code&gt;name of element&lt;/code&gt; , &lt;code&gt;class selectors(.)&lt;/code&gt; and &lt;code&gt;id selectors (#)&lt;/code&gt; which are also referred to as &lt;code&gt;simple selectors&lt;/code&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;html&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;head&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;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;background&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;000&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;title&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;dodgerblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
         &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="nx"&gt;wrapper&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;justify&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/style&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;/head&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;body&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="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wrapper&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&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;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&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;the&lt;/span&gt; &lt;span class="nx"&gt;first&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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;p&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;second-paragraph&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;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;second&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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="nx"&gt;p&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;the&lt;/span&gt; &lt;span class="nx"&gt;third&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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;/body&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;/html&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above, &lt;code&gt;body&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt; class and &lt;code&gt;wrapper&lt;/code&gt; id were used to refer to the div elements  bearing them.&lt;br&gt;
We can also combine these selectors if we want to:&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;p&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;second&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;paragraph&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;red&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 the code above, a &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;class&lt;/code&gt; selector were used to ensure that only the &lt;code&gt;p&lt;/code&gt; element with a class &lt;code&gt;second-paragraph&lt;/code&gt; will be selected.&lt;/p&gt;

&lt;p&gt;There are other selectors as well, which are the main focus of this article. &lt;br&gt;
Let's take a look at the &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;~&lt;/code&gt;,  &lt;code&gt;space&lt;/code&gt;, &lt;code&gt;,&lt;/code&gt; and &lt;code&gt;nth-of-type&lt;/code&gt; selectors, shall we?&lt;/p&gt;
&lt;h3&gt;
  
  
  The &lt;code&gt;*&lt;/code&gt; Selector
&lt;/h3&gt;

&lt;p&gt;This selector is called the &lt;strong&gt;universal Selector&lt;/strong&gt; because it is used to select all the elements in a page. This means that any style given to the universal selector, affects every element in that very page.&lt;br&gt;
The code snippet below will style every element of the page to have grey-colored and right-aligned texts.&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="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;grey&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="na"&gt;align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;right&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;h3&gt;
  
  
  The &lt;code&gt;&amp;gt;&lt;/code&gt; Selector and The &lt;code&gt;~&lt;/code&gt; Selector
&lt;/h3&gt;

&lt;p&gt;This selectors are also known as combinators. Both are used to achieve different selection results.&lt;br&gt;
While the &lt;code&gt;&amp;gt;&lt;/code&gt; is used to select children of a particular element, the &lt;code&gt;~&lt;/code&gt; selector is used to select all the siblings of a particular parent element.&lt;br&gt;
An example to illustrate.&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;div&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above is used to select all &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements that are the children of the div elements.&lt;/p&gt;

&lt;p&gt;Now, look at this one&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;div&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;Here&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;every&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;p&amp;gt;`&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="nx"&gt;which&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;sibling&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="s2"&gt;`div`&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt; &lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nx"&gt;In&lt;/span&gt; &lt;span class="nx"&gt;our&lt;/span&gt; &lt;span class="nx"&gt;previous&lt;/span&gt; &lt;span class="nf"&gt;example &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;first&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="nx"&gt;snippet&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt; &lt;span class="nx"&gt;which&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;on&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;same&lt;/span&gt; &lt;span class="nx"&gt;level&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;shares&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;same&lt;/span&gt; &lt;span class="nx"&gt;direct&lt;/span&gt; &lt;span class="nx"&gt;parent&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;any&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;div&amp;gt;`&lt;/span&gt; &lt;span class="nx"&gt;will&lt;/span&gt; &lt;span class="nx"&gt;take&lt;/span&gt; &lt;span class="nx"&gt;up&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;red&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The &lt;code&gt;Space&lt;/code&gt; Selector
&lt;/h3&gt;

&lt;p&gt;A lot of people confuse &lt;code&gt;&amp;gt;&lt;/code&gt; selector and the &lt;code&gt;space&lt;/code&gt; selector.&lt;br&gt;
I'll try to clarify that.&lt;br&gt;
The &lt;code&gt;space&lt;/code&gt; selector is used to select every of a particular element which is inside another element.&lt;br&gt;
For instance&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;div&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;green&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;The code above will select all &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tags which are inside the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element, even if other elements are in between them.&lt;br&gt;
Now, the difference between this and the &lt;code&gt;&amp;gt;&lt;/code&gt; selector is that the &lt;code&gt;&amp;gt;&lt;/code&gt; is only used to select a particular element which is a direct descendant.&lt;/p&gt;

&lt;p&gt;So if we have&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;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;green&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;Only &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements which are direct descendants of the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; will be colored green.&lt;/p&gt;

&lt;h3&gt;
  
  
  The &lt;code&gt;,&lt;/code&gt; Selector
&lt;/h3&gt;

&lt;p&gt;This, also called the group selector is used to group classes or names with the same styles to avoid repetition of codes.&lt;br&gt;
The code below,&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;h3&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&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;mid&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&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;can be rewritten as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,.&lt;/span&gt;&lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&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;h3&gt;
  
  
  The &lt;code&gt;nth-of-type&lt;/code&gt; selector
&lt;/h3&gt;

&lt;p&gt;This selector can be used to select the &lt;code&gt;nth&lt;/code&gt; child of parents elements of a particular type. n can be a number or keyword.&lt;br&gt;
Consider having the following codes:&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;html&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;head&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;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                   &lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;nth&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
                    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="nl"&gt;div&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;nth&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
                    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="nl"&gt;div&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;nth&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nf"&gt;type&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="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;green&lt;/span&gt;&lt;span class="p"&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="sr"&gt;/style&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;/head&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;body&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;p&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;the&lt;/span&gt; &lt;span class="nx"&gt;first&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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="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;p&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;the&lt;/span&gt; &lt;span class="nx"&gt;first&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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="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;p&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;the&lt;/span&gt; &lt;span class="nx"&gt;first&lt;/span&gt; &lt;span class="nx"&gt;paragraph&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&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;/body&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;/html&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yes, feel free to reach out to me on  &lt;a href="https://twitter.com/msamarachukwu"&gt;twitter&lt;/a&gt; , and thanks for reading.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Positioning in CSS</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Tue, 11 Aug 2020 20:00:35 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/positioning-in-css-1k8h</link>
      <guid>https://forem.com/amarachijohnson/positioning-in-css-1k8h</guid>
      <description>&lt;p&gt;Hello there,&lt;br&gt;
In this article, I'll be explaining CSS positioning and why we use them.&lt;/p&gt;

&lt;p&gt;Here's a little twist. CSS positioning has been a difficult concept for me to grab, and that's why I'm writing about it while learning at the same time.&lt;/p&gt;
&lt;h2&gt;
  
  
  What are positions in CSS?
&lt;/h2&gt;

&lt;p&gt;When placing elements on a web page or document, it is important to specify how they are displayed in relation to each other or their parent elements. Positions help you to set this.&lt;/p&gt;
&lt;h2&gt;
  
  
  Syntax
&lt;/h2&gt;

&lt;p&gt;The syntax for CSS positioning is;&lt;br&gt;
&lt;code&gt;position: position-property&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Types
&lt;/h2&gt;

&lt;p&gt;There are 5 main positions in CSS, but for this article, we'll be looking at these 4;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Static &lt;/li&gt;
&lt;li&gt;Relative&lt;/li&gt;
&lt;li&gt;Absolute&lt;/li&gt;
&lt;li&gt;Fixed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'll be explaining them in the next few lines.&lt;/p&gt;
&lt;h3&gt;
  
  
  Static:
&lt;/h3&gt;

&lt;p&gt;Every element has the &lt;code&gt;static&lt;/code&gt; position by default. We can say an element with position &lt;code&gt;static&lt;/code&gt; is an unpositioned element because it flows in the normal rendering sequence of the web page or document. It is easy to think the &lt;code&gt;static&lt;/code&gt; position is the same as the &lt;code&gt;relative&lt;/code&gt; position. Uhhmm, that could be true except that static elements don't obey the &lt;code&gt;left&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, &lt;code&gt;top&lt;/code&gt; and &lt;code&gt;bottom&lt;/code&gt; rules.&lt;/p&gt;
&lt;h3&gt;
  
  
  Relative:
&lt;/h3&gt;

&lt;p&gt;When a child element has the &lt;code&gt;position:relative&lt;/code&gt; property, it takes up a position which is relative to its parent element.&lt;/p&gt;

&lt;p&gt;In this example, we have a parent and a child element.&lt;/p&gt;

&lt;p&gt;For the child element, we added this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container-child{
position:relative;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This enables the child element to take up a position which considers the dimensions of the parent element.&lt;/p&gt;

&lt;p&gt;In the pen below, we'll see the outcome of this&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/amarachukwu/embed/oNxgQBR?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Try changing the position to absolute and notice what happens.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Also try changing the height of the child element to 50% and notice what happens as well.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Absolute:
&lt;/h3&gt;

&lt;p&gt;If a child element is given the &lt;code&gt;position:absolute&lt;/code&gt; property, it will behave like the parent element is not there, and will be positioned automatically to the starting point (top-left corner) of its parent element. If it doesn't have any parent elements, then the initial document &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; will be its parent.&lt;/p&gt;

&lt;p&gt;Let's add a &lt;code&gt;position:absolute&lt;/code&gt; property to a child element with class &lt;code&gt;container-child&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container-child{
position:absolute;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code below, the child element will display in relation to the dimensions of the document &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;and not the dimension of its parent &lt;code&gt;container&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Try adjusting other properties of the child element such as &lt;code&gt;margin-left&lt;/code&gt;, &lt;code&gt;margin-right&lt;/code&gt; and you'll discover that this element isn't adjusting in response to its parent's dimensions.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/amarachukwu/embed/LYNEmrW?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;For this child element to respond relatively to the position of its parent, we need to set the parent to this;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container{
position:relative;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And we'll have the following&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/amarachukwu/embed/wvGBQMW?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Fixed
&lt;/h3&gt;

&lt;p&gt;Fixed positioning restricts an element to a specific position in the viewport, which stays in place during scroll.&lt;/p&gt;

&lt;p&gt;Let's add another element to our project, and this time, we'll be giving it a position of &lt;code&gt;fixed&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container2{
position:fixed;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's see how it looks &lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/amarachukwu/embed/dyMPQdy?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;So you can see how the element with a &lt;code&gt;fixed&lt;/code&gt; position stayed glued to its position even when the page is scrolled.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Try fixing up the child element with the class &lt;code&gt;container-child&lt;/code&gt; to stay under the fixed element on scroll.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;CSS position has always been a tricky topic for me, but overtime I'm beginning to get a hang of it through subsequent usage. So I'll advise you implement these positions often in order to find out for yourself, what they really do.&lt;/p&gt;

&lt;p&gt;Yup! This is where we wrap it up. I'll subsequently edit this article when I implement the &lt;code&gt;position&lt;/code&gt; property in other lights. &lt;/p&gt;

&lt;p&gt;If you enjoyed this article, do connect with me on  &lt;a href="https://twitter.com/msamarachukwu"&gt;twitter&lt;/a&gt; 😍&lt;/p&gt;

</description>
      <category>css</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Burnout is Real: How to deal with it</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sun, 09 Aug 2020 19:53:22 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/burnout-is-real-how-to-deal-with-it-4hbk</link>
      <guid>https://forem.com/amarachijohnson/burnout-is-real-how-to-deal-with-it-4hbk</guid>
      <description>&lt;p&gt;In this article, I'll be addressing a very common problem among developers which a lot of people usually neglect, and which if left unchecked could result to devastating long term problems.&lt;/p&gt;

&lt;p&gt;Let's look at Burnouts, how to know you're going through one and how to bounce back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Burnout is REAL! And Burnout !=Stress, but could be stress-induced.&lt;br&gt;
Just in case you're hearing about burnouts for the first time, let's quickly see a definition.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Burnout is a serious state of chronic exhaustion that can have a whole range of negative impacts on your mind and body, and hence your entire life, including your ability to write code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Burnouts can happen to anyone, and is usually less easy to detect in some than other people. However it is important for everyone to understand their symptoms in order to detect when your body is exhausted and needs &lt;em&gt;hibernating&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Burnouts is what happens when you try to avoid being human for too long.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Causes Burnouts?
&lt;/h2&gt;

&lt;p&gt;Burnouts are basically caused by &lt;/p&gt;

&lt;h3&gt;
  
  
  Stress
&lt;/h3&gt;

&lt;p&gt;When you've stressed up yourself mentally or physically up to the point of exhaustion and yet you don't pause to refill, more like driving on an empty tank, your engine will definitely get worn out or even clogged.&lt;/p&gt;

&lt;h3&gt;
  
  
  Negativity
&lt;/h3&gt;

&lt;p&gt;When you consciously or unconsciously keep feeding your mind with negative thoughts or words, or allow the negativity of others really get to you, it grossly affects your mental state which can result to very unhealthy self esteem, inferiority syndrome, self hate and subsequently mental health problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perfectionism
&lt;/h3&gt;

&lt;p&gt;For each time you &lt;em&gt;struggle&lt;/em&gt; to make things &lt;em&gt;perfect&lt;/em&gt;, you procrastinate and feel dissatisfied with yourself which in turn causes a mental strain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Work-Life Imbalance
&lt;/h3&gt;

&lt;p&gt;When your work takes up most of your time and you struggle to find some time off for yourself, friends or family, you find yourself exhausted, tired and extremely stressed most of the time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lack of social life
&lt;/h3&gt;

&lt;p&gt;Some techies have a not-so-admirable social life. This could make one a recluse, which means less fun time, which also means more stress.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you know you're having Burnouts?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You seem to lack motivation such that you mostly have to drag yourself to do the things you usually do with ease.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Irritability. Most times when we experience burnouts we seem to be more irritable, jumpy and easily angered.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frequent headaches and changes in sleep patterns (insomnia may even set in)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Difficulty to concentrate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dissatisfaction even when a milestone is reached. You basically find no joy in doing the things that used to make you happy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lack of energy, zeal and enthusiasm.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are other ways to discover when we're having burnouts, as everyone have different symptoms to show for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, how can we deal with burnouts when it sets in?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Relax: Well... If you're having a burnout because of stress, the next best thing to do is to take some time off to cool off and relax (relas and be taken kiaroff😄) It will do you much good. Deadlines can wait, your mental health first ❤&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Engage in more social activities: Make friends, have fun, get social, attend events, mingle with actual people, gist, let off some of those steams, hang out with friends, go see some movies or anything... This could help clear your head a bit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be more intentional about your life: Yes, obviously you're already very intentional about your career, but without maintaining a balance, your career can try to rob you of family/friends time.&lt;br&gt;
Sometimes work-life balance can be impractical, and at such times, you've got to set up strategies to maintain harmony between both sides.&lt;br&gt;
Be more strategic about timing. You can decide to block off some days/time as reserved for family, so you can have time for yourself too. If the pressure is coming from your workplace, try reaching out to management (if you're not management of course) to discuss better terms that could work which wont necessarily mean you throwing in your life.&lt;br&gt;
Try to set goals for what must get done and what can wait. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take social media breaks sometimes, especially if you feel mentally exhausted. Trust me, the world will remain as it were when you get back. Take some media break and rebound saner and better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sleep more: Techies are said to be nocturnal beings, however you have to sleep more especially when you're experiencing burnouts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Travel (vacation): If you can, move, see places, change environment, forget about everything and just breath😌.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Exercise: Exercise is not something we do just to lose weight, we exercise to keep fit (mentally and physically). You don't need to register with a Gym center, there are several apps you could use to begin your exercise routines at home.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By now, you should have guessed if you're already having a burnout or not.&lt;br&gt;
Well, if you are, that's not too bad, go back up and check out some of those tips again. You'll also find more helpful tips  &lt;a href="https://www.helpguide.org/articles/stress/burnout-prevention-and-recovery.htm"&gt;here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;And if you're not having a burnout yet, awesome, let's look at some of the ways to avoid having burnouts in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Prevent Burnouts
&lt;/h2&gt;

&lt;p&gt;You can prevent burnouts by doing everything listed above (under how to deal with burnouts). The difference would be that in your case, you're not doing them to bounce back, rather in order to maintain mental and physical fitness.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Almost everything will work again if you unplug it for a few minutes and plug it again, including you.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Thing is, we don't need to wait till our body screams to take a break or go on vacation and all that, this is something we all need to fit into our schedules and follow them as religiously as we take #100daysofcode. It's all a matter of intentionality and priority.&lt;/p&gt;

&lt;p&gt;Thanks for reading my article and don't forget to take a break. Do follow me on  &lt;a href="https://twitter.com/msamarachukwu"&gt;twitter&lt;/a&gt; 🙌🏽&lt;/p&gt;

</description>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>New Syntax Improvements in ES6</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Fri, 26 Jun 2020 18:39:25 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/new-syntax-improvements-in-es6-5ele</link>
      <guid>https://forem.com/amarachijohnson/new-syntax-improvements-in-es6-5ele</guid>
      <description>&lt;h2&gt;
  
  
  Let and Const
&lt;/h2&gt;

&lt;p&gt;Previously (in older versions of ES6), &lt;code&gt;var&lt;/code&gt; was the only way to declare a variable, but &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; were added as an improvement.&lt;br&gt;
I wrote this article in my early months of learning ES6 in order to understand hoisting and destructuring better and I never quite hit publish. Today, I hit the publish button. Hope it helps someone out there.&lt;/p&gt;

&lt;p&gt;Let's get to it.&lt;/p&gt;

&lt;p&gt;To understand why the improvemenes in ES6 was made, let us look at the following 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;eatFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;willeat&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;willeat&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;food&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Chicken and goat meat peppersoup&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;else&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;drink&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hollandia Yoghurt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you 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="nf"&gt;eatFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it will give the value &lt;br&gt;
javascript&lt;br&gt;
&lt;code&gt;Undefined&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This is because of what we call &lt;em&gt;Hoisting&lt;/em&gt;.&lt;br&gt;
Hoisting is as a result of the way the browser interprets JavaScript. This means that when the code is executed, the variables food and drink will be moved to the top of their scope leaving the assignments behind.&lt;/p&gt;

&lt;p&gt;So what &lt;code&gt;Let&lt;/code&gt; and &lt;code&gt;Const&lt;/code&gt; helps us to do is that the variable scope are bound to their blocks and not the function scope. Also, the const keyword was introduced to JavaScript to allow immutable words. That is, variables declared as const cannot be modified once assigned.&lt;/p&gt;
&lt;h2&gt;
  
  
  Destructuring
&lt;/h2&gt;

&lt;p&gt;Data from arrays and objects can be broken down into distinct elements. Destructuring helps you to extract specific elemetns you want to extract from a given array or object.&lt;/p&gt;

&lt;p&gt;Consider the code snippets below:&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;names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;Joe&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Mary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Matt&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&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="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;names&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="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="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;prints: Joe Mary Matt&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the example above, &lt;code&gt;[]&lt;/code&gt; shows the array being destructured and &lt;code&gt;a,b,c&lt;/code&gt; represents the variables where you want to store the values extracted from the array.&lt;br&gt;
You can see that we didn't have to specify the indexes for the names before they knew exactly were to apply.&lt;/p&gt;

&lt;p&gt;Also, place values can be ignored when destructuring arrays.&lt;br&gt;
For instance, you can have&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="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="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;names&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Objects can also be destructured. Consider the following 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;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;firstname&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;Mary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="nx"&gt;middlename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;Josephine&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="nx"&gt;lastname&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;Thomas&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;middle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;last&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&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="nx"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;middle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;last&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This will print: Mary Josephine Thomas&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the example above &lt;code&gt;{}&lt;/code&gt; represents the objects to be destructured and &lt;code&gt;first, middle and last&lt;/code&gt; represent the variables where you want to store the property of the objects.&lt;/p&gt;

&lt;p&gt;I hope this short article helped you find what you're looking for.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting up Your React Project on Windows.</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sat, 09 May 2020 17:15:55 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/setting-up-your-react-project-on-windows-5f9o</link>
      <guid>https://forem.com/amarachijohnson/setting-up-your-react-project-on-windows-5f9o</guid>
      <description>&lt;p&gt;This article is for beginners who needs some help setting up their react projects or oldies who needs a reference article each time (I check out my notes each time for the setup guide I noted down for a long time)&lt;/p&gt;

&lt;p&gt;Alright, quickly.&lt;br&gt;
Open up your command prompt or bash.&lt;/p&gt;

&lt;p&gt;Remember: you need to have node installed before you can continue.&lt;br&gt;
Download node here.&lt;/p&gt;

&lt;p&gt;Step 1: &lt;br&gt;
CD into the parent directory you would want to house your react project.&lt;br&gt;
In my own case, my documents&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Step 2:
Run npm install.

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

&lt;/div&gt;



&lt;p&gt;Step 3:&lt;br&gt;
use npm -v to check out the version of node in your system and to ensure your node package manager installed successfully.&lt;/p&gt;

&lt;p&gt;Step 4:&lt;br&gt;
Now its time to create our react app.&lt;/p&gt;

&lt;p&gt;Use create-react-app -g myapp&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;



-g installs the create-react-app globally so you don't have to run it each time you want to create an app inside that directory.

Myapp can be any name you want to give your project.

If your project was created successfully, you'd certainly see something similar to what I have here.

&amp;lt;img&amp;gt;

Step 5: 
You can also check out the version of your create-react-app

Step 6: 
Change directory into your app.

Step 7:
Run npm start to get your node running.

You've successfully compiled your first react project.

Congratulations🎉🎉🎉
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Creating a Simple Form Using React</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sat, 09 May 2020 17:14:32 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/creating-a-simple-form-using-react-jn2</link>
      <guid>https://forem.com/amarachijohnson/creating-a-simple-form-using-react-jn2</guid>
      <description>&lt;p&gt;Let us create a simple form using React. This is going to be a follow along and would be best if you work alongside the tutorial.&lt;/p&gt;

&lt;p&gt;By now you should have set up your project using the create-react-app.&lt;/p&gt;

&lt;p&gt;You can check out this article &lt;a href="https://dev.to/amarachukwu/setting-up-your-react-project-on-windows-5f9o"&gt;link&lt;/a&gt; to do that.&lt;/p&gt;

&lt;p&gt;On our app.js insert the following code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&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&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Form&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;./Form&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;render&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;Form&lt;/span&gt; &lt;span class="o"&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="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's go ahead and create the Form Component, which we've already added to the app.js.&lt;br&gt;
This is where the bulk of our form is going to be created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&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&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Form&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;./Form&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Form&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;firstName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;lastName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;render&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;form&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;input&lt;/span&gt; &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firstname&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;firstName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&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;/form&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="p"&gt;}&lt;/span&gt;


&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stat here is going to hold all the values (your first name, last name, username, email and password)&lt;/p&gt;

&lt;p&gt;Then you go ahead and render the form.&lt;br&gt;
The input value would be anything you want it to be and in this case, we want our first input to have the value of first name.&lt;/p&gt;

&lt;p&gt;The input we have above can only accept values passed into it from the state. The user cannot be able to enter an input on the form.&lt;/p&gt;

&lt;p&gt;So, we'll add an &lt;code&gt;onChange&lt;/code&gt; function which we'll pass a parameter of whatever the user types.&lt;/p&gt;

&lt;p&gt;Our input would be&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firstname&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;firstName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;firstName&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do this for the next 4 fields and we'll have&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;form&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;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firstname&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;firstName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;firstName&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&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;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lastname&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lastName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;lastName&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&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;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;username&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;username&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&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;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;email&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&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;input&lt;/span&gt; 
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;email&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;})}&lt;/span&gt;
        &lt;span class="sr"&gt;/&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;/form&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But there's a better way to do the onChange action, to make the code a bit DRY (Do not repeat yourself).&lt;br&gt;
We can go ahead and write our own &lt;code&gt;change&lt;/code&gt; 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="nx"&gt;change&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&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="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&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;Our input now looks like this&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; 
    &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firstName&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="nx"&gt;placeholder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firstname&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
        &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&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;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;firstName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;onChange&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&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="nf"&gt;change&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="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;change&lt;/code&gt; function grabs what the name value is in the input and passes it down to the &lt;code&gt;onChange&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;Do this across all other inputs. &lt;/p&gt;

&lt;p&gt;Let's create a button now for submitting the fields.&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&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="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;onSubmit&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;Submit&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The button uses the &lt;code&gt;onClick&lt;/code&gt; method to listen for a click event after which it executes the function &lt;code&gt;onSubmit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let's write our onSubmit 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="nx"&gt;onSubmit&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="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;state&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we are only logging our state to the console (our values)&lt;br&gt;
But also notice how the values also displayed in the address bar.&lt;/p&gt;

&lt;p&gt;You can prevent that by passing the event parameter e into your functions and the button.&lt;/p&gt;

&lt;p&gt;Then, set the parameter e to prevent default &lt;code&gt;e.preventDefault();&lt;/code&gt; to your code.&lt;/p&gt;

&lt;p&gt;Now, your inputs can conveniently display on the console.&lt;/p&gt;

&lt;p&gt;You can view the full work here: &lt;a href="https://github.com/emmanuellar/react-register"&gt;github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>react</category>
    </item>
    <item>
      <title>A Techie's Baby Step Guide to Taking the Stage</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sat, 18 Apr 2020 13:32:35 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/a-techie-s-baby-step-guide-to-taking-the-stage-34d6</link>
      <guid>https://forem.com/amarachijohnson/a-techie-s-baby-step-guide-to-taking-the-stage-34d6</guid>
      <description>&lt;p&gt;Have you listened to &lt;a class="mentioned-user" href="https://dev.to/unicodeveloper"&gt;@unicodeveloper&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/aniediudo"&gt;@aniediudo&lt;/a&gt; @kentckodds speak at events?&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%2Fsz7k6yjv794op9ho0dgn.jpg" 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%2Fsz7k6yjv794op9ho0dgn.jpg" alt="Alt Text" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How do you feel afterwards? Probably you do wish to speak the way they do? Hold your audience captivated, in awe, attentive while laughing and giddy at the same time. You want to be able to own your stage and pass on your message without feeling intimidated, just the way they do.&lt;/p&gt;

&lt;p&gt;Having attended a couple of tech events and seeing a pattern repeat, again and again, I decided to put together this crash article of things you should know before taking the stage to deliver a speech at any tech events. I'm not promising it will rid you of the stage frights and the shiver that envelopes you and threatens to make you drop your mic, But I'm pretty sure it'll help.&lt;/p&gt;

&lt;p&gt;Now, in case you're wondering why I've chosen this topic especially at this time, May I remind you that a lot of tech events which were laid off due to the pandemic will be happening as soon as the pandemic and lockdown is behind us. &lt;br&gt;
Various communities will be holding tech events and I believe you've equipped yourself so much and have probably designed your slides and contexts ready for submission at the sound of ready...go!&lt;/p&gt;

&lt;p&gt;But hold on a little moment. &lt;/p&gt;

&lt;p&gt;You've probably been at events where the speaker can't seem to hold the crowd together, constantly fiddling with his/her buttons and sometimes staring at the screen in order not to behold the searching and judging eyes of the crowd. You sit there bored and tired, waiting earnestly for the session to be over with. Well, it could be you up there.&lt;/p&gt;

&lt;p&gt;We are always amazing speakers when we are talking to ourselves in our closets or with friends, and that I've realized is one of the problems. You feel you've known enough, you know how to code and hence everybody must sit and listen, no matter how boring.&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%2F4ncgr9ke9orq2qtyj4zt.gif" 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%2F4ncgr9ke9orq2qtyj4zt.gif" alt="Alt Text" width="500" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In fact, you do not even know you were that boring especially when you get tagged in a few tweets quoting a few things you said. Not to burst your bubble, but that's not feedback.&lt;/p&gt;

&lt;p&gt;The word "taking the stage" means having control over the entire audience and not a few people seating in front as I've noticed with some people who speak in such low tone that people seated at the second row can hardly hear them. Not that this is your fault entirely, but it will be okay to genuinely ask someone about how you did. Demand the person to really tell you the truth so you can take pride in the things you did right and try making amends for the ones poorly done.&lt;/p&gt;

&lt;p&gt;As a developer who really wants to share knowledge, you need to learn the art of public speaking, even if not professionally, but enough to capture your audience's moods, keeping them glued and informed throughout your speech and until your message is totally passed. Remember communication is not complete until it has been received from the sender. Hence, when delivering a speech you need to be sure that the audience are grasping your message if they aren't then I'm sorry, your communication wasn't effective.&lt;/p&gt;

&lt;p&gt;Here are a few things you should do before and during your speech: &lt;br&gt;
1.. Prepare: No matter how conversant you are with your subject topic and the number of times you have spoken in the past, it is still vital that you take your time to prepare for your speech. Some of the things you should consider while preparing:&lt;/p&gt;

&lt;p&gt;a. Know your audience: You should be able to ascertain the type of audience you'd be engaging with. If the are males only, females only, beginners, intermediates, experts or a mixture of all the above. Knowing this will not only help you know the tone of your conversation but will also be helpful in determining your content.&lt;/p&gt;

&lt;p&gt;b. Be conversant with your slides: Now, I've been at events where the speakers totally back the audience in order to read from their slides. The worst is when there are technical difficulties and the slides delayed for a few minutes before coming up, then you see the speaker lacking for words to hold the crowd while the issues are resolved. &lt;br&gt;
It is important you make out time to study your presentation before the D-day to avoid the lapses that may result from not doing so. There's never any of your favorite speakers who doesn't take his/her time to study, and you have to do so as well.&lt;br&gt;
Also, send in your slides early.&lt;/p&gt;

&lt;p&gt;c. Rehearse: Rehearse your presentation, especially if it is your first time delivering a particular speech. An efficient way to present would be present in front of a mirror, but I usually choose to present to a real live person, get feedback and make corrections. Better to fail privately than in a room full of people.&lt;/p&gt;

&lt;p&gt;d. Prepare: If you'd be live coding, ensure you installed all software and extensions you'd be needing in the system you'd be presenting with. Test your codes alone and ensure they're working fine before the D-day. Double-check a few hours to the d-day to avoid using the words "Coding will embarrass you" at the end of your speech. &lt;/p&gt;

&lt;p&gt;2.. Think conversion, not presentation or demo: You have to get the fact that you are standing on the stage to communicate with the audience in a conversational way. Remember, communication is never complete until the receiving end properly receipts the information being communicated. Having a conversation with the crowd puts you ill at ease, reduces the jitters and improves communication.&lt;/p&gt;

&lt;p&gt;3.. Be empathetic about your speech: You must have heard these lines "Effective communication is 20% what you know, and 80% how you feel about what you know." Your audience are more likely to feel captivated by your speech if your speech comes as an extension of your feeling rather than just words without expression.&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%2Fgo3yz8mw3mde1x4bujsl.jpeg" 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%2Fgo3yz8mw3mde1x4bujsl.jpeg" alt="Alt Text" width="169" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.. Hook your audience early: People's attention span is reducing terribly and if you're not able to hold their attention in the first few minutes, the hall might erupt into a state of frenzy with people staring at their phones and PCs all through your speech (Techies and gadgets thing). Hence, it is important you make them interested in the subject you'd be talking about. Remember, they came to hear you, but you have to show them why. Try using the following to hook their attention:\\&lt;/p&gt;

&lt;p&gt;a. A story&lt;br&gt;&lt;br&gt;
b. An example &lt;br&gt;&lt;br&gt;
c. A strong statement that makes people think, “tell me more.” &lt;br&gt;&lt;br&gt;
d. Ask a question &lt;br&gt;&lt;br&gt;
e. A visual metaphor &lt;br&gt;&lt;br&gt;
f. Get straight to the point and jump right into the issue.&lt;/p&gt;

&lt;p&gt;Have you ever spoken at a tech event in the past? Do share your favorite speaking hacks!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>eventsinyourcity</category>
    </item>
    <item>
      <title>Steps to Becoming a Front End Developer</title>
      <dc:creator>Amarachi Johnson-Ubah</dc:creator>
      <pubDate>Sat, 01 Feb 2020 20:13:00 +0000</pubDate>
      <link>https://forem.com/amarachijohnson/steps-to-becoming-a-front-end-developer-2deo</link>
      <guid>https://forem.com/amarachijohnson/steps-to-becoming-a-front-end-developer-2deo</guid>
      <description>&lt;p&gt;A front end web developer as we know it (or maybe don't) is someone who uses HTML, CSS and JavaScript for a website or Web Application so that a user can see and interact with them directly.&lt;/p&gt;

&lt;p&gt;But is that all there is to know? How can you become a better front-end developer? Let's dig in.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn HTML &amp;amp; CSS And become good at it.
&lt;/h3&gt;

&lt;p&gt;I guess there’s no way around it. Learn HTML &amp;amp; CSS. Why? Because the basics matter.&lt;/p&gt;

&lt;p&gt;HTML allows you to add content to a website while splitting it into headings, paragraphs, and tables. CSS lets a decent developer style the content and change things like colors, sizes, and borders.&lt;/p&gt;

&lt;p&gt;There are different online courses available on how to get started with HTML and CSS. &lt;br&gt;
You can sign up at Online courses like &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Coursera &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Team Treehouse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Codecademy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FreeCodeCamp&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Udacity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Udemy&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And while there are so many free resources out there, also try to invest in your learning by purchasing premium learning content and getting some certifications.&lt;br&gt;
After finishing some initial courses, go ahead and create some static web pages and iterate over and over again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MV_V0I8a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.gifer.com/NK2m.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MV_V0I8a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.gifer.com/NK2m.gif" alt="Alt Text" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Build things
&lt;/h3&gt;

&lt;p&gt;Now that you've gotten the basics, it's time to create real stuff, to strengthen your tender hands.&lt;br&gt;
You can start by creating a simple landing page or website. Don’t forget to challenge yourself by building first responsive elements.&lt;br&gt;
You can sign up with platforms like &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Codewars &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WesBos (JavaScript30)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to get daily or weekly tasks to build to practice what you've learnt.&lt;br&gt;
So there’s only one way to becoming better at what you’re doing: Keep learning, keep building.&lt;/p&gt;

&lt;p&gt;Putting these two together, build to learn! There’s no better way to learn than to get your hands dirty. &lt;/p&gt;
&lt;h3&gt;
  
  
  Read
&lt;/h3&gt;

&lt;p&gt;Believe it or not. Your reading skills greatly influence your path to becoming a great front-end developer. As a beginner, you'd have to do a lot of reading. Why?&lt;br&gt;
At first you’ll probably read a lot of articles, guides and manuals on how to do different things. You’ll also start reading other people’s code.&lt;br&gt;
Some good books and blogs I recommend&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Eloquent JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You don't know JS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS tricks (blog).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Free Code Camp (blog)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code burst (blog)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hashnode&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dev.to&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend masters&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  There’s more to front-end development than building a website
&lt;/h3&gt;

&lt;p&gt;Knowing how to build a website isn't all there is to being a front end web developer.  Knowing how to build a website is a very small part of the front-end puzzle.&lt;/p&gt;

&lt;p&gt;There is a whole load of topics that you still should learn about. If we consider performance, testing, Project management, QA and many other areas, then you really need to become a deep diver as a front-end developer.&lt;/p&gt;
&lt;h3&gt;
  
  
  Know some other tools
&lt;/h3&gt;

&lt;p&gt;Learning about the different tooling options is an important thing. Great tools will help you enhance and automate your front-end development workflow.&lt;br&gt;
One of those tools will definitely be the Chrome developer tools. Why? Because you can play with HTML, CSS and JavaScript in real-time and this will give you immediate feedback you need to learn quickly.&lt;br&gt;
Additionally, node, npm, bower and many more excellent tools are there to facilitate your daily work. And don’t forget about versioning. 😉&lt;/p&gt;
&lt;h3&gt;
  
  
  Learn Version Control
&lt;/h3&gt;

&lt;p&gt;Version control will save you some sleepless nights.&lt;br&gt;
With git you are always assured of having your work intact without fear of system failure or theft.&lt;br&gt;
You'd also be able to collaborate with people on a project in real time.&lt;br&gt;
So make sure to become an expert at Git - or at least, be git-friendly😉&lt;/p&gt;
&lt;h3&gt;
  
  
  It won't hurt to learn how to use a collaboration tool
&lt;/h3&gt;

&lt;p&gt;Collaborations will come in handy especially hen you're working on large products or as part of a team.&lt;br&gt;
Some collaboration tools I recommend&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Trello&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pivotal Tracker&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Do not rush.
&lt;/h3&gt;

&lt;p&gt;Along the way, you will ask yourself why you do this and you may want to just stop. It may be tempting to just give up. But don’t. If you’re at that point, I have only one piece of advice for you:&lt;/p&gt;

&lt;p&gt;Do. not. give. up.&lt;/p&gt;
&lt;h3&gt;
  
  
  Code Everyday
&lt;/h3&gt;

&lt;p&gt;This is more like a command than a statement.&lt;/p&gt;

&lt;p&gt;Set aside one or two hours every other day to learn. Take a lot of breaks and make sure that you really know the basics. And never rush.&lt;/p&gt;
&lt;h3&gt;
  
  
  Ask questions
&lt;/h3&gt;

&lt;p&gt;Whenever you feel stuck, you'd definitely do, don’t be afraid to ask questions. Everyone goes through this phase. &lt;br&gt;
Here's a tweet by a popular tech pro and evangelist&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1171820499661402112-563" src="https://platform.twitter.com/embed/Tweet.html?id=1171820499661402112"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1171820499661402112-563');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1171820499661402112&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;It happens to the best of us.&lt;br&gt;
You just have to stick to it knowing that you'd get better with time.&lt;/p&gt;
&lt;h3&gt;
  
  
  Dive deep into frameworks
&lt;/h3&gt;

&lt;p&gt;Now you've acquainted yourself with some front end technology, it's time to delve into any of the frameworks in front end web development.&lt;br&gt;
We have&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;React&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vue&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Angular&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowing which framework to delve into is totally dependent on you and you convictions.&lt;/p&gt;
&lt;h3&gt;
  
  
  Get involved with open source projects
&lt;/h3&gt;

&lt;p&gt;Getting involved with various projects, especially open source, will not only make you a better front-end developer, but it will also help you build up your very own online brand as an active, experienced developer.&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://www.madeinnigeria.dev"&gt;madeinnigeria.dev&lt;/a&gt;for some Nigerian Open Source Projects you can contribute to. Thanks &lt;a class="mentioned-user" href="https://dev.to/acekyd"&gt;@acekyd&lt;/a&gt; for putting that together.&lt;/p&gt;
&lt;h3&gt;
  
  
  Tech twitter can be your friend 😂
&lt;/h3&gt;

&lt;p&gt;Well, this one might  seem a little bit weird, but tech twitter has helped me a lot in my journey as a front end web developer.&lt;/p&gt;

&lt;p&gt;Check out this tweet by &lt;a class="mentioned-user" href="https://dev.to/hacksultan"&gt;@hacksultan&lt;/a&gt;, under the thread you'd see some amazing tech persons in front end you can follow and continuously learn from.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1143186098820194304-578" src="https://platform.twitter.com/embed/Tweet.html?id=1143186098820194304"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1143186098820194304-578');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1143186098820194304&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;In summary,&lt;br&gt;
Being a front end web developer isn't just about the building of websites and learning of frameworks, it also involves the roles and interaction as a front end web developer.&lt;/p&gt;

&lt;p&gt;Because the web is a rapidly evolving universe, great front-end developers should never stop learning. Even little things like following front-end experts on twitter will have an impact on your learning curve.&lt;/p&gt;

&lt;p&gt;You need to have some patience to get there. &lt;br&gt;
The path to becoming a front-end developer will definitely take some time. &lt;br&gt;
And lastly, please try to have fun while learning and experimenting.&lt;/p&gt;

&lt;p&gt;All the best🤩&lt;/p&gt;

&lt;p&gt;Did you find this article useful? Please share!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>git</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
