<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jemima Abu</title>
    <description>The latest articles on DEV Community by Jemima Abu (@jemimaabu).</description>
    <link>https://dev.to/jemimaabu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F121416%2Fb1bb7c72-d1f8-40a3-a484-baf01c44e461.JPG</url>
      <title>DEV Community: Jemima Abu</title>
      <link>https://dev.to/jemimaabu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jemimaabu"/>
    <language>en</language>
    <item>
      <title>How to Learn JavaScript</title>
      <dc:creator>Jemima Abu</dc:creator>
      <pubDate>Wed, 18 May 2022 11:09:31 +0000</pubDate>
      <link>https://dev.to/jemimaabu/how-to-learn-javascript-4g9a</link>
      <guid>https://dev.to/jemimaabu/how-to-learn-javascript-4g9a</guid>
      <description>&lt;p&gt;When I first started learning frontend development, I was determined to avoid JavaScript.&lt;/p&gt;

&lt;p&gt;I found it confusing – I didn't understand anything about how the &lt;a href="https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/" rel="noopener noreferrer"&gt;DOM&lt;/a&gt; worked and I didn't think I'd use it that much anyway.  I already knew HTML and CSS and that's pretty much all you need for designing websites, right?&lt;/p&gt;

&lt;p&gt;Much to my dismay, I soon discovered that not only is JavaScript very much needed for designing websites but almost all websites depend on it.&lt;/p&gt;

&lt;p&gt;JavaScript is used in some form or the other by &lt;a href="https://w3techs.com/technologies/details/cp-javascript" rel="noopener noreferrer"&gt;97% of all websites&lt;/a&gt; on the internet. There's just no getting away from it.&lt;/p&gt;

&lt;p&gt;Since avoiding it didn't work, I decided to tackle the problem head on. I made an effort to write at least &lt;a href="https://github.com/jemimaabu?tab=overview&amp;amp;from=2019-12-01&amp;amp;to=2019-12-31" rel="noopener noreferrer"&gt;one line of JavaScript code everyday&lt;/a&gt; and started building applications to learn more.&lt;/p&gt;

&lt;p&gt;To my surprise, once I got started I realised JavaScript wasn't the monster I thought it was. I was even - dare I say it - &lt;em&gt;enjoying&lt;/em&gt; learning JavaScript. &lt;/p&gt;

&lt;p&gt;If you're trying to move from HTML and CSS to JavaScript and you're finding it difficult like I was, then this is the article for you.&lt;/p&gt;

&lt;p&gt;The reason JavaScript seems overwhelming at first is because there's a lot to learn.&lt;/p&gt;

&lt;p&gt;So this article will serve as a high-level beginner's guide to learning JavaScript. I'll narrow things down, cover what JavaScript is and what it's used for, and recommend some courses to help you start your JS learning journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is JavaScript?&lt;/li&gt;
&lt;li&gt;What is JavaScript Used For?&lt;/li&gt;
&lt;li&gt;How to Write JavaScript Code&lt;/li&gt;
&lt;li&gt;JavaScript Projects for Beginners&lt;/li&gt;
&lt;li&gt;JavaScript Tutorials for Beginners&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is JavaScript?
&lt;/h2&gt;

&lt;p&gt;JavaScript is a programming language that makes web pages interactive. This involves everything from changing colors to collecting user input and passing it to a server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycpvaen0ritwrsnp3765.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycpvaen0ritwrsnp3765.png" alt="The relationship between HTML, CSS and JavaScript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript is used in conjunction with HTML and CSS to build fully functional webpages.&lt;/p&gt;

&lt;p&gt;A common analogy is to think of a webpage as a human body: HTML is the skeletal structure responsible for how the body is formed, CSS is the skin and determines how the body looks, and JavaScript is the muscle that allows the body to be functional.&lt;/p&gt;

&lt;p&gt;With the advent of JavaScript frameworks, a lot of modern websites are heavily reliant on JavaScript and &lt;a href="https://www.freecodecamp.org/news/what-the-web-looks-like-without-javascript-c7eaf09c9983/" rel="noopener noreferrer"&gt;won't work without it&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is JavaScript Used For?
&lt;/h2&gt;

&lt;p&gt;JavaScript is a very complex language that can be used for anything from &lt;a href="https://www.freecodecamp.org/news/what-exactly-is-client-side-rendering-and-hows-it-different-from-server-side-rendering-bd5c786b340d/" rel="noopener noreferrer"&gt;client-side rendering&lt;/a&gt; to &lt;a href="https://sdacademy.dev/7-apps-you-can-build-with-javascript/" rel="noopener noreferrer"&gt;creating large-scale applications&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We'll be focusing on the more common uses of JavaScript when building webpages:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. JavaScript lets you manipulate HTML and CSS
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiv1yj0re8l13zm1t0xpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiv1yj0re8l13zm1t0xpo.png" alt="Photo by Pankaj Patel"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use JavaScript to change the HTML of a page by adding or deleting elements from the DOM or by updating element attributes. You can also use it to change the styling of an element. &lt;/p&gt;

&lt;p&gt;Most interactive actions on a webpage such as toggling a drop down menu or displaying a modal are usually done by using JavaScript to manipulate HTML and CSS as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended reading:&lt;/strong&gt; &lt;a href="https://www.freecodecamp.org/news/how-to-manipulate-the-dom-beginners-guide/" rel="noopener noreferrer"&gt;How to Manipulate the DOM - A Beginner's Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. JavaScript lets you carry out mathematical operations and algorithms
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny1xdk2fsdllxp097wd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny1xdk2fsdllxp097wd5.png" alt="Photo by JESHOOTS.COM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript is a programming language and can be used to compute complex mathematical equations and algorithms. &lt;/p&gt;

&lt;p&gt;This allows us to carry out calculations on the client-side such as determining the number of characters in a form or getting the height of an element from the top of the screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended reading:&lt;/strong&gt; &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-do-math-in-javascript-with-operators" rel="noopener noreferrer"&gt;How to do Math in JavaScript with Operators&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. JavaScript lets you manipulate complex data with data structures
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9tqmb05bb6a9zjm8uvi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9tqmb05bb6a9zjm8uvi.png" alt="Photo by Luke Chesser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use JavaScript to handle data structures in different formats such as arrays or objects. &lt;/p&gt;

&lt;p&gt;There are multiple operations you can do on these data structures such as adding and deleting elements or filtering and sorting. This is widely used in real life situations to manipulate user data.&lt;/p&gt;

&lt;p&gt;Recommended reading: &lt;a href="https://www.freecodecamp.org/news/data-structures-in-javascript-with-examples/" rel="noopener noreferrer"&gt;JavaScript Data Structures&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. JavaScript lets you detect and respond to user interactions on a page
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flouuu08cevug6xzagtsz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flouuu08cevug6xzagtsz.png" alt="Photo by Christin Hume"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript uses event listeners such as &lt;code&gt;scroll&lt;/code&gt; or &lt;code&gt;click&lt;/code&gt; to monitor how the user interacts with a page. These listeners are used to carry out certain functions based on the event.&lt;/p&gt;

&lt;p&gt;For example, you can use the &lt;code&gt;onClick&lt;/code&gt; event listener to display an element when a user clicks a button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended reading:&lt;/strong&gt; &lt;a href="https://www.digitalocean.com/community/tutorials/understanding-events-in-javascript" rel="noopener noreferrer"&gt;Understanding Events in JavaScript&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. JavaScript lets you communicate with a server
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa149x4gq8lo51f3r30hd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa149x4gq8lo51f3r30hd.png" alt="Photo by Diego Fernandez"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use JavaScript to communicate with a server or a database by sending and receiving data.&lt;/p&gt;

&lt;p&gt;For example, when a user submits a form on a webpage, you can create a &lt;a href="https://www.geeksforgeeks.org/javascript-fetch-method" rel="noopener noreferrer"&gt;fetch request&lt;/a&gt; to POST the data in that form to a server and process the returned response from the server.&lt;/p&gt;

