<?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" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://abojeonline.com</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 14:28:19 GMT</lastBuildDate><atom:link href="https://abojeonline.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[HTML 107: Forms and Buttons in HTML]]></title><description><![CDATA[We have come this far in HTML, just three more articles before we complete the HTML course.
Let's take a refresher quiz before we proceed to today's lesson.
Refresher quiz
What is a table in HTML and how are they created?Tables are used to analyze da...]]></description><link>https://abojeonline.com/html-107-forms-and-buttons-in-html</link><guid isPermaLink="true">https://abojeonline.com/html-107-forms-and-buttons-in-html</guid><category><![CDATA[forms]]></category><category><![CDATA[html forms]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[HTML]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[frontend]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[programming languages]]></category><category><![CDATA[programmer]]></category><category><![CDATA[tables]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[HTML CSS JAVASCRIPT]]></category><category><![CDATA[textarea]]></category><category><![CDATA[coding]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Sun, 07 Apr 2024 02:37:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712456223622/c9221345-90ff-453f-a274-4e5e949fb932.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We have come this far in HTML, just three more articles before we complete the HTML course.</p>
<p>Let's take a refresher quiz before we proceed to today's lesson.</p>
<h2 id="heading-refresher-quiz">Refresher quiz</h2>
<details><summary>What is a table in HTML and how are they created?</summary><div data-type="detailsContent">Tables are used to analyze data for display in a structured format for users to easily view them. At the highest level, tables are wrapped in the <code>table</code> tag, with <code>tr</code> table rows nested into it. The first <code>tr</code> wraps a <code>th</code> or table heading, then the next sets of <code>tr</code> rows wrap table data or <code>td</code>, as many as required.</div></details><details><summary>What is the HTML tag used to create tables and what purpose does it serve?</summary><div data-type="detailsContent">The <code>table</code> is used as the main wrapper for HTML tables and it helps structure the data into rows and columns.</div></details><details><summary>What are table rows and why are they used?</summary><div data-type="detailsContent">The table row <code>tr</code> is used to create data in rows. They are used to group related content and display them horizontally for proper data organization.</div></details><details><summary>What HTML tag is used to define the headings of tables?</summary><div data-type="detailsContent">The <code>th</code> or table head tag is used for defining table headings and they are quite different from the regular table data <code>td</code> as they appear bold by default and serve as labels or headings for each column.</div></details><details><summary>How are table data defined and what purpose do they serve?</summary><div data-type="detailsContent">Table data cells or <code>td</code> are cells that hold the data on the table to be displayed to the user within the table, corresponding to the rows and column heading.</div></details><details><summary>How do you create cell borders in HTML Tables?</summary><div data-type="detailsContent">The <code>border</code> attribute is used inside the opening <code>table</code> tag, and its value is set to 1 and above. This helps to add visual organization to the table structure.</div></details><details><summary>How do you justify or push the content of a table to the left, right, or center, and what tag is used for this? Also, how is it used?</summary><div data-type="detailsContent">The <code>align</code> attribute is used for this. Proper alignment is necessary for readability. This attribute is set in the <code>tr</code> table row opening tags, of the the heading.</div></details><details><summary>How do expand or reduce the width of a table cell and how is this done?</summary><div data-type="detailsContent">The <code>width</code> attribute is used to define the width of a cell. This is set inside the table row <code>tr</code> opening tags, of the table headings <code>th</code>.</div></details><details><summary>How do you add additional rows or columns to a table?</summary><div data-type="detailsContent">Additional Rows are added by adding more <code>tr</code> tags with nested <code>td</code> content, so each new row has some data. Additional columns are added by creating additional <code>th</code> tags nested within the <code>tr</code> tag of the heading section.</div></details><details><summary>At a very high level, what is the organizational structure for a table in HTML?</summary><div data-type="detailsContent">First off, at the top of the <code>table</code> element tree is the <code>table</code> tag wrapping the entire table. This is followed by the table heading, then the table data. All the table heading <code>th</code> elements are nested inside a single <code>tr</code> tag. Then each set of table data <code>td</code> tags, representing the data that corresponds to the headings, are nested within <code>tr</code> tags as well. So, if you had 5 headings or <code>th</code> elements for instance, then you would equally have 5 <code>td</code> elements nested within each row <code>tr</code> element for each category of data.</div></details>

<p>Phew!!! That was a lot.</p>
<p>Let's proceed to the subject of today.</p>
<h2 id="heading-html-buttons">HTML Buttons</h2>
<p>Buttons are used in HTML to link users to other pages or sections on your page or to add some other interactivity to our page.</p>
<p>To fully demonstrate Buttons in HTML, we will create a new HTML page in our project, and name it <code>contact.html</code>. Create this file inside our <code>assets</code> directory.</p>
<ul>
<li><p>Create a boilerplate code for the HTML document and title the page <code>Contact Me</code>.</p>
</li>
<li><p>Back in your index page, in your <code>contacts</code> section, after the YouTube contact, create a <code>button</code> tag and let the button say 'Reach me'.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span>&gt;</span>Reach Me<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
</code></pre>
<ul>
<li>We need to nest this button element inside of an anchor tag with the value of the <code>href</code> attribute pointing to the relative path of the newly created <code>contact.html</code> file, as follows:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/contact.html"</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">button</span>&gt;</span>Reach Me<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<ul>
<li>Make the page load in a different tab by adding the <code>target="_blank"</code> attribute to the anchor tag.</li>
</ul>
<h2 id="heading-html-forms">HTML Forms</h2>
<p>Now, we will create a form on the <code>contact</code> page to demonstrate the concept of forms:</p>
<ul>
<li><p>To create a form, you use the <code>form</code> tag and nest the <code>input</code> and <code>label</code> tags in it. Forms typically also have an element for submission. This can either be a <code>button</code> or an anchor tag.</p>
</li>
<li><p>Inside our <code>contact</code> page, create an <code>h1</code> heading with content: <code>Contact me</code>.</p>
</li>
<li><p>Create a paragraph element with the following content: <code>Kindly fill in the form below to get in touch with me</code></p>
</li>
<li><p>Create a <code>form</code> element using the <code>form</code> tag, and just delete the <code>action</code> attribute for now.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Contact Me<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Kindly fill in the form below to get in touch with me<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">form</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>
</code></pre>
<h3 id="heading-radio-button-field">Radio Button Field</h3>
<p>Radio buttons only give users a single option to select from a list of options. We will give the user an option of titles to select from: <code>Mr</code>, <code>Ms</code> and <code>Dr</code></p>
<ul>
<li><p>Nested inside the form element, create a label tag that says <code>Title</code> and add a <code>for</code> attribute of <code>title</code>.</p>
</li>
<li><p>Next, create 3 pairs of <code>label</code> and <code>input</code> tags for <code>Mr</code>, <code>Ms</code> and <code>Dr</code> and add <code>for</code> attributes of <code>mr</code>, <code>ms</code> and <code>dr</code> to their <code>label</code> tags.</p>
</li>
<li><p>In their <code>input</code> tags, add a <code>type</code> attributes of <code>radio</code> and match their <code>id</code> to their respective <code>for</code> attributes.</p>
</li>
<li><p>Add a <code>value</code> attribute in their <code>input</code> tags as follows: <code>mrms</code> and <code>dr</code> respectively. The <code>value</code> attribute is necessary for form submission.</p>
</li>
<li><p>It is important to group radio buttons so that only one is selected at a time, to do this, we add a <code>name</code> attribute to their <code>input</code> tags, giving them the same <code>value</code> of <code>title</code>. This adds them all in the same group named <code>title</code>.</p>
</li>
</ul>
<pre><code class="lang-xml">
<span class="hljs-comment">&lt;!-- form element wrapper --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">form</span>&gt;</span>
<span class="hljs-comment">&lt;!-- Title field --&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"title"</span>&gt;</span>Title<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>

  <span class="hljs-comment">&lt;!-- Mr label &amp; input--&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"mr"</span>&gt;</span>Mr<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"mr"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"mr"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"title"</span>&gt;</span>

  <span class="hljs-comment">&lt;!-- Ms label &amp; input--&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"ms"</span>&gt;</span>Ms<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"ms"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"ms"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"title"</span>&gt;</span>

  <span class="hljs-comment">&lt;!-- Dr label &amp; input--&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"dr"</span>&gt;</span>Dr<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"dr"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"dr"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"title"</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712405406582/594f7793-750b-44a4-8aa5-367553e0fc31.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-name-field">Name Field</h3>
<ul>
<li><p>Inside this form tag, nest the first set of <code>input</code> and <code>label</code> tags to collect users' Names</p>
</li>
<li><p>The <code>label</code> tag tells the user what to do within the input area.</p>
</li>
<li><p>The <code>type</code> attribute for the <code>input</code> label is set to <code>text</code> by default, and the <code>for</code> attribute for the <code>label</code> is set to <code>name</code> for screen readers to be able to read it, and also, to move your cursor to the text box if the label is clicked on.</p>
</li>
<li><p>The <code>id</code> attribute for the <code>input</code> is set to match the <code>for</code> attribute of the <code>label</code>, to link them</p>
</li>
<li><p>We need a <code>submit</code> button, we will create this using an input tag of <code>type="submit"</code> right now the submit button doesn't work as expected as we have not set any backend code to receive the form.</p>
</li>
<li><p>Add a <code>required</code> attribute to the <code>input</code> tag to make that field a must fill field for submission.</p>
</li>
<li><p>Add <code>minlength</code> and <code>maxlength</code> attributes for 5 to 10 characters</p>
</li>
<li><p>Add a <code>reset</code> button by creating an <code>input</code> tag and setting the type to <code>reset</code>, for the user to be able to reset the form.</p>
</li>
<li><p>Add a placeholder to give the input field a sample text, by adding a placeholder attribute to the input tag.</p>
</li>
<li><p>Add a line break to move the submit and reset buttons to the next line.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- Name Field --&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"name"</span>&gt;</span>Name:<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"name"</span> <span class="hljs-attr">minlength</span>=<span class="hljs-string">"5"</span> <span class="hljs-attr">maxlength</span>=<span class="hljs-string">"10"</span> <span class="hljs-attr">required</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Loche"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712405755906/ff67dc1f-6d08-4de2-aeff-d4502a002878.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-password-field">Password Field</h3>
<ul>
<li><p>Within the form tag, create another pair of <code>label</code> and <code>input</code> tags for our password.</p>
</li>
<li><p>Again, set the <code>for</code> attribute of the <code>label</code> tag to <code>password</code> while matching this with the <code>id</code> attribute of the <code>input</code> tag.</p>
</li>
<li><p>Set the content for the label tag to <code>Password</code></p>
</li>
<li><p>In the input tag, add attributes for the minlength, maxlength, placeholder, and required, as desired.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- Password field --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"password"</span>&gt;</span>Password<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"********"</span> <span class="hljs-attr">minlength</span>=<span class="hljs-string">"6"</span> <span class="hljs-attr">maxlength</span>=<span class="hljs-string">"12"</span> <span class="hljs-attr">required</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712447522034/f1b3cc61-f6cd-42ea-be96-3b90054c4c74.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-email-field">Email Field</h3>
<ul>
<li><p>Add another pair of <code>label</code> and <code>input</code> tags inside the <code>form</code> element, just above the <code>submit</code> and <code>reset</code> buttons.</p>
</li>
<li><p>Set the <code>for</code> attribute of the <code>label</code> to <code>email</code> and add an <code>Email</code> content to the <code>label</code> tag.</p>
</li>
<li><p>Add a <code>type</code> attribute of <code>email</code> to the <code>input</code> tag, also add a <code>required</code> attribute, and set the <code>id</code> attribute to <code>email</code>, to match the <code>for</code> attribute of the <code>label</code>. Don't forget to add a placeholder text of <code>akkre@email.com</code>.</p>
</li>
</ul>
<pre><code class="lang-xml">
<span class="hljs-comment">&lt;!-- Email field --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"email"</span>&gt;</span>Email<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> <span class="hljs-attr">required</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"akkre@email.com"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"email"</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712447894277/26bd9156-cd27-4261-97a7-d2c1332c6cc2.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-phone-number-field">Phone Number Field</h3>
<ul>
<li><p>Add another pair of <code>label</code> and input <code>tags</code> for the phone number field.</p>
</li>
<li><p>To the <code>label</code> tag, set the content to Phone Number and add a <code>for</code> attribute of <code>number</code>.</p>
</li>
<li><p>To the <code>input</code> label, set the <code>type</code> attribute to <code>tel</code> or telephone, the <code>id</code> to number, the <code>placeholder</code> to <code>012-3456-7890,</code> and also set the <code>required</code> attribute.</p>
</li>
<li><p>Also, set the <code>pattern</code> attribute to match the pattern on the <code>placeholder</code>, as follows: <code>[0-9]{3}-[0-9]{4}-[0-9]{4}</code>. This means the first 3 digits are numbers from 0-9, then a dash, then the next 4 digits are numbers from 0-9, then a dash, then the last 4 digits are numbers from 0-9.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- Phone Number field --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"number"</span>&gt;</span>Phone Number<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"tel"</span> <span class="hljs-attr">required</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"012-3456-7890"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">pattern</span>=<span class="hljs-string">"[0-9]{3}-[0-9]{4}-[0-9]{4}"</span>
    &lt;<span class="hljs-attr">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712448322442/1bf6bbbf-07f0-49df-8d94-96487c1526eb.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-calender-field">Calender Field</h3>
