<?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: Tahjg Dixon</title>
    <description>The latest articles on Forem by Tahjg Dixon (@teejaydixon).</description>
    <link>https://forem.com/teejaydixon</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%2F918351%2F44c1820a-715b-479f-90b8-30dc7db09da7.png</url>
      <title>Forem: Tahjg Dixon</title>
      <link>https://forem.com/teejaydixon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/teejaydixon"/>
    <language>en</language>
    <item>
      <title>What is Babel? The Popular JavaScript Compiler</title>
      <dc:creator>Tahjg Dixon</dc:creator>
      <pubDate>Wed, 26 Oct 2022 20:52:49 +0000</pubDate>
      <link>https://forem.com/teejaydixon/what-is-babel-the-popular-javascript-compiler-58g9</link>
      <guid>https://forem.com/teejaydixon/what-is-babel-the-popular-javascript-compiler-58g9</guid>
      <description>&lt;p&gt;In the world of programming, we all know when it comes to producing code, we love to find numerous ways to simplify our job. Over time we've seen many different iterations of JavaScript. All of these iterations, along with old and new features being added constantly, needs a way to combine everything into merit code. This is where Babel comes in. &lt;/p&gt;

&lt;p&gt;Babel is a JavaScript compiler. Its a toolchahin mainly used to convert ECMAScript 2015+ into a backwards compatible version of JavaScript in current and older browsers. It's the epitome of declarative code. It transforms code, polyfills features that's missing in your environment, performs source code transformations, offers many plug-ins, and contains many consolidation tools.&lt;/p&gt;

&lt;p&gt;Babel is needed because it provides the privilege of letting us apply the newest and latest features JavaScript has to offer without a worry of whether it works in specific browsers or not. Babel also converts JSX syntax into JavaScript. Which also contributes to why babel plays such an important role with React being such a popular frontend entity. &lt;/p&gt;

&lt;h2&gt;
  
  
  What does babel do?
&lt;/h2&gt;

&lt;p&gt;Below is a example of Babel working its magic..&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// React &lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;


  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
 &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;NavBar&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello World&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;username:&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"username"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;password:&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;



&lt;p&gt;The code block below is what babel does with the code block above while working under the hood. It converts our JSX code into JavaScript&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="c1"&gt;//Babel Compiler&lt;/span&gt;

&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; 

&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;div&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;NavBar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;label&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;username:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input&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="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;username&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}),&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;label&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;password:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
&lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input&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="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;password&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;password&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;Some of the syntax above is what you may see or be used to when coding in regular JavaScript. When It comes to React JSX syntax, this is no more of your worries. Babel compiles everything allowing us to do less work and make our code very much Declarative. &lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://babeljs.io/docs/en/"&gt;https://babeljs.io/docs/en/&lt;/a&gt; ,&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/reactjs-introduction-to-babel/"&gt;https://www.geeksforgeeks.org/reactjs-introduction-to-babel/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Picking A Software Engineering Bootcamp That Works For You</title>
      <dc:creator>Tahjg Dixon</dc:creator>
      <pubDate>Wed, 12 Oct 2022 12:12:23 +0000</pubDate>
      <link>https://forem.com/teejaydixon/picking-a-software-engineering-bootcamp-that-works-for-you-14d</link>
      <guid>https://forem.com/teejaydixon/picking-a-software-engineering-bootcamp-that-works-for-you-14d</guid>
      <description>&lt;h1&gt;
  
  
  What is a Code Bootcamp?
&lt;/h1&gt;

&lt;p&gt;Coding Bootcamps are the new norm when trying to break into the tech industry. These bootcamps are intensive and accelerated programs to help beginners develop the tech skills to gain employment in fields that are sought. These programs consist of Cybersecurity, Data Science, UI/UX, Digital Marketing, Technical Sales, and of course Software Development. The average cost of bootcamps in &lt;strong&gt;2022&lt;/strong&gt; is &lt;strong&gt;$14,000&lt;/strong&gt; and the average starting salary after graduation from bootcamps is &lt;strong&gt;$69,000&lt;/strong&gt;. These bootcamps vary in length from &lt;strong&gt;6 to 28 weeks&lt;/strong&gt;, although the average bootcamp length is &lt;strong&gt;14 weeks&lt;/strong&gt;. For Software Engineering programs, bootcamps teach students the modern and widely known programming languages used in current workplace environments so your skills can be immediately implemented. Such as JavaScript, HTML, CSS, React.js, Python, Ruby on Rails, and more. &lt;/p&gt;