&lt;p&gt;Recommended reading: &lt;a href="https://www.freecodecamp.org/news/how-to-make-api-calls-with-fetch/" rel="noopener noreferrer"&gt;How to Make a GET Request and POST Request in JavaScript&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Write JavaScript Code
&lt;/h2&gt;

&lt;p&gt;You add JavaScript to a basic webpage as a &lt;code&gt;script&lt;/code&gt; tag in an HTML file.&lt;br&gt;
The code can be written directly in the &lt;code&gt;script&lt;/code&gt; tag or imported as an external &lt;code&gt;.js&lt;/code&gt; file using the &lt;code&gt;src&lt;/code&gt; attribute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- using the script tag --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
      &lt;span class="c1"&gt;// JavaScript code goes here&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello, World!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- importing a JS file --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"main.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello, World!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  How to Run JavaScript Code
&lt;/h3&gt;

&lt;p&gt;JavaScript is a language that runs in the browser. Most browsers are equipped with &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools" rel="noopener noreferrer"&gt;developer tools&lt;/a&gt; and these tools contain a panel called the Console.&lt;/p&gt;

&lt;p&gt;The console is a runtime environment for JavaScript code. This means you can write JavaScript code directly into the console and see the results right in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnd2six5h2aw1j3lfrt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnd2six5h2aw1j3lfrt9.png" alt="Console environment with Javascript code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To open the console, navigate to the developer tools in your browser on your laptop or desktop. There are different ways to get to the developer tools depending on which browser you're using: &lt;a href="https://developer.chrome.com/docs/devtools/open/" rel="noopener noreferrer"&gt;Chrome&lt;/a&gt;, &lt;a href="https://support.apple.com/en-gb/guide/safari/sfri20948/mac" rel="noopener noreferrer"&gt;Safari&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Tools" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt; or &lt;a href="https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/overview" rel="noopener noreferrer"&gt;Microsoft Edge&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also use online code editors to run JavaScript code. Popular ones include &lt;a href="https://codepen.io/" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt; and &lt;a href="https://codesandbox.io/dashboard" rel="noopener noreferrer"&gt;CodeSandbox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Online code editors are a good way to get familiar with interacting with the DOM using JavaScript, as you can see all the changes happening to your project in real time.&lt;/p&gt;

&lt;p&gt;For example, in the Pen below, I'm using JavaScript to change the text of an element with the &lt;code&gt;id&lt;/code&gt; attribute &lt;code&gt;name&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;For a more in-depth look into everything about JavaScript, checkout &lt;a href="https://www.freecodecamp.org/news/the-complete-javascript-handbook-f26b2c71719c/" rel="noopener noreferrer"&gt;The JavaScript Handbook&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  JavaScript Projects for Beginners
&lt;/h2&gt;

&lt;p&gt;When it comes to JavaScript, much like with everything else, &lt;strong&gt;practice makes perfect&lt;/strong&gt;. The best way to learn JavaScript is to build projects, and there's no limit to projects you can build using JavaScript.&lt;/p&gt;

&lt;p&gt;A good approach is to build things that solve problems. For instance, I was having trouble copying the content from a Word document into an HTML list, so I built a &lt;a href="https://jemimaabu.github.io/text-list-to-html/" rel="noopener noreferrer"&gt;Text-to-HTML Converter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Building applications is also a good way to understand basic concepts in JavaScript and get some real-life experience with practical application. &lt;/p&gt;

&lt;p&gt;These are some resources for ideas on projects to build when learning JavaScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/news/javascript-projects-for-beginners/" rel="noopener noreferrer"&gt;40 JavaScript Projects for Beginners&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=3PHXvlpOkf4" rel="noopener noreferrer"&gt;Build 15 Javascript Projects&lt;/a&gt; (video)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  JavaScript Tutorials for Beginners
&lt;/h2&gt;

&lt;p&gt;Aside from building projects, it also helps to follow a guided tutorial when trying to learn JavaScript.&lt;/p&gt;

&lt;p&gt;Most courses attempt to cover all the important concepts you need to know, and some provide a certification at the end to help improve your résumé.&lt;/p&gt;

&lt;p&gt;Here are some online courses and curricula that provide a good introduction to JavaScript, and a few that cover more advanced concepts.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33qr41y1huz7oindki98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33qr41y1huz7oindki98.png" alt="Learn to code — for free. Build projects. Earn certifications."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have no prior coding knowledge, freeCodeCamp is an excellent place to begin your tech journey. They have a variety of courses, all explained in a simple-to-grasp format.&lt;/p&gt;

&lt;p&gt;There is also a large online &lt;a href="https://forum.freecodecamp.org/" rel="noopener noreferrer"&gt;forum&lt;/a&gt; which makes it easy to receive help or feedback from other people while taking the courses.&lt;/p&gt;
&lt;h3&gt;
  
  
  Recommended course
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/" rel="noopener noreferrer"&gt;JavaScript Algorithms and Data Structures &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Suited for:&lt;/strong&gt; Beginners&lt;/p&gt;
&lt;h2&gt;
  
  
  2. &lt;a href="https://click.linksynergy.com/deeplink?id=i1rVYzXnF5I&amp;amp;mid=39197&amp;amp;murl=https%3A%2F%2Fwww.udemy.com%2F" rel="noopener noreferrer"&gt;Udemy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folc5l55bi58o4ql6eyta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folc5l55bi58o4ql6eyta.png" alt="Learn from the best. Real-world experts teaching real-world skills"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Udemy is a paid online platform that offers courses for a wide range of skills. Most of the courses are short-term, and can be learned in your free time.&lt;/p&gt;
&lt;h3&gt;
  
  
  Recommended courses
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://click.linksynergy.com/deeplink?id=i1rVYzXnF5I&amp;amp;mid=39197&amp;amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fthe-complete-javascript-course%2F" rel="noopener noreferrer"&gt;The Complete JavaScript Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://click.linksynergy.com/deeplink?id=i1rVYzXnF5I&amp;amp;mid=39197&amp;amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Funderstand-javascript%2F" rel="noopener noreferrer"&gt;JavaScript: Understanding the Weird Parts&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Suited for:&lt;/strong&gt; Beginner and intermediate learners&lt;/p&gt;
&lt;h2&gt;
  
  
  3. &lt;a href="https://imp.i115008.net/oe4Lyn" rel="noopener noreferrer"&gt;Udacity&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupogwujx7z3xusq52aru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupogwujx7z3xusq52aru.png" alt="The latest digital skills, within reach. Discover the fastest, most effective way to gain job-ready expertise for the careers of the future"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Udacity is a tech-focused learning platform that offers Nanodegrees for their courses. Courses can take anywhere from 2 to 6 months, depending on how many hours you're able to commit. They're a great way of gaining in-depth knowledge in a skill relatively quickly.&lt;/p&gt;
&lt;h3&gt;
  
  
  Recommended courses
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/DVyOqb" rel="noopener noreferrer"&gt;Learn Intermediate JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/rnaL0D" rel="noopener noreferrer"&gt;Full Stack JavaScript Developer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Suited for:&lt;/strong&gt; Intermediate developers&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/jemimaabu" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F121416%2Fb1bb7c72-d1f8-40a3-a484-baf01c44e461.JPG" alt="jemimaabu"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jemimaabu/online-resources-to-improve-technical-skills-56ma" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;50 Online Resources To Improve Your Technical Skills&lt;/h2&gt;
      &lt;h3&gt;Jemima Abu ・ May 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  4. &lt;a href="https://academy.zerotomastery.io/?affcode=441520_kedmgbvr" rel="noopener noreferrer"&gt;Zero To Mastery&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwl9ns7in6xdomun22xv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwl9ns7in6xdomun22xv.png" alt="Learn to Code. Get Hired."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zero To Mastery offers practical courses for people looking to advance their career. If you're looking to apply for a job or start a career in tech without any prior experience, it's helpful to learn a course that offers real-life usage. This is especially useful for the interview stage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommended courses
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://academy.zerotomastery.io/a/aff_8pwrdc5q/external?affcode=441520_kedmgbvr" rel="noopener noreferrer"&gt;JavaScript: The Advanced Concepts&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://academy.zerotomastery.io/a/aff_j2jx8w4l/external?affcode=441520_kedmgbvr" rel="noopener noreferrer"&gt;JavaScript Web Projects: 20 Projects to Build Your Portfolio&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Suited for:&lt;/strong&gt; Experts and professionals&lt;/p&gt;

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