<p>This is just for demonstration purposes only.</p>
<ul>
<li><p>Create a label tag and set the content to <code>Birthday</code> and the <code>for</code> attribute to <code>birthday</code></p>
</li>
<li><p>Create an <code>input</code> tag, set the <code>type</code> attribute to <code>date</code> and <code>id</code> to <code>birthday</code>. This brings the user a calendar object. Then add a page break after.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- Birthday field --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"birthday"</span>&gt;</span>Birthday<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"date"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"birthday"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712448803061/c22faab1-f668-4f0d-9ff4-1b1eca00c0e6.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-quantity-field">Quantity Field</h3>
<p>We assume that the user is going to enter a quantity, as though they are making an order, again this is only for demonstration.</p>
<ul>
<li><p>Add a <code>label</code> tag and set the <code>content</code> to <code>Number</code>, also set the <code>for</code> attribute to <code>number</code>.</p>
</li>
<li><p>Add an <code>input</code> tag and set the <code>type</code> attribute to <code>number</code> and <code>id</code> to <code>number</code>.</p>
</li>
<li><p>Set the <code>min</code> and <code>max</code> attributes to <code>0</code> and <code>99</code> respectively because we don't want the user selecting a negative number.</p>
</li>
<li><p>Set the default value to 1, like so: <code>value="1"</code></p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- Quantity field --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"number"</span>&gt;</span>Quantity<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"number"</span> <span class="hljs-attr">min</span>=<span class="hljs-string">"0"</span> <span class="hljs-attr">max</span>=<span class="hljs-string">"9"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"1"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712449020475/12619dee-80d3-46d5-a19b-136d1599e8fd.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-drop-down-field">Drop-Down Field</h3>
<p>We will create a drop-down menu for card payment. Again we will assume we are paying for a service just for demonstrative purposes.</p>
<ul>
<li><p>Create a <code>label</code> tag and set the for attribute to <code>payment</code> and content <code>Payment</code></p>
</li>
<li><p>Instead of an <code>input</code> tag, we use a <code>select</code> tag with <code>id</code> attribute set to <code>payment</code>, and nest 3 <code>option</code> tags</p>
</li>
<li><p>For the 3 <code>option</code> tags, set their <code>value</code> attributes and <code>content</code> to <code>verve</code>, <code>visa</code> and <code>giftcard</code>, and we have just created 3 drop-down menus.</p>
</li>
</ul>
<pre><code class="lang-xml"> <span class="hljs-comment">&lt;!-- Drop-Down menu Field --&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"payment"</span>&gt;</span>Payment<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">select</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"payment"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"verve"</span>&gt;</span>Verve<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"visa"</span>&gt;</span>Visa<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">option</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"giftcard"</span>&gt;</span>Giftcard<span class="hljs-tag">&lt;/<span class="hljs-name">option</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">select</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712450366463/c628e064-bc53-42dc-b46c-9bbac65af786.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-checkbox-field">CheckBox Field</h3>
<p>We will create a checkbox field for users to subscribe to imaginary newsletters</p>
<ul>
<li><p>Create a <code>label</code> tag and set the <code>for</code> atribute to <code>subscribe</code>, and the content to <code>Subscribe to my Newsletters</code></p>
</li>
<li><p>Create an <code>input</code> tag, set the <code>type</code> attribute to <code>checkbox</code> and the <code>id</code> attribute to match the <code>for</code> attribute of its <code>label</code> tag: <code>subscribe</code></p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"subscribe"</span>&gt;</span>Subscribe to my Newsletters<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"subscribe"</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712451885439/1a07fab4-99bc-455e-af5d-57fb7e4c6c09.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-textarea-field">Textarea Field</h3>
<p>We will create a textarea for users to be able to type in their comments</p>
<ul>
<li><p>Create a <code>label</code> tag and set the <code>for</code> attribute to <code>comment</code>, and set the <code>content</code> to <code>Type in your Comments</code>.</p>
</li>
<li><p>Create a <code>textarea</code> tag and set the <code>id</code> to comment, <code>cols</code> to <code>30</code> and <code>rows</code> to <code>10</code>. cols and rows control the columns and rows. Set a placeholder as desired.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"comment"</span>&gt;</span>Type in your Comments<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">textarea</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"comment"</span> <span class="hljs-attr">col</span>=<span class="hljs-string">"30"</span> <span class="hljs-attr">rows</span>=<span class="hljs-string">"10"</span> <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"i like coding"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">textarea</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712452776636/d0166593-7b3f-4057-ada3-313116e3e86f.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-file-attachment-field">File Attachment Field</h3>
<p>Again, Users will be able to attach files on this page, as follows:</p>
<ul>
<li><p>Create a <code>label</code> tag with a <code>for</code> attribute of <code>file</code>, and content of <code>Attach a File</code>.</p>
</li>
<li><p>Create an <code>input</code> tag with a <code>type</code> attribute of <code>file</code> and an <code>id</code> of <code>file</code></p>
</li>
<li><p>We can limit or specify the type of file that users can send by adding an <code>accept</code> attribute and specifying multiple file <code>type/extension</code> in the input tag, seperated by commas.</p>
</li>
<li><p>Also, if you are expecting large sizes of file exchange on the page, it is probably important to set one more attribute to the form tag to be able to process larger files: <code>enctype="multipart/form-data"</code>. When we send a large data, this data is first broken down into smaller parts, sent, and the reassembled again.</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"file"</span>&gt;</span>Attach a File<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"file"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"file"</span> &gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712453556705/c5b1d4ef-6997-41cb-a7fa-4df8145f5fae.png" alt class="image--center mx-auto" /></p>
<p>You can set the file to which the form data is sent as attributes in the form tag, but this is beyond the scope of this article.</p>
<p>This was a lot, but we have covered so much with forms, we can do with some styling but we will do this using CSS, soon.</p>
<p>Thank you for your time.</p>
]]></content:encoded></item><item><title><![CDATA[HTML 106: How to create a Table in HTML]]></title><description><![CDATA[A quick refresher from our previous article:
Refresher Quiz
What are ordered Lists?Ordered lists, ol are lists that are ordered just as the name implies. They follow a certain numerical order and they are used to itemize things when it is important t...]]></description><link>https://abojeonline.com/html-106-how-to-create-a-table-in-html</link><guid isPermaLink="true">https://abojeonline.com/html-106-how-to-create-a-table-in-html</guid><category><![CDATA[html tables]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[code]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[programmer]]></category><category><![CDATA[Blogging]]></category><category><![CDATA[Developer]]></category><category><![CDATA[development]]></category><category><![CDATA[dev]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[HTML]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[beginner]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Wed, 03 Apr 2024 19:31:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712163157067/3a2ab986-5600-42fe-ba53-fc71145ce5cd.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A quick refresher from our previous article:</p>
<h2 id="heading-refresher-quiz">Refresher Quiz</h2>
<details><summary>What are ordered Lists?</summary><div data-type="detailsContent">Ordered lists, <code>ol</code> are lists that are ordered just as the name implies. They follow a certain numerical order and they are used to itemize things when it is important to follow a certain order.</div></details><details><summary>How are ordered Lists structured?</summary><div data-type="detailsContent">When making an ordered list, you use the <code>ol</code> tag and then nest the <code>li</code> tags for each item.</div></details><details><summary>What are un-ordered Lists?</summary><div data-type="detailsContent">Unordered lists, <code>ul</code> are used when itemizing things without following any particular order. They appear as bullet points.</div></details><details><summary>How are un-ordered Lists structured?</summary><div data-type="detailsContent">When making an un-ordered list, you use the <code>ul</code> tag and then nest the <code>li</code> tags for each item.</div></details><details><summary>What are nested Lists?</summary><div data-type="detailsContent">When a list is embedded into another list, it becomes a subcategory and it is called a nested list.</div></details><details><summary>How are nested Lists structured?</summary><div data-type="detailsContent">You create a subcategory by nesting either an <code>ul</code> or an <code>ol</code> tag inside the specific list item you intend to create a sub-category of, then add list items as desired.</div></details><details><summary>What are description Lists?</summary><div data-type="detailsContent">Description lists are used to provide definitions or descriptions of terms.</div></details><details><summary>How are description Lists structured?</summary><div data-type="detailsContent">The basic structure is the <code>dl</code> 'description list' tags wrapping the <code>dt</code> 'description terms' tag and the <code>dd</code> 'description definition' tags, in pairs.</div></details>

<h2 id="heading-tables-in-html">Tables in HTML</h2>
<p>Tables are used to analyze data for display in a structured format for users to easily view them. Here is how tables are created in HTML:</p>
<ul>
<li><p>We will create a summary of your profile at the top of the index.html page.</p>
</li>
<li><p>At the highest level, tables are wrapped in the <code>table</code> tag, with <code>tr</code> table rows nested into it. The first <code>tr</code> wraps a <code>th</code> or table heading, then the next sets of <code>tr</code> rows wrap table data or <code>td</code>, as many as required.</p>
</li>
<li><p>In your index.html file, edit your name and type 'Profile Summary' inside the <code>h1</code> tags.</p>
</li>
<li><p>Create the basic skeleton of the table structure as follows:</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">table</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">table</span>&gt;</span>
</code></pre>
<p>These are the basic rules for creating tables:</p>
<ul>
<li><p>You define rows to contain the various categories. The first row would hold the table headings, so in our case, we intend to have 2 headings, so we create 2 <code>th</code> elements under the first <code>tr</code> element</p>
</li>
<li><p>The table data is also defined inside rows, each row would contain 2 td elements to define the data corresponding to the 2 heading categories.</p>
</li>
<li><p>Add more rows as desired to add more information to your table, as follows:</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">table</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Category<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Details<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Name<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Oloche Aboje<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Location<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>United Kingdom<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>  
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Occupation<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Front-End Developer<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Background<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Architecture, Web Development<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Skills<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>Javascript, React<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">table</span>&gt;</span>
</code></pre>
<p>Here is a preview of the new table:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712170494612/13b6fa08-c9ec-4e8d-b87e-8ea8d9a9e687.png" alt class="image--center mx-auto" /></p>
<p>But we can format it a little more:</p>
<ul>
<li><p>In the opening <code>table</code> tag, add a <code>border</code> attribute of value <code>1</code> to create cells for the table.</p>
</li>
<li><p>Next, in the opening tag of the table row <code>tr</code> for the heading, add an <code>align</code> attribute of value <code>left</code>.</p>
</li>
<li><p>In the opening tag of the table heading <code>th</code>, add an attribute of <code>width</code> and set it to a value of <code>100</code> for the first <code>category</code> heading and <code>200</code> for <code>Details</code>.</p>
</li>
</ul>
<p>check out the preview:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712171748050/48474b31-5a50-4039-a1ae-9749d058274f.png" alt class="image--center mx-auto" /></p>
<p>I am not quite flowing with the cells, so I will just delete that attribute, and add a width attribute to the passport, and set the value to 200px to reduce it:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712172102798/4dde331e-e927-46dc-ac18-e63883dba572.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[HTML 105: Creating Lists in HTML]]></title><description><![CDATA[For a quick review of our previous article, let's take the following quiz:
Refresher Quiz
What are Block Level Elements?Block-level elements take up the entire line. they do not share the same line with other elementsWhat are Inline Elements?Inline E...]]></description><link>https://abojeonline.com/html-105-creating-lists-in-html</link><guid isPermaLink="true">https://abojeonline.com/html-105-creating-lists-in-html</guid><category><![CDATA[nested lists in html]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[code]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[programmer]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[beginner]]></category><category><![CDATA[#beginners #learningtocode #100daysofcode]]></category><category><![CDATA[Html lists]]></category><category><![CDATA[Lists]]></category><category><![CDATA[#html-ordered-lists]]></category><category><![CDATA[#html-unordered-lists]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Tue, 02 Apr 2024 17:18:56 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712078320095/73fd5f4c-c585-4013-8667-36b8ad799d00.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For a quick review of our previous article, let's take the following quiz:</p>
<h2 id="heading-refresher-quiz">Refresher Quiz</h2>
<details><summary>What are Block Level Elements?</summary><div data-type="detailsContent">Block-level elements take up the entire line. they do not share the same line with other elements</div></details><details><summary>What are Inline Elements?</summary><div data-type="detailsContent">Inline Elements take up the exact space of their content, thereby sharing space with other elements.</div></details><details><summary>What are Some Examples of Inline Elements</summary><div data-type="detailsContent">Headings and divs are examples of inline elements.</div></details><details><summary>What are some examples of Block Level Elements?</summary><div data-type="detailsContent">Spans and Buttons are inline Elements.</div></details><details><summary>What is the Difference Between a Span and a Div?</summary><div data-type="detailsContent">They are both containers for sectioning parts of the HTML document for styling purposes, whereas the difference between them is that the Span is an inline element while the Div is a block-level element.</div></details><details><summary>What tag is used for defining a div and a span</summary><div data-type="detailsContent">Just as the names imply, the <code>div</code> tag is used in creating the div element while the <code>span</code> tag is used in creating the span element.</div></details><details><summary>What are Block Level Elements?</summary><div data-type="detailsContent">Block-level elements take up the entire line. they do not share the same line with other elements</div></details><details><summary>What does the 'small' tag do in HTML?</summary><div data-type="detailsContent"><code>small</code>: It is used to make texts small</div></details><details><summary>What does the 'big' tag do in HTML?</summary><div data-type="detailsContent"><code>big</code>: It is used to make texts Big</div></details><details><summary>What does the Italic tag do in HTML?</summary><div data-type="detailsContent"><code>italic</code>: It is used to make texts Italicised</div></details><details><summary>What does the 'bold' tag do in HTML?</summary><div data-type="detailsContent"><code>b</code>: It is used to make texts Big</div></details><details><summary>What does the 'underline' tag do in HTML?</summary><div data-type="detailsContent"><code>u</code>: It is used to underline text in HTML</div></details><details><summary>What does the 'superscript' tag do in HTML?</summary><div data-type="detailsContent"><code>sup</code>: It is used to create superscript text such as exponents in mathematical expressions.</div></details><details><summary>What does the 'subscript' tag do in HTML?</summary><div data-type="detailsContent"><code>sub</code>: It is used to create subscript text, typical for references to footnotes on a page.</div></details><details><summary>What does the 'deleted' tag do in HTML?</summary><div data-type="detailsContent"><code>del</code>: It is used for creating a strike-through over texts to make them look deleted.</div></details><details><summary>What does the 'monospaced' tag do in HTML?</summary><div data-type="detailsContent"><code>tt</code>: It is used to create monospaced text in a document.</div></details><details><summary>What does the 'mark' tag do in HTML?</summary><div data-type="detailsContent"><code>mark</code>: It is used to create a transparent background over text to make the seem emphasized.</div></details>

<h2 id="heading-ordered-lists">Ordered Lists</h2>
<p>Ordered lists, <code>ol</code> are lists that are ordered just as the name implies. They follow a certain numerical order and they are used to itemize things when it is important to follow a certain order.</p>
<ul>
<li><p>When making an ordered list, you use the <code>ol</code> tag and then nest the <code>li</code> tags for each item. You can also create a sub-list for sub-categories.</p>
</li>
<li><p>To demonstrate this, in our <code>index.html</code> file, let's turn our <code>skills</code> section into an ordered list.</p>
</li>
<li><p>First, convert the <code>u</code> tags for the underlines into <code>ol</code> ordered list tags.</p>
</li>
<li><p>Then wrap <code>li</code> list item tags around each skill as follows:</p>
</li>
</ul>
<pre><code class="lang-xml"> <span class="hljs-tag">&lt;<span class="hljs-name">ol</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>HTML<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>CSS<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Javacsript<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>React<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ol</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712069522036/e9c7192c-96eb-432e-9c53-9b7eb179f925.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-unordered-lists">Unordered Lists</h2>
<p>Unordered lists, <code>ul</code> are used when itemizing things without following any particular order. They appear as bullet points: Here is how they are created in HTML:</p>
<ul>
<li><p>Start by wrapping our hobbies section with an <code>ul</code> tag, replacing the <code>p</code> tags, and deleting the <code>div</code> tags as well.</p>
</li>
<li><p>Next, wrap each hobby item inside a <code>li</code> list item and see how it gets rendered on the live server preview page as bullet points as follows:</p>
</li>
</ul>
<pre><code class="lang-xml">    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>football<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>basketball<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/music.html"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>listening to music<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712070676068/2833f0ab-44f6-46ce-b71f-426e896c4597.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-nested-lists">Nested Lists</h2>
<p>Lists can be nested into a list as sub-categories. Let's take an example of the following, just for demonstration purposes:</p>
<ul>
<li><p>In the <code>hobbies</code> section let's create a sub-category under each section by nesting an unordered list item under each hobby</p>
</li>
<li><p>Under the <code>football</code> hobby, after the 'football' text, nest an <code>ul</code> tag, and inside this <code>ul</code> tag, nest two <code>li</code> list items: 'watching football games', and 'playing football', as follows:</p>
</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>football
      <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>watching football games<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>playing football<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
</code></pre>
<ul>
<li>under the basketball hobby, in like manner, right after the basketball text, nest a <code>ul</code> tag with two <code>li</code> list items inside the <code>ul</code> tag. the List items should have the following content: 'watching basketball games', and 'playing basketball video games', as follows:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>basketball
      <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>watching basketball games<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>playing basketball video games<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712077521815/f19ed6ee-be87-49a2-a4f4-839848a000d6.png" alt class="image--center mx-auto" /></p>
<p>This is how you make ordered lists and unordered lists and nest other lists into them. Next we will discuss how to make description lists.</p>
<h2 id="heading-description-lists">Description Lists</h2>
<p>Description lists are used to provide definitions or descriptions of terms. You can create a dictionary website using this.</p>
<p>The basic structure is the <code>dl</code> 'description list' tags wrapping the <code>dt</code> 'description terms' tag and the <code>dd</code> 'description definition' tags, in pairs. To demonstrate this, we will turn our contact section into a description list, just for demonstrative purposes:</p>
<ul>
<li>First, create a <code>dl</code> opening tag just below the <code>Contact Me</code> element and close the tag just below the U2B closing anchor tag. This wraps the entire contacts elements in a 'description list' tag, like this:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dl</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
      <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.linkedin.com/in/ao111"</span>
      <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
      <span class="hljs-attr">title</span>=<span class="hljs-string">"my linkedin"</span>
      &gt;</span>Linkedin
    <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://github.com/accdev1694"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my github"</span>
      &gt;</span>GitHub
    <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
      <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow"</span>
      <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
      <span class="hljs-attr">title</span>=<span class="hljs-string">"my youtube"</span>
      &gt;</span>U<span class="hljs-tag">&lt;<span class="hljs-name">sup</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-name">sup</span>&gt;</span>B
    <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">dl</span>&gt;</span>