&lt;p&gt;There are bootcamps in over 85 cities throughout the US/Canada. These can be attended in-person if you live close to a location or even virtually if you don't have that luxury. The number of students with college degrees is starting to decline slowly. Also, self-taught Software Engineers are employable nowadays as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing A Bootcamp That Matches You
&lt;/h2&gt;

&lt;p&gt;So, you want to become a Software Engineer, eh? Let's deep dive into what things you have to consider when making your choice in choosing the right one for you. There's plenty of options to choose from. If you haven't done your own research, you might think every bootcamp is the same or something....&lt;br&gt;
&lt;a href="https://i.giphy.com/media/l36kU80xPf0ojG0Erg/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l36kU80xPf0ojG0Erg/giphy.gif" width="498" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's not the case. There are important aspects to take into consideration even before choosing the bootcamp that works for you as well. Here's an overall list of the things to start with when choosing the one that works for you:&lt;/p&gt;

&lt;h6&gt;
  
  
  Living Situation
&lt;/h6&gt;

&lt;p&gt;What's your lifestyle? Since bootcamps are pretty high in price, do you have savings to attend a bootcamp while not working? Can you finance or pay bootcamp tuition upfront? Are you willing to take on a ISA to attend a bootcamp? &lt;/p&gt;

&lt;p&gt;For more information on ISA's look here:(&lt;a href="https://www.computerscience.org/bootcamps/resources/income-share-agreements-deferred-tuition/"&gt;https://www.computerscience.org/bootcamps/resources/income-share-agreements-deferred-tuition/&lt;/a&gt;)&lt;/p&gt;

&lt;h6&gt;
  
  
  How Much Time Do You Want To Spend In Bootcamp?
&lt;/h6&gt;

&lt;p&gt;There's cohorts that range from 14 to 28 weeks. Some are self-paced over a course of months that allow you to still work your regular job. Most will require you to commit and tune out everything during a 14 week intensive period. Consider these things if you have kids and family as well. &lt;/p&gt;

&lt;h6&gt;
  
  
  Are you a Self-starter/Self-Learner?
&lt;/h6&gt;

&lt;p&gt;Yes, bootcamps provide the structure you may need, but don't misconstrue this structure by assuming you will be handheld all the way through. Fast-paced bootcamps are definitely swim or drown situations. You will need to spend long days and long nights consuming knowledge and getting things done on your own outside class hours. Being able to research and google is a needed skill in bootcamp. &lt;/p&gt;

&lt;h6&gt;
  
  
  Cirriculum
&lt;/h6&gt;

&lt;p&gt;Make sure the curriculum of your desired bootcamp has modern programming languages. Look at job postings and see the languages that are in demand from employers on LinkedIn and other job boards. I suggest Full-Stack Javascript, Python, and Django as the main ones to look for when choosing a bootcamp. These language stacks are good for beginners that can build the fundamentals needed to gain employment. &lt;/p&gt;

&lt;h6&gt;
  
  
  Networking/Credibility
&lt;/h6&gt;

&lt;p&gt;When choosing a proper bootcamp, you want to make sure that your choice has some sort of network development or career services to increase chances of employment once you graduate. Also, try reaching out to previous alumni if you can. Check and see employment statistics of previous graduates that attended the bootcamp you are leaning towards. &lt;/p&gt;

&lt;p&gt;Choosing a bootcamp is a very important process. It's not only an investment in yourself, but an investment into the school you trust to lead you in the right direction. So don't take your decision lightly. Weigh out every factor and align everything correctly so you have no reason to not succeed. &lt;/p&gt;

&lt;p&gt;Wishing you luck on your journey ahead!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3o6MbggXr4WqRtdAWs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3o6MbggXr4WqRtdAWs/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>career</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Associations: Rails Many-to-Many Relationships</title>
      <dc:creator>Tahjg Dixon</dc:creator>
      <pubDate>Wed, 05 Oct 2022 17:23:24 +0000</pubDate>
      <link>https://forem.com/teejaydixon/rails-many-to-many-relationships-ohn</link>
      <guid>https://forem.com/teejaydixon/rails-many-to-many-relationships-ohn</guid>
      <description>&lt;p&gt;When programming in Rails, there is numerous relationships to learn. One of the most common is the Many-To-Many relationship. There's no question if you program in Rails, this is a association you must know. A Many-to-Many relationship consist of utilizing the &lt;code&gt;has_many :through&lt;/code&gt; macro. For this to work correctly, you will need two models and a join model. In our example models, we will use &lt;code&gt;Student&lt;/code&gt;, &lt;code&gt;House&lt;/code&gt;, and &lt;code&gt;Sorting_hat&lt;/code&gt; as our join. &lt;/p&gt;