&lt;p&gt;Despite how it seems, JavaScript is one of those things that gets easier with practice. Hopefully, this article will be a helpful starting point on your journey to JavaScript mastery.&lt;/p&gt;

&lt;p&gt;If you found it useful or you have any other questions, feel free to reach out to me on &lt;a href="https://twitter.com/jemimaabu" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; or send me a message on &lt;a href="https://www.jemimaabu.com/" rel="noopener noreferrer"&gt;my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How To Improve Your SEO Ranking</title>
      <dc:creator>Jemima Abu</dc:creator>
      <pubDate>Fri, 07 May 2021 08:19:10 +0000</pubDate>
      <link>https://dev.to/jemimaabu/how-to-improve-your-seo-ranking-1d7j</link>
      <guid>https://dev.to/jemimaabu/how-to-improve-your-seo-ranking-1d7j</guid>
      <description>&lt;p&gt;Fun fact: if you Google "&lt;a href="https://www.google.com/search?q=front+end+developer+nigeria" rel="noopener noreferrer"&gt;front end developer Nigeria&lt;/a&gt;", my portfolio website shows up on the first page. Why? SEO.&lt;/p&gt;

&lt;p&gt;Search Engine Optimization (SEO) is how you make sure your website shows up in relevant search results. Ranking refers to a website's position in those search results.&lt;/p&gt;

&lt;p&gt;In this article, we'll be discussing how to optimize your website or brand to help you get a high ranking on Google and other search engines. We'll also discuss how to improve the online presence for yourself or your brand.&lt;/p&gt;

&lt;p&gt;I'd like to preface this by saying that I'm not an SEO expert so I'll just be sharing the tips that worked for me.&lt;/p&gt;

&lt;p&gt;Here's what we'll be covering in this article:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
What is SEO? &lt;/li&gt;
&lt;li&gt;Why is SEO important?&lt;/li&gt;
&lt;li&gt;How do I improve my website's SEO ranking?&lt;/li&gt;
&lt;li&gt;How do I improve my personal/my brand's online presence?&lt;/li&gt;
&lt;li&gt;How do I test the SEO of my websites?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is SEO
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Search engine optimization is the process of improving the quality and quantity of website traffic to a website or a web page from search engines.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Simply put, SEO is ensuring that your website receives relevant and continuous traffic through organic search results. Organic search results refer to results that show up in search terms due to relevancy as opposed to paid search results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620314285788%2FUJLW7bGn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620314285788%2FUJLW7bGn5.png" alt="organic versus paid search results"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Studies have shown that people &lt;a href="https://www.oakcitytechnology.com/websites/do-people-actually-click-on-paid-ads-in-google/#:~:text=However%2C%20to%20answer%20this%20directly,organic%20results%20over%20paid%20ads." rel="noopener noreferrer"&gt;tend to click more on organic search results than ads&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;SEO doesn't just affect your websites; it affects the visibility of anything you post online such as articles, products or videos. &lt;/p&gt;

&lt;p&gt;The world of Search Engine Optimization is so vast and complex that companies have dedicated &lt;a href="https://digitalmarketinginstitute.com/blog/what-does-an-seo-manager-do" rel="noopener noreferrer"&gt;SEO managers&lt;/a&gt;  just to ensure the visibility of their brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance of SEO
&lt;/h2&gt;

&lt;p&gt;The major importance of SEO is to increase the traffic and visibility of your website and content. High rankings are the best way to generate traffic to your site.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620306812288%2F1Ien9sL8G.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620306812288%2F1Ien9sL8G.png" alt="organic traffic.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above image is a screenshot of the traffic for &lt;a href="https://jemimaabu.medium.com/how-to-write-a-cv-in-nigeria-d05d8981dbda" rel="noopener noreferrer"&gt;an article I wrote in 2017&lt;/a&gt;. The article has had over 32,000 views since then and over 50% of that traffic was from organic search results on Google. &lt;/p&gt;

&lt;p&gt;Having a high ranking means that you no longer have to constantly market your products and content and instead you attract your target audience naturally.&lt;/p&gt;

&lt;p&gt;Think of it this way: when was the last time you went to the second page of Google? The higher your search engine ranking, the more visible your site is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for Improving SEO
&lt;/h2&gt;

&lt;p&gt;There are &lt;a href="https://backlinko.com/google-ranking-factors" rel="noopener noreferrer"&gt;multiple ranking factors&lt;/a&gt; that can affect the SEO of your site but I'll be focusing on the factors I prioritized in order to optimize my website: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accessibility&lt;/li&gt;
&lt;li&gt;Metadata&lt;/li&gt;
&lt;li&gt;Relevant content and links&lt;/li&gt;
&lt;li&gt;Performance and page speed&lt;/li&gt;
&lt;li&gt;Traffic and backlinks&lt;/li&gt;
&lt;li&gt;Domain name and extensions&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Accessibility
&lt;/h3&gt;

&lt;p&gt;Accessibility means creating websites that can be used by everyone. Ideally, you should build your websites to be as accessible as possible. Not only is it considered best practice but it also &lt;a href="https://www.dbswebsite.com/blog/accessibility-seo-a-perfect-fit/" rel="noopener noreferrer"&gt;directly affects your site SEO&lt;/a&gt;. &lt;br&gt;
Accessibility also improves user experience which is another important contributor to SEO.&lt;/p&gt;

&lt;p&gt;Here are some quick tips to focus on to ensure your personal website meets base accessibility needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use the lang attribute in your HTML tag.&lt;/strong&gt; The lang attribute is what allows browsers to translate websites from one language to another so be sure to write your HTML tags appropriately e.g. &lt;code&gt;&amp;lt;html lang="en"&amp;gt;&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use alt tags for images that require description.&lt;/strong&gt; Alt tags describe the content of an image for screen readers and should be included as attributes in image tags &lt;code&gt;&amp;lt;img alt="" src="" /&amp;gt;&lt;/code&gt;. Alt tags are also &lt;a href="https://www.bigcommerce.com/ecommerce-answers/what-is-an-alt-tag-and-how-does-it-impact-seo/" rel="noopener noreferrer"&gt;used by search engines&lt;/a&gt; to return relevant image results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use &lt;a href="https://www.w3schools.com/html/html5_semantic_elements.asp#:~:text=What%20are%20Semantic%20Elements%3F,%3E%20%2D%20Clearly%20defines%20its%20content." rel="noopener noreferrer"&gt;semantic elements&lt;/a&gt; for creating layouts in HTML.&lt;/strong&gt; Semantic elements such as &lt;code&gt;nav&lt;/code&gt;, &lt;code&gt;footer&lt;/code&gt; and &lt;code&gt;header&lt;/code&gt; provide a description of the content to screenreaders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use heading tags in the appropriate order.&lt;/strong&gt; The rule of thumb is to have only one H1 tag on a page, serving as the title and let the headings follow in sequential order i.e. a &lt;code&gt;h4&lt;/code&gt; tag shouldn't appear before a &lt;code&gt;h2&lt;/code&gt; tag in the same section.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ensure that the colors on your site have adequate contrast.&lt;/strong&gt; Adequate contrast between the colors of the text and the background allows for easily readable content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use descriptive links.&lt;/strong&gt; Links on your website should describe the page they lead to e.g. &lt;code&gt;Read More About Me&lt;/code&gt; rather than generic statements like &lt;code&gt;Click Here&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can view my slides on &lt;a href="https://www.jemimaabu.com/talks/web-accessibility.html" rel="noopener noreferrer"&gt;Getting Started With Web Accessibility&lt;/a&gt;, watch my video on &lt;a href="https://www.youtube.com/watch?v=QSXdTuD9Rak" rel="noopener noreferrer"&gt;Understanding Accessibility as A Concept&lt;/a&gt; or check out the &lt;a href="https://romeo.elsevier.com/accessibility_checklist/downloads/developer_designer_checklist.pdf" rel="noopener noreferrer"&gt;Accessibility Checklist by Jay Nemchik&lt;/a&gt;  for more information and resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metadata
&lt;/h3&gt;