</code></pre>
<ul>
<li>Next, wrap the anchor tags of each contact item with a <code>dt</code> 'description term' tag to turn each item into a description term, like this:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dl</span>&gt;</span>
     <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
          <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.linkedin.com/in/ao111"</span>
          <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
          <span class="hljs-attr">title</span>=<span class="hljs-string">"my linkedin"</span>
          &gt;</span>Linkedin
        <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://github.com/accdev1694"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my github"</span>
            &gt;</span>GitHub
        <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
          <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow"</span>
          <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
          <span class="hljs-attr">title</span>=<span class="hljs-string">"my youtube"</span>
          &gt;</span>U<span class="hljs-tag">&lt;<span class="hljs-name">sup</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-name">sup</span>&gt;</span>B
        <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">dl</span>&gt;</span>
</code></pre>
<ul>
<li>lastly, add a <code>dd</code> 'description definition' opening and closing tags, with a definition right under each <code>dt</code> description term element as follows:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dl</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
        <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.linkedin.com/in/ao111"</span>
        <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
        <span class="hljs-attr">title</span>=<span class="hljs-string">"my linkedin"</span>
        &gt;</span>Linkedin
        <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">dd</span>&gt;</span>Linkedin in as online platform for your professional profile<span class="hljs-tag">&lt;/<span class="hljs-name">dd</span>&gt;</span>

      <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://github.com/accdev1694"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my github"</span>
        &gt;</span>GitHub
        <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">dd</span>&gt;</span>GitHub is an online platform for your codes and all things tech collaboration<span class="hljs-tag">&lt;/<span class="hljs-name">dd</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">a</span>
      <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow"</span>
      <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>
      <span class="hljs-attr">title</span>=<span class="hljs-string">"my youtube"</span>
      &gt;</span>U<span class="hljs-tag">&lt;<span class="hljs-name">sup</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-name">sup</span>&gt;</span>B
      <span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">dd</span>&gt;</span>Youtube is an online video streaming platform<span class="hljs-tag">&lt;/<span class="hljs-name">dd</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">dl</span>&gt;</span>
</code></pre>
<p>In summary, 'description lists' use <code>dl</code> tags at the highest level, then two tags for each item: the <code>dt</code> 'description term' and <code>dd</code> 'description definition', in the following structure:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dl</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">dt</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dt</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">dd</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dd</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dl</span>&gt;</span>
</code></pre>
<p>Here is the live server preview of the Description List:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712077845570/f524c0e0-bb31-477f-8210-9e0ab771494e.png" alt class="image--center mx-auto" /></p>
<p>That is all about lists in HTML. Don't forget to like, subscribe, and comment on this blog. Thank you.</p>
]]></content:encoded></item><item><title><![CDATA[HTML 104: Text Formatting, Divs, and Spans]]></title><description><![CDATA[Before we proceed into today's Class, let's find out just how much information you have retained, with a quick refresher.
Refresher Quiz
What is a favicon and where does it appear on your web page?A favicon is an image, usually a logo of your website...]]></description><link>https://abojeonline.com/html-104-text-formatting-divs-and-spans</link><guid isPermaLink="true">https://abojeonline.com/html-104-text-formatting-divs-and-spans</guid><category><![CDATA[DIV]]></category><category><![CDATA[span]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[coding]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[HTML CSS JAVASCRIPT]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Mon, 01 Apr 2024 19:42:20 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/5-JkQJ-y0NM/upload/e5317eb8e0277d2a4137a34d686d842f.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before we proceed into today's Class, let's find out just how much information you have retained, with a quick refresher.</p>
<h2 id="heading-refresher-quiz">Refresher Quiz</h2>
<details><summary>What is a favicon and where does it appear on your web page?</summary><div data-type="detailsContent">A favicon is an image, usually a logo of your website, and it is displayed on the browser tab next to your page's title</div></details><details><summary>How is a favicon created on your web page?</summary><div data-type="detailsContent">In the <code>head</code> section of your HTML page, create a <code>link</code> tag, Specify a relative path to your image of choice, add a <code>type</code> attribute, and set the value to <code>image/jpg</code> or <code>image/png</code> depending on the file extension of the image. then add another attribute of <code>rel</code> and set it to <code>icon</code>.</div></details><details><summary>What tag is used to add a video file directly to your webpage?</summary><div data-type="detailsContent">The <code>video</code> tag.</div></details><details><summary>How do you add a video tag to your web page and add controls to it?</summary><div data-type="detailsContent">To add a video file directly to your web page, first add a <code>video</code> tag with a <code>src</code> attribute pointing to the relative path of that video on your computer, then add the following attributes: <code>control</code> (to make it play), <code>autoplay</code> (to make it play as soon as it loads on the page), <code>muted</code> (to keep it <code>muted</code> until a user selects sound), and loop (to make it play over and over in a loop).</div></details><details><summary>I have video, audio, and image files on my web page, how do I turn them into clickable links, leading users to a different website?</summary><div data-type="detailsContent">Turning media files into clickable links on your page follows the same process. You simply wrap the element with anchor tags, using <code>href</code> attributes that point to that specific website's URL. So you simply copy and paste the website URL as the value of the <code>src</code> attribute inside the anchor tag.</div></details><details><summary>To add music files directly to your web page, what tag is used, and what attributes are used to give it functionality?</summary><div data-type="detailsContent">The <code>audio</code> tag is used to add music directly to your web page and just like adding video files, you add the following attributes: <code>controls</code>, <code>autoplay</code>, <code>muted</code>, and <code>loop</code>.</div></details><details><summary>How do you create links to other pages on your website?</summary><div data-type="detailsContent">To link to other pages within your website, you simply use an anchor tag to wrap the element you wish to link, it could be a heading, a simple text, or a media file. Then you specify the <code>href</code> attribute to point to the relative path of the destination HTML page.</div></details><details><summary>What attribute can be used to change the size of an image or video file on your webpage?</summary><div data-type="detailsContent">The <code>width</code> or <code>height</code> attributes, or both.</div></details><details><summary>Why do you need the 'muted' attribute on your video or music files</summary><div data-type="detailsContent">Audios playing as soon webpage loads can be annoying to some users and so does not make for a great user experience, for this reason, it is advisable to keep them muted.</div></details><details><summary>How do you create a boilerplate code on a blank HTML sheet?</summary><div data-type="detailsContent">By Typing: <code>!</code> + tab</div></details>

<p>Now that we have refreshed our memory from the previous article, let us proceed to formatting text in HTML.</p>
<h2 id="heading-inline-and-block-level-elements">Inline and Block-level Elements</h2>
<p>Inline Elements take up just the space of their content while Block elements take up the entire line of code. In other words, Inline elements can share the same line with other elements, whereas, block-level elements are very 'selfish', as they don't share.</p>
<h3 id="heading-spans-and-divs">Spans and Divs</h3>
<p>We will illustrate this concept using a <code>span</code>, which is an inline element, and a <code>div</code>, which is a block element. a <code>div</code> is like a container for separating sections of the HTML document for styling purposes, it is a block-level element. A <code>span</code> is also a container for sectioning contents in an HTML document, it is an inline element. Now let's code:</p>
<ul>
<li>In our <code>index.html</code> file, scroll to the <code>hobbies</code> section and wrap the first two hobbies with a <code>div</code>, like so:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>football, basketball,<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/music.html"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>listening to music<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<p>Notice how the <code>div</code> has forced the <code>listening to music</code> hobby out of its line, and into the next line. This clearly demonstrates how a <code>div</code> is a block-level element, as they don't share the same line with other elements. Let's demonstrate the inline concept:</p>
<ul>
<li><p>In the same file, scroll down to the <code>my projects</code> section and replace the <code>h3</code> tag that surrounds it, with a <code>span</code>. See how that section gets smooched up into the section before it.</p>
</li>
<li><p>Next, surround the entire section with a <code>div</code> to isolate it inside a container, as follows:</p>
</li>
</ul>
<pre><code class="lang-xml"> <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">span</span>&gt;</span>My Projects:<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/projects.html"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>Go to Projects<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>Notice how that section has now moved to a new line. You can now add line breaks to separate them, thus:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">br</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">span</span>&gt;</span>My Projects:<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/projects.html"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>Go to Projects<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>You can easily style these changes using CSS but we will get to that.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711974516400/33aaf0ac-1332-46c2-8bdc-5d01b2a2f1c6.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-text-appearance-formatting">Text Appearance Formatting</h2>
<p>We can use special tags to alter the appearance of some text to add emphasis to them.</p>
<p>Still inside our index.html document, we will demonstrate these concepts:</p>
<ul>
<li>The <code>mark</code> tag: In the <code>About Me</code> section, give the word <code>Architecture</code> a special background to emphasize it, using the <code>mark</code> tag:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">mark</span>&gt;</span>Architecture<span class="hljs-tag">&lt;/<span class="hljs-name">mark</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>monospaced</code> tag: In the About Me section, wrap the words <code>Frontend Web Development</code> with a monospaced tag using the <code>tt</code> tags. This would appear to not be visible because of the <code>pre</code> tags currently wrapping that paragraph, change it from <code>pre</code> to <code>p</code> tags and notice the changes:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">tt</span>&gt;</span>Frontend Web Development<span class="hljs-tag">&lt;/<span class="hljs-name">tt</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>deleted</code> tag: Here we will make a word we consider unpleasant appear deleted. Find the word <code>intimidating</code> in the same section and wrap it with the <code>del</code> tag:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">del</span>&gt;</span>intimidating<span class="hljs-tag">&lt;/<span class="hljs-name">del</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>subscript</code> tag: Let's create a reference to the University of Birmingham website using a subscript tag. Locate the text <code>University of Birmingham</code>, type 1 immediately after it, no spaces, then wrap the number '1' you just typed with the <code>sub</code> tags. Secondly, nest an anchor tag inside this <code>sub</code> tag and set its href attribute to the following URL: (<a target="_blank" href="https://www.birmingham.ac.uk/">https://www.birmingham.ac.uk/</a>), without the brackets. I went ahead and added a tooltip using the <code>title</code> tag, I hope you still remember how to do this.<br />  Typically, subscripts are used to refer users to a footnote, we will learn how to link elements to other sections of the same document in a later article:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">sub</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.birmingham.ac.uk/"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"University of Birmingham Website"</span>&gt;</span>1<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">sub</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>superscript</code> tag: Used typically in mathematical expressions to raise numbers to the power of something, but we will demonstrate how it is done here. Let's create a funky way of writing 'YouTube' in the contacts section like U2B, and then making '2' a superscript, really cool right?</li>
</ul>
<pre><code class="lang-xml">U<span class="hljs-tag">&lt;<span class="hljs-name">sup</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-name">sup</span>&gt;</span>B
</code></pre>
<ul>
<li>The <code>underline</code> tag: Let's underline <code>HTML, CSS, Javascript, and React</code> in the skills section:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">u</span>&gt;</span>HTML, CSS, Javacsript and React<span class="hljs-tag">&lt;/<span class="hljs-name">u</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>bold</code> tag: Sure, we can make the <code>Coventry</code> text bold in the <code>About Me</code> section:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">b</span>&gt;</span>Coventry<span class="hljs-tag">&lt;/<span class="hljs-name">b</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>italic</code> tag: Go ahead and make the <code>UK</code> text italicized:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">i</span>&gt;</span>UK<span class="hljs-tag">&lt;/<span class="hljs-name">i</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>big</code> tag: We can also make texts big. This is rarely used because CSS can be used to manipulate text sizes really easily. We will make the <code>UK</code> text big by nesting a <code>big</code> tag inside the <code>italic</code> tag:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">i</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">big</span>&gt;</span>UK<span class="hljs-tag">&lt;/<span class="hljs-name">big</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">i</span>&gt;</span>
</code></pre>
<ul>
<li>The <code>small</code> tag: We can also make texts small. we will go ahead and make the Architecture text small, by nesting a small tag inside the mark tag, thus:</li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">mark</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">small</span>&gt;</span>Architecture<span class="hljs-tag">&lt;/<span class="hljs-name">small</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">mark</span>&gt;</span>
</code></pre>
<p>Please note that all these can be done easily with CSS and we will move into CSS soon.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712001376886/b96d6275-6960-4536-953f-e79f560c75b5.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[HTML 103: Adding Favicons, Videos, and Audios to a Web Page]]></title><description><![CDATA[Refresher Quiz
Let us see how well we remember the concepts from our previous article:
Question 1: What special HTML tag is used to preserve formatting such as spaces and line breaks within the text, making it appear exactly as written in the HTML co...]]></description><link>https://abojeonline.com/html-103-adding-favicons-videos-and-audios-to-a-web-page</link><guid isPermaLink="true">https://abojeonline.com/html-103-adding-favicons-videos-and-audios-to-a-web-page</guid><category><![CDATA[favicons]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[HTML]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[HTML video]]></category><category><![CDATA[audio in html]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[coding]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Sat, 30 Mar 2024 03:39:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/niUkImZcSP8/upload/170b39b1681263654d362924808a81d7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-refresher-quiz">Refresher Quiz</h2>
<p>Let us see how well we remember the concepts from our previous article:</p>
<details><summary>Question 1: What special HTML tag is used to preserve formatting such as spaces and line breaks within the text, making it appear exactly as written in the HTML code?</summary><div data-type="detailsContent"><strong>Answer:</strong> The <code>pre </code>tag is used to preserve the exact formatting of the text as it is written in the HTML code, including all spaces, line breaks, and indentation, which are typically not preserved when using standard HTML tags like <code>p</code> tags for paragraphs.</div></details><details><summary>Question 2: Why are comments added to HTML documents, and how do they impact the display of the webpage?</summary><div data-type="detailsContent"><strong>Answer:</strong> Comments in HTML are used for adding explanatory notes or reminders within the code that are not meant to be displayed on the web page. They serve as a guide for the developer or others who may work on the HTML document in the future, making the code easier to understand and maintain.</div></details><details><summary>Question 3: In HTML, how can you make a hyperlink open in a new browser tab instead of the current one?</summary><div data-type="detailsContent"><strong>Answer:</strong> By adding the <code>target="_blank"</code> attribute to an anchor <code>a</code> tag, you instruct the browser to open the hyperlink in a new tab. This is particularly useful for external links or ensuring that users do not lose their current page position.</div></details><details><summary>Question 4: What function does the 'title' attribute serve when used within an anchor tag in HTML?</summary><div data-type="detailsContent"><strong>Answer:</strong> The<code> title</code> attribute provides additional information about the hyperlink, typically displayed as a tooltip when the user hovers their mouse over the link. This can enhance usability and accessibility by giving users more context about the link's destination or purpose.</div></details><details><summary>Question 5: Explain the process of creating a hyperlink that directs to another webpage using HTML.</summary><div data-type="detailsContent"><strong>Answer:</strong> A hyperlink is created using the anchor <code>a </code>tag, where the <code>href</code> (hypertext reference) attribute specifies the destination URL of the link. The text or content placed between the opening and closing <code>a</code> tags becomes clickable and directs the user to the specified URL when clicked.</div></details><details><summary>Question 6: What role does the 'href' attribute play in anchor tags in HTML?</summary><div data-type="detailsContent"><strong>Answer:</strong> The <code>href</code> attribute in an anchor tag specifies the URL of the page the link points to. It is essential for defining the destination of the hyperlink, enabling users to navigate from one resource to another by clicking on the link.</div></details><details><summary>Question 7: How are absolute and relative links distinguished in HTML, and when might you use each type?</summary><div data-type="detailsContent"><strong>Answer:</strong> Absolute links provide the full URL path, including the protocol (http or https) and domain name, and are used to link to external sites. Relative links specify a path relative to the current document's location, useful for linking to resources within the same website without specifying the full URL, making site migration and structure changes easier to manage.</div></details><details><summary>Question 8: What is the correct way to control the display size of an image in HTML?</summary><div data-type="detailsContent"><strong>Answer:</strong> The display size of an image can be controlled using the <code>width</code> and <code>height</code> attributes within the <code>img</code> tag. Specifying these attributes allows developers to resize the image directly in the HTML, affecting how it is displayed on the webpage without altering the original image file.</div></details><details><summary>Question 9: How can developers include hidden notes or documentation within HTML code without affecting the webpage’s visual output?</summary><div data-type="detailsContent"><strong>Answer:</strong> Developers can include hidden notes or documentation within HTML code by using comments, denoted by <code>&lt;!-- to start the comment and -&gt;</code> to end it. This text is ignored by the browser when rendering the page, allowing for internal documentation or notes to be added without any impact on the page's layout or content seen by users.</div></details><details><summary>Question 10: Can you explain the differences between absolute and relative paths in HTML, providing examples as described in the article?</summary><div data-type="detailsContent"><strong>Answer:</strong> In HTML, paths are used to link to other documents or resources. An absolute path includes the complete URL, specifying the protocol, such as <strong>http://</strong> or <strong>https://</strong>, followed by the domain name and full path to the resource. For example, linking to a LinkedIn page with <code>&lt;a href="</code><a target="_blank" href="https://www.linkedin.com/in/ao111&quot;&gt;Linkedin&lt;/a&gt;"><code>https://www.linkedin.com/in/ao111"&gt;Linkedin&lt;/a&gt;</code></a> uses an absolute path because it provides the entire URL needed to access the resource from anywhere on the internet. Relative paths, on the other hand, specify a link in relation to the current document's location without the domain name. They're used for linking to resources within the same website. An example from the article is the link to the projects page: <code>&lt;a href="./assets/projects.html"&gt;Go to Projects&lt;/a&gt;</code>. This relative path starts with <strong>./</strong> indicating that the <code>projects.html</code> file is located in the <strong>assets</strong> directory, which is at the same level as the current document. This method makes it easier to manage links within a website since you don't need to update the domain name if it changes or when moving the site to a different domain.</div></details>