&lt;p&gt;Yes, today we're going to be using the world of Harry Potter as our example!&lt;br&gt;
&lt;a href="https://i.giphy.com/media/PPw87BtlPrQIg/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/PPw87BtlPrQIg/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#For less confusion involving our model classes&lt;/span&gt;
&lt;span class="c1"&gt;#The Syntax for inheriting Application Record is:&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Class_name_here&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt; 

&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Our Many-to-Many relationship goes something like this BELOW:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:sorting_hats&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:houses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :sorting_hats&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Sorting_hat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt; &lt;span class="c1"&gt;#JOIN MODEL&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:house&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:student&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;House&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:sorting_hats&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:students&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :sorting_hats&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although there's only one sorting hat in the world of Harry Potter. For our example today, there's a sorting hat for each individual student. Our join table will always &lt;code&gt;belong_to&lt;/code&gt; our other models individually (singular).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4c9j1nxg2faydzvec9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4c9j1nxg2faydzvec9s.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
You can think of our join table as the bridge between the other two models. The only way for our &lt;code&gt;House&lt;/code&gt; and &lt;code&gt;Student&lt;/code&gt; models to interact is &lt;code&gt;through&lt;/code&gt; the sorting_hats join model. Without our join model, there's no connection between our &lt;code&gt;House&lt;/code&gt; and &lt;code&gt;Student&lt;/code&gt; associations. In other words, Each Student(singular) goes &lt;strong&gt;through&lt;/strong&gt; the Sorting Hats and is assigned a House. Once each Students travel through the sorting hats, you are then assigned to be apart one the amazing Hogwart Houses! Gryffindor, Hufflepuff, Ravenclaw, and.... Slytherin. &lt;/p&gt;

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

&lt;p&gt;The &lt;code&gt;Sorting_hat&lt;/code&gt; model is the &lt;strong&gt;join&lt;/strong&gt; model in this instance. Lets establish each relationship here below more clearly. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;Student&lt;/code&gt; &lt;strong&gt;has many&lt;/strong&gt; sorting_hats &lt;strong&gt;and many&lt;/strong&gt; houses &lt;strong&gt;through&lt;/strong&gt; sorting_hats.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;House&lt;/code&gt; &lt;strong&gt;has many&lt;/strong&gt; sorting_hats &lt;strong&gt;and many&lt;/strong&gt; students &lt;strong&gt;through&lt;/strong&gt; sorting_hats. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;Sorting_hat&lt;/code&gt; &lt;strong&gt;belongs_to&lt;/strong&gt; student (each individual student) and &lt;strong&gt;belongs_to&lt;/strong&gt; House (each individual house). &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Associations in ruby on rails can be very confusing. Next time you come across a bump in the road, think of a real life scenario associations can be compared to. I promise It will shed light on how simple associations can really be. For example, If you are given a set of models. These models are Doctor, Patient, and Appointments. The Doctor and Patients cannot interact without any Appointments. Which means Appointments will be our JOIN model. The JOIN model creates the Many-to-Many relationship. That is one example to think of Many-to-Many relationships. Come up with examples yourself to make things a bit more clear. Draw these relationships down on paper or create diagrams. &lt;/p&gt;

&lt;p&gt;I hope this helped you get a better understanding about Many-To-Many Associations in rails. Happy Coding Everyone!&lt;/p&gt;

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

</description>
      <category>ruby</category>
      <category>rails</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>What Are Props &amp; How To Pass Them in React</title>
      <dc:creator>Tahjg Dixon</dc:creator>
      <pubDate>Wed, 14 Sep 2022 13:07:57 +0000</pubDate>
      <link>https://forem.com/teejaydixon/what-are-props-how-to-pass-them-in-react-1ji8</link>
      <guid>https://forem.com/teejaydixon/what-are-props-how-to-pass-them-in-react-1ji8</guid>
      <description>&lt;p&gt;If you're becoming familiar with React, you know that coding in React breaks all of your code down into different components. &lt;br&gt;
All of these different components have their own data that contributes to your application. A question of yours may be, how do you pass information from one component to another? That's when React props come into play. Often, props need to be rendered into different components to capture the functionality you need in web applications or to simply pass information through variables if needed. Props are short for properties, which are properties of an object.&lt;/p&gt;

&lt;p&gt;In order to properly pass a prop, you need a certain syntax in which to pass it. For this, you will need a key-value pair. For every key, you need a value that holds the data that you are passing.&lt;/p&gt;

&lt;p&gt;Look at the example below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Names&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;./Names&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;LandingPage&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nameOne&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Teejay&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Names&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;nameOne&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* In these examples the format will be key={value} */&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* The key can be any name of choice */&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* The value must hold the same name as the function or variable you are passing */&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;The Example below is the receiving component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&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;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;



  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;  
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello Everyone, My Name is &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

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

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




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