&lt;p&gt;Metadata is what provides information about your website to search engines.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620319671614%2FQoI5VUTaZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620319671614%2FQoI5VUTaZ.png" alt="metadata of jemimaabu.com"&gt;&lt;/a&gt;&lt;br&gt;
The two major tags for SEO are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Title.&lt;/strong&gt; The &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag is included in HTML and it contains the name of your webpage. It's a good idea to include your main keyword in your title tag.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Jemima Abu: Front End Developer&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The title tag should be changed on each page to describe the content of the new page e.g. &lt;code&gt;&amp;lt;title&amp;gt;About Me | Jemima Abu&amp;lt;/title&amp;gt;&lt;/code&gt;. A descriptive title also improves the ranking for articles and videos. Your title should be between 50 to 60 characters to avoid search engines &lt;a href="https://unamo.com/blog/seo/title-tags-best-practices#:~:text=Length,cut%20off%20in%20the%20middle." rel="noopener noreferrer"&gt;truncating or ignoring it&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description.&lt;/strong&gt; The description tag describes the content of your webpage and it's also placed in the  tag of your HTML page. It should explain the main goal of your webpage and use more keywords related to the message you're trying to pass along.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Jemima Abu is a self-taught 
    Front End Developer and school-taught Systems Engineer 
    from Lagos, Nigeria."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another tag to mention is the &lt;strong&gt;keywords&lt;/strong&gt; tag. It was previously used by search engines to match relevant keywords but most search engines have announced that &lt;a href="https://www.reliablesoft.net/meta-keywords/#relevancy" rel="noopener noreferrer"&gt;they no longer consider the meta keyword tag&lt;/a&gt; in a site's ranking. Using too many keywords can also have a negative impact on your site's SEO as this could be seen as spam by some search engines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relevant content and links
&lt;/h3&gt;

&lt;p&gt;Providing relevant content on your website increases your website's SEO ranking. Here are some tips on increasing the relevancy of content for articles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use action words in your title&lt;/strong&gt; and words related to search terms. An article with a title like "Introduction to Web Accessibility" or "How to Make Your Website Accessible" would be placed higher than an article simply titled "Web Accessibility".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use proper formatting&lt;/strong&gt; by separating sections with titles and emphasizing important content using bold text or italics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include links to related resources&lt;/strong&gt; in your article. &lt;a href="https://blog.alexa.com/outbound-links-content-marketing/#:~:text=Linking%20to%20high%2Dquality%20external,SEO%20health%20of%20a%20page." rel="noopener noreferrer"&gt;Using outbound links&lt;/a&gt;  can lend to the credibility of your content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid plagiarism.&lt;/strong&gt; If Google detects the same content in two search results, they'll remove whichever they consider least relevant. If you're trying to upload your content to multiple sites, be sure to include a [canonical link](&lt;a href="https://moz.com/learn/seo/canonicalization#:%7E:text=A%20canonical%20tag%20(aka%20%22rel,content%20appearing%20on%20multiple%20URLs.)" rel="noopener noreferrer"&gt;https://moz.com/learn/seo/canonicalization#:~:text=A%20canonical%20tag%20(aka%20%22rel,content%20appearing%20on%20multiple%20URLs.)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provide a summary&lt;/strong&gt; of your content in list tags. Google tends to place summarized content at the top of search results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620328037087%2FJvnUEnn4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620328037087%2FJvnUEnn4b.png" alt="list-content.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using relevant keywords in the link of your article also helps with ranking. If I write an article titled "How To Make Your Website Accessible", a good link would be &lt;code&gt;myblog/make-your-website-accessible&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance and Page Speed
&lt;/h3&gt;

&lt;p&gt;Performance and page speed are factors used by Google to determine a website's ranking. If your page loads slowly or has poor performance, it &lt;a href="https://moz.com/learn/seo/page-speed" rel="noopener noreferrer"&gt;directly affects your SEO&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here are some tips on improving how fast your page loads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduce images to the maximum rendered size.&lt;/strong&gt; If an image on a page only gets rendered at a maximum width of 450px then the width of the actual image shouldn't be more than 450px. You can also &lt;a href="https://kinsta.com/blog/optimize-images-for-web/" rel="noopener noreferrer"&gt;optimize your images&lt;/a&gt;  to reduce their data size.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid using embeds.&lt;/strong&gt; When using embeds, the time it takes them to load is also calculated with your page speed. I was able to increase my page speed score from 63 to 91 by getting rid of the YouTube embeds on my landing page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce loading animation.&lt;/strong&gt; Google measures how long it takes for content to appear on your page so if you're animating content into the page, the time for animation might affect your score. Try to keep all loading animation under 1s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minify your files&lt;/strong&gt; You can reduce the size of your CSS and JavaScript files by minifying them. This means removing all spaces, new lines and other unnecessary characters. You can use the &lt;a href="https://www.minifier.org/" rel="noopener noreferrer"&gt;Minifier tool&lt;/a&gt; to do this manually.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use &lt;a href="https://developers.google.com/speed/pagespeed/insights/" rel="noopener noreferrer"&gt;Page Speed Insights&lt;/a&gt; on your website to get more information on how to improve the performance and decrease loading time.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620368314251%2FS_FwG6bF38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620368314251%2FS_FwG6bF38.png" alt="page-speed.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Traffic and backlinks
&lt;/h3&gt;

&lt;p&gt;If your site gets a lot of traffic from other sources, it increases its ranking as it seems more relevant. A good way of generating traffic and improving your SEO is using backlinks.&lt;/p&gt;

&lt;p&gt;Backlinks are the inbound links for your site. They're created when other websites link to your site. Backlinks are basically votes from other sites vouching for the credibility of your site. A backlink from a highly ranked site also boosts your ranking.&lt;/p&gt;

&lt;p&gt;Google uses backlinks as one of their &lt;a href="https://searchengineland.com/now-know-googles-top-three-search-ranking-factors-245882" rel="noopener noreferrer"&gt;top three ranking factors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can create backlinks by including a link to your site whenever you appear online. If you publish an article for an online magazine or you appear in an interview, including a link to your website on those sources create more backlinks for your site.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://backlinko.com/hub/seo/backlinks" rel="noopener noreferrer"&gt;read this article&lt;/a&gt; to learn more about backlinks.&lt;/p&gt;

&lt;p&gt;You can also use the &lt;a href="https://www.freecodecamp.org/news/how-and-why-to-get-started-with-google-analytics-153dc35b7812/" rel="noopener noreferrer"&gt;Google Analytics tool&lt;/a&gt; to detect how much traffic your website generates and which sources you acquire traffic from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620374277843%2FVWKfy8lOZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620374277843%2FVWKfy8lOZ.png" alt="traffic analytics of jemimaabu.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Domain name and extensions
&lt;/h3&gt;

&lt;p&gt;Having a domain name tailored to your website is a good way of increasing traffic to your site as it lends credibility. Your domain name should perfectly represent your website e.g. use your full name for a personal site or the main keyword for a business site. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620327165313%2FGWQpXgKCi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620327165313%2FGWQpXgKCi.png" alt="domain-ranking.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The domain extension also matters. &lt;code&gt;.com&lt;/code&gt; domains are the most popular domain extension and &lt;a href="https://novanym.com/pages/why-com-is-the-best-domain-extension-for-seo#:~:text=with%20suffixes%20like%20.-,net%20and%20.,they%20have%20become%20more%20popular." rel="noopener noreferrer"&gt;tend to have higher rankings&lt;/a&gt;. For location-targeted rankings, you can use country code domains e.g. &lt;code&gt;.co.uk&lt;/code&gt; or &lt;code&gt;.eu&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://shrsl.com/2vhty" rel="noopener noreferrer"&gt;buy a domain name on Namecheap&lt;/a&gt; (this is an affiliate link so I get a commission if you decide to buy with this link).&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for creating an online presence
&lt;/h2&gt;