<h2 id="heading-adding-favicons">Adding Favicons</h2>
<p>A favicon or Favourite Icon is an image that appears as the icon of your website or webpage, displayed on the browser tab. Usually, a logo is used as the favicon of your webpage.</p>
<ul>
<li><p>First, get an image you wish to use and add it to your images folder. We will use the passport as our favicon.</p>
</li>
<li><p>within the <code>head</code> section of our <code>index.html</code> document, create a pair of <code>link</code> tags just above the <code>title</code> tags.</p>
</li>
<li><p>Notice that this is a self-closing tag, add an <code>href</code> attribute, and set its value to the relative path to the passport.</p>
</li>
<li><p>Add a <code>type</code> attribute and set its value to <code>image/jpg</code> since the passport is an image file with a <code>.jpg</code> extension.</p>
</li>
<li><p>Finally, add <code>rel</code> attribute and set its value to <code>icon</code>. Your code should look like this:</p>
</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/images/passport.jpg"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"image/jpg"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"icon"</span>&gt;</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711769075258/8fe050eb-1041-4933-91ee-44953405c46c.png" alt /></p>
<p>notice the favicon next to the web page’s title.</p>
<h2 id="heading-working-with-video-files">Working with Video Files</h2>
<p>You can add videos directly to your web page as follows:</p>
<ul>
<li><p>Create a <code>videos</code> folder inside your <code>assets</code> folder in vs code</p>
</li>
<li><p>Find a video, representing a project you have done. You can get a free one from <a target="_blank" href="http://canva.com">canva.com</a>.</p>
</li>
<li><p>In your <code>projects.html</code> file, create a new <code>projects</code> section right under your <code>project 1</code> and call it <code>project 2</code>, using a <code>h2</code> tag.</p>
</li>
<li><p>Next, use a <code>video</code> tag the same way you used the <code>img</code> tag in <code>project 1</code> above. add a <code>src</code> attribute and set it to the relative path to the the video file.</p>
</li>
<li><p>Change the width as desired by adding a width attribute and set the width to 400px.</p>
</li>
<li><p>Add a <code>controls</code> attribute for the video to be able to be played.</p>
</li>
<li><p>Add an <code>autoplay</code> attribute for the video to play automatically</p>
</li>
<li><p>Add a <code>muted</code> attribute for the video to be muted by default to avoid distractions to users.</p>
</li>
<li><p>Add a <code>loop</code> attribute for the video to loop back to beginning when finished.</p>
</li>
<li><p>Give it a short description using a paragraph tag.</p>
</li>
<li><p>You should know that you can turn any image or video file into a hyperlink by wrapping it in anchor tags and setting the <code>href</code> attribute to a url of choice. we will set our url to the source file in canva.</p>
</li>
<li><p>Finally, have the link open in a new tab by setting the <code>target</code> attribute to <code>_blank</code></p>
</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Project 2<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://www.canva.com/design/DAGA8YG9y_w/7Ks8QYsEn-z3X8OTXu0LWA/edit&gt;"</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">video</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"../assets/videos/project 2.mp4"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"400px"</span> <span class="hljs-attr">controls</span> <span class="hljs-attr">autoplay</span> <span class="hljs-attr">muted</span> <span class="hljs-attr">loop</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">video</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>A very short video demo<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<p>Here is the code as well as the live preview</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711769431416/2d668fc5-28b5-49b9-b5ee-7b9732e35e84.png" alt /></p>
<h2 id="heading-activity-h05">Activity h05:</h2>
<h2 id="heading-adding-audio-files">Adding Audio Files</h2>
<p>We are going to add a few audio files to our profile:</p>
<ul>
<li><p>In our <code>index.html</code> file, add a new hobby to the hobbies section: “listening to music”</p>
</li>
<li><p>Wrap this new hobby inside anchor tags and set the relative path to <code>./assets/music.html</code>. Remember to add a <code>target</code> attribute and set it to <code>_blank</code> to open in a new tab.</p>
</li>
<li><p>to create this <code>music.html</code> file, inside your assets folder, create a <code>music.html</code> file.</p>
</li>
<li><p>open this <code>music.html</code> file and create a boilerplate code.</p>
</li>
<li><p>Title it <code>My Favourite Music</code></p>
</li>
<li><p>Using an <code>h2</code> tag, add a heading titled <code>My Favourite Music</code></p>
</li>
<li><p>I am pretty sure you have some audio files of music you listen to regularly, grab those files, create a folder called <code>music</code> inside your assets folder, and paste those songs in there.</p>
</li>
<li><p>Right under the <code>h2</code> tag. create an <code>audio</code> tag and specify a source attribute to a relative path to the first song, then do the same for all the other songs, in separate audio tags.</p>
</li>
<li><p>next create attributes for <code>controls</code>, <code>muted</code>, <code>autoplay</code> and <code>loop</code>.</p>
</li>
</ul>
<p>Try this activity before checking the code on my project repo. check out the mock-up below.</p>
<p>You will realize that as we move on, I expect that you are getting better at this as I will no longer openly post code solutions to activities here. I will only place mock-ups and then push the codes to the repo. <a target="_blank" href="https://github.com/accdev1694/Learn-HTML">Click here</a> for access to the repository.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711769697388/ab6f6c0b-aa03-45c8-92dc-bd837a80fbc2.png" alt /></p>
<p>There you have it, You have Learned how to add Audio, Video, and a Favicon to your HTML Page.</p>
]]></content:encoded></item><item><title><![CDATA[HTML 102: Pre-formatted tags, Comments & Hyperlinks]]></title><description><![CDATA[Refresher Quiz
Before we proceed with our lesson for the day, let's take a quick refresher. Try to answer the questions yourself first before toggling for answers.

What does HTML stand for?
  HTML stands for HyperText Markup Language.
What is the pu...]]></description><link>https://abojeonline.com/html-102-pre-formatted-tags-comments-hyperlinks</link><guid isPermaLink="true">https://abojeonline.com/html-102-pre-formatted-tags-comments-hyperlinks</guid><category><![CDATA[HTML5]]></category><category><![CDATA[HTML]]></category><category><![CDATA[Hashnode]]></category><category><![CDATA[hyperlink]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[absolute-path]]></category><category><![CDATA[Html comments]]></category><category><![CDATA[images in HTML]]></category><category><![CDATA[relative path]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Fri, 29 Mar 2024 05:05:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/wUbNvDTsOIc/upload/c63e634f7f4b797fc00bdb4ef3fa681b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-refresher-quiz">Refresher Quiz</h2>
<p>Before we proceed with our lesson for the day, let's take a quick refresher. Try to answer the questions yourself first before toggling for answers.</p>
<ul>
<li><p><strong>What does HTML stand for?</strong></p>
  <details><summary></summary><div data-type="detailsContent">HTML stands for HyperText Markup Language.</div></details></li>
<li><p>What is the purpose of the <code>&lt;h1&gt;</code> tag in an HTML document?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;h1&gt; tag is used to display the main heading of a webpage.</div></details></li>
<li><p>Which tag is used to insert images into an HTML page?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;img&gt; tag is used to insert images into an HTML page.</div></details></li>
<li><p>How do you create a link to another webpage using HTML?</p>
  <details><summary></summary><div data-type="detailsContent">Use the &lt;a&gt; tag with the href attribute to create a link to another webpage.</div></details></li>
<li><p>What is the correct HTML element for inserting a line break?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;br&gt; tag is the correct element for inserting a line break.</div></details></li>
<li><p>What is the purpose of the <code>&lt;!DOCTYPE html&gt;</code> declaration?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;!DOCTYPE html&gt; declaration defines the document type and HTML version, indicating it's an HTML5 document.</div></details></li>
<li><p>Which HTML tag is used to define the body of the HTML document?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;body&gt; tag is used to define the body of the HTML document.</div></details></li>
<li><p>Describe the basic structure of an HTML document.</p>
  <details><summary></summary><div data-type="detailsContent">The basic structure includes the &lt;!DOCTYPE html&gt; declaration, followed by &lt;html&gt; tag with nested &lt;head&gt; and &lt;body&gt; tags.</div></details></li>
<li><p>What is the function of the <code>&lt;meta charset="UTF-8"&gt;</code> tag?</p>
  <details><summary></summary><div data-type="detailsContent">The &lt;meta charset="UTF-8"&gt; tag specifies the character encoding for the HTML document.</div></details></li>
<li><p>What did you notice about the font sizes of headings from <code>&lt;h1&gt;</code> to <code>&lt;h6&gt;</code>?</p>
  <details><summary></summary><div data-type="detailsContent">The font sizes gradually reduce from &lt;h1&gt; to &lt;h6&gt;.</div></details></li>
<li><p>What is the difference between an element and a tag in HTML?</p>
  <details><summary></summary><div data-type="detailsContent">In HTML, a "tag" refers to the syntax used to denote the start or end of an element, typically enclosed in angle brackets (e.g., &lt;tag&gt; for starting and &lt;/tag&gt; for ending). An "element" encompasses the opening tag, the content, and the closing tag combined. For example, in &lt;p&gt;Hello World&lt;/p&gt;, &lt;p&gt; and &lt;/p&gt; are tags, while the entire snippet including Hello World is an element.</div></details>

</li>
</ul>
<p>Now that our memory is refreshed from the previous class, let's dive into today’s lesson.</p>
<h2 id="heading-other-html-elements">Other HTML Elements</h2>
<p>We will continue our learning journey through a project-based approach, picking up from where we left off in the previous class. We will replace the placeholder text with actual text and create a nice Personal profile.</p>
<h3 id="heading-pre-formatted-tags">Pre-formatted Tags</h3>
<p>Paragraph tags don’t respect line breaks except when the line break tag is used. Let’s demonstrate this:</p>
<ul>
<li><p>In our “index.html” file in VS Code, try creating a line break in the first paragraph element under the “About Me” section.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711687914494/db659084-e86f-47a4-9c1e-723e6668a51e.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Now, change the tag names in the first paragraph to “pre”, and notice the difference:</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711687944131/5bbff7a2-1d71-4331-8544-e6130920ca5c.png" alt class="image--center mx-auto" /></p>
<p>The "pre" tags allow you to add line breaks inside paragraphs without using the line break tags.</p>
<h3 id="heading-comments">Comments</h3>
<p>Comments are used to add notes, explaining the codes you have written. They are essentially “notes to self” or to others reading your codes. They make your codes more readable and understandable. They don't get displayed to the user. Here’s how they are written:</p>
<pre><code class="lang-xml"><span class="hljs-comment">&lt;!-- My Name --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Oloche Aboje<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
</code></pre>
<p>Ensure to type them on a separate line, above the element or code you are trying to describe.</p>
<ul>
<li><p>Now, let's add comments to our entire code.</p>
</li>
<li><p>Update the text of the various sections of your page to reflect your actual profile.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711688148904/f4cd6cbd-751a-49a4-80ba-07bea6ac1c9e.png" alt class="image--center mx-auto" /></p>
<p>Notice that the comments are not displayed in the live review.</p>
<h3 id="heading-hyperlinks">Hyperlinks</h3>
<p>Hyperlinks are elements that are used to create digital links, taking the user to other pages or data. They could be links or buttons. Let's demonstrate this directly on our Profile page.</p>
<ul>
<li>Add another “h3” tag just before the closing “body” tag, that says “Contact Me”.</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Contact Me<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
</code></pre>
<ul>
<li>To add hyperlinks, we use anchor “a” tags that display the content we want the user to interact with:</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Contact Me<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span>&gt;</span>Linkedin<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span>&gt;</span>GitHub<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span>&gt;</span>Youtube<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<ul>
<li>We'll use a hypertext reference attribute “href” inside the opening tags to turn these simple text into links or hypertext, by adding the corresponding URLs to the href values:</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Contact Me<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://www.linkedin.com/in/ao111&gt;"</span>&gt;</span>Linkedin<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://github.com/accdev1694&gt;"</span>&gt;</span>GitHub<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow&gt;"</span>&gt;</span>Youtube<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<ul>
<li>The “href” attribute is not displayed but what is displayed is the content nested between the opening and closing anchor tags.</li>
</ul>
<p>Here is the result:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711688224395/23db5bfc-4227-405c-b1e1-c912690557e4.png" alt /></p>
<ul>
<li><p>Experiment by clicking on the links to see how they take you to the respective pages.</p>
</li>
<li><p>We can add other attributes to our links. Let’s add the “target” and “title” attributes.</p>
</li>
<li><p>The “target” attribute set to “_blank” tells the link to open on a new window or tab.</p>
</li>
<li><p>The "title" attribute adds a tooltip when hovering over the links:</p>
</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Contact Me<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://www.linkedin.com/in/ao111&gt;"</span>
    <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my linkedin"</span>&gt;</span>Linkedin<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://github.com/accdev1694&gt;"</span>
    <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my github"</span>&gt;</span>GitHub<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow&gt;"</span>
    <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"my youtube"</span>&gt;</span>Youtube<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<ul>