&lt;/div&gt;



&lt;p&gt;As you see above, you are passing 'props' as an argument and using dot notation to target the key, which is 'name.' When you pass props, the component you are passing them to has to receive them as an argument first. This is the only way it can be accessed when you pass it. For example, think of it like basketball. Let's say you want a certain component to shoot the basketball. In order for this component to shoot, the basketball must be passed to it. That's how props work. &lt;/p&gt;

&lt;p&gt;Props also have a certain flow of data. They can only be passed downward. You can pass them children and sibling components only. There are ways to send data upwards, but that is a bit of a complex concept at the moment. Once you figure out how props properly work, it's another step closer to realizing what React can unlock as far as creativity goes. I hope this helped a bit with how props are passed from component to component. Enjoy, and keep coding!&lt;/p&gt;

</description>
      <category>react</category>
      <category>props</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What is Imperative vs. Declarative programming?</title>
      <dc:creator>Tahjg Dixon</dc:creator>
      <pubDate>Wed, 31 Aug 2022 10:28:24 +0000</pubDate>
      <link>https://forem.com/teejaydixon/what-is-imperative-vs-declarative-programming-2pb8</link>
      <guid>https://forem.com/teejaydixon/what-is-imperative-vs-declarative-programming-2pb8</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--unU9Elzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pq2r2ix6k9v6opbtfnk0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--unU9Elzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pq2r2ix6k9v6opbtfnk0.jpg" alt="Image description" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's Decipher The Two&lt;/strong&gt; &lt;br&gt;
What is imperative programming in comparison to declarative? There are plenty of logical examples of how this works. The most popular explanation of these two is imperative is how you do something, and declarative is what you want to do. These examples can be unclear if you are new to programming or even an experienced engineer. So I would like to dive deep into the distinction between the two. Most professional engineers explain imperative programming when you &lt;strong&gt;think like&lt;/strong&gt; your computer. Where declarative is making programming syntax more user-friendly. A prime example is a difference between Vanilla JavaScript and ReactJS. Let us take a look below.  &lt;/p&gt;

&lt;p&gt;This example would be how we will create a list in JavaScript and append it to the DOM. Which is looked at as&lt;br&gt;
an &lt;strong&gt;imperative&lt;/strong&gt; way of execution. It's made step-by-step in a specific order. Once every step is done, THEN you get your result.&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="c1"&gt;// Vanilla JavaScript&lt;/span&gt;

&lt;span class="nx"&gt;addButton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;click&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

 &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;ingredient&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;createList&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;textNode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createTextNode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&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="nx"&gt;createList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;textNode&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

 &lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;listNode&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;Now take a look at this example below. It's essentially the same way but React takes care of most of the dirty work under the hood. Here we are using &lt;a href="https://reactjs.org/docs/hooks-reference.html#usestate"&gt;&lt;strong&gt;useState&lt;/strong&gt;&lt;/a&gt;, which is a method that returns a stateful value, and a function to update it. This syntax cuts out all of the extra steps. Compared to Vanilla JavaScript, React is the &lt;strong&gt;declarative&lt;/strong&gt; syntax between the two.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;//ReactJS&lt;/span&gt;

&lt;span class="cm"&gt;/*In ReactJS, the UI is already 
set to keep the entire state 
of your listed items in a JS variable.*/&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;items&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setItems&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;cilantro&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;beef&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;Onions&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="cm"&gt;/*Which will then be displayed in 
JSX by mapping (looping) over each item, 
and returning a list element for each one:*/&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

   &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&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;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

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

&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you see, the same results with different steps. You now have an idea of what imperative and declarative programming are... Hopefully. So before you think this read is over, let me go on a different side of things. Let us backtrack to the title of this blog. What EXACTLY is imperative vs. declarative programming? The biggest argument is that declarative syntax is "User-Friendly." Is it? I want to argue that opinion. For example, Vanilla JS might take more initiative steps to execute a task. Although that may be true, Reacts syntax contains a fair amount of actions to perform an event listener, mapping over arrays, or whatever component you decide to make and manipulate.&lt;br&gt;
Simple, in my opinion, isn't always better. Both JS and React can be utilized for specific situations. This topic can account for any other programming language as well. In some ways, you can also determine some parts of JavaScript to be declarative. Is looping through an array or using forEach to cycle through an object not being declarative? You are telling exactly what you want your program to do. I can even argue that declarative languages might disadvantage you since you can't peak under the hood like you can with imperatives. In my research, determining what imperative and declarative programming can be an open discussion. So let me know what's your opinion on the two. How would you decipher the two in your own words? &lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>computerscience</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