&lt;p&gt;Having an online presence refers to having all results related to you or your brand show up when you Google yourself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620304200851%2FG4fCWnvPi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620304200851%2FG4fCWnvPi.png" alt="Search results for jemima abu on google"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While all the tips for improving SEO can also be applied to increasing your search results, here are some specific actions you can take to ensure a solid online presence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Have a personal website.&lt;/strong&gt; If you're trying to secure your brand's online presence, invest in a &lt;a href="https://shrsl.com/2vhty" rel="noopener noreferrer"&gt;&lt;code&gt;.com&lt;/code&gt;  domain name&lt;/a&gt; and make sure all your other online accounts (Twitter, Instagram, LinkedIn) point to that site. 
You can read my article &lt;a href="https://www.freecodecamp.org/news/beginners-guide-to-creating-a-portfolio-website/" rel="noopener noreferrer"&gt;How To Create a Portfolio Website&lt;/a&gt;  for a step-by-step guide to creating your personal website.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct traffic to your site.&lt;/strong&gt; Aside from organic traffic, you can also take advantage of your social media presence to direct traffic to your personal site. If you have a viral tweet or video, be sure to include a link to your site somewhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create accounts on larger platforms.&lt;/strong&gt; If you're going to create a personal blog, you might generate more traffic by creating it on a site like Hashnode, Medium or Dev.to than a lesser-known platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the same username across all accounts and URLs.&lt;/strong&gt; If you have a name you want to be known by online, make sure that's the name that you use for every account and in the same format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use common keywords on all your accounts.&lt;/strong&gt;
I use pretty much the same tagline for all my accounts (&lt;em&gt;"Self-taught Front End Developer, School Taught Systems Engineer"&lt;/em&gt;) so this helps link them together.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Testing for SEO
&lt;/h2&gt;

&lt;p&gt;You can test your website's SEO by running the &lt;a href="https://developers.google.com/web/tools/lighthouse" rel="noopener noreferrer"&gt;Lighthouse audit tool&lt;/a&gt; in Google Chrome. The audit returns a score based on how optimized your site is for search engines. The passed audits section contains the features of your website that improves SEO.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620332180712%2F5h46gp8Hj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1620332180712%2F5h46gp8Hj.png" alt="seo-audit.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also use an &lt;a href="https://www.seobility.net/en/seocheck/?px=2&amp;amp;a_aid=6094eba07a470" rel="noopener noreferrer"&gt;online SEO checker&lt;/a&gt; to get a more detailed report on the SEO of your website.&lt;/p&gt;

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

&lt;p&gt;And that's how you can get your website to the first page of search results for relevant keywords.&lt;/p&gt;

&lt;p&gt;If you're interested in more in-depth research on the workings of SEO, you can check out these articles and tutorials:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://searchengineland.com/guide/what-is-seo" rel="noopener noreferrer"&gt;What is Search Engine Optimization?&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://optinmonster.com/seo-ranking-factors/" rel="noopener noreferrer"&gt;10 Crucial SEO Ranking Factors You Need To Know&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://click.linksynergy.com/deeplink?id=i1rVYzXnF5I&amp;amp;mid=40328&amp;amp;murl=https%3A%2F%2Fwww.coursera.org%2Fspecializations%2Fseo" rel="noopener noreferrer"&gt;SEO Specialization&lt;/a&gt;  - University of California, Coursera&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can also read my article on &lt;a href="https://blog.jemimaabu.com/how-i-built-my-perfect-score-portfolio-website" rel="noopener noreferrer"&gt;How I Built My Perfect Portfolio Website&lt;/a&gt; for more insight into the process of creating my website.&lt;/p&gt;

&lt;p&gt;If you found this article useful and you'd like to contribute to my content creation, feel free to &lt;a href="https://www.buymeacoffee.com/jemimaabu" rel="noopener noreferrer"&gt;buy me a coffee&lt;/a&gt; 😊&lt;/p&gt;

&lt;p&gt;If you have any questions or comments, leave a message below or reach out on &lt;a href="https://twitter.com/jemimaabu" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>a11y</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>50 Online Resources To Improve Your Technical Skills</title>
      <dc:creator>Jemima Abu</dc:creator>
      <pubDate>Mon, 03 May 2021 22:44:23 +0000</pubDate>
      <link>https://dev.to/jemimaabu/online-resources-to-improve-technical-skills-56ma</link>
      <guid>https://dev.to/jemimaabu/online-resources-to-improve-technical-skills-56ma</guid>
      <description>&lt;p&gt;Online courses are a popular choice for learning technical skills and advancing your career, mostly due to their easy access and multiple options.&lt;/p&gt;

&lt;p&gt;In this article, I've compiled 50 online courses on topics ranging from artificial intelligence to prepping for interviews. &lt;/p&gt;

