<?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: Kadiri Talitu (Coded Salis)</title>
    <description>The latest articles on Forem by Kadiri Talitu (Coded Salis) (@codedsalis).</description>
    <link>https://forem.com/codedsalis</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%2F461550%2Fb2f41f30-7c19-4a63-b811-cc0c66a39087.jpg</url>
      <title>Forem: Kadiri Talitu (Coded Salis)</title>
      <link>https://forem.com/codedsalis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/codedsalis"/>
    <language>en</language>
    <item>
      <title>How to Set up a different Database For Testing your Laravel Application</title>
      <dc:creator>Kadiri Talitu (Coded Salis)</dc:creator>
      <pubDate>Sun, 19 Feb 2023 14:20:24 +0000</pubDate>
      <link>https://forem.com/codedsalis/how-to-set-up-a-different-database-for-testing-your-laravel-application-44g0</link>
      <guid>https://forem.com/codedsalis/how-to-set-up-a-different-database-for-testing-your-laravel-application-44g0</guid>
      <description>&lt;p&gt;As developers, we often need to test our applications to ensure that they are functioning properly and free of bugs. However, it is a good practice to set aside a database environment dedicated to testing the application.&lt;br&gt;
Some might be wondering, "why would one need a different database for testing"? Well, the default behaviour of tests in Laravel ensures that your database is "Refreshed" each time you perform a test. This means that the data in database is wiped off each time you run a php artisan test command. But this can be frustrating even while in a development environment because there are some times you would need some data retained in the development database; maybe for also doing manual test or getting a personal feel of what you are building, or whatever the case may be. To stop this behaviour, we have to set up a database dedicated to testing the application.&lt;br&gt;
In this article, I will guide you through the step-by-step process, so you can test your code without affecting your development or production data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
This article assumes that you already have a Laravel application installed and performed your migrations and that the testing is working fine.&lt;br&gt;
Also, we are going to be using sqlite database for the purpose of this tutorial&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Create a .env.testing file&lt;/strong&gt;&lt;br&gt;
First of all, create a .env.testing file in the root directory and copy the contents of your &lt;code&gt;.env&lt;/code&gt; file into it&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6lnljh51g4cya3pbs0a.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%2Fg6lnljh51g4cya3pbs0a.png" alt=".env.testing file"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Modify the Database configuration&lt;/strong&gt;&lt;br&gt;
Next, modify your &lt;code&gt;DB_CONNECTION&lt;/code&gt; variable to use &lt;code&gt;sqlite&lt;/code&gt; driver for connections and set the &lt;code&gt;DB_DATABASE&lt;/code&gt; to any name you like and append &lt;code&gt;.sqlite&lt;/code&gt; to the end. Example in the screenshot below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68yyts9fh0xhiwhfpcse.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%2F68yyts9fh0xhiwhfpcse.png" alt="modified .env.testing file"&gt;&lt;/a&gt;&lt;br&gt;
Leave the &lt;code&gt;DB_PORT&lt;/code&gt; as is, it doesn't really matter&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Migrations for the testing database&lt;/strong&gt;&lt;br&gt;
Next, let's run our database migrations for the new testing database we created. Running your migrations for testing is quite different from the normal way we know. If you run your migrations using the &lt;code&gt;php artisan migrate&lt;/code&gt; command, your migrations will be run using your &lt;code&gt;.env&lt;/code&gt; settings which is not what we want.&lt;br&gt;
Use the command &lt;code&gt;php artisan migrate --env=testing&lt;/code&gt; to run your migrations. This will make sure that your tables will be migrated to the &lt;code&gt;sqlite&lt;/code&gt; database we created specifically for testing.&lt;br&gt;
To test that it worked, run your tests again and your development/production database will still be intact.&lt;br&gt;
If you made it to this point, thank you for your time, and I hope you found it helpful. If you have any suggestions or questions kindly use the comments. Peace!&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>webdev</category>
      <category>testing</category>
    </item>
    <item>
      <title>Fix Laravel storage:link issue when symlink is disabled on a Shared hosting</title>
      <dc:creator>Kadiri Talitu (Coded Salis)</dc:creator>
      <pubDate>Thu, 09 Feb 2023 11:43:43 +0000</pubDate>
      <link>https://forem.com/codedsalis/fix-laravel-storagelink-issue-when-symlink-is-disabled-on-a-shared-hosting-52n4</link>
      <guid>https://forem.com/codedsalis/fix-laravel-storagelink-issue-when-symlink-is-disabled-on-a-shared-hosting-52n4</guid>
      <description>&lt;p&gt;The Laravel framework is arguably one of the best backend framework out there, if not the best. But as we all know, it is not suitable to be hosted on a shared hosting account like most traditional PHP frameworks because of the advanced and premium features it supports. As a developer one has to learn to improvise and hack his way around to make things work as desired.&lt;/p&gt;

