<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Mabel Obadoni - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Mabel Obadoni - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 14 May 2026 17:33:13 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/author/frontEndDoctor/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Flexbox vs Grid in CSS – Which Should You Use? ]]>
                </title>
                <description>
                    <![CDATA[ Have you ever had issues with replicating a particular user interface from a Figma design? Do you find it difficult displaying elements in different sections of your browser screen? A major cause of rift between user interface (UI) designers and fron... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/flexbox-vs-grid-in-css/</link>
                <guid isPermaLink="false">66c71fd6cdd5b7ce3d9c37e8</guid>
                
                    <category>
                        <![CDATA[ css flex ]]>
                    </category>
                
                    <category>
                        <![CDATA[ CSS Grid ]]>
                    </category>
                
                    <category>
                        <![CDATA[ layout ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Fri, 16 Feb 2024 11:02:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/02/pankaj-patel-6JVlSdgMacE-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Have you ever had issues with replicating a particular user interface from a Figma design? Do you find it difficult displaying elements in different sections of your browser screen?</p>
<p>A major cause of rift between user interface (UI) designers and frontend developers is the issue of having an awesome UI design being difficult to translate into real life features.</p>
<p>Almost every frontend developer has faced similar fears at certain points during their coding journey. This article will help you understand how CSS displays work with regards to flexbox and grid layout.</p>
<h2 id="heading-table-of-contents">Table of Contents:</h2>
<ul>
<li><a class="post-section-overview" href="#heading-origin-of-css">Origin of CSS</a></li>
<li><a class="post-section-overview" href="#heading-basic-structure-of-css">Basic Structure of CSS</a></li>
<li><a class="post-section-overview" href="#heading-css-layout-flex-and-grid">CSS Layout (Flex and Grid)</a></li>
<li><a class="post-section-overview" href="#heading-how-to-use-the-flex-layout-in-css">How to Use the Flex Layout in CSS</a></li>
<li><a class="post-section-overview" href="#heading-how-to-use-the-flex-layout-in-css">How to Use the Grid Layout in CSS</a></li>
<li><a class="post-section-overview" href="#heading-similarities-between-flex-and-grid">Similarities between Flex and Grid</a></li>
<li><a class="post-section-overview" href="#heading-when-to-use-flex">When to Use Flex</a></li>
<li><a class="post-section-overview" href="#heading-when-to-use-grid">When to Use Grid</a></li>
<li><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></li>
</ul>
<h2 id="heading-origin-of-css">Origin of CSS</h2>
<p>The earliest websites were not only static, but were also text-based. During the early years of the World Wide Web, web pages were written in markup languages such as XHTML and the like.</p>
<p>This is what they looked like:</p>
<p><img src="https://lh5.googleusercontent.com/Wx0Au7mNXzu7gi_nFVSJ1T-CRXYiBBcaXBMEEWYJ_GNvm7e3vsN1UTdkPXmGGuKicXmdl60JjMEm2mJQT4vUmJc4oAxTfMiwV-MoK8tMIwhNcQZo58ziVlONzkRc9CrkAMYfz2GaxQykIOacs9-vAv4" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://www.history.com/news/the-worlds-first-web-site">https://www.history.com/news/the-worlds-first-web-site</a></em></p>
<p>With advancements in various technologies, technology enthusiasts were interested in making websites look more pleasant by adding some design. This led to the development of Cascading Style Sheets, better known as CSS. </p>
<p>Although CSS has gone through several evolutions, it is responsible for the aesthetics of websites. Imagine a website or a software application with just text and no design.</p>
<p>Hey! This article is not about history, so let’s get straight to business.</p>
<p>As a software developer majoring in client side applications (often referred to as front-end development), you’d agree with me that CSS is that lovely fellow who looks simple yet sophisticated. </p>
<p>CSS can keep you awake at night while trying to find out why your page is not aligning as expected or the reason your page content is chopped off on certain screens and not responsive too.</p>
<p>One of the reasons why beginners in software development often abandon front-end to major in back-end is the “stress” that comes with writing CSS code, especially with vanilla CSS where you have to manually input virtually every style rule. This is because CSS requires some level of calculation mixed with attention to the most minimal detail.</p>
<p>A major aspect of CSS that often creates confusion is the CSS layout — writing the CSS rule for the page layout can be a bit confusing as a beginner.</p>
<p>In the sections that follow, we'll focus on:</p>
<ul>
<li>The similarities between flex and grid displays.</li>
<li>When to use flex or grid.</li>
</ul>
<h2 id="heading-basic-structure-of-css"><strong>Basic Structure of CSS</strong></h2>
<p>Before discussing the CSS display in detail, let’s take a brief look at the CSS structure. </p>
<p>For starters, the CSS structure is a box-model. This means that every webpage is treated like a box, similar to having a pizza in a pizza box. </p>
<p>The pizza box here represents the browser page while the pizza represents the content of your website or application, which can be text, graphics, or multimedia.</p>
<p><img src="https://lh7-us.googleusercontent.com/EJbG9BG5EZ7CU9sBtOQJVBWo7cbc8nwG8pjYxqQ6kgll7lTN7wH8XQYy35zZFgbMhiQhZLy3BqnEA-brNtaS8NBcB-XPLMzk0zBvAr-frniqSogpYmDWs7qqgiloBjXuNK2mWZIIymLfpfa880m1HjU" alt="Image" width="600" height="400" loading="lazy">
<em>A box of pizza</em></p>
<p><img src="https://lh7-us.googleusercontent.com/lxBLqGMf-ZhMcZwKDpCPRHmax_Y3ZBst69uUF0pmZBZdmuRnh_woEy48OzbqXBwGAy5I38HAZ5SFW5fU-3LwsJArJNX3KBk0E2K6d2nH7SoXZKGHwJpQlLtxZrlbxwIWnjO9kLSfyi-wHf7u1WWAy4A" alt="Image" width="600" height="400" loading="lazy">
<em>CSS box model</em></p>
<h2 id="heading-css-layout-flex-and-grid"><strong>CSS Layout (Flex and Grid)</strong></h2>
<p>Now that you know how CSS structures the content of every web or application page, a vital aspect of CSS which you should get a grasp of is the layout, which is the crux of this article.</p>
<p>In architecture, every building has its structure. The structure for a commercial building might differ from that of a residential building. Same goes for front-end development. </p>
<p>The purpose of the application goes a long way in the selecting a layout for the. For instance, an e-commerce website would opt for a grid layout for proper arrangement and display of their products.</p>
<p>The layout of every website or application determines how the content on the page will be arranged: either in stacks of rows and columns or just columns across various screen-sizes. </p>
<p>It is also worthy to note that you can use more than one display on a particular webpage. This means that you can display a particular <code>div</code> as a grid and another <code>div</code> as a flexbox. It all boils down to the content of each <code>div</code> and how you want them to appear.</p>
<p>There are two ways to design the layout of a web page’s content in CSS:</p>
<ul>
<li>Flex</li>
<li>Grid</li>
</ul>
<h3 id="heading-how-to-use-the-flex-layout-in-css">How to Use the Flex Layout in CSS</h3>
<p>The flex layout uses a method of arranging the web content in rows (main axis) or columns (perpendicular axis). This implies that it is a one-dimensional layout. The main axis can move in reverse order, from right to left.</p>
<p>The flex direction can be set to:</p>
<ul>
<li>Row</li>
<li>Row-reverse</li>
<li>Column</li>
<li>Column-reverse</li>
</ul>
<p>Using flexbox does not split the screen or content into equal parts. It is worthy to note that, flexbox doesn’t consider splitting content into equal columns across the row or stacking columns in the same alignment. Rather, it expands or shrinks the content to contain the available screen space.</p>
<p>Below is a diagram of a flex display using rows:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Flex-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>A graphical representation of a display set to flex</em></p>
<h4 id="heading-how-to-set-display-to-flex">How to Set Display to Flex</h4>
<p>To create a flex layout:</p>
<ul>
<li>Give the parent element a style rule of flex display</li>
<li>Give the children element some margin and padding for a better look</li>
<li>Specify the direction of the flex if there is a need to</li>
</ul>
<pre><code class="lang-html"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-meta-keyword">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"en"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"UTF-8"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1.0"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span> Setting Display to Flex<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
    <span class="hljs-selector-class">.fl</span>{
        <span class="hljs-attribute">display</span>: flex;
        <span class="hljs-attribute">flex-wrap</span>: wrap;
    }
    <span class="hljs-selector-class">.ex</span> {
        <span class="hljs-attribute">flex-direction</span>:row;
        <span class="hljs-attribute">flex</span>: <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">100px</span>; 
        <span class="hljs-attribute">margin</span>: <span class="hljs-number">5px</span>; 
        <span class="hljs-attribute">padding</span>: <span class="hljs-number">10px</span>; 
        <span class="hljs-attribute">background-color</span>: <span class="hljs-number">#0000FF</span>; 
        <span class="hljs-attribute">border</span>: <span class="hljs-number">1px</span> solid <span class="hljs-number">#ffff</span>; <span class="hljs-comment">/* I added a border all round each column for better visibility and separation of the columns */</span>
    }
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fl"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ex"</span>&gt;</span>Content 1<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ex"</span>&gt;</span>Content 2<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ex"</span>&gt;</span>Content 3<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ex"</span>&gt;</span>Content 4<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ex"</span>&gt;</span>Content 5<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>The code above  styles the body by selecting the parent container and assigning it a layout of <code>flex</code>. Then the direction of the children element is set to <code>row</code> using the <code>flex-direction</code> rule.</p>
<h3 id="heading-how-to-use-the-grid-layout-in-css">How to Use the Grid Layout in CSS</h3>
<p>The grid layout, on the other hand, divides a web-page into 12 equal columns. These columns can be further split into the desired rows and columns. </p>
<p>The entire screen (100%) divided into 12 gives about 3.33% per column. The screen can also be styled using the number of columns in multiples of 2. That is: 2,4,6,8,10 and 12 with each number specifying the number of columns or width the element is expected to occupy.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/image-120.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-how-to-set-display-to-grid">How to Set Display to Grid</h4>
<ul>
<li>Set the parent element's display to grid</li>
<li>Specify the dimension(i.e rows or columns) of the grid using the grid-template property</li>
<li>Give some spacing(margin,padding, row-gap, etc) to the child element so the grid can be more visible</li>
</ul>
<pre><code class="lang-html"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-meta-keyword">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"en"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"UTF-8"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewport"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"width=device-width, initial-scale=1.0"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>Setting Display to Grid<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
    <span class="hljs-selector-class">.fl</span>{
        <span class="hljs-attribute">display</span>: grid;
        <span class="hljs-attribute">grid-template-columns</span>: <span class="hljs-built_in">repeat</span>(<span class="hljs-number">3</span>, <span class="hljs-number">1</span>fr); <span class="hljs-comment">/* This would display the children elements in  three equal columns with equal width */</span>
        <span class="hljs-attribute">gap</span>: <span class="hljs-number">5px</span>; <span class="hljs-comment">/* To set a gap between  thegrid items */</span>
    }
    <span class="hljs-selector-class">.gr</span> {
        <span class="hljs-attribute">padding</span>: <span class="hljs-number">20px</span>; 
        <span class="hljs-attribute">background-color</span>: <span class="hljs-number">#0000FF</span>; 
        <span class="hljs-attribute">border</span>: <span class="hljs-number">1px</span> solid <span class="hljs-number">#ffff</span>; <span class="hljs-comment">/* I added a border all round each column for better visibility and separation of the columns */</span>
    }
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>Content 1<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>Content 2<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>Content 3<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>Content 4<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"gr"</span>&gt;</span>Content 5<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<h2 id="heading-similarities-between-flex-and-grid">Similarities between Flex and Grid</h2>
<ul>
<li><p><strong>They are both responsive layouts</strong>: Irrespective of which layout you decide to use for your application, provided that you style the properties correctly, both layout types are responsive to different screen sizes.</p>
</li>
<li><p><strong>Setting the parent element's layout first</strong>: In styling a flex or grid layout, the parent element is the one styled with the exact layout in question.</p>
</li>
</ul>
<h2 id="heading-when-to-use-flex"><strong>When to Use Flex</strong></h2>
<p>CSS flex is popular for its order ability (row-reverse, column-reverse), which enables the developer to reorder content without having to change the HTML content manually. There are several uses cases of the CSS flex, such as:</p>
<ul>
<li><strong>Building One-dimensional Layouts:</strong> For web-pages or sections with a single layout, it is best to use flex as it helps in proper arrangement of the content. </li>
<li><strong>Alignment and Distribution of Content</strong>: Thanks to justify-content, <code>align-self</code> and other properties, alignment and distribution of content is made easy using flex.</li>
<li><strong>Displaying Columns in Equal heights</strong>: Using the <code>align-items</code> property and setting it to a value of <code>stretch</code>, that is: <code>align-items:stretch</code>, CSS flex ensures that columns within a flexbox are of equal heights. 
This implies that if there is a higher column, other columns will be stretched to meet up with the highest column. You can use CSS flex to display your columns in equal height irrespective of the height of the content.</li>
</ul>
<h2 id="heading-when-to-use-grid"><strong>When to Use Grid</strong></h2>
<p>The grid layout is the most commonly used by frontend developers because it allows you to place elements on different sections of the browser page while maintaining proper alignment.  You can use the grid layout when:</p>
<ul>
<li><strong>Building a Responsive Design:</strong> Often times, user interfaces are developed to be adaptable to whatever screen they're being displayed on. In such cases, the grid layout is your best bet because it gives room to flexibility and resizing of the element.</li>
<li><strong>Control of whitespace:</strong> Unlike the flex display that leaves some white space at the extreme, the CSS grid controls white space by distributing elements equally along the row and also based on the allocated column space.</li>
<li><strong>Consistency in Design Layout:</strong> The CSS grid offers a consistent pattern in the structure of a web page. This arrangement of elements makes future editing of the page easier.</li>
</ul>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>One tip that comes very handy when styling a page is to choose which of the display modes to employ. </p>
<p>Once that is settled, the various sections of the page can follow suit bearing in mind what the entire body holds. </p>
<p>Although not an advice, recent practices have seen developers use grid more often than flexbox. Whichever the case, ensure not to mix up the code for the respective displays so you do not run into errors.</p>
<p>Happy Coding!  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ ChatGPT vs BARD AI – What's the Difference? ]]>
                </title>
                <description>
                    <![CDATA[ In November of 2022, Artificial Intelligence took center stage in the tech world. AI was not a new concept, but OpenAI had just released its ChatGPT Large Language Model, and devs started diving into using it.  Large Language Models, or LLMs, let use... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/chatgpt-vs-bard/</link>
                <guid isPermaLink="false">66c71fd3e39cd88fc3e1cce4</guid>
                
                    <category>
                        <![CDATA[ AI ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Artificial Intelligence ]]>
                    </category>
                
                    <category>
                        <![CDATA[ chatgpt ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                    <category>
                        <![CDATA[ LLM&#39;s  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Thu, 16 Nov 2023 17:19:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/11/gpt.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In November of 2022, Artificial Intelligence took center stage in the tech world. AI was not a new concept, but OpenAI had just released its ChatGPT Large Language Model, and devs started diving into using it. </p>
<p>Large Language Models, or LLMs, let users enter a prompt (some question or set of instructions) and then the LLM generates a response. People in tech are using them for everything from creating code examples to generating graphs and charts and beyond.</p>
<p>Sounds useful, right? Well, I'm sure you've heard talk about AI taking over a whole bunch of jobs. And as developers and content creators, we want to carry out our roles without worrying about some AI stepping in.</p>
<p>After all, robots are now being used in some parts of the world as waiters, and executive assistants are also being replaced by digital virtual assistants. And of course creatives such as technical writers are not left out.</p>
<p>So we need to learn how to use and take advantage of these new tools. In this way, they can help us, not push us out.</p>
<p>Even though technology is racing down the fast lane, there are many ways for you to stay relevant. In this article, I'll talk about two of the major players in the AI/LLM space – ChatGPT and Bard AI – and explain how you can use them to your benefit.</p>
<p>Here's what we'll cover:</p>
<ul>
<li>How AI works</li>
<li>AI tools and their applications</li>
<li>The major AI tools used in writing</li>
<li>Google Bard vs ChatGPT</li>
</ul>
<h2 id="heading-how-ai-works-an-overview">How AI Works – An Overview</h2>
<p>Before we dive into the tools themselves, we should understand briefly how Artificial intelligence works at a high level.</p>
<p>Artificial Intelligence is the technology that allows computers (or machines generally) to "think" and behave independently of human input. </p>
<p>Although there are some fundamental concepts and frameworks behind it such as data science and machine learning, artificial intelligence is now being used throughout various fields, both technical and not traditionally technical.  </p>
<p>The AI works by being fed data so that it can train ("learn") and produce some output based on its training. So the output depends on the data it learns on, to a large extent. </p>
<p>This is true for LLMs as well as other types of AI models – if you don't ask the LLM the right question or feed it the right prompt, you won't get the output you desire.</p>
<p>For example, if I want to generate a professional summary for a Web Developer Role and I accidentally request one for a Graphic Designer instead, it will generate the professional summary based on the role of a Graphics Designer. So you'll need to <a target="_blank" href="https://www.freecodecamp.org/news/learn-prompt-engineering-full-course/">learn how to ask the LLM the right questions</a>.</p>
<p>As long as you feed the AI the right data, it can do all sorts of things – from photo generation to content idea generation to helping you create useful code examples for your technical tutorials. So in fact, AI can help Creatives, Software Developers, and many others be more productive and save time so they can focus on the truly important problems.</p>
<p>Here's something to remember, though: as a writer, irrespective of your genre, you should not rely solely on AI to do the writing for you. While AI is helpful in generating outlines and ideas, it doesn't have your background knowledge, it might not understand the context or your audience, and sometimes its writing just won't be as good as yours. </p>
<p>So embrace your skills and your authenticity, and use AI as an enhancer to help you write better.</p>
<p>A you read this guide, note that my intention is to show you how you can use the AI tools listed here to do your work more effectively. You should not use these tools or technologies for any nefarious or dishonest purposes.</p>
<h2 id="heading-ai-tools-and-their-applications">AI Tools and Their Applications</h2>
<p>Almost everyone uses AI in some form these days, even without realizing it. Irrespective of your career field, there’s likely some AI software to help ease your workload. </p>
<p>Although there are different classes of AIs based on their learning methods, this article won't bore you with too many technical terms. So I'll just briefly go over the different types of AI software that can help make your tasks easier and faster. </p>
<p>Below is a table showing some popular AI applications and their use cases:</p>
<table><colgroup><col><col><col></colgroup><tbody><tr><td><p><span>S/n</span></p></td><td><p><span>AI Software</span></p></td><td><p><span>Function</span></p></td></tr><tr><td><p><span>1.</span></p></td><td><p><span>Remini</span></p></td><td><p><span>Used to generate photo-studio like images</span></p></td></tr><tr><td><p><span>2.</span></p></td><td><p><span>ChatGPT, Bard</span></p></td><td><p><span>These applications are the most commonly used in writing and for creating content like CVs, articles, profile summaries, code snippets, and more</span></p></td></tr><tr><td><p><span>3</span></p></td><td><p><span>Google Assistant, Alexa, Siri</span></p></td><td><p><span>These are voice assistants that share information and help you perform tasks by voice input. They're more like your virtual assistant</span></p></td></tr></tbody></table>

<p>These applications are grouped based on the functions they perform, even though they're built by different companies.</p>
<h2 id="heading-ai-tools-for-writing">AI Tools for Writing</h2>
<p>With the advent of writing assistants such as OpenAI’s ChatGPT and Google’s Bard, some people have begun to wonder – will writers start losing their jobs? But as one of my connections said on LinkedIn recently, tech is an enabler, and so is AI. </p>
<p>Some writers have started using these AI tools to generate topic ideas and help them improve their skills, as we briefly discussed above. But other writers are using AI tools to entirely write content for them. </p>
<p>This is not a good idea for many reasons – not least of which being that the AI could be plain wrong. It also won't have your finesse, your awareness of context and other subtleties, and it may sound stiff and overly formal. Plus, it'll take away a lot of the benefit you get as a writer and developer from researching and writing your own articles.</p>
<p>Just always remember that moderation is key and human intelligence will always still stand out. So learn and use these tools, but don't overly rely on them to do your job for you...or they might end up doing just that in the long run.</p>
<p>Let’s take a look at two of the major generative AIs used by writers and developers: ChatGPT and Google’s Bard.</p>
<h3 id="heading-what-is-chatgpt">What is ChatGPT?</h3>
<p><img src="https://lh7-us.googleusercontent.com/pi9BEsLN7vnHcxh3OwDIE-ZtoNb8PJmgwz3wra5cG-95ijSU6r2IPEZvAveBZqB65EqA7a2Y4DdSe8LUAjL3p51b06f_bEVH6JrwQQL_eMuigAX7Igpwsg8AAeDK9d97TeisdAATySCezeDWJqC4HSA" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In November 2022, OpenAI alongside Microsoft launched a Large Language Model (LLM) that could generate responses based on the user’s input (questions), whether that input was text or code. </p>
<p>This model that is based on a text generative pre-trained model known as ChatGPT. Prior to this model of chatbot, there had been several chatbots such as the instant responder you find on websites and also different virtual help desks used by Fintechs. </p>
<p>From generating a résumé to generating software code in different programming languages, ChatGPT became the “darling” everyone sought to know.</p>
<h3 id="heading-how-does-chatgpt-work">How does ChatGPT work?</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/image-54.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The ChatGPT takes in your instructions, also referred to as prompts. These instructions are then used to generate a result relative to your prompt. </p>
<p>The more prompts the LLM receives, the better it gets at learning. This implies that the model is trained based on the user's input. </p>
<p>Example of a prompt:</p>
<p>In 5 sentences, explain how AI works</p>
<p>Output from ChatGPT</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Screen-Shot-2023-11-16-at-1.12.20-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You should also bear in mind that your prompt should be well constructed and clear, otherwise the generated result might what you want (or might not be that helpful). </p>
<blockquote>
<p>Note that I used the free version of ChatGPT for this article. More features are available on the premium version.</p>
</blockquote>
<p>You can use ChatGPT in many different ways depending on your needs. Here are some examples of ways you can use it.</p>
<ul>
<li>ChatGPT can help you debug your code. You can enter a prompt requesting a code snippet or example for a certain task, and the LLM will generate it for you. This is not to say that you can depend solely on ChatGPT to build or debug your projects. Just like enzymes that speed up reactions, ChatGPT helps you debug codes faster by pointing you in the direction you should go.</li>
<li>Also, the Assistant API from ChatGPT can be consumed to build an instant messaging AI in your project. Although still in the beta stage, the Assistant API can help Software Developers build mini-ChatGPTs in their individual projects. That way, your users can ask questions and get responses based on the underlying LLM's abilities and knowledge.</li>
<li>Writers often complain about idea generation and writers' block. One way ChatGPT can work for you as a Technical Writer is to help you generate content ideas. It just depends, as always, on the prompt you enter.</li>
<li>It can also help you start writing about your ideas. Some writers have issues getting down that first sentence or making an outline for a draft. With ChatGPT, you can perform these tasks more quickly and use the LLMs ideas as jumping off points. </li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Screen-Shot-2023-11-16-at-1.27.49-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Again, this is not to encourage you to depend solely on AI for content generation, as the human touch still stands out. But it can certainly help you get started.</p>
<p>While ChatGPT can help you in many ways, the earlier models (like GPT-3) also had their downsides. But now, the latest model of GPT-4 has many improvements, including being able to use plugins to get more current information. But you may need to pay for premium usage in some cases.</p>
<p>There are other ways you can use ChatGPT, and you can read more <a target="_blank" href="https://platform.openai.com/docs/introduction">here</a> to find out.</p>
<h3 id="heading-googles-bard-ai"><strong>Google's BARD AI</strong></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/image-52.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Google's BARD is the newest LLM kid on the block.</p>
<p>As expected, in the first quarter of 2023, Google released its own language based-model chatbot called Bard AI. Although still in the Beta stage (as at the time of this article), Google Bard AI is gradually catching the attention of the tech community.</p>
<h3 id="heading-how-does-bard-work">How does Bard work?</h3>
<p>Like other LLMs, Bard accepts prompts and generates results in response to the prompt. Bard is built on Google's <a target="_blank" href="https://blog.google/technology/ai/lamda/">LaMDA</a> (Language Model for Dialogue Applications), which generates finely-tuned responses and improves specificity. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Screen-Shot-2023-11-16-at-2.22.11-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Screenshot showing Bard responding to a prompt</em></p>
<p>Bard can perform various operations such as:</p>
<ul>
<li>Review software development code errors and suggest solutions. Just remember that AI shouldn't be used as the ultimate error finder or solver for your code reviews. The LLM may not understand the entire architecture of your program based on the piece of code you feed it via the prompt.</li>
<li>Bard prides itself on its specific and fine-tuned responses, which of course are quite helpful in Technical Writing. Bard tries as much possible to keep prompt responses concise and authentic. In cases where it sources from any external web-page, the URL is referenced.</li>
</ul>
<h2 id="heading-chatgpt-vs-bard-ai"><strong>ChatGPT vs BARD AI</strong></h2>
<p>Both of these tools can be helpful to you as a dev or technical writer – it just depends on how you use them and what your needs are.</p>
<p>If you'd like to see them compared directly, here's a live demo of both ChatGPT and Google Bard:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/t3LglzQwSHo" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>Note: The information provided here is based on what was available at the time, and may not reflect the most up-to-date details about ChatGPT and BARD AI.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>Technologies can help enhance our capabilities as human beings. And Artificial Intelligence tools should be no different. You can use them to help you perform basic tasks or build creative solutions. This is why you should get acquainted with how they work and try them out in your projects.</p>
<p>Whether it is ChatGPT or Google’s Bard AI, the goal remains achieving efficiency and genuine results in the simplest way possible.  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Debug Errors in Your Source Code ]]>
                </title>
                <description>
                    <![CDATA[ The process of handling errors is known as debugging. It involves identifying and removing errors from your program.  If you want to be an efficient programmer, you'll want to cultivate your ability to debug code. It's one of the main skills you'll n... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-debug-errors-in-your-source-code/</link>
                <guid isPermaLink="false">66c71fd9be8746551a50b625</guid>
                
                    <category>
                        <![CDATA[ debugging ]]>
                    </category>
                
                    <category>
                        <![CDATA[ error handling ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Fri, 24 Feb 2023 23:37:18 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/02/Errors.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>The process of handling errors is known as debugging. It involves identifying and removing errors from your program. </p>
<p>If you want to be an efficient programmer, you'll want to cultivate your ability to debug code. It's one of the main skills you'll need as a software developer or programmer. This means you need to learn all about errors, too. 🤷</p>
<p>Errors can come in many forms – from as little as an omission of a semicolon to as huge as a crashed database. They're all part of the bittersweet experience of programming.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/02/image-126.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Regardless of your stage in programming, you most likely will come across at least one type of error while coding. The error could come up during writing code, running it, or even testing it. And there's usually a specific remedy to each error. This implies that not all errors are handled or solved the same way.</p>
<p>Errors in programming are also referred to as bugs. These bugs prevent your program from doing what it's instructed. Once you have a grasp of common errors, you'll be able to figure out the right treatment for the error you're experiencing. </p>
<p>To debug errors in your source code, you'll need to understand:</p>
<ul>
<li>The sources of the errors in your code – What exactly is the cause of the errors displaying?</li>
<li>The types of errors –Now that I have an error, what type is it? What should I do to clear these red lines off my screen?</li>
</ul>
<p>This article will focus on how to answer these questions.</p>
<h2 id="heading-where-do-errors-come-from-in-coding"><strong>Where Do Errors Come From in Coding?</strong></h2>
<p>The first step in finding a solution is knowing exactly the source of the problem. This will guide you in suggesting or building a solution. When writing your code in whatever programming language you use, errors can occur due to different factors.</p>
<p>The main sources of error include:</p>
<h3 id="heading-human-errors">Human Errors</h3>
<p>Even though Artificial Intelligence plays a larger and larger role in many operations, the fact remains that humans still write source code. </p>
<p>Errors caused by omission, knowledge gaps, or the lack of proper structure come from the developer. </p>
<p>When a developer lacks the technical knowledge of the syntax of a particular language, there's bound to be errors in the source code. Or if they mean one thing and write another in code, the conflict in logic will always result in an error.</p>
<p>So, before you venture into coding in any language, make sure you understand the structure behind it and the rules that govern its programs. This will help you write fewer errors into your code that you then have to debug.</p>
<h3 id="heading-machine-errors">Machine Errors</h3>
<p>For issues such as low memory, little storage space, and slow CPU processing speed, the machine also plays a role in causing errors. In fact a machine with a slow memory can cause runtime errors (errors due to slow code execution).</p>
<p>When getting a computer, if you're able, make sure to get one that matches up to the tasks you'll send its way. You should also use cloud storage and other cloud operations to reduce the risks of errors caused by your machine.</p>
<h3 id="heading-procedural-errors">Procedural Errors</h3>
<p>Solving a problem requires following certain methods. Programming has its underlying methodology which you should follow whenever possible. </p>
<p>This is why standard bodies exist, such as the World Wide Web consortium. It ensures that certain standards are followed when developing programs. </p>
<p>Errors can occur when you ignore the standard methods entirely and try to maneuver your own way. Such code may not go beyond your machine as it may not be production worthy.</p>
<p>Study the procedures for building and operating the solution you are coding and try to follow them.</p>
<h2 id="heading-types-of-coding-errors"><strong>Types of Coding Errors</strong></h2>
<p>Errors can occur regardless of your skill in programming. Your coding prowess is displayed when you can confidently decipher the error message and figure out what type of error occurred. </p>
<p>Many programming languages have similar structures, especially Object Oriented Programming languages (such as Python and JavaScript). These similarities in structure means that they also have similar error patterns. </p>
<p>In programming, the most common errors are:</p>
<h3 id="heading-syntax-errors">Syntax Errors</h3>
<p>The word "syntax" simply means arrangement. In programming, syntax is the arrangement of the code following a set of rules or patterns. </p>
<p>Just like in the English language where the letters are arranged from A - Z, programming languages also have their syntax you'll need to follow so the program runs seamlessly. </p>
<p>When you're writing in English, for example, if you don't follow the grammar and syntax rules of the language, your words won't make a lot of sense. The same is true in programming: if you don't adhere to the syntax rules of the programming language, you'll get a <strong>Syntax Error.</strong></p>
<p>Therefore, a syntax error is that error caused by disobeying the rules guiding a particular language. And the error message that pops up prevents your program from running.</p>
<p>Syntax Errors can be caused by various factors such as incorrect spelling, omitted punctuation, wrong use of quotes (" "), incorrect declaration of variables and values, and more.</p>
<p>As small as these errors may seem, they can break your source code if not properly solved. When any of these syntax errors occur, your compiler responds in two ways:</p>
<ul>
<li><strong>It highlights the code line where the error has occurred:</strong> This will help you know the exact spot to check for your mistake.</li>
<li><strong>It gives at least</strong> a <strong>one sentence explanation of the error type</strong>.</li>
</ul>
<p>In most cases, the compiler will indicate that it is a "Syntax Error" and sometimes point to what was omitted, included, or misplaced. Here's an example:</p>
<pre><code class="lang-reactjs">// importing the required dependencies and components
import { BrowserRouter as Router, Route, Switch,Redirect } from 'react-router-dom';
import './App.css';
import Home from './components/Home';
import About from './components/About';
import Projects from './components/Projects';
import Contact from './components/Contact';
import Nav from './components/Nav';


function App() {
  return (
    &lt;div className='App'&gt;
      &lt;Router&gt;
        {/* &lt;Nav /&gt; */}
        &lt;Switch&gt;
          &lt;Route exact path='/'  component={Home}/&gt;
          &lt;Route  path='/About'  component={About} /&gt;
          &lt;Route path='/Projects' component={Projects} /&gt;
          &lt;Route path='/Contact'  component={Contact} /&gt;
          &lt;Redirect to ="/" /&gt;

        &lt;/Switch&gt;
      &lt;/Router&gt;  
    &lt;/div&gt;
</code></pre>
<p>The above snippet is from a React.js project. According to React syntax, if you declare a component you must use it, otherwise it'll throw a syntax error as seen in the screenshot below:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/02/SC4.PNG" alt="Image" width="600" height="400" loading="lazy">
<em>Syntax error</em></p>
<p>In the example, the Nav component was declared in the set of import statements but it wasn't called in the routing statement. Because of this, it displays an error message in the terminal.</p>
<p>Beginners in programming often encounter syntax errors as they're learning – especially if you're juggling between two different languages at the same time. With consistent practice, you can get better at writing your source code that complies with the syntax rules of the language you're using. </p>
<h3 id="heading-logic-or-semantic-errors">Logic or Semantic Errors</h3>
<p>Another word for logic is reasoning. Writing source code for any program requires a lot of reasoning. Remember that coding is a means of providing solutions to problems. So your solution must follow the logic that guides it.</p>
<p>Also referred to as a semantic error, a logic error is an error that occurs when a program outputs something different from what was intended. Whenever your program behaves in a way that's different from what you outlined it to do, you have encountered a logical error.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/02/SC21-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd
<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np
a = <span class="hljs-number">5</span>
b =<span class="hljs-string">"10"</span>
print(c=a+b)
</code></pre>
<p>In the above example, it is clear that the compiler couldn't add a string and a number because the number in the string was not implicitly converted to the <strong>int</strong> datatype. </p>
<p>You can also see that there is a syntax error in this program as well when you look at the <strong>print()</strong> statement. You can debug the logic error by converting the string to an integer datatype as show below:</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd
<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np
a = <span class="hljs-number">5</span>
b = Int(<span class="hljs-string">"10"</span>)
print(c=a+b)
</code></pre>
<p>Unlike a syntax error, a logic error may not prevent your program from running. Instead, it will run but display an incorrect output.</p>
<h3 id="heading-what-causes-logic-errors">What Causes Logic Errors?</h3>
<p><strong>Wrong Declaration of Data Type:</strong> Using the example above, the second variable is a string because of the quotes surrounding it. So, the compiler assumes that you want to place both variables side by side. So always make sure you're meticulous with your data type declaration and conversion.</p>
<p><strong>Incorrect sequence</strong>: Say you were to write, "Code love I to". Well, this sentence makes no logical sense because the words are not placed in the proper order. </p>
<p>The same goes for programming languages. When the code is not sequential, the compiler again assumes a meaning for your code and then gives you an output different from your expectations. </p>
<p>For instance, a function (in JavaScript) that is declared locally will be available globally due to the semantics of JavaScript function scope. So, if you'd need that particular function all through your source code, it is better to declare it in a global scope.</p>
<p>Scope in JS simply means the location of a declared variable and how it can be accessed. A variable has a global scope if it can be accessed anywhere along the entire source code. A local variable is one limited to only the block within which it is declared. The difference between a global variable and a local variable is the accessibility.</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> age =prompt(<span class="hljs-string">"Enter your age"</span>)

 <span class="hljs-keyword">if</span> (age&lt;<span class="hljs-number">18</span>){
 <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"you are a minor"</span>)
 }
 <span class="hljs-keyword">else</span>{
 <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"You are"</span> + age + <span class="hljs-string">"years old"</span>)
 }
</code></pre>
<p>In the above code snippet, the variable "age" is globally declared that is why it can be called anywhere in the entire source code.</p>
<p>Incorrect Sequence is a logical error because variables must be rightly declared if they are to be used repeatedly. </p>
<p><strong>Misplaced Conditional Statement, Boolean or Logical Expressions:</strong> Logical expressions such as if-else, do-while, and the rest are the major causes of logical errors. When they're not properly placed, there's every tendency to get an incorrect output. Most programs rely a lot on logical expressions, so you need to know how to use them.</p>
<p>Logical errors can happen to anyone, regardless of skill level – just like all errors. So spend some time getting your logic right before you start coding. Some programmers go as far as drawing a schematic diagram to emphasize the logic they want for their program.</p>
<h3 id="heading-runtime-error">Runtime Error</h3>
<p>Every program has a certain amount of time it takes to execute. As a programmer, it is your duty to ensure that your program loads in the shortest possible time. </p>
<p>Remember, a slow program won't do well in the marketplace. Nobody wants an application that "wastes" their time, right?</p>
<p>Runtime, in simple terms, is the time taken for a program to execute or run. You can have your code syntax well written following a specified logic and still encounter errors as or when your program executes. This problem is caused by a runtime error.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/02/image-125.png" alt="APC Screen showing error alert" width="600" height="400" loading="lazy">
<em>A PC Screen showing error alert</em></p>
<p>As seen in the above picture, Runtime errors can occur while your program is being executed – the time between interpreting your codes and showing the required output.</p>
<p>These errors can be caused by a non-declared variable, a slow internet connection or many other reasons during the course of code execution.</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> country = <span class="hljs-string">"Nigeria"</span>
<span class="hljs-keyword">let</span> indp = <span class="hljs-number">1960</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Election</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-keyword">if</span> ( country == <span class="hljs-string">"Nigeria"</span>){
    <span class="hljs-built_in">console</span>.log ( country + <span class="hljs-string">"had her "</span>+ <span class="hljs-string">"independence in "</span> + indp)
    }
    }
election()
</code></pre>
<p>The above code will throw a runtime error because the function being called is different from the one declared.</p>
<h4 id="heading-how-to-solve-runtime-errors">How to solve runtime errors</h4>
<p>The best way to resolve runtime errors is to address them based on their cause. For a non-declared variable, ensure that the variable is properly declared using the right syntax and that the declared variable is the same as that which is called, as illustrated in the code block below:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> name = <span class="hljs-string">"Ayomide"</span>
<span class="hljs-built_in">console</span>.log (name + <span class="hljs-string">" "</span> +<span class="hljs-string">" was my colleague"</span>)
</code></pre>
<p>In the case of low memory, clear your cache and refresh your browser or restart your computer. </p>
<p>For poor internet connection, switch your internet service provider or close some opened tabs on your browser.</p>
<p>In severe cases, back up your source code and solve the hardware problem that your computer may be experiencing.</p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Errors can occur in any program, no matter the skill of the programmer. What sets you apart is your ability to find and debug these errors.</p>
<p>The more errors you debug, the better you become at writing clean and performant code. Look out for the next error line and swing into action!  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use the Command Line Interface – for Beginners ]]>
                </title>
                <description>
                    <![CDATA[ There's a lot to learn when you're getting into tech. But fortunately there are some skills that you can use across different programming languages, operating systems, and tools.  And knowing how to use the command line interface (also known as the c... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-the-cli-beginner-guide/</link>
                <guid isPermaLink="false">66c71fdc99aed080e9571bc4</guid>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command line ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Tue, 27 Sep 2022 21:11:32 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/09/BEGINNERS--HACK-ON-USING-CLI--1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>There's a lot to learn when you're getting into tech. But fortunately there are some skills that you can use across different programming languages, operating systems, and tools. </p>
<p>And knowing how to use the command line interface (also known as the command prompt or terminal, depending on your operating system) is one of those skills.</p>
<p>Whether you're doing Web development, Game Development, Application Development, Cloud Engineering, DevOps, or many other disciplines in tech, you'll likely use the command line quite often.</p>
<h2 id="heading-history-of-the-command-line">History of the Command Line</h2>
<p>In the early days of computers, developers used MS-DOS to navigate around the computer system.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/image-390.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Disk Operating System (<strong>DOS</strong>) is a kind of operating system that uses commands (words) to interact with the computer. </p>
<p>The DOS didn’t use mouse pointers, icons, or any graphics, so users were stuck with using text-commands to operate the computer system.</p>
<p>For instance, to go to a particular folder, you'd type:</p>
<p><code>Cd &lt;name of folder&gt;</code></p>
<p>The command line interface (or CLI for short) is similar to DOS in that it uses commands to perform various operations, like creating files, creating folders, installing programs, and what have you.</p>
<p>The advancement of technology over the years brought about the popular GUI (Graphical User Interface) and made Operating Systems less stressful to use.</p>
<p>Although developers (and non-technical users) often use the GUI these days, sometimes working directly from the CLI is useful or necessary, irrespective of your stack.</p>
<h2 id="heading-what-is-the-cli-is-it-a-programming-language">What is the CLI? Is it a Programming Language?</h2>
<p><img src="https://images.unsplash.com/photo-1646406694751-9df2f91f1161?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMwfHxjb25mdXNlZCUyMGRldmVsb3BlcnxlbnwwfHx8fDE2NjM1ODgzMzA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="A portrait of a girl with a cute expression." width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@angshu_purkait?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Angshu Purkait / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>If you're new to software development, it's easy to get carried away with the various terminology you'll need to learn. Worry less, you are not doing a spelling bee competition. Rather, you are meant to learn what these terms refer to, how they actually work, and how you can use them. </p>
<p>One of the terms you'll hear quite often is the Command Line Interface (also referred to as Command Prompt or Terminal).</p>
<p>The Command Line Interface (CLI) is an editing environment that is text-based. It uses specified text (known as commands) to interact with the computer and perform numerous operations, including installing and working with programs.</p>
<p>Every operating system comes with an inbuilt command prompt. Some application packages such as Nodejs, Anaconda, Git, and so on also come with their own command prompt. </p>
<p>The same thing goes for Cloud Providers such as AWS, GCP, Azure. Although the CLI bears different names across different platforms or packages, its purpose remains the same: to let you interact freely with the software package or the computer system using text-based instructions known as commands.</p>
<p>So, the CLI is a tool, not a programming language.</p>
<p>A basic knowledge of CLI will help you along your tech journey, especially if you are into Software Development. In fact, you can completely build a program and run it right from the CLI. </p>
<p>This article will:</p>
<ul>
<li>Explain how the CLI Works</li>
<li>Help you locate your CLI according to your OS</li>
<li>Show you how to perform basic operations using the CLI</li>
<li>Help you differentiate between the CLI and GUI</li>
</ul>
<h2 id="heading-how-the-cli-works">How the CLI Works</h2>
<p>As briefly discussed earlier, the CLI uses text-based instructions to perform operations. These commands have specific syntax you need to follow and certain text must be written on the same line – otherwise it'll throw an error message. </p>
<p>In the case of CLI in application packages, the commands may be relative to the package in question. But all CLIs follow the same rule of being semantic and on the same line.</p>
<p>To use your CLI:</p>
<ul>
<li>Locate the CLI in your PC</li>
<li>Open it</li>
<li>Type in your desired commands</li>
<li>Press the enter key</li>
</ul>
<p>Later in the tutorial, we'll execute some commands using the CLI so you can better understand how it works.</p>
<h2 id="heading-the-command-line-in-different-operating-systems">The Command Line in Different Operating Systems</h2>
<p>Every Operating System comes with its default Command Line Interface, though you can choose to install a more advanced CLI depending on your needs.</p>
<p>Some Operating Systems and their respective CLIs are listed below:</p>
<ul>
<li>Windows: Command Prompt</li>
<li>Linux: Linux Bash Shell</li>
<li>MacOs: Mac Terminal</li>
<li>Google Cloud Platform: PowerShell, Cloud shell</li>
<li>Amazon Web Services: AWS Command Prompt</li>
<li>Microsoft Azure: Azure CLI bash</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/BEGINNERS--HACK-ON-USING-CLI--2-.png" alt="Image" width="600" height="400" loading="lazy">
<em>A picture of Windows command prompt, AWS Cloudshell, MacOs Terminal and Linux Terminal</em></p>
<p>I currently use Windows OS and Windows Command Prompt, but I'll also show you how you can locate your own Terminal or Command Prompt based on popular Operating systems.</p>
<h2 id="heading-how-to-locate-your-cli">How to Locate your CLI</h2>
<h3 id="heading-in-windows">In Windows</h3>
<p>You can access the command prompt in Windows OS using the program directory or using shortcut keys.</p>
<p>Using the program directory, go to your search bar (next to the Windows icon) and type <strong>cmd.</strong> This will pop up a list of all the command prompts available on your machine, including the default windows cmd. You can now select the one you wish.</p>
<p>Using a keyboard shortcut, press <strong>Windows + R</strong> on your keyboard and type in <strong>cmd</strong> on the dialog box that pops up.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/CMD-1.PNG" alt="Image" width="600" height="400" loading="lazy">
<em>A picture showing the run terminal</em></p>
<h3 id="heading-in-macos">In MacOS</h3>
<p>As in the case of Windows, you can also open the CLI in a Mac OS using the program directory or a keyboard shortcut.</p>
<p>To use the program directory, locate the launchpad and type in <strong>Terminal</strong>. This will bring it up.</p>
<p>To use the keyboard shortcut, type the combination of the <strong>cmd</strong> + <strong>space bar</strong> keys.</p>
<p>Here's how to locate MacOs Terminal and create a file in a directory:</p>
<div class="embed-wrapper">
        <iframe width="640" height="360" src="https://player.vimeo.com/video/754058144" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="Vimeo embed" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-how-to-perform-basic-operations-using-the-cli">How to Perform Basic Operations Using the CLI</h2>
<p>Back in Mathematics class, it was quite easy to memorize formulas and solve equations using those memorized formulas. But knowing when to apply those equations in real life scenarios was – and often continues to be – difficult for many students.</p>
<p>Knowing where your CLI is located and how it works is a good step in the right direction. But let me show you how to get started with the CLI by practicing simple operations right from your Command Prompt.</p>
<h3 id="heading-how-to-navigate-through-your-pc-with-the-cli">How to navigate through your PC with the CLI</h3>
<p>Navigating through your PC simply means moving from one folder or file to another. If you don't want to use your mouse to direct your cursor, you can move around your PC using the CLI. </p>
<p>For instance in Windows, if you want to open the desktop, take the following steps:</p>
<ol>
<li>Open the CLI (CMD) as explained earlier</li>
<li>Next, type in <strong>cd Desktop</strong> on the command prompt which will take you to your desktop</li>
</ol>
<p>Keep in mind that this command is for Windows OS (for Mac, for example, it'll be slightly different).</p>
<p>Here's what you'll see:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/CMD-2.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-create-a-folder-using-the-cli">How to create a folder using the CLI</h3>
<p>You may know the usual method of right-clicking on your screen and selecting the "New folder" option on the drop-down menu. But there's a way of creating a new folder using the CLI.</p>
<ol>
<li>First, open your CLI</li>
<li>Navigate to the folder or location where you want to create the new folder</li>
<li>Enter <strong>mkdir </strong></li>
<li>Press Enter</li>
<li>You can now enter the folder by typing <strong>cd </strong></li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/CMD-3.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-install-a-package-using-the-cli">How to install a package using the CLI</h3>
<p>Installing a software package or application using the CLI depends on the package in question. </p>
<p>Packages like Node.js (a development package for BackEnd Development) require that you install the Node Package Manager (npm). This package manager is what you'll use to install and run Node and other similar packages. </p>
<p>Some commands for installing software packages via the CLI include:</p>
<ol>
<li><code>Install &lt;name of package&gt;</code></li>
<li><code>run &lt;name of package</code></li>
</ol>
<p>For instance to install a new instance of a React app:</p>
<ul>
<li><p>Open the terminal</p>
</li>
<li><p>locate your local environment by typing:</p>
</li>
</ul>
<p><code>cd Desktop</code></p>
<ul>
<li>Create a directory for the app by typing:</li>
</ul>
<p><code>cd Desktop mkdir my_directory</code></p>
<ul>
<li>create the react-app right in the directory by using the command:</li>
</ul>
<p><code>npx create-react-app my-app</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/cmd9.PNG" alt="Image" width="600" height="400" loading="lazy">
<em>A terminal showing the commands for installing create-react-app using Windows Command Prompt</em></p>
<h2 id="heading-differences-between-the-cli-and-gui">Differences Between the CLI and GUI</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/BEGINNERS--HACK-ON-USING-CLI--3-.png" alt="Image" width="600" height="400" loading="lazy">
<em>GUI vs CLI image</em></p>
<p>As we've discussed, the CLI uses commands to generally interact with the computer.</p>
<p>On the other hand, the Graphical User Interface (GUI) is a method of interacting with the computer using icons, menus, mouse clicks, and pointers. </p>
<p>An Operating System that is GUI-based allows users to freely operate the computer by clicking, dragging, dropping, and other visual methods of interacting with the computer.</p>
<p>Unlike the GUI, the CLI uses less RAM space and interacts with the operating system directly.</p>
<p>To use the GUI, no programming knowledge is required. But to use the CLI, you need to have a certain amount of knowledge of programming and command operations.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>As you begin or advance in your tech journey, you'd need to install a lot of programs that are foreign to your Local Machine. Such programs may not have GUI installation methods and may require you to run a line of code or more on your CLI. At such a point, knowledge of using the CLI comes in handy.</p>
<p>There's a general notion that the CLI is difficult to use – and it does take some getting used to. But once you get acquainted with the operations of CLI you'll find it much easier to manage.   </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Write Good API Documentation ]]>
                </title>
                <description>
                    <![CDATA[ Imagine that you just bought a new home theater system and you go to set it up. What do you do first? Thank goodness you have a handy device manual to help you out. You just need to follow the steps detailed in the manual, and voilà! Your home theate... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-write-api-documentation-like-a-pro/</link>
                <guid isPermaLink="false">66c71fdfe39cd88fc3e1cce6</guid>
                
                    <category>
                        <![CDATA[ api ]]>
                    </category>
                
                    <category>
                        <![CDATA[ documentation ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Tue, 12 Apr 2022 02:30:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/04/nick-morrison-FHnnjk1Yj7Y-unsplash-1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Imagine that you just bought a new home theater system and you go to set it up. What do you do first?</p>
<p>Thank goodness you have a handy device manual to help you out. You just need to follow the steps detailed in the manual, and voilà! Your home theater system is ready to blast your favorite songs.</p>
<p>Just like how a device manual guides you through setup and installation, API documentation can help guide you through configuring an API.</p>
<h2 id="heading-what-is-api-documentation">What is API Documentation?</h2>
<p>Before diving into API documentation, let me briefly explain what an API is and its basic functions.</p>
<p>API is an acronym for Application Programming Interface. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/7020614.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Connection of devices to databases via API</em></p>
<p>Whether you're a beginner coder or an advanced developer, you'll come across this term often in your software development journey. It is the bridge between your computer, mobile phone, or application and external resources. </p>
<p>In other words, APIs give your software the ability to interact with other software programs, databases, or resources. Instead of writing the program for a particular feature of your application, you can consume a readily available API of a similar feature. </p>
<p>Many APIs are public (free) while others are private and require payment for a private key that lets you access the API. There are different types of APIs like REST (Representational State Transfer), SOAP (Simple Object Access Protocol), and others.</p>
<p>Moving on – so what is API documentation? Well, it's a written guide stating the functions of the API, how to integrate it into your program, and use cases for the API, along with examples. </p>
<p>Keep in mind that API documentation is technical content. This means it will contain some technical terms, but should still be readable and easy to understand.</p>
<h2 id="heading-who-should-write-api-documentation">Who Should Write API Documentation?</h2>
<p>APIs are built by software developers. Since software developers are directly involved in building and using APIs, it is easier for them to create the documentation. </p>
<p>The downside of software developers writing API documentation is that they write from a very technical angle, which can make the document quite difficult to comprehend. Another issue is that it will take more time for the API developer to create the document while also developing the API. </p>
<p>So a good alternative is to assign the task of API documentation to a technical writer. A technical writer is someone who combines the expertise of content writing and technical knowledge to produce documentation that's not only technical, but also informative and understandable.</p>
<p>The technical writer learns about the API from the API developers, then creates tutorials, examples, and other content for documentation purposes.</p>
<p>Meanwhile, the API developers oversee the technical writer to ensure that the written documentation is accurate, and they can provide more information to the writer when necessary.</p>
<p>The goal is for everyone to work together to produce documentation that fully explains the API and guides users without confusion.</p>
<p>If you're interested in writing documentation for an API, but don't know where or how to begin, this article will help you get started.</p>
<p>I can feel your excitement from here, so let's dive in!</p>
<h2 id="heading-how-to-start-writing-api-documentation">How to Start Writing API Documentation</h2>
<p>When writing API documentation, start by creating several outlines. This will give you an overview of what you intend to write.</p>
<p>The next thing is to gather information for each of the outlines you created. This can be achieved by getting the API description, the language used, other references, and sample cases from the API developers. You can also view a live demo of the API so you have first-hand experience of how it works.</p>
<p>Lastly, combine the details you gathered and arrange them in a logical sequence. </p>
<p>Remember to proofread your document and share it with the API developers for any corrections or additions before going public.</p>
<p>Now that you know where to start, how can you put the bits together so that they become a meaningful whole?</p>
<h2 id="heading-what-to-include-in-api-documentation">What to Include in API Documentation</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/API-Doc.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-1-an-overview">1. An Overview</h3>
<p>This is similar to the abstract page of a project report.</p>
<p>The overview should contain a summary of the API and the problem it is solving. It could also include the benefits of using this particular API over other similar APIs.</p>
<h3 id="heading-2-tutorials">2. Tutorials</h3>
<p>This is the primary part of the documentation.</p>
<p>It should include the different content formats you are using to explain the concept of the API to the user. It can also include links for reference and a step-by-step guide for integrating the API and consuming it so it functions properly.</p>
<h3 id="heading-3-examples">3. Examples</h3>
<p>Once you've explained how the API works and/or provided itemized steps, it's a good idea to show examples of calls, responses, error handling, and other operations that have to do with how the developer interacts with the API.</p>
<h3 id="heading-4-glossary">4. Glossary</h3>
<p>Though this is optional, I recommend adding a glossary page for your API documentation.</p>
<p>To avoid boring the user with long text blocks, explanations of various terms, schemas, images, and so on that you use throughout documentation can all be pushed to the glossary. Then you can reference these things in the documentation, and link to the glossary.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/Talk2Her-Foundation--15-.png" alt="A PC and a notepad" width="600" height="400" loading="lazy"></p>
<h2 id="heading-how-to-write-useful-api-documentation">How to Write Useful API Documentation</h2>
<h3 id="heading-know-the-api">Know the API</h3>
<p>As we just discussed, you should have first-hand knowledge of the API you are documenting. Remember, your goal is to guide potential users who might not have any knowledge about the API. You wouldn't want to confuse them, right?</p>
<p>If you have a solid understanding of the product's architecture, functionality, and other vital information, you'll be able to write the product description part of the API effectively without doing any guesswork.</p>
<p>If you are not well informed or fully convinced about the API you're writing about, take some time to do your research and gather as much information as you can. Use the API yourself so you gain important insight into how it works.</p>
<h3 id="heading-use-relatable-content">Use Relatable Content</h3>
<p>API documentation is not restricted to written guides alone. You can use short videos or PowerPoint slides to illustrate the integration of the API.</p>
<p>State different use cases while writing the documentation. This will help readers recognize which one is similar to theirs, or find one they can relate with easily.</p>
<p>Also, include some code snippets where and when you think they're necessary. This will make it possible for readers to follow along as they go through the documentation. Just like the popular saying goes, "Tell me and I'll forget. Teach me and I'll remember. Involve me and I'll learn."</p>
<h3 id="heading-be-clear-even-if-you-need-to-be-technical">Be Clear, Even If You Need to Be Technical</h3>
<p>APIs are guides for software or hardware, so you'll need to use some technical terms when writing the documentation. If you're trying to be a technical writer, resist the temptation to be ambiguous. </p>
<p>A good document isn't one with complex grammatical constructions, but rather, one that is relatable, straightforward, and clear. It can only be relatable when it is written in simple and understandable language. </p>
<p>Your API documentation should be in the simplest form possible, yet it shouldn't leave out any important details. Also, make sure you explain acronyms and tech terms the first time you use them, or put them in a glossary toward the end of the documentation.</p>
<h3 id="heading-itemize-the-guide">Itemize the Guide</h3>
<p>Documentation is easier to understand if the content is itemized. This is a major reason to write concisely. </p>
<p>Numbering or itemizing the guide in steps helps the user figure out what to do at every point in time. It's similar to reading the alphabet from A to Z.</p>
<p>With clear steps, users can easily go back if they run into an error.</p>
<h3 id="heading-check-for-errors">Check For Errors</h3>
<p>As many times as you read a document, there'll always be something to change, update, or even delete. This is a typical experience with writers, and it shouldn't make you upset. </p>
<p>Gold passes through several fiery furnaces before it becomes refined. Let's just say your documentation should go through a similar process (not a fiery furnace though) so it comes out as a well-prepared document.</p>
<p>A thorough review process can help you minimize any errors and produce clear documentation.</p>
<h2 id="heading-the-best-tools-for-api-documentation">The Best Tools for API Documentation</h2>
<p>Writing API documentation can be quite time-consuming and difficult to maintain. But a good documentation tool can alleviate most, if not all of these issues.</p>
<p>There are numerous tools out there to make your journey of API documentation easier. The benefit of using tools is the collaborative features and standard templates these tools provide, rather than starting from scratch.</p>
<p>Below is a list of some popular tools and their advantages.</p>
<h3 id="heading-postman">Postman</h3>
<p><a target="_blank" href="https://www.postman.com/">Postman</a> is a platform for building and maintaining APIs with features for creating API documentation.</p>
<p>Postman uses its machine-readable documentation tool to make the API documentation process easier and faster. You can sign up to Postman for free and install it on your PC.</p>
<p>Although Postman provides updates to all API documentation it produces automatically, its UI may be difficult to understand at first.</p>
<h3 id="heading-dapperdox">DapperDox</h3>
<p><a target="_blank" href="http://dapperdox.io/">DapperDox</a> is an open source API Documentation tool that offers various themes for creating your document. This tool combines diagrams, specifications, and other content types to give you better documentation.</p>
<p>It has the advantage of allowing authors to write in GitHub flavored markdown, but updates for this tool are irregular.</p>
<h3 id="heading-swaggerhub">SwaggerHub</h3>
<p><a target="_blank" href="https://swagger.io/tools/swaggerhub/">SwaggerHub</a> is a popular API documentation tool for many technical writers because it's interactive and easy to use.</p>
<p>Though it's beginner friendly, it requires payment for anything other than personal use. So if you're part of an organization and want to use SwaggerHub, your organization will have to pay for it.</p>
<p>Whether you're selecting the tools listed here or an alternative, you should consider the following:</p>
<ul>
<li>What setting will you use the tool in? Is it for personal use or as part of an organization?</li>
<li>How technical are you? Are you a beginner or expert?</li>
<li>How is the user interface and user experience?</li>
</ul>
<h2 id="heading-some-awesome-examples-of-api-docs">Some awesome examples of API Docs</h2>
<p>Below are some APIs documents that will inspire you to start writing great API docs. Each of these documents details the usage of the product API to developers in easy steps and understandable terms. </p>
<h3 id="heading-github-api-docs">GitHub API Docs</h3>
<p>GitHub offers really helpful documentation – which is no surprise. Check out their API docs here:</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api">https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api</a></div>
<p>REST API is a popular API used by Developers to access data from the web or a database. This documentation by Github includes an overview, guides, and even code on how to use REST API in your program. </p>
<p>The interesting part of these documents is that you can easily understand it irrespective of your skill level.</p>
<h3 id="heading-paystack-api-docs">Paystack API Docs</h3>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://paystack.com/docs/">https://paystack.com/docs/</a></div>
<p>Are you building an application that requires payment? Paystack is a fintech solution for payments. Their team provides detailed information for developers on how to use the Paystack API in your programs. It is more like providing a handbook on using the API to avoid confusion when consuming the API into your program. </p>
<h3 id="heading-twitter-api-docs">Twitter API Docs</h3>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://developer.twitter.com/en/docs/twitter-api">https://developer.twitter.com/en/docs/twitter-api</a></div>
<p>The Twitter API documentation explains how developers can interact with the App. The documents clearly detail different sections (user, tweets, direct messages and so on) and their operations. </p>
<p>Although permission access is required for more information, you can access the basic ones with just a click on the link.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Documentation lays out how a tool works so others can use it properly. API docs aren't always easy to create, but it's not as difficult to create helpful documentation as you might think. </p>
<p>Just remember: start by writing your first draft, improve it daily, and seek help from mentors or senior colleagues when you are stuck. </p>
<p>Now go on and write that API documentation that will ship with the next world-class product.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Software Testing – Beginner's Guide ]]>
                </title>
                <description>
                    <![CDATA[ What is Software Testing? Let's say you're working on a coding project. You have been writing a bunch of code and staying up late at night to fix bugs. All this is part of the process before you release that software product.  Then you'll check your ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/software-testing-for-beginners/</link>
                <guid isPermaLink="false">66c71fe2cfe24f9b8645574a</guid>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Software Testing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ unit testing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ user testing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Mabel Obadoni ]]>
                </dc:creator>
                <pubDate>Mon, 07 Mar 2022 23:14:46 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/02/Talk2Her-Foundation--4-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <h2 id="heading-what-is-software-testing">What is Software Testing?</h2>
<p>Let's say you're working on a coding project. You have been writing a bunch of code and staying up late at night to fix bugs. All this is part of the process before you release that software product. </p>
<p>Then you'll check your code to verify that it actually performs what it's been programmed to do. This is where software testing comes in.</p>
<p>This article will discuss the categories of Software Testing and the different types of testing developers most commonly use. You'll see that some of the tests are named for their function. So, when I say API test, I am referring to the tests carried out on the APIs consumed in your source code. </p>
<p>But before going further, let's make sure we know what we mean by Software Testing.</p>
<p>In simple terms, Software Testing is the process of checking the various aspects of a software product to validate the software’s specifications and make sure it's ready to use.</p>
<h2 id="heading-objectives-of-software-testing">Objectives of Software Testing</h2>
<p>From a single line code to a block of code, and even to the finished product, you test software to:</p>
<ul>
<li>check for defects and ensure that the product performs as specified</li>
<li>make sure that the product meets market standards</li>
<li>resolve any loopholes at the production stage</li>
<li>prevent future malfunctions of the product</li>
</ul>
<h2 id="heading-characteristics-of-software-testing">Characteristics of Software Testing</h2>
<p>When you test your software, you want to make sure that your tests are:</p>
<ul>
<li>Practical</li>
<li>Reliable</li>
<li>Authentic</li>
<li>Capable of finding errors</li>
<li>Capable of checking the validity of your software</li>
</ul>
<h2 id="heading-when-should-you-test-your-software">When Should You Test Your Software?</h2>
<p>When you test your software will depend on what test you're wanting to perform.</p>
<p>You can test your software during the software development phase – that is, when writing the source code, as in the case of unit testing, API testing, and others. </p>
<p>You can also test after the software has been developed such as in User Interface (UI) Testing.</p>
<h2 id="heading-when-should-testing-stop">When Should Testing Stop?</h2>
<p>You can stop testing your software when:</p>
<ul>
<li>All the necessary tests have been carried out efficiently</li>
<li>Bugs in the source codes have been reduced to the barest minimum or eradicated</li>
<li>Testers are done testing</li>
<li>Product is fully secured against threats</li>
<li>The product is released</li>
</ul>
<h2 id="heading-software-testing-methods"><strong>Software Testing Methods</strong></h2>
<p>Now that you know what Software Testing means, how exactly is it done? </p>
<p>Software Testing is done based on two main methods:</p>
<ol>
<li>Functional Testing</li>
<li>Non-functional Testing</li>
</ol>
<p>The major difference between these categories of  Software Testing is that Functional Testing tests the functionality of a software product while non-functional testing concentrates on the performance of the software product.  </p>
<h3 id="heading-functional-testing"><strong>Functional Testing</strong></h3>
<p>Functional testing is the process of testing software to validate its usefulness with regard to its specifications.</p>
<p>In simple terms, it consists of various tests carried out on the software generally to verify its functionalities.</p>
<p>Functional testing helps the software team know if the software is working as required. Mind you, Functional Testing doesn't mean testing unit functions or modules.</p>
<h3 id="heading-examples-of-functional-testing">Examples of Functional Testing</h3>
<h4 id="heading-unit-testing">Unit Testing</h4>
<p>In unit testing, you test individual units or functions of your software's source code. Unit testing can be done automatically or manually.</p>
<p>Automatic unit testing happens with human assistance while manual unit testing is actively done by humans.</p>
<p>The difference between these two methods is that the former is automated while the latter requires hard-coding.</p>
<p>The purpose of unit testing is to ensure that each unit component is working as expected.</p>
<h4 id="heading-api-testing">API Testing</h4>
<p>An application Programming Interface (or API) is a link between your program and an external source. So, if you want your program to do more than just what you code, you could employ the features of another program also. This is what consuming APIs is all about. </p>
<p>For instance, let's say that I want my application to have a map feature. Instead of coding one from the scratch, I could save myself some time and stress by using one of the readily available map APIs.   </p>
<p>Using APIs, especially from external sources, comes with its pros and cons, though. And I bet you want to reduce the cons as much as possible. Well, this is why you need to test the API prior to product release. </p>
<p>When you consume a public or private API, while developing your software, you should check for the API's reliability, security, and effectiveness in your product prior to release. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/API.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image representing API</em></p>
<h4 id="heading-ui-user-interface-testing">UI (User interface) Testing</h4>
<p>The User Interface is the channel of communication between the user and the software. </p>
<p>Every software product is developed with certain specifications for the User Interface. This means that the way the user interacts with the application is predetermined prior to developing the product.</p>
<p> In order to make sure that these specifications are met according to design, you can carry out tests on the UI – and this is known as UI Testing.</p>
<p>The UI Testing involves things like checking if the Sign-Up page is correctly accepting inputs, checking to see if the submit button is functional, and a host of other UI features. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Signup-page3--1-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image of a Payment Page</em></p>
<h4 id="heading-integration-testing">Integration Testing</h4>
<p>Putting components into groups for testing is known as integration testing. Integration testing involves checking how each separate component works together to achieve the common aim of the product. </p>
<p>For instance, in an e-commerce application, the integration tests can check how the Home page connects to the Carts page when the Cart menu is clicked. </p>
<p>The purpose of integration testing is to make sure that components are working in synchrony – that is, that component A works well with component B.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/LOGIN_SIGNUP-PAGE.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image of two UI pages</em></p>
<h4 id="heading-regression-testing">Regression Testing</h4>
<p>Software Development involves iteration, which often happens because of bugs in the source code. </p>
<p>After debugging your code, updating the software program, or making any other change to your code, you should test that software to validate its functionality. This testing is called Regression testing. </p>
<p>Examples of regression testing are corrective regression testing, selective regression testing, progressive regression testing, and others.</p>
<h3 id="heading-non-functional-or-performance-testing"><strong>Non-functional or Performance Testing</strong></h3>
<p>Non-functional testing refers to the various tests carried out on a product to check its readiness for the market. Non-functional Tests go a step further to ensure the viability of a product and its worth.</p>
<h3 id="heading-examples-of-non-functional-testing">Examples of Non-functional Testing</h3>
<h4 id="heading-volume-testing">Volume Testing</h4>
<p>The strength of every product lies in its ability to handle different volumes of data. Some software may not function with a large database. To avoid such breakage, you can do volume tests. </p>
<p>Volume test involves feeding a large database to the software to check its functionality based on the large volume of data. Testing your product on different volumes of data shows that your product can withstand more or fewer data at a given time.</p>
<h4 id="heading-security-testing">Security Testing</h4>
<p>In the world today, security is an important and much-discussed topic. Concerns range from physical security down to cyberspace – and everyone wants that assurance of safety when they are on the internet.</p>
<p>One of the issues you'll want to avoid as a software developer is threats to your application. You can perform security testing on your software product to check its level of vulnerability. </p>
<p>Security tests include authentication, authorization confidentiality, and other measures required to protect your software from risks and threats.</p>
<h2 id="heading-where-to-put-test-files-in-a-program-folder">Where to put test files in a program folder</h2>
<p>Your test files should be together in a test folder inside the root folder of your project. This is for easy navigation and integration into your project.</p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Now that you know the importance of testing in software development, you should make sure to write code that is error and bug-free when tested.</p>
<p>This will reduce the time you waste fixing bugs and will in turn make the product release date more achievable.</p>
<p>Lastly, be careful to put your test files in the same folder, especially for tests other than unit testing.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