&lt;p&gt;The courses listed in this article are sorted into the following fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/b3ONV9" rel="noopener noreferrer"&gt;Artificial Intelligence&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/OReKbQ" rel="noopener noreferrer"&gt;Autonomous Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/3PJZEK" rel="noopener noreferrer"&gt;Business&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vnPjVd" rel="noopener noreferrer"&gt;Cloud Computing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/yRqbkV" rel="noopener noreferrer"&gt;Cybersecurity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/Ke0Xzn" rel="noopener noreferrer"&gt;Data Science&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/QOjnnP" rel="noopener noreferrer"&gt;Programming &amp;amp; Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/rnaDDQ" rel="noopener noreferrer"&gt;Career&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Artificial Intelligence Courses (5)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8twffmwk4n2r43jvkza.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8twffmwk4n2r43jvkza.png" alt="School of Artificial Intelligence"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/WDyddP" rel="noopener noreferrer"&gt; &lt;strong&gt;AI Programming with Python&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn Python, NumPy, pandas, Matplotlib, PyTorch, Calculus, and Linear Algebra—the foundations for building your own neural network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/oe4L09" rel="noopener noreferrer"&gt; &lt;strong&gt;Become an AI Product Manager&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn to develop AI products that deliver business value. Build skills that help you compete in the new AI-powered world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/jWeyZe" rel="noopener noreferrer"&gt;&lt;strong&gt;Artificial Intelligence for Trading&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Complete real-world projects designed by industry experts, covering topics from asset management to trading signal generation. Master AI algorithms for trading, and build your career-ready portfolio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/AoP321" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Machine Learning Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn advanced machine learning techniques and algorithms -- including how to package and deploy your models to a production environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/7maOOA" rel="noopener noreferrer"&gt;&lt;strong&gt;Expand Your Knowledge of Artificial Intelligence&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn to write programs using the foundational AI algorithms powering everything from NASA's Mars Rover to DeepMind's AlphaGo Zero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Autonomous System Courses (4)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dxn5yxy55ycysau4bun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dxn5yxy55ycysau4bun.png" alt="School of Autonomous Systems"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/7maOny" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a C++ Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn C++, a high-performance programming language used in the world's most exciting engineering jobs -- from self-driving cars and robotics, to web browsers, media platforms, servers, and even video games.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/kjOM9N" rel="noopener noreferrer"&gt;&lt;strong&gt;Intro to Self-Driving Cars&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this program, you'll sharpen your Python skills, apply C++, apply matrices and calculus in code, and touch on computer vision and machine learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/rnaDLR" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Self-Driving Car Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn the skills and techniques used by self-driving car teams at the most advanced technology companies in the world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/DVyeOn" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Robotics Software Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Build hands-on projects to acquire core robotics software engineering skills: ROS, Gazebo, Localization, Mapping, SLAM, Navigation, and Path Planning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Business Courses (6)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5t7fjme0pitkgjf2vdhq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5t7fjme0pitkgjf2vdhq.png" alt="School of Business"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/9WLzyy" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a UX Designer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Design impactful user experiences for products in today's digital world. Build a portfolio that showcases your ability to transform user research to high-fidelity interactive designs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/x9L5zv" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Digital Marketer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gain real-world experience to run live campaigns as you learn from top experts in the field. Launch your career with a 360-degree understanding of digital marketing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/3PJZYd" rel="noopener noreferrer"&gt;&lt;strong&gt;Learn SQL&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Master SQL, the core language for Big Data analysis, and enable insight-driven decision-making and strategy for your business.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/9WLzy3" rel="noopener noreferrer"&gt;&lt;strong&gt;Agile Software Development&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn best practices for using the Agile framework to build better products faster and more efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/kjOMJd" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Product Manager&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Envision and lead the product strategy of industry-defining products, and learn to successfully bring them to market.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/gbO6a9" rel="noopener noreferrer"&gt;&lt;strong&gt;Business Analytics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gain foundational data skills applicable to any industry. Collect and analyze data, model business scenarios, and communicate your findings with SQL, Excel, and Tableau&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Cloud Computing Courses (5)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zmwq7t6yl9teqh4xnnq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zmwq7t6yl9teqh4xnnq.png" alt="School of Cloud Computing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/QOjnGo" rel="noopener noreferrer"&gt;&lt;strong&gt;Intro to Cloud Computing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this course, you'll learn foundational cloud computing skills that will set you on your path to a career in cloud computing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/5b5Zq2" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Cloud Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enroll now to build and deploy production-ready full stack apps at scale on AWS, an essential skill for advancing your web development career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/JrKVoq" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Cloud DevOps Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enroll now to operationalize infrastructure at scale and deliver applications and services at high velocity, an essential skill for advancing your career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/0J9jXR" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Cloud Developer using Microsoft Azure&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn to build cloud-based applications on Microsoft Azure, the cloud services platform used by 95% of Fortune 500 companies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/BXnyey" rel="noopener noreferrer"&gt;&lt;strong&gt;Become an AWS Cloud Architect&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lead your organization's cloud computing strategy as an AWS Cloud Architect. Plan, design, and build secure, high availability cloud infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Cybersecurity Courses (6)&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vnPj1v" rel="noopener noreferrer"&gt;&lt;strong&gt;Introduction to Cybersecurity&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get your start in the high growth field of Cybersecurity by building foundational skills in how to evaluate, maintain, and monitor the security of computer systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imp.i115008.net/x9L5X1" rel="noopener noreferrer"&gt;&lt;strong&gt;Network Security&lt;/strong&gt;&lt;/a&gt; by &lt;em&gt;Georgia Institute of Technology&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This course provides an introduction to computer and network security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imp.i115008.net/a1OA6R" rel="noopener noreferrer"&gt;&lt;strong&gt;Intro to Information Security&lt;/strong&gt;&lt;/a&gt; by &lt;em&gt;Georgia Institute of Technology&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This course touches on the importance of management and administration, the place information security holds in overall business risk, social issues such as individual privacy, and the role of public policy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/Ke0X2N" rel="noopener noreferrer"&gt;&lt;strong&gt;Become A Security Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gain the highly sought-after skills to protect an organization's computer networks and systems from security threats or attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/JrKVQq" rel="noopener noreferrer"&gt;&lt;strong&gt;Become A Security Analyst&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You'll master the skills necessary to become a successful Security Analyst and learn to identify, correct and respond to security weaknesses and incidents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/doOV3j" rel="noopener noreferrer"&gt;&lt;strong&gt;Become An Ethical Hacker&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meet the growing demand for cybersecurity professionals by gaining the offensive security skills to protect an organization's computer networks and systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Data Science Courses (7)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ngrebiyj59dty4318x0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ngrebiyj59dty4318x0.png" alt="School of Data Science"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/MXABjq" rel="noopener noreferrer"&gt;&lt;strong&gt;Programming for Data Science with Python&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prepare for a data science career by learning the fundamental data programming tools: Python, SQL, command line, and git.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/x9L5b1" rel="noopener noreferrer"&gt;&lt;strong&gt;Programming for Data Science with R&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prepare for a data science career by learning the fundamental data programming tools: R, SQL, command line, and git.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/9WLzQ5" rel="noopener noreferrer"&gt;&lt;strong&gt;Data Analysis and Visualization with Power BI&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meet the growing demand for data analysis and visualization professionals by gaining the Power BI skills that top companies want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/n1XEbA" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Data Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data Engineering is the foundation for the new world of Big Data. Enroll now to build production-ready data infrastructure, an essential skill for advancing your data career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/4eGmKn" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Data Analyst&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use Python, SQL, and statistics to uncover insights, communicate critical findings, and create data-driven solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/NK90PV" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Data Scientist&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gain real-world data science experience with projects designed by industry experts. Build your portfolio and advance your data science career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/e41EBO" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Data Architect&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn how to plan, design and implement enterprise data infrastructure solutions and create the blueprints for your organization's data success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Programming &amp;amp; Development Courses (10)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxmspjwonkvhnejr8jy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxmspjwonkvhnejr8jy3.png" alt="School of Programming"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/P0OVW6" rel="noopener noreferrer"&gt;&lt;strong&gt;Learn to Code&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This course is your first step towards careers in Web and App Development, Machine Learning, Data Science, AI, and more!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/a1OA4j" rel="noopener noreferrer"&gt;&lt;strong&gt;Become A Front End Web Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn how to build high-quality websites and dynamic applications to create stunning user experiences for the web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/Zd6KRR" rel="noopener noreferrer"&gt;&lt;strong&gt;Introduction to Backend Development&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This course presents an overview of a variety of Web backend topics: handling user input, producing templated output, storing information in databases and data stores, and building systems with secure user accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/mgOE0D" rel="noopener noreferrer"&gt;&lt;strong&gt;Become A Full Stack Web Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn to design and develop powerful modern web applications that form the foundation for the apps, websites, and systems that people and businesses use every day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/MXABWP" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Blockchain Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Demand for blockchain developers is skyrocketing. In this program, you'll work with the Bitcoin and Ethereum protocols, build projects for real-world application, and gain the essential skills for a career in this dynamic space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/EaEeAX" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a Java Web Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn enterprise scale back-end development with Java, and be prepared for the software engineering jobs that are in demand at a majority of Fortune 500 companies like Google, Amazon, Netflix, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/OReKEA" rel="noopener noreferrer"&gt;&lt;strong&gt;Become a React Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;React is completely transforming Front-End Development! Master this powerful UI library from Facebook with this course.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vnPjmA" rel="noopener noreferrer"&gt;&lt;strong&gt;Become an iOS Developer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Master the Swift programming language, and create a portfolio of iOS apps for iPhone and iPad to showcase your skills!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imp.i115008.net/yRqboD" rel="noopener noreferrer"&gt;&lt;strong&gt;Android Basics&lt;/strong&gt;&lt;/a&gt; by &lt;em&gt;Google&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This course is for aspiring Android developers who are new to programming to ensure that you get the real-world skills you need to know how to build and accelerate your journey towards becoming a professional Android Developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vnPjOA" rel="noopener noreferrer"&gt;&lt;strong&gt;Data Structures and Algorithms&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get hands-on practice with over 100 data structures and algorithm exercises and technical mentor support when needed to help prepare you for interviews and on-the-job scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Intermediate&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Career Courses (7)&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imp.i115008.net/BXnyBq" rel="noopener noreferrer"&gt;&lt;strong&gt;Refresh Your Resume&lt;/strong&gt;&lt;/a&gt; by &lt;em&gt;Grow With Google&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your resume is the first step in the job search. Through this course, you will identify the companies you want to work for, and showcase your key achievements to align with their roles.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imp.i115008.net/OReKan" rel="noopener noreferrer"&gt;&lt;strong&gt;Strengthen Your LinkedIn Network &amp;amp; Brand&lt;/strong&gt;&lt;/a&gt; by &lt;em&gt;Grow With Google&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Networking is an essential job search skill. In this course, you'll learn strategies and tactics for effective networking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vnPj0j" rel="noopener noreferrer"&gt;&lt;strong&gt;Craft Your Cover Letter&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Introduce yourself with a memorable cover letter. In this short course, you'll use proven writing techniques to show why you are the best person for the job.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/rnaDWG" rel="noopener noreferrer"&gt;&lt;strong&gt;Front-End Interview Prep&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You will review common Front-End Web Developer interview topics ranging from palindrome functions to closures, and learn best practices for behavioral questions and whiteboard problems.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/5b5Zzn" rel="noopener noreferrer"&gt;&lt;strong&gt;Android Interview Prep&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You'll work through common Android Developer interview topics ranging from explicit and implicit intents to designing a min stack.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/AoP35R" rel="noopener noreferrer"&gt;&lt;strong&gt;Data Science Interview Prep&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this course, you'll review the common questions asked in data science, data analyst, and machine learning interviews.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/XxmnE5" rel="noopener noreferrer"&gt;&lt;strong&gt;Full-Stack Interview Prep&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You'll review common Full Stack Web Developer interview topics like palindrome functions and data structures.&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Built My Perfect Score Portfolio Website</title>
      <dc:creator>Jemima Abu</dc:creator>
      <pubDate>Wed, 31 Mar 2021 11:15:43 +0000</pubDate>
      <link>https://dev.to/jemimaabu/how-i-built-my-perfect-score-portfolio-website-4ek0</link>
      <guid>https://dev.to/jemimaabu/how-i-built-my-perfect-score-portfolio-website-4ek0</guid>
      <description>&lt;p&gt;I recently published the fourth version of my portfolio &lt;a href="https://www.jemimaabu.com" rel="noopener noreferrer"&gt;jemimaabu.com&lt;/a&gt;. &lt;br&gt;