&lt;p&gt;When working with Laravel, there are times you will be faced with the trouble of having to host it on a shared hosting account due to budget reasons, or maybe its just a side project you're experimenting with.&lt;/p&gt;

&lt;p&gt;Most hosting providers do not allow their shared hosting users access to symbolic links a.k.a &lt;code&gt;symlink&lt;/code&gt; for security reasons, and that is a big issue when you try hosting your Laravel projects with them. This is because Laravel uses &lt;code&gt;symlink&lt;/code&gt; function to link images from the Storage directory to the public directory in order for the files to be accessible by the public.&lt;br&gt;
When you try to use the &lt;code&gt;symlink&lt;/code&gt; functionality you will be greeted with an error message telling you that such function does not exist. When you try contacting the hosting providers they'll tell you that it was deliberately disabled for security reasons.&lt;/p&gt;



&lt;p&gt;Well, you don't have to panic, what you should do is to change the upload location from the storage to the public directory so that you won't have to link the files again, and here is how you should go about that:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F6k9ednnr0uoyjj6i85n4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F6k9ednnr0uoyjj6i85n4.png" alt="Default config for  raw `config/filesystems.php` endraw " width="800" height="917"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In your Laravel project, open the &lt;code&gt;config/filesystems.php&lt;/code&gt; file and make the following changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="s1"&gt;'local'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="s1"&gt;'driver'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'local'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'root'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;public_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="s1"&gt;'throw'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&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="s1"&gt;'public'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
   &lt;span class="s1"&gt;'driver'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'local'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'root'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;public_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
   &lt;span class="s1"&gt;'url'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'APP_URL'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/storage'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'visibility'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'public'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s1"&gt;'throw'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, all you need to do is change &lt;code&gt;storage_path('app')&lt;/code&gt; to &lt;code&gt;public_path('/')&lt;/code&gt; which means our uploads will be saved to the public directory. If you wish you can change that &lt;code&gt;/&lt;/code&gt; to whatever sub-directory you want them saved to. eg: &lt;code&gt;/images&lt;/code&gt; or &lt;code&gt;/videos&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;You can put whatever you like as the path inside the &lt;code&gt;public_path()&lt;/code&gt; method call, just configure it to suite your code, upload your files and check the public directory, and you'll find them there.&lt;/p&gt;

&lt;p&gt;That is all, if you have any questions kindly drop it in the comments section&lt;/p&gt;

</description>
      <category>howto</category>
    </item>
    <item>
      <title>Understanding React useEffect hook's Dependency</title>
      <dc:creator>Kadiri Talitu (Coded Salis)</dc:creator>
      <pubDate>Fri, 03 Feb 2023 09:15:30 +0000</pubDate>
      <link>https://forem.com/codedsalis/understanding-react-useeffect-hooks-dependency-56nh</link>
      <guid>https://forem.com/codedsalis/understanding-react-useeffect-hooks-dependency-56nh</guid>
      <description>&lt;p&gt;The &lt;code&gt;useEffect&lt;/code&gt; hook in react can be quite confusing especially when you're still new to the library trying to understand the bits that holds it together.&lt;br&gt;