<li>Experiment further by hovering over the links to see the titles on the tooltip, and clicking to open a new tab.</li>
</ul>
<p>The above demonstration uses absolute links. We will demonstrate relative links next, using an exercise:</p>
<h3 id="heading-activity-h04">Activity h04:</h3>
<ol>
<li><p>Inside the assets directory of our project, create an HTML file “projects.html”.</p>
</li>
<li><p>Open this file and create a boiler-plate code. Title this code “My Projects”.</p>
</li>
<li><p>In the body of this project, use an “h1” to create a heading “My Projects”.</p>
</li>
<li><p>Using “h2” elements, create headings “Project 1:”, “Project 2:”, and “Project 3:”, in that order.</p>
</li>
<li><p>Under each of the projects, create an image tag that links to an absolute path, go to <a target="_blank" href="http://unsplash.com/">unsplash.com</a> and find a placeholder image of choice, right-click and copy image address, then paste in the source attribute of the image tag.</p>
</li>
<li><p>Add a width attribute to each image and set it to 400px.</p>
</li>
<li><p>Add a target_blank attribute to the images.</p>
</li>
<li><p>Give the images an alt value as appropriate.</p>
</li>
<li><p>Under each image, add a paragraph describing each project.</p>
</li>
<li><p>Back in our “index.html” file, create a new section using another h3 tag titled “My Projects”.</p>
</li>
<li><p>Under this new “h3” tag, add an anchor tag that links to a relative path to the new “projects.html” file:</p>
</li>
</ol>
<pre><code class="lang-html">
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"./assets/projects.html"</span>&gt;</span>Go to Projects<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<ol start="12">
<li><p>Click the link to see how the pages link.</p>
</li>
<li><p>Attempt this exercise on your own, google for clarification when you get stuck, then check your live preview and codes against the mock-up below.</p>
</li>
<li><p>Check the repo to this series for all the codes to all the exercises: <a target="_blank" href="https://github.com/accdev1694">accdev1694</a></p>
</li>
<li><p>Check out the preview below:</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711688325788/b4af9c00-704d-4ee9-afb6-602300d5ecef.png" alt /></p>
<p>In our next article, we will dive deeper into HTML, touching on images, favicons, and media files such as audio and video. Stay tuned, and don't forget to subscribe to this series.</p>
<p>Thank you.</p>
]]></content:encoded></item><item><title><![CDATA[HTML 101: Start Learning HTML as an Absolute Beginner]]></title><description><![CDATA[What is HTML?
HTML, or HyperText Markup Language, is used to instruct the browser on how to display content. In the popular house analogy, HTML defines the structure of a webpage, much like the foundation and structural elements of a building. Howeve...]]></description><link>https://abojeonline.com/html-101-start-learning-html-as-an-absolute-beginner</link><guid isPermaLink="true">https://abojeonline.com/html-101-start-learning-html-as-an-absolute-beginner</guid><category><![CDATA[HTML5]]></category><category><![CDATA[HTML]]></category><category><![CDATA[HTML tags ]]></category><category><![CDATA[HTML Element]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[coding]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[doctype]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[beginner]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Thu, 28 Mar 2024 19:39:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/_t-l5FFH8VA/upload/895f53189a6d2fab7c5fd4ad0a511d9d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-what-is-html">What is HTML?</h1>
<p>HTML, or HyperText Markup Language, is used to instruct the browser on how to display content. In the popular house analogy, HTML defines the structure of a webpage, much like the foundation and structural elements of a building. However, let's take this explanation a step further.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711654407592/b8ab0b67-dfab-4ace-aa82-a093dccb60fb.png" alt class="image--center mx-auto" /></p>
<p>I regularly take the bus with my 3-year-old son to pick up his brothers from school. On Mondays and Fridays, we visit the library before collecting the others. His favourite books include the Peppa Pig series, a tactile book with textures to feel, and another with flaps hiding characters. These books are engaging and enjoyable, even for me.</p>
<p>Let's dissect HTML: HyperText: 'Hyper' means beyond, so 'HyperText' refers to content that goes beyond just text. Markup: This implies adding a degree of interactivity and engagement.</p>
<p>HTML is a scripting language that uses HyperText to add interactivity to a webpage, exceeding the capabilities of simple text. In the storybook example, the basic text page is enhanced with interactive elements like textures, stickers, images, and hidden content.</p>
<p>HTML, like the storybook, uses elements and tags to structure a page and make it engaging. There are elements to enlarge or reduce headings, create paragraphs, link to other pages, add images and videos, and so forth.</p>
<h2 id="heading-basic-html-page">Basic HTML Page</h2>
<p>HTML uses tags with some content nested between them, to display content.</p>
<h3 id="heading-html-tags-and-elementsbasic-html-page">HTML Tags and ElementsBASIC HTML PAGE</h3>
<ul>
<li><p>HTML displays content using nested tags, with the format: opening <em>tag→content→closing tag</em>.</p>
</li>
<li><p>They are written as: <code>&lt;tag name&gt;*content*&lt;/tag name&gt;</code>. For example, a heading tag:</p>
</li>
</ul>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Heading One<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
</code></pre>
<p>In this example, <code>h1</code> is the tag name for displaying headings on a webpage. The text "Heading One" is the content that will display as the heading.</p>
<ul>
<li><p>The opening heading tag is enclosed by angle brackets (<code>&lt;&gt;</code>), while the closing heading tag is enclosed by angle brackets and a forward slash (<code>&lt;/&gt;</code>).</p>
</li>
<li><p>The content enclosed within an opening and closing tag is called an HTML element.</p>
</li>
<li><p>There are self-closing tags, which do not have content nested between. Examples include an image tag, a line break tag, and a horizontal rule.</p>
</li>
</ul>
<pre><code class="lang-html"><span class="hljs-comment">&lt;!-- image tag for inserting images --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">img</span>&gt;</span>

<span class="hljs-comment">&lt;!-- line break for creating horizontal spaces between elements --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">br</span>&gt;</span>