With this version, I tried to make the code as performant and accessible as possible but still have an interactive site, so this article will be about how I managed to achieve that. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617172505481%2FlkQXyI6sI.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617172505481%2FlkQXyI6sI.gif" alt="portfolio-designs-tiny.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are the following features in my portfolio that we'll be discussing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear content and easy to navigate.&lt;/li&gt;
&lt;li&gt;Built with HTML, CSS and JavaScript (no frameworks or libraries)&lt;/li&gt;
&lt;li&gt;Works on JS-disabled browsers&lt;/li&gt;
&lt;li&gt;Vanilla JavaScript implementation of smart navigation and animate on scroll&lt;/li&gt;
&lt;li&gt;6 different color themes&lt;/li&gt;
&lt;li&gt;Perfect scores on accessibility, performance, best practices and SEO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I shared the portfolio on Twitter once I was done and it &lt;a href="https://twitter.com/Jemimaabu/status/1376830168334012422" rel="noopener noreferrer"&gt;got a lot of feedback&lt;/a&gt; and I also got messages from people asking about certain features so I decided to write this article to explain these features.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Creating The Design
&lt;/h2&gt;

&lt;p&gt;It took me about a month to come up with the design for my portfolio, mostly because I designed the entire thing on a trial and error basis - swapping out different layouts and colors till I liked how it looked. &lt;/p&gt;

&lt;p&gt;I also went around the internet looking at other people's portfolios for inspiration and using features that I liked.&lt;/p&gt;

&lt;p&gt;These are some of the portfolios that I got inspiration from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.usecue.com/" rel="noopener noreferrer"&gt;Usecue&lt;/a&gt; - perfect lighthouse score, call to action buttons for next and previous item&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rfarn.com/" rel="noopener noreferrer"&gt;RFarn&lt;/a&gt; - large text loading screen, slightly fixed header on scroll to offset the &lt;a href="https://developers.google.com/web/updates/2016/12/url-bar-resizing" rel="noopener noreferrer"&gt;URL bar resizing&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="http://webinsane.com/" rel="noopener noreferrer"&gt;Webinsane&lt;/a&gt; - brown color theme, the font 'Inter'&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.havardbrynjulfsen.com/" rel="noopener noreferrer"&gt;Håvard Brynjulfsen&lt;/a&gt; - vaporwave theme &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Clear content
&lt;/h3&gt;

&lt;p&gt;A major reason I wanted to revamp my portfolio from &lt;a href="https://v3.jemimaabu.com" rel="noopener noreferrer"&gt;the previous version&lt;/a&gt; was to have all my content on my site without overloading the landing page.&lt;/p&gt;

&lt;p&gt;I had different pages for each content and chose designs I felt would best present the information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.jemimaabu.com/about" rel="noopener noreferrer"&gt;About page&lt;/a&gt; - splitting sections into expandable details to reduce text appearance on page&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.jemimaabu.com/articles" rel="noopener noreferrer"&gt;Articles page&lt;/a&gt;  - simple article title and description display according to how most blog posts are displayed&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.jemimaabu.com/talks" rel="noopener noreferrer"&gt;Talks page&lt;/a&gt; - information set in responsive table (the table converts to a list on smaller screens)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.jemimaabu.com/projects" rel="noopener noreferrer"&gt;Projects page&lt;/a&gt;  - projects set in slider carousel so I could include as many projects without having a terribly long page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also included selected parts of each content on the &lt;a href="https://www.jemimaabu.com" rel="noopener noreferrer"&gt;landing page&lt;/a&gt;  along with a call-to-action button leading to each page to encourage user navigation.&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Writing the code
&lt;/h2&gt;

&lt;p&gt;Ever since the &lt;a href="http://v2.jemimaabu.com" rel="noopener noreferrer"&gt;second version&lt;/a&gt; of my portfolio, which was easily the least performant version of all versions, I've always built my portfolios from scratch with HTML and CSS, using as little JavaScript dependency as possible.&lt;/p&gt;

&lt;p&gt;I also try to avoid using frameworks or libraries so I can optimize my code for performance and accessibility.&lt;/p&gt;
&lt;h3&gt;
  
  
  Works on non-JS browsers
&lt;/h3&gt;

&lt;p&gt;A lot of interactions on the page are actually done with CSS or semantic HTML and not JavaScript, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;filter on Articles and &lt;a href="https://www.jemimaabu.com/presskit" rel="noopener noreferrer"&gt;Presskit&lt;/a&gt; pages - &lt;a href="https://webdesign.tutsplus.com/tutorials/how-to-build-a-filtering-component-in-pure-css--cms-33111" rel="noopener noreferrer"&gt;How to Build a Filtering Component in Pure CSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;slider carousel on Projects page - &lt;a href="https://css-tricks.com/css-only-carousel/" rel="noopener noreferrer"&gt;CSS-Only Carousel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;expandable content on About page using HTML details - &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details" rel="noopener noreferrer"&gt;The Details disclosure element&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefit of this is that the site isn't dependent on JavaScript for displaying information so it still works without it.&lt;/p&gt;
&lt;h3&gt;
  
  
  Vanilla JS Implementation
&lt;/h3&gt;

&lt;p&gt;I used JavaScript to handle minor interactions on the page such as elements fading in on scroll, the smart navigation and handling multiple color themes. I also wrote two articles on how I did this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://webdesign.tutsplus.com/tutorials/animate-on-scroll-with-javascript--cms-36671" rel="noopener noreferrer"&gt;How to Animate on Scroll With Vanilla JavaScript&lt;/a&gt; on Envato Tuts+ and,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://css-tricks.com/creating-a-smart-navbar-with-vanilla-javascript/" rel="noopener noreferrer"&gt;Creating a Smart Navbar With Vanilla JavaScript&lt;/a&gt; on CSS-Tricks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to ensure that the content wasn't dependent on being displayed with JavaScript, I only implemented the effects on the elements once the JavaScript had loaded. For example, for the &lt;code&gt;scroll-in&lt;/code&gt; element, my JavaScript code looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;scrollElements&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;js-opacity&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I handled styling by targeting only the classes with the &lt;code&gt;js-opacity&lt;/code&gt; attached.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.scroll-in.js-opacity&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This way the elements are only hidden if the script has actually loaded and since the landing page wasn't too heavy or making multiple calls, the script loads almost immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to implement multiple color themes
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617174865543%2FE4WTP3Udi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617174865543%2FE4WTP3Udi.png" alt="color-schemes.png"&gt;&lt;/a&gt;&lt;br&gt;
This was definitely the most fun feature to implement. &lt;/p&gt;