According to the React documentation, useEffect is a React Hook that lets you synchronize a component with an external system and it's syntax is:&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;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;dependencies&lt;/span&gt;&lt;span class="p"&gt;?)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;setup&lt;/code&gt; is a callback function where you define your logic and &lt;code&gt;dependencies?&lt;/code&gt; is an optional array of variables you can pass to the effect that determines how often the code in the setup callback function will be executed.&lt;br&gt;
Here are some behaviours of the useEffect hook given the different scenarios&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Empty dependencies array&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;useEffect&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="c1"&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;Leaving the dependency arrays empty as shown in the example above will make sure that the code in the &lt;code&gt;setup&lt;/code&gt; callback function will be executed only once, that is, when the component is mounted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. No dependencies array passed&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;useEffect&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="c1"&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 do not pass any dependency array to the useEffect hook as in the example above, the code in the &lt;code&gt;setup&lt;/code&gt; callback function will be executed every time the component renders or after every re-render&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Passing a variable name to the dependency&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;useEffect&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="c1"&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;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;var2&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Passing a variable name or list of variable names eg: &lt;code&gt;var1&lt;/code&gt;, &lt;code&gt;var2&lt;/code&gt;, etc inside the array means that the code in the &lt;code&gt;setup&lt;/code&gt; callback function will be executed every time the state of that variable changes. For example, in the code below, the code in the setup callback function will be executed each time the counter is incremented&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="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&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="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCounter&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="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nx"&gt;useEffect&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;effect code executed&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;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="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;Counter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;counter&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;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="nx"&gt;setCounter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&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;Increment&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt;&lt;span class="o"&gt;!&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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thank you for taking the time to read through it. I hope you enjoyed learning as much as I enjoyed preparing it and if you have any thoughts or comments, please feel free to share them in the comments section.&lt;/p&gt;

</description>
      <category>react</category>
      <category>useeffect</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Who is a full stack developer?</title>
      <dc:creator>Kadiri Talitu (Coded Salis)</dc:creator>
      <pubDate>Sun, 07 Feb 2021 19:44:50 +0000</pubDate>
      <link>https://forem.com/codedsalis/who-is-a-full-stack-developer-3fnk</link>
      <guid>https://forem.com/codedsalis/who-is-a-full-stack-developer-3fnk</guid>
      <description>&lt;p&gt;As someone who is new to the web development world you may have heard of the word "full stack developer" or better still, maybe you haven't or perhaps, you're just a "tech enthusiast". ;)&lt;/p&gt;

&lt;p&gt;The programming world as a whole is filled with many jargons and as a newbie you might be feeling overwhelmed with all these ocean of terms and you therefore need someone to explain many of them to you. Don't worry as you will gradually get used to them with time, even the most experienced of programmers sometimes need a reminder of their meanings.&lt;/p&gt;

&lt;p&gt;"Full stack developer" is used to describe someone who is expert at back-end and front-end languages and frameworks. This means that this developer who calls himself a full stack developer is able to program the back-end of a website as well as design the front-end (User Interface).&lt;/p&gt;

&lt;p&gt;Usually you will have the back-end developer build the API and handle all the server side logics involved in the web application while the front-end developer is responsible for developing the User Interface and taking care of User Experience and SEO (Search Engine Optimization), to mention but a few. But in the case of a full stack developer, he is responsible for doing both the Job of the front-end developer and that of the back-end developer.&lt;/p&gt;

&lt;p&gt;To become a full stack developer, you will have to learn how to use front-end languages, frameworks and tools such as JavaScript, HTML, CSS, SASS, Webpack for compiling your JavaScript to support older browsers, etc and then the server side languages and frameworks such as Laravel for PHP developers, Django for the python developers, MySQL, sqlite, postgreSQL for communicating with the databases and other DevOps involved in the development of a full fledged web application. The list is so lengthy that I have to just name a few of them to keep it lean.&lt;/p&gt;

&lt;p&gt;I hope I was able to explain it to your level of understanding, though I know there's more to it that I didn't mention but the idea for this article was to get you acquainted with the concept and what it represents and I'm pretty sure I have done that. If you have any questions or you want to contribute to the discussion, let me know what you think in the comment section below.&lt;/p&gt;

</description>
      <category>web</category>
      <category>frontend</category>
      <category>backend</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