<span class="hljs-comment">&lt;!-- horizontal rule for creating horizontal lines between elements --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">hr</span>&gt;</span>
</code></pre>
<p>Such self-closing tags may have attributes just before the closing angle bracket. For instance, an image tag could have a source attribute pointing to the image location:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"./assets/images/passport.jpg"</span>&gt;</span>
</code></pre>
<h3 id="heading-types-of-tags">Types of Tags</h3>
<ul>
<li><p><code>h</code> tags are Heading tags, used to display document Headings.</p>
</li>
<li><p><code>p</code> tags are Paragraph tags, used to display text in paragraph formats.</p>
</li>
<li><p><code>a</code> tags are anchor tags, used for creating reference links.</p>
</li>
</ul>
<p>There are many more tags that we will explore soon.</p>
<h3 id="heading-basic-structure-of-the-html-document">Basic Structure of the HTML Document</h3>
<p>To create a web page, you start by writing HTML code in a coding environment like VsCode. You can preview your work using the built-in Live-server plugin.</p>
<p>The HTML document is laid out as follows:</p>
<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>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>There are two basic elements at the highest point of the document tree:</p>
<ul>
<li><p>The DocType Element, which tells the browser that this is an HTML 5 document.</p>
</li>
<li><p>The HTML document, which contains all the elements that make up the web page. These are nested within the opening and closing HTML tags. This represents the root element of the html page.</p>
</li>
</ul>
<p>You can also set the language of the webpage as an attribute in the opening html tag:</p>
<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">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">body</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>The HTML document has two child elements:</p>
<ul>
<li><p>The 'head' element: This contains information about your web page, including other metadata elements.</p>
</li>
<li><p>The 'body' element: This contains everything visible on the webpage. For example:</p>
</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>Website Title<span class="hljs-tag">&lt;<span class="hljs-name">title</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">h1</span>&gt;</span>My Passport<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"./assets/images/passport.jpg"</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 head element has two nested children:</p>
<ul>
<li><p><code>meta charset="UTF-8"</code>: This declares that the document character format is UTF-8.</p>
</li>
<li><p><code>&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;</code>: This provides information for device responsiveness.</p>
</li>
<li><p>The title element: This contains the web page title for SEO ranking.</p>
</li>
</ul>
<p>The body element contains our previous image element, as well as a heading showing 'my passport'.</p>
<h3 id="heading-activity-h01">Activity h01:</h3>
<p>Structure the HTML document in your "index.html" file in VsCode, following the provided instructions:</p>
<ul>
<li><p>Paste your passport photograph into the previously created images folder and ensure it's named 'passport.jpg'.</p>
</li>
<li><p>Change the document's title to 'My Profile'.</p>
</li>
<li><p>Right-click in any space on the HTML document and select 'open with live server' to preview your first web page.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711652978914/9219b674-863f-4592-81d3-91f646d641a3.png" alt /></p>
<p>Notice the title of the page 'My Profile' as well as the page heading.</p>
<p>Congratulations! You have created your first web page!</p>
<h3 id="heading-activity-h02">Activity H02:</h3>
<p>There are other types of headings 'h-tags'. We will learn about them using the following exercise:</p>
<ul>
<li><p>In your index.html file, change the document's title to 'Heading Types'.</p>
</li>
<li><p>Delete the <code>h1</code> and <code>img</code> elements.</p>
</li>
<li><p>Create <code>h1</code> to <code>h6</code> elements, each with their respective content.</p>
</li>
<li><p>Preview your live-server.</p>
</li>
</ul>
<p>What did you notice? Write it in the comment section. It should be pretty obvious.</p>
<p>Your code should look like this:</p>
<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>Heading Types<span class="hljs-tag">&lt;/<span class="hljs-name">title</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">h1</span>&gt;</span>Heading One<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Heading Two<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Heading Three<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h4</span>&gt;</span>Heading Four<span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h5</span>&gt;</span>Heading Five<span class="hljs-tag">&lt;/<span class="hljs-name">h5</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h6</span>&gt;</span>Heading Six<span class="hljs-tag">&lt;/<span class="hljs-name">h6</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>And your live server preview should look like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711653023074/0ef351c1-fc72-4044-9293-bd99850a5107.png" alt /></p>
<p>You can see that the font sizes have gradually reduced from <code>h1</code> to <code>h6</code>. It's best practice to have only one <code>h1</code> on your web page, then use all the others in order of importance.</p>
<p>Another important tag is the paragraph (<code>p</code>) tag, used to add bodies of text in paragraph form to your page.</p>
<h3 id="heading-activity-h03">Activity H03:</h3>
<p>We will recreate our initial profile page by combining everything we just learned. Here are the steps:</p>
<ul>
<li><p>On your "index.html" page, delete everything including the doctype tag and head section.</p>
</li>
<li><p>Type an exclamation tag "!" and hit enter to generate the page structure, called a "boilerplate".</p>
</li>
<li><p>Change the page title to 'My Profile'.</p>
</li>
<li><p>Create a new <code>h1</code> heading and type your name in uppercase characters as the content.</p>
</li>
<li><p>Create an image element and set the relative path to your passport. Make sure to add an alt attribute to the image tag with the description "my passport".</p>
</li>
<li><p>Add a horizontal rule.</p>
</li>
<li><p>Add an <code>h2</code> heading with the content "About Me".</p>
</li>
<li><p>Add a paragraph tag and insert text between the tags. Between the opening and closing tags, type "lorem" and hit tab to generate some placeholder text.</p>
</li>
<li><p>Create a line break.</p>
</li>
<li><p>Add more placeholder text.</p>
</li>
<li><p>Add a horizontal rule.</p>
</li>
<li><p>Create another <code>h2</code> tag that says "My Skills".</p>
</li>
<li><p>Add some sample text.</p>
</li>
<li><p>Add a horizontal rule.</p>
</li>
<li><p>Create a <code>h3</code> tag that says "Hobbies".</p>
</li>
<li><p>Add some hobbies.</p>
</li>
</ul>
<p>The live server preview should look like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711653042855/84d70039-5c2f-461e-ad9f-ad445ba491c0.png" alt /></p>
<p>If you go to the <a target="_blank" href="https://www.w3schools.com/tags/">HTML resources page on the W3Schools website</a>, you will see all the tags and how they work. Bookmark this page for future reference, so you don't have to memorize everything; you can always go back there.</p>
<p><a target="_blank" href="https://abojeonline.com/html-102-pre-formatted-tags-comments-hyperlinks?source=more_series_bottom_blogs">Click here</a> to go to the next article as we dive deeper into HTML tags and elements such as the "pre" tag, comments and hyperlinks</p>
]]></content:encoded></item><item><title><![CDATA[Simple Command-line Prompts in the Terminal]]></title><description><![CDATA[Why The Terminal?
I know you must be eager by now, with the tension building to jump right into coding, but these preliminary lessons would help set you up for success.
From our previous lesson https://abojeonline.com/installation-of-vscode-extension...]]></description><link>https://abojeonline.com/simple-command-line-prompts-in-the-terminal</link><guid isPermaLink="true">https://abojeonline.com/simple-command-line-prompts-in-the-terminal</guid><category><![CDATA[terminal]]></category><category><![CDATA[Bash]]></category><category><![CDATA[command line]]></category><category><![CDATA[directory]]></category><category><![CDATA[mkdir]]></category><category><![CDATA[vscode]]></category><category><![CDATA[pwd]]></category><category><![CDATA[coding]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[Frontend Development]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Wed, 27 Mar 2024 19:11:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/xbEVM6oJ1Fs/upload/61997c1bd46d1889877c7976ce8e194b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-why-the-terminal">Why The Terminal?</h2>
<p>I know you must be eager by now, with the tension building to jump right into coding, but these preliminary lessons would help set you up for success.</p>
<p>From our previous lesson <a target="_blank" href="https://abojeonline.com/installation-of-vscode-extensions-github-and-ssh-keys">https://abojeonline.com/installation-of-vscode-extensions-github-and-ssh-keys</a>, we touched briefly on the terminal/Bash. They both mean the same thing. Today, we will be learning how to manipulate files and folders (or directories) using the command line.</p>
<p>You may be wondering, why use the terminal instead of the finder to manipulate files and folders. You can control files and folders in an instant using the terminal, such as filtering them, changing their cases to upper or lower case, etc. So as a programmer, you want to get comfortable with manipulating the terminal.</p>
<p>Below is a list of common commands you will be using regularly:</p>
<h2 id="heading-common-terminal-commands">Common Terminal Commands</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>COMMAND (as Bash Code)</strong></td><td><strong>DETAILED DESCRIPTION</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Ctrl + (in windows)</td><td></td></tr>
<tr>
<td>Ctrl - (in windows)</td></tr>
</tbody>
</table>
</div><p>Cmd + (in Mac)<br />Cmd - (in Mac) | <strong>Increases or Reduces the terminal size and text size.</strong> | | <code>clear</code> | <strong>Clears the terminal display.</strong> This command is useful for decluttering your terminal window by removing all previous commands and outputs. | | <code>pwd</code> | <strong>Displays the Present Working Directory (PWD).</strong> This command outputs the full path to the current directory you're in, helping you to easily identify your location within the filesystem. | | <code>cd</code> | Means “change directory”. It takes you to the very top of your user directory, represented by the squiggly line (~) called “tilde”. | | <strong>Up arrow key (↑)</strong> | Brings back recent commands | | <code>ls</code> | Lists the entire contents of the current directory | | <code>cd Desktop</code> | Assuming that the desktop directory is inside the current directory, this command takes you to the desktop. In general, you can only cd into a directory that is inside your current directory. | | <code>cd ..</code> | Takes you back, up one directory. | | <code>mkdir loch_learn</code> | "mkdir" means “make directory”. It creates a new folder or a directory called “loch_learn” inside your folder or current directory. Always use dashes or underscores to separate words while naming files and folders and not spaces because it will create each word as a directory. Spaces are used to create multiple directories. | | <code>touch admin_learn.html</code> | Creates a file called “admin_learn.html” inside the current directory.<br />“.html” is the file extension | | <code>explorer .</code> (in Windows)</p>
<p><code>open .</code> (in Mac) | Opens up the current directory in Windows Explorer | | <code>rm</code> then file name | “Remove” deletes files in the terminal | | <code>rm -r</code> then folder name | Deletes folders in the terminal | | <code>history</code> | displays a list of all commands used in the current session |</p>
<h2 id="heading-practice-activity">Practice Activity:</h2>
<ol>
<li><p>Open Vscode</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711562585490/0f0e8a68-a60c-4f22-a4f6-cdcbe541ff0a.png" alt /></p>
</li>
<li><p>Type "cntr + j" to open the in-built terminal in vscode:</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711562904067/b55c43a0-b0e4-4f5b-8b12-7a6d4aec1b55.png" alt /></p>
<p> Don’t bother typing the $ symbol before typing in terminal commands, it’s just there by default, telling you it is ready for you to start typing.</p>
</li>
<li><p>Type "cd" and hit "enter" to take you to the top of your user directory. You will see the tilde (~) symbol, meaning you are at the top.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711563272377/180f34ab-dab9-4f79-a310-f88a994c75b6.png" alt /></p>
<p> Type "pwd" and hit "enter" to view your present working directory, notice the directory tree displayed below. I am currently inside the Asus directory.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711563399721/570c331d-a789-4196-9ead-3bd96d5f61df.png" alt /></p>
</li>
<li><p>Navigate from here to where your repository was created in our previous lesson, by learning how I navigate to mine.</p>
<p> type "ls" and hit "enter" to first see the content of your current directory</p>
</li>
<li><p>Type "cd documents" and then navigate using "cd" to where your repo is</p>
</li>
<li><p>Once you are inside your repo, you will it marked as "main".</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711564776881/1987df39-a8c7-414b-be81-1eac2b42d265.png" alt /></p>
</li>
<li><p>From here, let us create some new files and folders to organize things for our class.</p>
<p> Type "touch index.html" to create our first HTML file.</p>
<p> Type "mkdir assets/images" to create an assets directory and images directory inside the assets directory.</p>
</li>
<li><p>The index file must be in the root directory of your project. The root directory is the parent folder of your repo or project.</p>
</li>
<li><p>Click on the explorer icon which is the topmost on the left side bar of vscode and see the file created.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711565909129/4b66df78-603a-48cf-9671-fe9edff34761.png" alt /></p>
</li>
<li><p>Remember not to type the "" quotation marks in these steps 🤣</p>
</li>
<li><p>Practice the commands above just to get used to them, they are simple. Now,<br />type "clear" to clear the terminal. "history" to see all your commands in this session.</p>
<p>NICE JOB!</p>
</li>
</ol>
<p><a target="_blank" href="https://abojeonline.com/html-101-start-learning-html-as-an-absolute-beginner">Click here</a> to proceed to the next article to learn the basic structure of HTML.</p>
]]></content:encoded></item><item><title><![CDATA[Installation of VsCode & Extensions, GitHub, and SSH keys]]></title><description><![CDATA[We are going to be setting up our workspace with all the required software and extensions as well as creating our account on GitHub and setting it up with SSH keys, so, sit tight and follow through with this.
In construction, proper formwork installa...]]></description><link>https://abojeonline.com/installation-of-vscode-extensions-github-and-ssh-keys</link><guid isPermaLink="true">https://abojeonline.com/installation-of-vscode-extensions-github-and-ssh-keys</guid><category><![CDATA[ssh-keys]]></category><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[vscode]]></category><category><![CDATA[Prettier]]></category><category><![CDATA[liveserver]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[programmer]]></category><category><![CDATA[coding]]></category><category><![CDATA[bootcamp]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Tue, 26 Mar 2024 20:03:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711473211802/cdc5c103-7a8f-456e-9556-d086005171d9.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are going to be setting up our workspace with all the required software and extensions as well as creating our account on GitHub and setting it up with SSH keys, so, sit tight and follow through with this.</p>
<p>In construction, proper formwork installation is very important to both the success, speed, and efficiency as well as safety of any project. I like to think of this stage as our scaffolding stage, setting us up for success on this exciting journey.</p>
<h2 id="heading-vscode"><strong>VsCode</strong></h2>
<p>VsCode is an Integrated Development Environment. This is basically where you write all your code, and it is free software, make sure you select the version for your operating system. Download it here: <a target="_blank" href="https://code.visualstudio.com/download">https://code.visualstudio.com/download</a>.</p>
<p>It has got a built-in terminal. A terminal is the interface where you type in command lines.</p>
<p>For MacOs users, you must add VsCode to your applications folder by following the instructions here: <a target="_blank" href="https://code.visualstudio.com/docs/setup/mac">https://code.visualstudio.com/docs/setup/mac</a></p>
<h2 id="heading-prettier-extension-for-vscode">Prettier Extension for VsCode</h2>
<p>Prettier is a code formatter that helps to order the presentation of your codes by adding indentations and spacings, making it more readable. Follow the steps below to install and set it up.</p>
<ul>
<li><p>Navigate to the extension icon on the left side-bar in VsCode. It is a series of 4 squares, and click on it.</p>
</li>
<li><p>Type-search "Pritter - code formatter" in the search bar that shows up and install it.</p>
</li>
</ul>
<h2 id="heading-liveserver-extension-for-vscode">LiveServer Extension for VsCode</h2>
<p>This is a powerful extension that helps you preview your code on the browser. It sets up a local server on the browser. Follow these instructions to install it:</p>
<ul>
<li><p>Type search "Liveserver" in the extensions search bar</p>
</li>
<li><p>Install the one by 'Ritwick Dey'.</p>
</li>
</ul>
<h2 id="heading-git">Git</h2>
<p>Git is a version control tool. This is a tool for streamlining your workflows and saving to GitHub.</p>
<p>To check if you already have git installed, for both Mac and Windows, open your command line terminal and type:</p>
<pre><code class="lang-bash">git -v
</code></pre>
<p>If it returns a version then you are good, however, if it returns “<strong><em>command not found</em></strong>”, then you need to install git.</p>
<p>Installing git: <a target="_blank" href="https://git-scm.com/downloads">https://git-scm.com/downloads</a></p>
<p>Git is for Windows, and the terminal is for Mac, it comes built-in for Mac, no need to install it for Mac.</p>
<h2 id="heading-google-chrome-browser">Google Chrome Browser</h2>
<p>There are a lot of browsers out there, but just for consistency and the developer tools on Chrome, we will be using Chrome for this series.</p>
<h2 id="heading-github-account">GitHub Account</h2>
<p>GitHub is where you store your code using Git. It is like a technical community where developers have accounts and store their codes for contribution, collaboration, version control, sharing of codes, and lots more. Go to the <a target="_blank" href="https://github.com/signup">github website</a> and create an account if you do not already have one.</p>
<p>The process is quite simple, on GitHub, select the 'sign up' button and follow the prompts.</p>
<h2 id="heading-github-ssh-keys">GitHub SSH Keys</h2>
<p>SSH keys mean Secure Shell Keys. This is a secure network used in communicating with servers such as GitHub Servers. It is a quick way of linking your local computer to a network through your terminal or shell without having to manually type in your username and password every time.</p>
<p>As a way of not having to authenticate every time you link with GitHub through the terminal, you put a code into your GitHub account, which is called the Public key, and another code is created in your local computer, which is called the private key. So whenever you communicate with GitHub, it makes sure that these two codes match and you get authenticated, else, you don’t. This is another time-saving technique.</p>
<p>Advantages:</p>
<ul>
<li><p>Automate workflows since you don’t have to type username and password manually</p>
</li>
<li><p>Results in better security since your communication is encrypted.</p>
</li>
</ul>
<h2 id="heading-creating-an-ssh-key-and-adding-it-to-github">Creating an SSH Key and adding it to GitHub</h2>
<ul>
<li>On your command line, add the following prompt:</li>
</ul>
<pre><code class="lang-bash">ssh-keygen -o -t rsa -C <span class="hljs-string">"yourEmail@email.com"</span>
</code></pre>
<ul>
<li><p>Replace "<a target="_blank" href="mailto:yourEmail@email.com">yourEmail@email.com</a>" with your email and hit enter</p>
</li>
<li><p>You get a prompt to “Enter file in which to save the key …”, Hit enter to accept the default location because this is where git will look when searching for your private keys to match it with your public keys and establish a handshake with Git Hub.</p>
</li>
<li><p>You get another prompt to “Enter passphrase (empty for no passphrase)”, I didn’t use one, so enter, and enter again.</p>
</li>
<li><p>You get a prompt that your public and private keys have been generated and saved in the location specified above, and a ‘.ssh’ directory is created automatically. You also see your fingerprint.</p>
</li>
<li><p>Navigate to that directory and right-click on the public key: “id_rsa.pub” and open with Notepad.</p>
</li>
<li><p>Copy the entire generated key in Notepad.</p>
</li>
<li><p>Go to your GitHub account and locate the profile picture at the top-right corner, click on it, and select settings.</p>
</li>
<li><p>Find the SSH and GPG keys link on the left side-bar and select it.</p>
</li>
<li><p>Give any title to the ssh keys and paste your keys in the lower text area. Then click “Add SSH Key”.</p>
</li>
<li><p>Done! Now, sign into your account again and you will see “You have successfully added the key...”</p>
</li>
<li><p>Go ahead and create a repository, head to the dashboard, and on the right side where you see “top repositories”, select “new”.</p>
</li>
<li><p>You will see a text area next to your account name (owner), and type in the name of your repo (repository name).</p>
</li>
<li><p>Always select the “add a readme file” button to create a readme file, add a 'mit license' where you see 'license', then scroll to the bottom of the page and select 'create repository'.</p>
</li>
<li><p>To clone your new repo to the desktop, locate the 'code' green button and click on it to select the SSH title, then copy it to clipboard.</p>
</li>
<li><p>Now proceed to your terminal navigate to a location of choice and type: 'git clone (paste)' and hit enter.</p>
</li>
</ul>
<pre><code class="lang-bash">git <span class="hljs-built_in">clone</span> git@github.com:accountname/repositoryname.git
</code></pre>
<ul>
<li>next, open your repo in vs code:</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> repositoryname
code .
</code></pre>
<p>In our next article, we will learn simple command line prompts as we get ready to commence our HTML classes.</p>
<p><a target="_blank" href="https://abojeonline.com/common-terminal-commands">Click here</a> to go to the next article about common terminal commands.</p>
<p>Thank you for your time</p>
]]></content:encoded></item><item><title><![CDATA[Welcome to My Web Development Series]]></title><description><![CDATA[In my recent article where I detailed how I learned to master programming consistently without burning out, read here, I told a story about how I ended up in a programming class when what I wanted was to be a UX designer, and how it has all paid off....]]></description><link>https://abojeonline.com/welcome-to-my-web-development-series</link><guid isPermaLink="true">https://abojeonline.com/welcome-to-my-web-development-series</guid><category><![CDATA[Web Development]]></category><category><![CDATA[webdev]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[frontend]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[CSS]]></category><category><![CDATA[React]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Tue, 26 Mar 2024 16:14:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711468856057/6657af8c-22d2-4211-ae4a-e952f612c907.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my recent article where I detailed how I learned to master programming consistently without burning out, <a target="_blank" href="https://abojeonline.com/mastering-programming-how-to-learn-coding-without-burnout-whether-in-boot-camps-or-self-taught-journeys">read here</a>, I told a story about how I ended up in a programming class when what I wanted was to be a UX designer, and how it has all paid off.</p>
<p>In this Series, I will take you through my learning journey, simplifying the learning process by using stories, quizzes, and exercises to make the entire journey fun and engaging.</p>
<p>If you are new to programming, or you are a returnee who wants to refresh your skill, or you are just intending to start off programming, you are in the right place. I will literally hold you by the hand and lead you through this challenging journey. You will never walk alone.</p>
<p>My singular goal is to help you understand every step of the way, so forgive me when I try to dumb things down, it's only because people have different levels of understanding and all must be carried along.</p>
<p>Also, follow my <a target="_blank" href="https://www.youtube.com/channel/UC0jfRtsD1j_Auo52vqkmbow">accDevTrivia</a> channel on YouTube to access more learning resources and quizzes related to Web Development.</p>
<p><a target="_blank" href="https://abojeonline.com/installation-of-vscode-extensions-github-and-ssh-keys">Click here</a> to go to the next article where we start by installing all necessary software and extensions.</p>
]]></content:encoded></item><item><title><![CDATA[Master Programming Without Burnout]]></title><description><![CDATA[Excuse me, Sir, I think I am in the Wrong Class!!!

So, I had just relocated with my family to the UK. Freezing temperatures immediately welcomed us, I shivered from the airport to the house. The culture shock was another thing. We felt like aliens o...]]></description><link>https://abojeonline.com/master-programming-without-burnout</link><guid isPermaLink="true">https://abojeonline.com/master-programming-without-burnout</guid><category><![CDATA[learn coding]]></category><category><![CDATA[burnout]]></category><category><![CDATA[bootcamp]]></category><category><![CDATA[Self-taught ]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[#beginners #learningtocode #100daysofcode]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Sat, 16 Mar 2024 03:47:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1710270749540/15e51757-0420-4e3b-a6f4-50f005647152.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-excuse-me-sir-i-think-i-am-in-the-wrong-class">Excuse me, Sir, I think I am in the Wrong Class!!!</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710353130563/231d207a-7e85-4a07-933d-595994b99ddd.png" alt /></p>
<p>So, I had just relocated with my family to the UK. Freezing temperatures immediately welcomed us, I shivered from the airport to the house. The culture shock was another thing. We felt like aliens on a strange planet. I immediately realized I talked funny and dressed differently. But, ‘different’ is fine.</p>
<p>I was desperate to work and start earning ‘my precious’ (in Smiggle’s voice) pounds, however, my previous job in my country did not quite fit immediately into my new life in the UK, so I decided to transition to Tech.</p>
<p>I wanted to become a UX Designer so I quickly enrolled in the <a target="_blank" href="https://www.coursera.org/google-certificates/ux-design-certificate?network=g&amp;utm_source=gg&amp;adposition=&amp;creativeid=690172323786&amp;matchtype=p&amp;adgroupid=157047691325&amp;gclid=Cj0KCQjwncWvBhD_ARIsAEb2HW9mx-ooIou5U2Ffe0YAbShqHAWdc_zyyPk2p3sLEuCdrQ39BhJAhSIaApEkEALw_wcB&amp;keyword=google%20ux%20design%20professional%20certificate&amp;hide_mobile_promo=&amp;utm_campaign=B2C_EMEA_google-ux-design_google_FTCOF_professional-certificates_country-GB&amp;campaignid=20858198062&amp;gad_source=1&amp;devicemodel=&amp;utm_medium=sem&amp;device=c">Google UX design course</a>, and only a few weeks into the program, I saw a targeted ad for a boot camp in front-end web development/UX, (<em>I think these ad guys are just some weird wizards though</em>) and somehow, my mind completely ignored part A and focused completely on the ‘UX’ part, so I enrolled and got selected.</p>
<p>Once I saw ‘UX’, I assumed it was about UX design. but to my utter shock, it was mostly about my most dreaded subject: PROGRAMMING! To be more specific, CODING.</p>
<p>Come with me on this amazing experience and find out how I squiggled my way through this boot camp while learning to code in the process, only more fun this time. FYI, I completed the Bootcamp, with good grades even.</p>
<p>If you plan on enrolling in a coding boot camp, and you are new to coding, chances are, you will struggle like me, but, you don’t have to. You can learn a thing or two from my struggle and stay afloat through this rigorous process.</p>
<p>In my last publication at <a target="_blank" href="https://abojeonline.com/what-will-happen-if-you-code-everyday-for-1-hour">https://abojeonline.com/what-will-happen-if-you-code-everyday-for-1-hour</a>, I detailed some of the great things that happened to me once I started coding. I actually spent, and still spend a lot more than an hour coding every day. The thing is, you get drawn in by the 'curse' of the code. This is why I always get my wife's food burnt whenever she asks me to keep watch over the kitchen while I am coding, lol.</p>
<h3 id="heading-get-a-mentor-find-two-more">GET A MENTOR; FIND TWO MORE</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710274153556/75ddbd71-d4d9-4182-bc16-3c0ff3817845.png" alt="a mentor and child" /></p>
<p>I went through HTML and CSS like a breeze and then came JavaScript. I was so confused at some point that I even shed a tear. The pain stemmed from the fact that I felt worthless like I was frustrated about not being able to make reasonable progress.</p>
<p>My quest drove me to YouTube to search for tutorial videos to try and learn from other tutors, and My Word! Did that pay off? Oh Yes, it did, so well that I stood up from my chair one time, and let out a loud "What"!!! in the middle of the night.</p>
<p>You see, this is how to find a mentor. Don't go out searching for who only knows how to program, not even just a great teacher, but find someone possessing the above qualities, and whose teaching style resonates beautifully with your learning style. You will know when you meet them as they Immediately strike a Chord on your inside.</p>
<p>After you find a mentor, proceed to find two other tutors who both know their game and are great teachers. Why? I discovered from experience that at certain times, you are not able to comprehend certain concepts from even your mentor and you need to get the view of one or two other tutors and this always came in handy for me.</p>
<h3 id="heading-keep-a-learning-journal-dont-try-and-memorize-syntax">KEEP A LEARNING JOURNAL: Don't Try and Memorize Syntax</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710277400321/7a6bff0a-71cd-4631-b35d-7d5849ade7b5.png" alt /></p>
<p>I heard from my Boot Camp Instructors "Don't memorize code, just know when you need them and where to get them whenever you need them" more times than I can actually count, but I didn't quite understand the value of this statement until we started to drive deeper into JavaScript.</p>
<p>You see, the syntax to learn is just too much to try and cram all at once, so I decided to keep a journal in Notion. The good thing is that Notion is optimized for developers as it incorporates markdown formatting and also allows for writing code directly. So instead of trying to keep the syntax in my head all at once, I kept them in <a target="_blank" href="https://www.notion.so/">Notion</a>, also, don't be ashamed to consult <a target="_blank" href="http://google.com">Google</a>, and, as I've heard, even senior devs do a bit of Google-foo-ing every once in a while.</p>
<p>This was the principal reason for most of my Frustration because I initially thought I needed to remember all the syntax I was being taught all at once. I learned where to keep them when I needed them, and how to get and apply them.</p>
<p>Once you start using IDEs to code, you will soon find out that keeping only a handwritten hard journal for writing code snippets isn't a very smart idea. lol</p>
<p>Also, documenting your progress in a blog is a good idea, as employers find this attractive.</p>
<p>I also found out that, in time, from continuous use, these syntaxes begin to stick and get committed to long-term memory.</p>
<h3 id="heading-google-foo">GOOGLE-FOO</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710349248294/2ff3bba2-43bc-4a2e-bf03-ea35d754a375.png" alt /></p>
<p>There are numerous valuable resources on the internet for programmers to consult whenever they feel lost or in need of fresh ideas such as <a target="_blank" href="https://stackoverflow.com/">Stack Overflow</a>, <a target="_blank" href="https://developer.mozilla.org/en-US/">MDN</a>, <a target="_blank" href="https://www.w3schools.com/">W3Schools</a> and always remember, google is your friend.</p>
<p>There are also numerous AI platforms out there now, but knowing how to leverage them is very important. I will write about this in a later publication.</p>
<h3 id="heading-focused-learning">FOCUSED LEARNING</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710349948090/d276f85c-d4b8-49e4-93c0-742bbf744637.png" alt /></p>
<p>Find a quiet place at a quiet time, keep away from your phone, and clear your schedule. I can't stress this enough, while programming, keeping out distractions not only helps you think deeply but saves you time and helps you commit concepts to long-term memory faster.</p>
<p>Focused Learning involves setting aside a time of the day, to focus solely on a single subject, and this is the right approach to programming. Always have a goal of what you want to achieve, a very specific goal such as: 'I want to master Javascript Conditional statements between 4 am and 8 am'.</p>
<h3 id="heading-topical-study">TOPICAL STUDY</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710350833685/e7139f7f-b4b9-4ef2-ab6d-5a3229ba7d71.png" alt /></p>
<p>It is important to stay organized while learning to program. Programming is hard enough on its own, the best you can do is to lighten this enormous burden by focusing on a single concept at a time with laser-sharp precision. Once you have gotten a grasp of it, quickly proceed to take related exercises to help gain mastery. <a target="_blank" href="https://leetcode.com">LeetCode</a> is a great resource for this.</p>
<h3 id="heading-learn-pseudo-coding">LEARN PSEUDO-CODING</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710352153141/9a7820ba-db8f-4a65-91ca-2e8e964295d0.png" alt /></p>
<p>It is not always a good idea to jump right into coding when you have a coding task or exercise to do. Pseudo-coding is the process of using simple human language to lay out the entire road map of what you want to build into simpler, more manageable steps. A simple clue is to explain what your program does, in simple step-by-step progress, from the top to bottom. You then take these steps and turn them into comments before writing the code under each comment.</p>
<p>Doing this takes effort but makes you a better programmer and ensures you don't miss any steps in your code that might result in a broken program.</p>
<h3 id="heading-find-memory-clues-for-difficult-subjects">FIND MEMORY CLUES FOR DIFFICULT SUBJECTS</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710352912677/33e48e42-261c-439c-88c7-38e6ab54956c.png" alt /></p>
<p>Memory clues in learning is not a very popular subject in programming but this is something that has worked quite well for me because of my learning style. Whenever I am faced with a concept that is not semantic, meaning that, what it does is not obvious from its name, I try to link that concept to any related thing or event in real life, no matter how silly.</p>
<p>For example, drawing from my background in construction, I used blocks to differentiate between block-level and inline elements in HTML and it worked out well for me. Blocks in construction are laid in stretcher bond, horizontally, taking up the entire length of the building or space, just as block-level elements such as a 'div' or headings, being block elements, take up the entire line.</p>
<h3 id="heading-focus-on-the-workflow-and-not-on-the-syntax">FOCUS ON THE WORKFLOW AND NOT ON THE SYNTAX</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710353723337/e83cb895-de17-4857-ad3f-cd6220762a8f.png" alt /></p>
<p>Just like we discussed earlier about not trying to memorize syntax, the Syntax will eventually stick to your memory as you keep using it. Your focus should be on understanding what the syntax does and the workflow of combining various concepts to arrive at the desired end-point. This problem-solving approach to programming is exactly how to think as a developer.</p>
<h3 id="heading-just-keep-pressing-on">JUST KEEP PRESSING ON</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710354086361/d1056826-3d35-4751-b1e6-4cf64f99056a.png" alt /></p>
<p>As I progressed with my learning journey, I was learning so many things back to back and seemed to be forgetting the older ones I thought I had mastered before. This discouraged me a bit at first and made me go back several times to re-learn older concepts.</p>
<p>Today, I have realized that I only needed to keep pressing on, because, building projects, apps and exercises is the easiest way to commit learned topics to long-term memory. Learn and build, learn and build!</p>
<h3 id="heading-watch-the-coding-process-and-try-imitation">WATCH THE CODING PROCESS AND TRY IMITATION</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710434836236/b47915ff-872a-4b6d-9907-39fc198d5ac8.png" alt /></p>
<p>In my mind, coding is like math. As a math student, imagine your math teacher coming to class every time, having solved all the math problems, displaying the solutions on the screen, and then using a talking stick to explain them step by step. Your understanding would not be the same as watching him start on a blank screen, right?</p>
<p>You see, this is even worse with programming. We all know that lines of code are not written serially. Programmers jump from line to line as the workflow is never a straight line. This is why watching someone code from a blank screen while talking through the code teaches problem-solving, syntax application, and coding workflow.</p>
<p>While the approach of imitating the tutor line by line might appear to be more convenient for a complete beginner, you must learn to wait and watch, understand the entire process, return to the beginning, and try out milestones on your own. This helps to ensure that you are actually learning something and not just copying code.</p>
<h3 id="heading-keep-a-clean-repo">KEEP A CLEAN REPO</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710559189065/b7d8eb3d-e676-4fb7-a797-12cb8898205c.jpeg" alt /></p>
<p>It is good practice to get familiar and comfortable with the git workflow early in your programming journey. Create a GitHub account and commit your projects using best practices. This serves as a great backup for your projects, making you visible to employers as well as open to contributors.</p>
<h3 id="heading-get-multiple-monitor-screens">GET MULTIPLE MONITOR SCREENS</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710435472675/43c56498-f6bc-4cab-8ef5-fcbe91ec0182.png" alt /></p>
<p>Switching between screens is a common practice while coding. A screen that streams the tutorial video or Bootcamp Video, one for your Live preview server, and another for your IDE where you write your code. Two screens are fine, to begin with, and they don't have to be anything too pricey or fancy. If you However cannot afford this, using your single laptop computer or desktop also works.</p>
<h3 id="heading-a-ball-and-a-duck">A BALL AND A DUCK</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710436053276/52d923c8-379e-464b-9886-028d14345623.png" alt class="image--center mx-auto" /></p>
<p>One of the most thoughtful investments I made during my Boot Camp was to buy a bouncy ball. During my Boot Camp, I noticed one of my TAs constantly bouncing a ball and he looked so cool and 'techy' doing this, lol. So I went and got one for myself. The sound of it bouncing drove my neighbor crazy though but she learned to live, lol. Aside from helping me stay awake while coding for long hours, I will share the second benefit of the bouncy ball three sections from this one.</p>
<p>The talking duck becomes a weird, but helpful partner who listens patiently as you talk through your code. She is a patient co-pilot who stands with you through thick and thin, and even when you mess up your code, she won't yell at you, she just watches, believing you will eventually find your way, most importantly, she won't judge, scold or make fun of your spaghetti code. So, totally get you one!</p>
<h3 id="heading-walk-away-from-the-code">WALK AWAY FROM THE CODE</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710438221649/36360ba1-8a38-4b31-94ec-5ce8ce469e37.jpeg" alt /></p>
<p>Watch a movie, go on a date, hang out with friends and family, play a game or sport, write a poem, just don't binge-code!!!</p>
<p>Imagine what it would be like if all you did was eat and eat and eat, allowing no time for your stomach to digest all you have eaten. Physical activity, Sleep, and rest help with digestion and metabolism in the same way they help with the assimilation of code. Pace yourself, and have a life.</p>
<p>Research proves that having short but focused and consistent regimented sessions of coding is so much better than having long sessions of crammed coding. So every once in a while, walk away from the IDE, unplug yourself from the terminal, and do other things. This helps to reinforce learning.</p>
<h3 id="heading-get-the-right-workstation-and-chair">GET THE RIGHT WORKSTATION AND CHAIR</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710439197216/b42ca73b-db9c-4676-9019-2e86c526e74f.jpeg" alt /></p>
<p>Invest in the right gear. If you are going to be spending a lot of time learning to code, then you shouldn't have to worry about the discomfort of using the wrong gear. Nice lights, an ergonomic chair, nice music for passive work, a scent diffuser, and a cup of coffee, just anything to bring a sense of warmth and comfort from the herculean task of coding. Aside from bringing some drama to your coding space, the right seat and table can save you from back problems, and stress and help you stay active for longer.</p>
<h3 id="heading-stand-a-lot">STAND A LOT</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710439760956/29d56a29-9fb2-4f03-9733-00298b9f0de2.png" alt /></p>
<p>During my Boot Camp, I suddenly noticed that this same TA was absent for a few weeks and I wondered why. I later found out that he had been diagnosed with back problems from sitting down for too long and coding, and that explained the bouncy ball! I would watch him stand for most of our classes, bouncing the ball on the wall and squeezing it tight from time to time. Using a table with an adjustable height encourages you to stand while you code.</p>
<p>Standing helps with blood flow, prevents back problems, and helps you stay awake for longer hours, so, don't sit for too long.</p>
<h3 id="heading-passive-vs-active-learning">PASSIVE VS ACTIVE LEARNING</h3>
<p>Active learning has to do with the focused learning we spoke about earlier, while passive learning involves learning while multitasking. This can come in handy when you are trying to get a general insight into a specific theory in programming.</p>
<p>I listen to programming-related stuff on YouTube, things that do not require active attention. I listen to topics like: "coding best practices", "necessary javascript for react", and "Flutter vs React Native". You should however keep it related to the specific concept you are learning at that moment.</p>
<h3 id="heading-your-workstation-location">YOUR WORKSTATION LOCATION</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710440794283/c33cc650-db73-478c-9f46-f2cda7433f59.png" alt /></p>
<p>My workstation is located in my dining, my dining is the central space in the house, as I step into the house I step into the dining first, the dining connects to every portion of the house. The location of my workstation is intentional as it helps me see my computer every time, reminding me to write some code.</p>
<h3 id="heading-always-prepare-ahead-of-class">ALWAYS PREPARE AHEAD OF CLASS</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710556075187/e8ee52a5-c1ff-47b3-81e6-1a40ff4b7c62.png" alt /></p>
<p>"The punch that knocks down a boxer is the one they didn't see coming". This statement proved true for me during my Boot Camp as every day was a surprise for me. I learned that teachers are not the only ones that need to prepare for classes but students should as well. I should have gone back to my pre-work materials to spy on the topics for each day before that day, this would have helped me research a bit on those topics so I don't feel lost during each class.</p>
<p>If you are enrolled in a boot camp, ask your TAs to share with you the course content by dates, then go on and do some research before each class. Thank me later, lol.</p>
<h3 id="heading-attend-tech-expos-and-conferences">ATTEND TECH EXPOS AND CONFERENCES</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710556337387/a8821d74-19be-4d04-a0cb-f0cb5613e38d.png" alt /></p>
<p>Be on the lookout for tech expos, seminars, and hang-outs as these present great opportunities for exposure, building connections, community engagement, and meetings with potential employers.</p>
<p>Lastly, follow the roadmap for the particular stack you are training for, learn and master the fundamentals, and then follow the technology trends. Google Trends is a great resource for keeping up with the latest technology. My next post is going to be the first of the Front-End Web Development Series, following a current and modern roadmap.</p>
<p><a target="_blank" href="https://abojeonline.com/series/frontend-web-development">Click here</a> to begin the Front End Web Development Series.</p>
<p>Thank you for staying with me on this one.</p>
]]></content:encoded></item><item><title><![CDATA[What Will Happen If You Code Everyday For 1 Hour]]></title><description><![CDATA[Café of Inspiration: More Than Just Coffee
On a beautiful Wednesday afternoon, I left the house earlier than usual to pick up the children from school. I planned to stop by the library to get at least two hours of work done. However, after stepping o...]]></description><link>https://abojeonline.com/what-will-happen-if-you-code-everyday-for-1-hour</link><guid isPermaLink="true">https://abojeonline.com/what-will-happen-if-you-code-everyday-for-1-hour</guid><category><![CDATA[code daily]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[coding]]></category><category><![CDATA[code]]></category><category><![CDATA[#tech career]]></category><category><![CDATA[learn coding]]></category><category><![CDATA[Coding for beginners]]></category><dc:creator><![CDATA[AccDev]]></dc:creator><pubDate>Fri, 08 Mar 2024 17:37:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/UK78i6vK3sc/upload/42d5d66184d3051de1be1fc61c89bfa1.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-cafe-of-inspiration-more-than-just-coffee"><strong><em>Café of Inspiration: More Than Just Coffee</em></strong></h2>
<p>On a beautiful Wednesday afternoon, I left the house earlier than usual to pick up the children from school. I planned to stop by the library to get at least two hours of work done. However, after stepping onto the bus, I realized I'd left my bus card at home. So, I had to return home, retrieve it, and walk another 12 minutes to catch the next bus.</p>
<p>After an eight-minute wait at the bus station, I finally boarded the bus, only to discover upon arrival that the library was closed. Feeling frustrated and unsure of how to salvage the two hours, I decided to turn this disappointment into an opportunity.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709821785027/18e3ce81-c9ca-48a7-8e9e-d4f5ffe4bbca.png" alt="cool cafe" /></p>
<p>I found a charming café nearby and settled in with a cup of coffee. The soft instrumental music playing in the background, the hanging flowers, the furniture, and the beautiful wallpaper all combined to create an inspiring ambiance. As I gazed through the café's beautiful front glazing, I was reminded that I'm not just a coder, but a writer as well. The café staff were friendly, and the manager even allowed me to take pictures.</p>
<p>Sitting in that café, ideas began to flow and I decided to work on a new, exciting concept.</p>
<p>Enriched by this experience, I then put pen to paper as I recanted the 10 things that have happened to me since I started coding.</p>
<p>I started to ponder the notion of coding every day for an hour. How would that impact you, not just as a coder, but as an individual?</p>
<p>Steve Jobs once said:</p>
<blockquote>
<p>"Everybody in this country should learn how to program a computer... because it teaches you how to think." -Steve Jobs</p>
</blockquote>
<p>Truthfully, the urge to give up may surface early on, particularly as you face tough problems that need debugging or start to experience the weight of information overload. However, the secret lies in persevering. In a subsequent post, I'll reveal various strategies I employed to make sure I didn't throw in the towel.</p>
<h2 id="heading-10-things-that-will-happen-once-you-start-coding-daily">10 Things That Will Happen Once You Start Coding Daily</h2>
<h3 id="heading-building-character"><strong>BUILDING CHARACTER</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709821801956/bd382378-5e08-4907-aa35-85dd3ec27775.jpeg" alt="coffee on table in bedroom" /></p>
<p>Consistent coding, based on a regimen and routine, not only instils discipline, perseverance, and a growth mindset but also boosts personal effectiveness. It encourages a structured approach to problem-solving and achieving goals in daily life.</p>
<ul>
<li><strong><em>The early riser ...</em></strong></li>
</ul>
<p>For a significant part of my life, I struggled to wake up early or in the middle of the night if needed. As a result, I decided to shift towards being a night owl, working late instead of sleeping early and waking up early. Today, even if I go to bed late, the mere thought of myself coding at my computer table motivates me to get out of bed early. I find this transformation amazing as I've realized that I am fresher and sharper in the early hours of the morning.</p>
<h3 id="heading-transforming-your-brain">TRANSFORMING YOUR BRAIN</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709832824622/76f2aca6-e720-4494-99b9-bc760a7287cd.jpeg" alt="human brain under bright lights" /></p>
<p>Isn't it fascinating how our brains can adapt to pretty much anything? It's like it is always ready for a challenge. Whenever you learn something new, it is not because your brain got any smarter, but because the brain is plastic in function as it responds to whatever demand is placed upon it. When we're faced with something as intimidating as learning to code, it's like our brain muscles start flexing in ways we didn't know they could. It's tough at first, sure. But the one thing I've learned since I started coding is that feeling overwhelmed is just a part of the process. It doesn't mean you should give up. On the contrary, it's your brain gearing up, getting ready to level up its game.</p>
<ul>
<li><strong><em>Mixing up Names ...</em></strong></li>
</ul>
<p>Speaking of brain quirks, let me share a little story about my family. I have three amazing sons. For the longest time, my middle one was the youngest, and somehow, that idea got stuck in my brain. I found myself mixing up their names, a mix-up that was funny at first but then started happening more often than I'd like to admit. And it wasn't just names. I'd pick up my phone to do something and instantly forget what I wanted to do on my phone, the moment the screen lit up. But here's the kicker: I can't remember the last time I got their names wrong or stared blankly at my phone screen. It's as if diving into programming has done some sort of magic trick on my memory.</p>
<h3 id="heading-alleviating-depressive-symptoms"><strong>ALLEVIATING DEPRESSIVE SYMPTOMS</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709833847454/78d8ee60-f600-4696-8eae-b2e1a5cea879.jpeg" alt="fighting depression" /></p>
<p>Learning programming not only equips you with a valuable skill set but also serves as a potent tool in combating depressive symptoms through various mechanisms. At its core, coding requires problem-solving, logical thinking, and creativity, engaging the brain in ways that can significantly shift mental patterns and moods.</p>
<ul>
<li><strong><em>Progression and Accomplishment ...</em></strong></li>
</ul>
<p>Firstly, programming offers a clear sense of progression and accomplishment. As you learn to write code and see your projects come to life, it naturally boosts your self-esteem and confidence. Each bug fixed or feature implemented acts as a tangible measure of your growth, directly countering feelings of inadequacy or self-doubt that often accompany depression.</p>
<ul>
<li><strong><em>Distraction from Negative Thought ...</em></strong></li>
</ul>
<p>Moreover, coding demands focus and concentration, drawing your attention away from negative thought cycles. This immersive experience acts as a form of mindfulness, where the act of coding becomes a meditation in itself. By engaging deeply with the logic and structure of code, you momentarily step away from stressors, providing mental relief and fostering a sense of peace.</p>
<ul>
<li><em>The Social Aspect ...</em></li>
</ul>
<p>The social aspect of coding cannot be understated. The tech community is vast and welcoming, offering endless opportunities for collaboration and connection. Whether through online forums, coding boot camps, or local meetups, interacting with fellow coders can alleviate feelings of isolation by building a support network of individuals who share similar interests and challenges.</p>
<ul>
<li><em>The Growth Mindset ...</em></li>
</ul>
<p>Furthermore, the act of learning and mastering a new skill like programming can significantly impact your mental health by fostering a growth mindset. This outlook encourages resilience, adaptability, and a positive perspective on challenges as opportunities for development. Embracing this mindset can reduce feelings of helplessness and promote a proactive approach to life and its obstacles.</p>
<ul>
<li><strong><em>Self-Expression ...</em></strong></li>
</ul>
<p>Lastly, the potential for creativity in programming provides a unique outlet for self-expression. By building projects or solving problems in new ways, you can channel your emotions and ideas into something constructive, offering both a sense of purpose and an escape from negative thoughts.</p>
<h3 id="heading-fostering-a-love-for-coding">FOSTERING A LOVE FOR CODING</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709834365208/e0a8ab0a-ba49-4ee7-9524-62f637a131bc.jpeg" alt="code on a computer" /></p>
<p>You know, there's something magical about getting into coding. At first, it's like trying to navigate a maze in the dark. You're not sure where you're going, and every step feels uncertain. But then, something clicks. You solve a problem here, create a little function there, and suddenly, you're not just making progress; you're actually having fun. That feeling of getting something right, it's like a little victory party in your brain. Before you know it, an hour of coding just isn't enough anymore. You're hooked, and you can't wait to see what you can build next.</p>
<ul>
<li><strong><em>Coding Delight ...</em></strong></li>
</ul>
<p>I'll be honest, when I first started coding, the mere thought of opening my Integrated Development Environment (IDE) filled me with dread. It seemed so dull and intimidating, like a blank canvas that I didn't know how to fill. But now? It's a whole different story. I can't believe I'm saying this, but I actually love coding. I look forward to tackling new challenges and bringing my ideas to life. It's turned from a nightmare into a dream I don't want to wake up from.</p>
<p>The journey from coding dread to delight has been unexpected, to say the least. It's all about those little moments of understanding that slowly build up, transforming how you see coding. And let me tell you, once you start enjoying it, there's no going back. It's not just about writing code; it's about creating something out of nothing, and there's a real joy in that.</p>
<h3 id="heading-encouraging-paced-learning">ENCOURAGING PACED LEARNING</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709834796152/3a733ee1-5e26-4742-bc5a-057abacd3797.jpeg" alt="one man staring at computer screen" /></p>
<p>The principle of paced learning, especially in the context of acquiring programming skills, plays a crucial role in optimizing knowledge acquisition and retention. By dedicating a manageable one hour each day to focused learning, individuals can avoid overwhelming themselves with unattainable goals and prevent the common pitfall of information overload. This methodical approach allows the brain sufficient time to rest, process, and integrate new information, which is essential for solidifying learning and strengthening the neural connections associated with programming knowledge and skills.</p>
<ul>
<li><strong><em>Manage Burnout ...</em></strong></li>
</ul>
<p>Burnout is a significant risk in the journey of learning programming due to the vast amount of information and the constant evolution of technologies. The desire to quickly master multiple languages, frameworks, and tools can lead to excessive stress and mental fatigue, undermining both learning efficiency and personal well-being. Pacing your learning effectively mitigates this risk by promoting a balanced approach, where consistent, incremental progress is prioritized over sporadic bursts of intense study.</p>
<ul>
<li><strong><em>Fun While Learning</em></strong></li>
</ul>
<p>Furthermore, paced learning fosters a sustainable and enjoyable learning journey. It cultivates a sense of accomplishment and progress by setting realistic learning targets and achieving them regularly. This not only enhances motivation but also builds a positive feedback loop, where each success fuels the desire to learn more.</p>
<p>Additionally, focused-paced learning ensures continuous improvement. By committing to learn something new every day, individuals can steadily expand their knowledge base and skill set. This approach aligns with the concept of lifelong learning and adapts well to the dynamic nature of the tech industry, where staying updated with the latest developments is crucial for success.</p>
<h3 id="heading-problem-solving-skills">PROBLEM-SOLVING SKILLS</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709835098807/3cca6ca3-ce4d-42ad-9938-54ffe45e96eb.jpeg" alt="two men staring at computer screen" /></p>
<p>Spending long minutes, or even hours, staring and debugging a broken code is a hallmark of the programming journey, a sentiment I deeply relate to. My approach to tackling issues doesn't involve immediately jumping to seeking quick fixes or solutions; instead, I prefer to delve into the problem, attempting to unravel it on my own. It's only when the challenge starts to significantly encroach upon my time that I resort to seeking external help. Frustratingly, more often than not, the culprit behind the error is something as trivial as a missed syntax or an unnecessary addition. The resolution, though simple, underscores the meticulous nature of coding.</p>
<ul>
<li><strong><em>Under The Hood</em></strong></li>
</ul>
<p>As my days unfold, I'm constantly encountering various workflows, applications, and interfaces, prompting me to think about the underlying code and its potential for improvement. For example, at my current workplace, we use a scanner for organizing product pickups in a specific sequence. Observing the user interface, I couldn't help but envision enhancements that could streamline its efficiency—like an adjacent summary of items to be picked, dynamically updating to reflect progress by removing scanned items, thereby offering a real-time tally of completed tasks.</p>
<ul>
<li><strong><em>Code at Home-Life ...</em></strong></li>
</ul>
<p>This journey has also sharpened my strategic and analytical skills beyond professional scenarios, extending into my personal life. I often find myself imagining the creation of apps designed to address daily challenges faced at home, turning each obstacle into an opportunity for innovation. The process of envisioning, diagnosing, and conceiving solutions has not only honed my technical abilities but has also nurtured a mindset oriented towards constant improvement and problem-solving, whether in the context of work or home life.</p>
<h3 id="heading-becoming-a-more-proficient-programmer">BECOMING A MORE PROFICIENT PROGRAMMER</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709835492354/777cee0d-1b78-4d23-b79d-7d6128901a7b.jpeg" alt="cool dog with glasses and phone" /></p>
<p>Indeed, the mantra "practice makes perfect" holds profound truth, especially in the realm of coding. Repetition not only cements learned concepts but also equips one with the resilience to tackle challenges creatively. This iterative process of confronting obstacles enhances cognitive flexibility, teaching programmers to navigate problems with increased skill and innovation. My journey in coding is a testament to this principle. With each consecutive day of disciplined practice, my approach to coding challenges evolved dramatically. The transition from initial frustration to strategic thinking was not abrupt but a gradual shift, marking a significant transformation in my problem-solving methodology.</p>
<ul>
<li><strong><em>Pseudo-Coding</em></strong></li>
</ul>
<p>Learning to use pseudo-code, a technique I once overlooked, became pivotal in my development. It taught me to dissect complex problems into manageable chunks, simplifying what once seemed insurmountable. This skill has been instrumental in refining my thought process, enabling me to approach coding tasks with clarity and precision.</p>
<p>As of now, while I'm not yet a senior programmer, the consistent daily practice has propelled me past the novice stage. I find myself navigating the terrain between a junior and an intermediate programmer with confidence. This journey underscores the immense value of persistence and the transformative power of daily, focused practice in coding.</p>
<h3 id="heading-securing-your-dream-job">SECURING YOUR DREAM JOB</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709835754428/9eb55d1d-bb31-4d82-824b-2ce92a717345.jpeg" alt="man in blue suit and tie" /></p>
<p>Landing your dream job in the tech industry can become a tangible reality through the consistent practice of coding for one hour every day. This disciplined approach not only sharpens your programming skills but also significantly broadens your understanding of complex concepts and technologies, making you a more competitive candidate in the job market. Every hour spent coding accumulates into a vast reservoir of knowledge and experience, enabling you to tackle technical interviews with confidence and showcase a diverse portfolio of projects.</p>
<ul>
<li><strong><em>Continuous Learning</em></strong></li>
</ul>
<p>Daily coding practice instills a habit of lifelong learning and adaptability, traits highly valued in the rapidly evolving tech landscape. By staying current with the latest technologies and programming methodologies, you demonstrate to potential employers your commitment to professional growth and your passion for technology. Furthermore, the problem-solving skills honed through regular coding sessions are applicable across a range of roles and industries, underscoring your versatility as a candidate.</p>
<ul>
<li><strong><em>Enhance your Resume</em></strong></li>
</ul>
<p>Engaging with coding projects daily also offers the opportunity to contribute to open-source projects or develop your own software applications. Such initiatives can significantly enhance your resume, providing tangible evidence of your skills, initiative, and ability to collaborate on complex projects. Ultimately, the discipline of coding for one hour each day not only prepares you for the technical demands of your dream job but also cultivates the soft skills and innovative mindset that set you apart as a candidate.</p>
<h3 id="heading-earning-a-higher-income">EARNING A HIGHER INCOME</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709836367077/daf046b4-eb1e-4b82-92a0-c3159bacb5c8.jpeg" alt="man with cash" /></p>
<p>Earning a higher income is a significant benefit of honing your programming skills through daily practice. The field of programming offers some of the most competitive salaries in the job market, reflecting the high demand for skilled developers across various industries. According to the U.S. Bureau of Labor Statistics, the median annual wage for software developers, quality assurance analysts, and testers was approximately $110,140 in May 2020, with employment in these fields projected to grow 22% from 2020 to 2030, much faster than the average for all occupations.</p>
<ul>
<li><strong><em>Six-Figure Specialist Professionals</em></strong></li>
</ul>
<p>Dedicating an hour each day to coding not only enhances your proficiency in current technologies but also enables you to explore emerging areas such as artificial intelligence, machine learning, and blockchain. Specialists in these high-demand fields can command even higher salaries, with experienced professionals in niche programming areas earning well into six figures annually. For instance, Glassdoor reports that machine learning engineers and data scientists often have median base salaries ranging from $120,000 to $150,000, depending on experience and location.</p>
<ul>
<li><strong><em>Freelance</em></strong></li>
</ul>
<p>Furthermore, consistent coding practice opens up freelance and consulting opportunities, which allow for higher income potential based on the ability to take on multiple clients or projects. Freelance developers with strong portfolios and specialized skills can set competitive rates for their services, significantly boosting their earning potential.</p>
<h3 id="heading-exploring-a-vast-world-of-specializations">EXPLORING A VAST WORLD OF SPECIALIZATIONS</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709905639720/0a7a9d27-442f-418a-9fb4-d9af4e8f7243.jpeg" alt="a colorful tunnel" /></p>
<p>Diving into the realm of programming opens up a vast world of specializations, each offering unique challenges and opportunities. This diversity allows programmers to tailor their career paths according to their interests, strengths, and the market demand, significantly enhancing job satisfaction and income potential. Here are a few key areas of specialization within programming:</p>
<ol>
<li><p><strong>Web Development:</strong> Focuses on building websites and web applications. Specializations within web development include front-end (client-side), back-end (server-side), and full-stack (both front-end and back-end).</p>
</li>
<li><p><strong>Mobile Application Development:</strong> Involves creating software for mobile devices, with a focus on platforms like Android and iOS. Developers in this area must understand the nuances of mobile UI/UX design and the specific development tools and languages for each platform.</p>
</li>
<li><p><strong>Data Science and Machine Learning:</strong> Data scientists analyse and interpret complex data to help companies make decisions. Machine learning engineers build algorithms and predictive models that allow computers to perform tasks without being explicitly programmed for each.</p>
</li>
<li><p><strong>Cybersecurity:</strong> Cybersecurity experts protect systems, networks, and programs from digital attacks. This specialization requires a deep understanding of vulnerabilities, threat mitigation techniques, and compliance regulations.</p>
</li>
<li><p><strong>Game Development:</strong> Game developers create video games for consoles, PCs, and mobile devices. This field combines programming with creative design to bring interactive experiences to life.</p>
</li>
<li><p><strong>Cloud Computing:</strong> Specialists in cloud computing develop and manage cloud-based applications and services. Knowledge of platforms like AWS, Microsoft Azure, and Google Cloud is crucial.</p>
</li>
<li><p><strong>Blockchain:</strong> Blockchain developers work on decentralized applications and systems, primarily focusing on cryptocurrencies, smart contracts, and distributed ledger technologies.</p>
</li>
<li><p><strong>DevOps:</strong> DevOps practitioners aim to shorten the development lifecycle by adopting a set of practices that integrate development (Dev) and IT operations (Ops), emphasizing automation, collaboration, and continuous delivery.</p>
</li>
</ol>
<h3 id="heading-conclusion"><strong>CONCLUSION</strong></h3>
<p>Learning to code can indeed present significant challenges, including navigating complex syntax and absorbing the vast amount of information required. Moreover, the constant updates and new technologies in the field add to the complexity. Such challenges may lead to a sense of overwhelm, fostering a temptation to give up. This reaction, however, stems from the brain's adaptation process as it learns to approach problems in novel ways—essentially, it's rewiring itself. Perseverance in this phase is crucial, and the results of consistent coding practice can be profoundly rewarding. In my upcoming post, I'll share effective, efficient strategies that have supported my learning journey.</p>
<p>To gain early access to these insights, I invite you to subscribe to my newsletter and also add a comment about your own experiences in coding. Stay tuned, and thank you for your support.</p>
<p><a target="_blank" href="https://abojeonline.com/series/frontend-web-development">Click here</a> to begin the Front End Web Development Series.</p>
<p>Best, Oloche</p>
]]></content:encoded></item></channel></rss>