&lt;p&gt;The &lt;a href="https://jemimaabu.github.io" rel="noopener noreferrer"&gt;first version&lt;/a&gt;  of my portfolio has a dark/light theme switch but I wanted something more interesting this time so I thought, why have two colors when you can have six. &lt;/p&gt;

&lt;p&gt;I implemented the multiple color theme feature using vanilla JavaScript and CSS.&lt;br&gt;
The best part is, thanks to the implementation, I could have gone on to have as many color themes as I wanted.&lt;/p&gt;

&lt;p&gt;This is the JavaScript code for handling theme switching:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;setTheme&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementsByTagName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="nx"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;className&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All we need to do is assign a className to the root element depending on what's selected. &lt;br&gt;
Then the HTML looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"setTheme('light')"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Set light theme"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"setTheme('dark')"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Set dark theme"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"setTheme('brown')"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Set brown theme"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And our CSS looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="nc"&gt;.light&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fafafa&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--text-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="err"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="nc"&gt;.dark&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#0d1926&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--text-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f7fafc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="err"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="nc"&gt;.brown&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#eeeae2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--text-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#120c07&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="err"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, make sure you only assign colors to each element according to the CSS variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--background-color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--text-color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An optional feature you can implement is setting a dark/light theme according to the user's system settings. We can do this using the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme" rel="noopener noreferrer"&gt;prefers-color-scheme&lt;/a&gt; media query.&lt;br&gt;
We just need to update our default root variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;dark&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c"&gt;/* set new default root to same colors in root.dark */&lt;/span&gt;
  &lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#0d1926&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;--text-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f7fafc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's pretty much the gist of the logic. You can see the complete implementation at my &lt;a href="https://github.com/jemimaabu/portfolio" rel="noopener noreferrer"&gt;portfolio repository&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Deploying the site
&lt;/h3&gt;

&lt;p&gt;Once I had all my content and logic implemented, I added the repository to my Netlify site and connected it to my custom site. You can read about how I set up continuous deployment from Netlify (and more options for hosting and deploying your site) in the third article building my portfolio inspired: &lt;a href="https://www.freecodecamp.org/news/beginners-guide-to-creating-a-portfolio-website/" rel="noopener noreferrer"&gt;How to Create a Portfolio Website – A Beginner Developer's Guide&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  How To Get A Perfect Lighthouse Score on Your Website
&lt;/h3&gt;

&lt;p&gt;You can test the scores of your website using the Lighthouse audit tool in DevTools. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617177408161%2F6Bed8iGXH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617177408161%2F6Bed8iGXH.png" alt="lighthouse-tab.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a good idea to run Lighthouse in incognito mode to prevent extensions interfering with your score. It returns a report giving you a score according to how well you meet certain metrics and also tells you things you can fix. &lt;/p&gt;

&lt;p&gt;You can easily increase your score by taking note of the returned items and making those fixes accordingly.&lt;/p&gt;

&lt;p&gt;Here's how I ensured high scores in each category:&lt;/p&gt;

&lt;h4&gt;
  
  
  Accessibility
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181012954%2FF1UPY9OFt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181012954%2FF1UPY9OFt.png" alt="accessibility.png"&gt;&lt;/a&gt;&lt;br&gt;
It's always best to ensure your site is as accessible as possible and not just for score-related reasons. You can watch my video on &lt;a href="https://www.youtube.com/watch?v=QSXdTuD9Rak" rel="noopener noreferrer"&gt;Understanding Accessibility As A Concept&lt;/a&gt; for more information on that.&lt;/p&gt;

&lt;p&gt;These are some of the things I do to ensure accessibility on my site:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using an &lt;a href="https://romeo.elsevier.com/accessibility_checklist/downloads/developer_designer_checklist.pdf" rel="noopener noreferrer"&gt;accessibility checklist&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Writing code with the &lt;a href="https://marketplace.visualstudio.com/items?itemName=MaxvanderSchee.web-accessibility#overview" rel="noopener noreferrer"&gt;Web Accessibility extension&lt;/a&gt; in VSCode&lt;/li&gt;
&lt;li&gt;Using the appropriate aria-roles for custom elements&lt;/li&gt;
&lt;li&gt;Manually testing the site after building (tabbing through and checking that all elements get visible focus, mouse operable elements work with keyboards etc).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can also use the &lt;a href="https://wave.webaim.org/" rel="noopener noreferrer"&gt;WAVE tool&lt;/a&gt; for further testing after building.&lt;/p&gt;

&lt;h4&gt;
  
  
  Perfomance
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181021769%2FZ9hZWTNBM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181021769%2FZ9hZWTNBM.png" alt="perfomance.png"&gt;&lt;/a&gt;&lt;br&gt;
This definitely gave me the most headache but here's how I got a perfect performance score:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compressed all images and included an explicit width and height. 
This is one of the most common contributing factors to decreased performance scores mostly cause it's a lot of stress to implement. I resized all my images to be the maximum width they'd be rendered on the page, around 720px and set explicit width and height and made them responsive with CSS.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;img src="" width="720" height="340" alt=""&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;img {
  width: 100%;
  height: auto;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I was able to do this because I served static images saved on my local folder so if you're calling your images from a CDN or somewhere else, look into the options they offer for rendering responsive images.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I split all my code according to the pages calling them to make sure I wouldn't be loading unnecessary stylesheets or scripts. 
My site was very CSS heavy so instead of calling one large CSS file, I split the files according to the pages that needed them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617173904496%2F3zFDaN8kJ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617173904496%2F3zFDaN8kJ.png" alt="file-structure.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduced page load animation.&lt;br&gt;
Chrome detects how long it takes for text to appear on your page and the timing can affect your performance score so try to keep your loading animation under 1s (one second). &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;imported font using font-face instead of link. For some reason, Google Chrome marks downloading fonts from Google fonts as &lt;a href="https://web.dev/render-blocking-resources/?utm_source=lighthouse&amp;amp;utm_medium=devtools" rel="noopener noreferrer"&gt;a render-blocking resource&lt;/a&gt; which is odd to me cause like aren't y'all part of the same company? You fix it, what do you want me to do (I'm kidding lol. Mostly).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  SEO and Best Practices
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181043331%2FNBQNRfTGI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181043331%2FNBQNRfTGI.png" alt="best-practices.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181048609%2FF6vW3gElu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181048609%2FF6vW3gElu.png" alt="seo.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SEO and Best Practices usually go hand in hand with performance and accessibility so as long as you have good scores there, they'll follow right along.&lt;br&gt;
The audit report tells you what needs to be updated so you can always fix any errors that pop up.&lt;/p&gt;




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

&lt;p&gt;And that's how I build my perfect score portfolio website. Maybe you're wondering why does it matter to have a perfect score on your website?&lt;/p&gt;

&lt;p&gt;For bragging rights, obvy. Also, you get fireworks if you have a perfect score so that's always nice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181220899%2FLCQ1LsKjw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1617181220899%2FLCQ1LsKjw.gif" alt="lighthouse-fireworks.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seriously though, it's not the perfect score that matters, it's just the idea behind it. &lt;/p&gt;

&lt;p&gt;You should always be building your sites to be as accessible and performant as possible, according to best practices and the SEO is an added benefit. Lighthouse scores are just a way of measuring how well you've done that.&lt;/p&gt;

&lt;p&gt;Thanks for reading :) If you found this article helpful, let me know in the comments or on &lt;a href="https://www.twitter.com/jemimaabu" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>a11y</category>
      <category>performance</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
