<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Zahra Khan</title>
    <description>The latest articles on Forem by Zahra Khan (@za-h-ra).</description>
    <link>https://forem.com/za-h-ra</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%2F421006%2Fd6e9c7d1-79d9-4800-aa98-a2237f3bf889.jpg</url>
      <title>Forem: Zahra Khan</title>
      <link>https://forem.com/za-h-ra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/za-h-ra"/>
    <language>en</language>
    <item>
      <title>The Most Commonly Used HTML Tags</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Sat, 09 Apr 2022 17:40:35 +0000</pubDate>
      <link>https://forem.com/za-h-ra/the-most-commonly-used-html-tags-3mp1</link>
      <guid>https://forem.com/za-h-ra/the-most-commonly-used-html-tags-3mp1</guid>
      <description>&lt;p&gt;Let's go back to the basics. A lot of beginners spending months trying to memorize HTML. Truth be told, you can google the HTML document structure, elements, tags and attributes. I often find myself googling the simplest tags and the HTML boilerplate. because it's damn impossible to remember everything and it's not necessary to memorize ALL the HTML elements. You probably only need to know like 10 elements that you'll use throughout your career.&lt;/p&gt;

&lt;p&gt;I'll be going over some of the most commonly used HTML tags and attributes, what they mean and when they're used. I've also created a little cheatsheet—which I'll include in the end—that I hope would be useful. 🤓&lt;/p&gt;

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

&lt;p&gt;HTML stands for &lt;strong&gt;H&lt;/strong&gt;yper*&lt;em&gt;T&lt;/em&gt;&lt;em&gt;ext **M&lt;/em&gt;&lt;em&gt;arkup **L&lt;/em&gt;*anguage. It is THE skeleton of a web page. Web developers use HTML to represent the structure and content on a webpage. It allows the content to appear in a certain way using enclosing tags and elements. If you want to learn more in detail, &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics" rel="noopener noreferrer"&gt;MDN&lt;/a&gt; is a great resource to learn more.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML Document Structure
&lt;/h2&gt;

&lt;p&gt;HTML has a document structure that you will ALWAYS need in order for your web page to work. The HTML:5 boilerplate looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  &amp;lt;title&amp;gt;HTML Boilerplate&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you are using VSCode, a shortcut for this boilerplate is to simply type &lt;code&gt;!&lt;/code&gt; and VSCode will take care of it for you. However, it is good practice to learn to write it on your own.&lt;/p&gt;

&lt;p&gt;Now let's get to some of the tags inserting between the &lt;code&gt;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&lt;/code&gt; tag and using throughout your web development journey!&lt;/p&gt;

&lt;h2&gt;
  
  
  Common HTML Tags
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All HTML documents start with &lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;, which is a declaration that let's the browser know that you are using &lt;code&gt;HTML:5&lt;/code&gt;. This one isn't an HTML tag but you do have to begin your document with 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;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I recently learned about &lt;code&gt;&amp;lt;html lang="en"&amp;gt;&lt;/code&gt; and it describes the language your document is written in. For example, &lt;code&gt;"en"&lt;/code&gt; stands for English, but there are other codes for other languages.&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;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; is the part of an HTML document that is not displayed in the web browser or to the user. You would put information in there that only the document needs to process, such as a CSS file or a google font, links to favicons and other metadata you'd need for SEO purposes.&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;title&amp;gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag goes in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; tag and it defines the documents title that's shown in the web browser. The "tab" of a browser, such as the screenshot below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649459320591%2FOpAqmyi6t.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%2Fv1649459320591%2FOpAqmyi6t.png" alt="Screen Shot 2022-04-08 at 6.08.33 PM.png"&gt;&lt;/a&gt;&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;body&amp;gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag is where all of your content lives that's displayed in the web browser and to the user. You can only have one &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element in an HTML document.&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;h1&amp;gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h4&amp;gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h5&amp;gt;&amp;lt;/h5&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h6&amp;gt;&amp;lt;/h6&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These tags are used to define the HTML headings. &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; defines the most important heading on a web page. It's best practice to have only one &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; on a webpage. The &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; heading is the second most important and you can have many &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; tags. The &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; is the least important.&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;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tag represents a paragraph element that contains paragraph content on a web page.&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;ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;ol&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ol&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; element represents an "unordered" list. The &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; is necessary for the &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; tag to render a list. This is rendered as a bullet pointed list. &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%2Fv1649459741698%2F2b2lnk8nW.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%2Fv1649459741698%2F2b2lnk8nW.png" alt="Screen Shot 2022-04-08 at 6.15.37 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile, the &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; element represents an "ordered" list. Which means that the list is rendered numerically. This element also requires an &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; tag.&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%2Fv1649459861911%2FkEFRS309H.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%2Fv1649459861911%2FkEFRS309H.png" alt="Screen Shot 2022-04-08 at 6.17.38 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  images are from MDN
&lt;/h3&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;img&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"URL_TO_IMG.png"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The &lt;code&gt;&amp;lt;img /&amp;gt;&lt;/code&gt; tag is a self-closing tag that is used to embeg an image on a webpage. You would write the tag as: &lt;code&gt;&amp;lt;img src="URL TO IMG" /&amp;gt;&lt;/code&gt; for the image to render on your website. &lt;code&gt;src&lt;/code&gt; is an attribute that is specifies the image it should display on the screen. It is required to be used with the &lt;code&gt;&amp;lt;img/&amp;gt;&lt;/code&gt; tag.&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;a&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"URL_TO_LINK"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;TEXT TO DISPLAY AS LINK&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt; tag defines a hyperlink, which is used to link one page to another. It is required to use the attribute &lt;code&gt;href&lt;/code&gt; with an &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag because this indicates where you want your link to go. The &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; is useless without an &lt;code&gt;href&lt;/code&gt;.&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;strong&amp;gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;strong&amp;gt;&amp;lt;/strong&amp;gt;&lt;/code&gt; tag is an HTML:5 element which is used to &lt;strong&gt;bold&lt;/strong&gt; text on a webpage.&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;em&amp;gt;&amp;lt;/em&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;em&amp;gt;&amp;lt;/em&amp;gt;&lt;/code&gt; tag is also an HTML:5 element which is used to define emphasized text on a webpage. Which means, if you want to &lt;em&gt;italicize&lt;/em&gt; text, you will use this element.&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;hr&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;hr&amp;gt;&lt;/code&gt; element is used to insert a horizontal line to divide up a page or content on a page.&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;br&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; element is used to produce a link break. Let's say I want to keep a few sentences in one &lt;code&gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt; tag, but I want to add space to separate them—the &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; tag will allow me to do this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;There's absolutely no need to memorize all the tags. The ones you'll use regularly are the ones I've described above. With repetition and practice, you'll end up memorizing them anyway, but know that you can just google them too 😊&lt;/p&gt;

&lt;p&gt;Here is a cheatsheet I've created for you, hope it helps!&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%2Fv1649460637693%2F5MqVbwgOV.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%2Fv1649460637693%2F5MqVbwgOV.png" alt="HTML TAGS CHEATSHEET"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>html</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How to Create Aliases on macOS with Terminal</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Mon, 27 Dec 2021 20:57:05 +0000</pubDate>
      <link>https://forem.com/za-h-ra/how-to-create-aliases-on-macos-with-terminal-ooh</link>
      <guid>https://forem.com/za-h-ra/how-to-create-aliases-on-macos-with-terminal-ooh</guid>
      <description>&lt;p&gt;Aliases are those badass secret identities and mysteries that developers type into their terminal to perform a task faster and make their workflow simpler. For the longest time, I procrastinated creating aliases because the thought of learning how to do it &lt;em&gt;seemed&lt;/em&gt; really hard. But actually, it's extremely easy. And its made my life SO MUCH better, so I wanted to share how to do it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Aliases for Zsh Shell
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to your terminal&lt;/li&gt;
&lt;li&gt;Type in the command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To make sure you are at your root directory,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Then type in
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;open .zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to open up your &lt;code&gt;.zshrc&lt;/code&gt; folder. You should see a screen like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IFvlieuX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1640588200204/KYFzYOtwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IFvlieuX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1640588200204/KYFzYOtwz.png" alt="Screen Shot 2021-12-27 at 1.56.33 AM.png" width="716" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scroll down to where it says something like &lt;strong&gt;# alias ohmyzsh="mate ~/.oh-my-zsh"&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;After the hashes, type in your own alias, i.e.:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias cmsg="git commit -m"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every time I want to run &lt;code&gt;git commit -m&lt;/code&gt;, I can now use &lt;code&gt;cmsg&lt;/code&gt; to do that task.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next &lt;code&gt;Cmd + S&lt;/code&gt; to Save. Close the window.&lt;/li&gt;
&lt;li&gt;THEN for the changes to take affect, you will have to enter the following in your terminal:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source .zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example Aliases
&lt;/h3&gt;

&lt;p&gt;Alias names can often be hard to come up with for beginners—I know it was for me until I saw a senior engineer using some of them—so some examples would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;alias project:start="yarn"
alias project:build="yarn project build"
alias project:test="yarn test"

alias project:start="yarn &amp;amp;&amp;amp; yarn project build"
alias project="/application/documents/project/project-file"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voilà You can now use your alias to perform the task you want faster. &lt;/p&gt;

&lt;p&gt;If you have any questions, feel free to DM me on  &lt;a href="https://twitter.com/zahrakhadijha"&gt;Twitter&lt;/a&gt; ! &lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>JavaScript Type Conversion &amp; Coercion Explained</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Sun, 19 Dec 2021 19:21:41 +0000</pubDate>
      <link>https://forem.com/za-h-ra/javascript-type-conversion-coercion-explained-22f8</link>
      <guid>https://forem.com/za-h-ra/javascript-type-conversion-coercion-explained-22f8</guid>
      <description>&lt;p&gt;To properly write JavaScript, we need to be able to understand what's going on under the hood. Since JavaScript is a dynamically typed language, it has many &lt;em&gt;weird&lt;/em&gt; parts. You don't have to specify the type of some value before you use it. It allows you to change the types as you write your code. &lt;/p&gt;

&lt;p&gt;Let's say you declare a variable and assign it to a &lt;code&gt;string&lt;/code&gt;. Later on, you can decide to change it to a &lt;code&gt;number&lt;/code&gt;. As I discussed in my post about &lt;a href="https://blog.zahrakhadijha.com/the-difference-between-null-and-undefined-in-javascript"&gt;null vs. undefined&lt;/a&gt;, you can leave a variable empty and initialize it later without specifying it's type. This could create a lot of buggy behavior in JavaScript (aren't we thankful TypeScript exists? 😜)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type Coercion vs. Conversion&lt;/strong&gt; is one of the topics that can be hard to understand because the language behaves in strange ways. When comparing the string &lt;code&gt;'28'&lt;/code&gt; to the number &lt;code&gt;28&lt;/code&gt;, you'd think that they're the same. When you compare them loosely, &lt;code&gt;'28' == 28&lt;/code&gt; you get that they're the same. But they're not. JavaScript does &lt;em&gt;implicit coercion&lt;/em&gt; under the hood which converts &lt;code&gt;'28' == 28&lt;/code&gt; to &lt;code&gt;28 == 28&lt;/code&gt; which obviously becomes &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;To understand Type Coercion, we need to remember that JavaScript generally has two types: &lt;strong&gt;Primitives&lt;/strong&gt; and &lt;strong&gt;Objects&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;There are &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Primitive"&gt;7 primitive data types&lt;/a&gt;: string, number, boolean, symbol, bigint, undefined, and null. These are not objects and they don't have built-in methods.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object"&gt;Objects&lt;/a&gt; are everything else.&lt;/p&gt;

&lt;p&gt;Type Conversion happens in two different ways:&lt;/p&gt;

&lt;h2&gt;
  
  
  Implicit Coercion
&lt;/h2&gt;

&lt;p&gt;Implicit coercion happens automatically by JavaScript. The compiler goes behind your back and converts a value without you explicitly telling it to. It's completely hidden from you. For example, if you add a &lt;code&gt;string&lt;/code&gt; to a &lt;code&gt;number&lt;/code&gt; or vice versa, JavaScript will automatically concatenate it to a &lt;code&gt;string&lt;/code&gt;. Or if you apply non-numbers to mathematical expressions, they will be converted to &lt;code&gt;numbers&lt;/code&gt;. This is called Type Conversion.&lt;/p&gt;

&lt;p&gt;Let's look at some code:&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;currentYear&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;28&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;currentYear&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// '202128'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JavaScript converted the number &lt;code&gt;2021&lt;/code&gt; to a string by concatenating the string &lt;code&gt;'28'&lt;/code&gt; giving you a result of &lt;code&gt;202128&lt;/code&gt; instead of doing an actual calculation. &lt;/p&gt;

&lt;p&gt;Another example, WITH subtraction:&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;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;28&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;currentYear&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2021&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;currentYear&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// the strings are implicitly coerced to 1993 here &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This performed a mathematical calculation and implicitly converted the strings into a &lt;code&gt;number&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explicit Coercion
&lt;/h2&gt;

&lt;p&gt;Explicit coercion happens when you convert the data type of a value stored in a variable ON PURPOSE (explicitly) with a built-in method. You can visually see it happening in your code. JavaScript has three explicit type conversions: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Number()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;String()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boolean()&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You cannot convert a variable to &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;. I will only be explaining a high-level overview of the three methods. If you'd like to dive deeper, please read &lt;a href="https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/types%20%26%20grammar/ch4.md"&gt;YDKJS&lt;/a&gt; as the book goes into a rabbit hole of explaining every bit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Number()
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;Number()&lt;/code&gt; method will convert any non-number value into a number. It's a little bit complicated because if you convert &lt;code&gt;Number(true)&lt;/code&gt; it becomes &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;Number(false)&lt;/code&gt; is &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;Number(undefined)&lt;/code&gt; is &lt;code&gt;NaN&lt;/code&gt; and &lt;code&gt;Number(null)&lt;/code&gt; is &lt;code&gt;0&lt;/code&gt;. 👀 &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Number()&lt;/code&gt; will convert a random string, such as &lt;code&gt;Number('Zahra')&lt;/code&gt; to &lt;code&gt;NaN&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;28&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nb"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// 28 - it will be converted from a string to the number 28&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;currentYear&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// 2049 - does the mathematical calculation and prints out a number&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;currentYear&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// `202128' - prints out the concatenated string without explicit conversion.&lt;/span&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  String()
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;String()&lt;/code&gt; method will convert any non-string value into a string representation. Unlike the &lt;code&gt;Number()&lt;/code&gt; method, &lt;code&gt;String()&lt;/code&gt; will convert &lt;code&gt;String(null) to 'null'&lt;/code&gt;, &lt;code&gt;String(undefined)&lt;/code&gt; to &lt;code&gt;'undefined'&lt;/code&gt;, &lt;code&gt;String(true)&lt;/code&gt; to &lt;code&gt;'true'&lt;/code&gt; and &lt;code&gt;String(false)&lt;/code&gt; to &lt;code&gt;'false'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;String()&lt;/code&gt; method can be explicit or it can be automatic if a non-string is used in a way where it will be coerced. The most straightforward thing about this method is that the value stays as it is but the data type changes to a &lt;code&gt;string.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt; 
&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// '28'&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;coffee&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; cups&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;coffee&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// '2 cups' - it was already coerced to a string beforehand and will stay a string with the method&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;nothing&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nothing&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// 'null'&lt;/span&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Boolean()
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;Boolean()&lt;/code&gt; method is an interesting one! JavaScript already has boolean keywords &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt; but there is a list of values that will ALWAYS be falsy when you force a &lt;code&gt;Boolean()&lt;/code&gt; coercion on them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;+0&lt;/code&gt;, &lt;code&gt;-0&lt;/code&gt;, and &lt;code&gt;NaN&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;""&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything else NOT on this list is considered a truthy value. Let's look at some code:&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;let&lt;/span&gt; &lt;span class="nx"&gt;emptyArray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; 
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;emptyObject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;emptyFunction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;

&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;emptyArray&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;emptyObject&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;emptyFunction&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are all true because they're not on the list of falsey values. The importance of boolean values is in understanding how the value will behave if you coerce it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;There is A LOT more to this subject and I recommend reading YDKJS to get a deeper understanding of the topic. Even though this subject is a bit confusing (this was a hard blog post to write), it's important to understand the buggy parts so that you understand how JavaScript behaves to write better code.&lt;/p&gt;

&lt;p&gt;Yes, we have TypeScript now to eliminate some of these bugs so if you wanted to, you could just start using TypeScript but I find it interesting to learn about these weird parts of JavaScript.&lt;/p&gt;

&lt;p&gt;I hope this post helped somewhat! I can be reached on &lt;a href="https://twitter.com/zahrakhadijha"&gt;Twitter&lt;/a&gt; so feel free to DM if you have questions!&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/types%20%26%20grammar/ch4.md"&gt;YDKJS: Types &amp;amp; Grammar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexdevero/how-type-coercion-in-javascript-works-5263"&gt;DEV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion"&gt;MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/js-type-coercion-explained-27ba3d9a2839/"&gt;freeCodeCamp&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The Difference Between Null and Undefined in JavaScript</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Tue, 23 Nov 2021 14:31:43 +0000</pubDate>
      <link>https://forem.com/za-h-ra/the-difference-between-null-and-undefined-in-javascript-51gc</link>
      <guid>https://forem.com/za-h-ra/the-difference-between-null-and-undefined-in-javascript-51gc</guid>
      <description>&lt;p&gt;Whenever I encounter &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;, I get incredibly confused by how each data type is used in JavaScript.&lt;/p&gt;

&lt;p&gt;I mean, what's the difference? Don't they both express the concept of &lt;strong&gt;nothing&lt;/strong&gt;?&lt;br&gt;
&lt;a href="https://i.giphy.com/media/gCeh1KDeDaxGu8no4A/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/gCeh1KDeDaxGu8no4A/giphy.gif" alt="Giphy" width="480" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I decided to do some research to gain a deeper understanding of the two data types. It's helpful to have this knowledge so that you can use them correctly when needed. I've also learned that sometimes, the difference between &lt;code&gt;null&lt;/code&gt; and &lt;code&gt;undefined&lt;/code&gt; comes up in interviews. 👀&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;JavaScript has &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Primitive"&gt;7 primitive data types&lt;/a&gt;, two of which are &lt;code&gt;null&lt;/code&gt; and &lt;code&gt;undefined&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Null&lt;/strong&gt; is an assignment value, which means that you can assign the value &lt;code&gt;null&lt;/code&gt; to any variable when you want that variable to be &lt;em&gt;empty&lt;/em&gt;. It is intentionally left blank and will point to an empty value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let hasCat = null;
// nullish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Undefined&lt;/strong&gt; is a variable that exists but hasn't been initialized &lt;em&gt;YET&lt;/em&gt;. Which means that later, I can come back to my variable and assign it a value that it did not have before. So if I declare a variable without a value, it's just considered non-initialized.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let currentJob;
// undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The way that I understood both of them is that, yes, they are both very similar in that they both don't have a value that you're trying to access. If you were to compare the two in JavaScript, implicitly they're the same because JavaScript considers them both as empty values. But since they are both different data types, if you compare them explicitly, they will result in a falsey value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;null == undefined; 
// truthy

null === undefined;
// falsey

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Analogy
&lt;/h2&gt;

&lt;p&gt;Imagine you're moving. You bought a bunch of boxes. You have to pack up your stuff and put them inside of those boxes. But you're disorganized so you forget to label what's in the boxes. You have 5 boxes that are full of things and you have 2 boxes that are left empty. You want to label your boxes but you've already put tape on them, so you tell yourself you'll come back to it later. For now the 5 boxes are TBD. And the 2 boxes are leftover and empty. In code, that would look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let fiveBoxes = undefined;
let twoBoxes = null;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The five boxes with a bunch of stuff in them are considered undefined because they have things in them but you don't know what's in it YET. The two boxes left empty are MEANT to not have anything in them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Null vs. Undefined
&lt;/h2&gt;

&lt;p&gt;The difference between the two data types is:&lt;/p&gt;

&lt;h3&gt;
  
  
  Undefined
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Declared&lt;/li&gt;
&lt;li&gt;Uninitialized&lt;/li&gt;
&lt;li&gt;Engine Assigned&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Null
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Lack of&lt;/li&gt;
&lt;li&gt;Empty/void&lt;/li&gt;
&lt;li&gt;Non-existent&lt;/li&gt;
&lt;li&gt;User assigned&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go to your console, and type in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;typeof null
typeof undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What do you get?&lt;/p&gt;

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

&lt;p&gt;Null and undefined are not the same. It's important to learn the difference between the two so you avoid any buggy behavior in your code and have a clear understanding of why they exist. It's also cool if you're able to clearly state the difference in an interview too 😉 &lt;/p&gt;

&lt;p&gt;Feel free to hit me up on &lt;a href="https://twitter.com/zahrakhadijha"&gt;Twitter&lt;/a&gt; if you're still confused! Or if you'd just like to chat. &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why You Should Learn JavaScript As Your First Programming Language</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Fri, 19 Nov 2021 15:10:10 +0000</pubDate>
      <link>https://forem.com/za-h-ra/why-you-should-learn-javascript-as-your-first-programming-language-2c8g</link>
      <guid>https://forem.com/za-h-ra/why-you-should-learn-javascript-as-your-first-programming-language-2c8g</guid>
      <description>&lt;p&gt;If you're thinking about learning to program but don't know where to start, JavaScript is &lt;strong&gt;THE&lt;/strong&gt; language of the web. The three core technologies of web development are HTML, CSS and JavaScript.&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%2F8zbzp48jtzhegteohzrs.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%2F8zbzp48jtzhegteohzrs.png" alt="HTML &amp;amp; CSS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They work together to build beautiful, interactive and dynamic webpages.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; is the skeleton of the website. It's where the content of your web page lives, such as the text, buttons, headings, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; is &lt;em&gt;how&lt;/em&gt; your web page &lt;em&gt;looks&lt;/em&gt;. It's the presentation, the visually pleasing side of web development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; is your functionality. This is what allows you to interact with your webpage. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When you go to a website or platform you love, you can almost always guarantee that it's built on JavaScript. It's everywhere and with good reason. So let's get into it: &lt;/p&gt;

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

&lt;p&gt;According to the &lt;a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener noreferrer"&gt;official definition&lt;/a&gt;, JavaScript is a high-level, object-oriented, multi-paradigm programming language. &lt;/p&gt;

&lt;p&gt;But what does that even mean? &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%2Foyqojk9h7ykyi0knr0ng.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%2Foyqojk9h7ykyi0knr0ng.png" alt="JavaScript Deconstructed"&gt;&lt;/a&gt; &lt;br&gt;
Jonas Schmedtmann's deconstructs this definition in his &lt;a href="https://www.udemy.com/course/the-complete-javascript-course/" rel="noopener noreferrer"&gt;The Complete JavaScript Course&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's a great programming language to start with because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can start coding right now in this exact moment, using only your browser.&lt;/li&gt;
&lt;li&gt;JavaScript is extremely versatile. You can use it for web development, mobile development, desktop apps, frontend, backend, VR apps, and you can even use it for robotics. &lt;/li&gt;
&lt;li&gt;Every company has an app or website and most companies use JavaScript to build those apps. So there are a TON of job postings that require JavaScript knowledge, making you more marketable. &lt;/li&gt;
&lt;li&gt;You can visually see your code come to life.&lt;/li&gt;
&lt;li&gt;The JavaScript community is huge so there will always be help when needed. You can also find a lot of articles and tutorials on the topic. Having issues with a code? Stack Overflow is your friend. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to start with JavaScript in the browser
&lt;/h2&gt;

&lt;p&gt;If you want to take this route and learn to program in JavaScript (and you absolutely should!) you don't need anything else except for your browser. You can open up your developer tools in Google Chrome and start writing JavaScript. Let's do it together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to your web browser, type in &lt;code&gt;about:blank&lt;/code&gt; and (if you're on a Mac) type &lt;code&gt;cmd + option + j&lt;/code&gt; and it'll open up your console directly. (&lt;code&gt;ctrl+shift+j&lt;/code&gt; for Windows users).&lt;/li&gt;
&lt;li&gt;Now in your console, type in &lt;code&gt;alert("hello world!")&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You've written your first line of code in JavaScript!&lt;/p&gt;

&lt;h2&gt;
  
  
  Versatility
&lt;/h2&gt;

&lt;p&gt;JavaScript is worth learning because it's versatile. One of the most useful and powerful features of the language is that you can go beyond just building web applications. You can use it for hardware, like robots, you can develop games with it, you can build full-stack applications, dive into mobile development, and the list can go on.&lt;/p&gt;

&lt;p&gt;Most modern frameworks that you're going to use or encounter (React, React Native, Vue, etc) are built on JavaScript. So understanding the language and the fundamentals will help you get a better understanding of how the frameworks are implemented in an application. &lt;/p&gt;

&lt;p&gt;You open more doors with JavaScript because you're not limiting yourself to one thing. &lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript is in demand
&lt;/h2&gt;

&lt;p&gt;When you search up the popularity of JavaScript on google, the results will show that there are over 1.8 Billion websites in the world and JavaScript is used on 95% of them. According to  &lt;a href="https://octoverse.github.com/#top-languages-over-the-years" rel="noopener noreferrer"&gt;GitHub 2021 Octoverse Report&lt;/a&gt;, JavaScript remains the most popular language used amongst developers.&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%2Fmth6gwnz5q2371j2rw9r.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%2Fmth6gwnz5q2371j2rw9r.png" alt="Github Octoverse Report"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  (Photo taken from octoverse.github.com)
&lt;/h3&gt;

&lt;p&gt;Since the language is popular, you won't have issues searching for a job that needs people with your skillset. You'll be employable easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Seeing your code come to life
&lt;/h2&gt;

&lt;p&gt;When you're building a web application with JavaScript, you can visually see the results in the browser right away. You can see what you're building, how you're interacting with it, how the website is performing, and what it looks like. HTML/CSS work together to build a page but JavaScript allows it to come to life. When you add your functionality, you can see what you're doing in the live-server and in the developer tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community
&lt;/h2&gt;

&lt;p&gt;There is a MASSIVE JavaScript community. The language has been around for such a long time so if you have issues solving something, you can bet you'll find someone to help you when you need it. If you have a question, it's likely that a variation of it has been asked before, so you are able to google it and find solutions to your problems.&lt;/p&gt;

&lt;p&gt;You won't have a problem finding tutorials or articles on the language. There are a TON of free courses to learn JavaScript and you can get started right now. 😏&lt;/p&gt;

&lt;p&gt;SO if you are interesting and if my article has convinced you, I have some resources for you 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;Most people would start with  &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;  because it is an INCREDIBLE learning tool for beginners. However, there are a few other resources that are not usually mentioned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://scrimba.com/" rel="noopener noreferrer"&gt;Scrimba&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;The Odin Project&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://developer.mozilla.org/en-US/" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And my personal favorite is a paid course but if you can afford it, I highly recommend investing in it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.udemy.com/course/the-complete-javascript-course/" rel="noopener noreferrer"&gt;The Complete JavaScript Course 2022: Zero to Expert!&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I would suggest is picking one course and sticking to just THAT course. Don't let noise stray you away, you'll master the language in a focused way if you don't get distracted. There's always going to be more to learn but stick to one thing, complete it and then move on to diving deeper. &lt;/p&gt;

&lt;p&gt;Hopefully this article has convinced you to start your programming journey with JavaScript. Let me know if you've started and what you're building 👩🏽‍💻&lt;/p&gt;

&lt;p&gt;I am also on  &lt;a href="https://twitter.com/zahrakhadijha" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, let's connect and chat there!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Git: Fixing Unsigned GPG Commits</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Tue, 06 Jul 2021 17:38:24 +0000</pubDate>
      <link>https://forem.com/za-h-ra/git-fixing-unsigned-gpg-commits-phn</link>
      <guid>https://forem.com/za-h-ra/git-fixing-unsigned-gpg-commits-phn</guid>
      <description>&lt;p&gt;Before I started my job, all I knew how to do with Git was&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "commit message"
git push origin &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On my first day, I learned that I needed to set up a &lt;a href="https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification/generating-a-new-gpg-key"&gt;GPG key&lt;/a&gt; so that I could sign my commit messages. &lt;/p&gt;

&lt;h3&gt;
  
  
  What's the purpose of signing your commits?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GnuPG&lt;/strong&gt; allows you to encrypt and sign your data and communications. &lt;strong&gt;GPG&lt;/strong&gt;, or GNU Privacy Guard is a public key cryptography implementation. This allows for the secure transmission of information between parties and can be used to verify that the origin of a message is genuine. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Signing your commits allows you to have ownership over your work and your communication.&lt;/p&gt;

&lt;p&gt;However, sometimes, I forget to sign my commits and have to go back and fix it 😅&lt;br&gt;
&lt;a href="https://i.giphy.com/media/1Y7ChRtbWnYONjDidg/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1Y7ChRtbWnYONjDidg/giphy.gif" alt="Whoops GIPHY" width="189" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It felt daunting at first because I was afraid I'd mess up my commits and therefore, my entire branch and get into a git mess. But as I've been religiously practicing Git, I'm getting more comfortable fixing my mistakes and figuring out solutions to conflicts.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1412440310672723968-134" src="https://platform.twitter.com/embed/Tweet.html?id=1412440310672723968"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1412440310672723968-134');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1412440310672723968&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;1 - &lt;strong&gt;&lt;em&gt;Interactive Rebase.&lt;/em&gt;&lt;/strong&gt; You want to begin the rebase at the commit just before the commit that needs to be modified. In my case, it turned out that NONE of my commits were signed after finishing up an entire project/task. So I had to go back and sign them all. I started at the very top of the commits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase -i 3a08ed4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will open a text editor that'll show all the commits you have in your branch. They'll all say &lt;code&gt;pick&lt;/code&gt; next to each commit ID and the message. &lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pick 3a08ed4 added Summer playlist to Spotify
pick 5a68cc9 updated README for Summer Plans
pick 6ff7e5a removed spring header

# Rebase c6e777e..39574f2 onto c992o90 (3 commands)
#
# Commands: 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Or something like that)&lt;/p&gt;

&lt;p&gt;2 - Replace &lt;code&gt;pick&lt;/code&gt; with &lt;code&gt;edit&lt;/code&gt; within the editor and save your changes with &lt;code&gt;ESC&lt;/code&gt; and then &lt;code&gt;:wq&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So it would look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;edit 3a08ed4 added Summer playlist to Spotify
edit 5a68cc9 updated README for Summer Plans
edit 6ff7e5a removed spring header

# Rebase c6e777e..39574f2 onto c992o90 (3 commands)
#
# Commands: 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  REMEMBER: I messed up and didn't have ANY of my commits signed. If you missed one, you'd only &lt;code&gt;edit&lt;/code&gt; the one you didn't sign.
&lt;/h4&gt;

&lt;p&gt;3 - Once you save your changes, git will bring you back to the command line. Here, you'll do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit ---amend --no-edit -S 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;--amend&lt;/code&gt; : fix/change the previous commit message&lt;br&gt;
&lt;code&gt;--no-edit&lt;/code&gt; : use the existing commit message, no need to edit this. &lt;br&gt;
&lt;code&gt;-S&lt;/code&gt; : GPG-sign the commit. &lt;/p&gt;

&lt;p&gt;4 - After you've fixed the commit, you'll run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase --continue
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5 - Lastly, to check that my commit has been signed, I'll run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --show-signature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resources:&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages"&gt;How To Use GPG to Encrypt and Sign Messages&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gnupg.org/"&gt;GnuPG Documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.github.com/en/github-ae@latest/github/authenticating-to-github/managing-commit-signature-verification/generating-a-new-gpg-key"&gt;Github Documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>An Introduction to Git Rebase: A Tutorial</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Mon, 14 Jun 2021 13:41:36 +0000</pubDate>
      <link>https://forem.com/za-h-ra/an-introduction-to-git-rebase-a-tutorial-156f</link>
      <guid>https://forem.com/za-h-ra/an-introduction-to-git-rebase-a-tutorial-156f</guid>
      <description>&lt;p&gt;A month ago, I posted on &lt;a href="https://twitter.com/zahrakhadijha" rel="noopener noreferrer"&gt;twitter&lt;/a&gt; that I was learning &lt;code&gt;git rebase&lt;/code&gt; at work and how scary it felt.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1393292478393032714-829" src="https://platform.twitter.com/embed/Tweet.html?id=1393292478393032714"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1393292478393032714-829');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1393292478393032714&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;It got a lot of engagement from people feeling similarly about rebasing and some in the same boat as me where they felt that they didn't understand it. &lt;/p&gt;

&lt;p&gt;A month later, practicing, watching A LOT of videos on it and rebasing almost every day, it's not so scary anymore. So I wanted to write up a tutorial on the best way I understand it in hopes that it helps you, too. &lt;/p&gt;

&lt;h2&gt;
  
  
  Git Rebase
&lt;/h2&gt;

&lt;p&gt;The first thing to understand about &lt;code&gt;git rebase&lt;/code&gt; is that it's designed to integrate changes from one branch into another branch. Rebasing will take all of the commits you've made on your feature branch and move them on top of the master commits that other team members have made &lt;em&gt;while&lt;/em&gt; you were working in your branch. As a result, you'll have a nice clean tree, like so in the image, where &lt;code&gt;my_awesome_feature_branch&lt;/code&gt; is your branch after rebasing with the &lt;code&gt;master branch&lt;/code&gt;.&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%2Fi.imgur.com%2Fz6IseHF.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%2Fi.imgur.com%2Fz6IseHF.png" alt="A Clean Tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's HOW to Rebase
&lt;/h2&gt;

&lt;p&gt;Let's say that that you got assigned to work on a really awesome feature on a massive project. This project is called &lt;strong&gt;The Really Cool Project&lt;/strong&gt;. The first thing you'll always want to do is make sure that the &lt;code&gt;local master&lt;/code&gt; is in sync with your &lt;code&gt;remote master&lt;/code&gt; branch.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open up your terminal, go into the project folder, and on your local machine, you'd want to run
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your &lt;code&gt;local master&lt;/code&gt; branch should be up to date with the &lt;code&gt;remote master&lt;/code&gt;.&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%2Fi.imgur.com%2FTBRWI04.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%2Fi.imgur.com%2FTBRWI04.png" alt="Local and Remote Branches"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Next, you'll want to checkout into a new branch so that you can work on your feature without disrupting the &lt;code&gt;master&lt;/code&gt; branch. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run the following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b my_awesome_feature_branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you should be in your feature branch, ready to build that awesome feature for your project.&lt;/p&gt;

&lt;p&gt;You've decided that you want to add and style the title of this feature. So you make a commit within your branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "feature/add-title"
git push origin my-awesome-feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your local branch now looks like this&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%2Fi.imgur.com%2FfhvahEV.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%2Fi.imgur.com%2FfhvahEV.png" alt="Title Branch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After making your first commit, you continue to work in your feature in your branch, adding more code and making progress on this cool project. You make another commit so your branch now looks like:&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%2Fi.imgur.com%2FBntdYmH.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%2Fi.imgur.com%2FBntdYmH.png" alt="Content"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While you're working on your awesome feature, the rest of the team is working on some cool features too and they're merging their features to the &lt;code&gt;remote master&lt;/code&gt; branch. Your teammate built a cool NavBar and finished it in two days, so it got merged into the &lt;code&gt;remote master&lt;/code&gt;, while your other teammate built a cool Footer feature and it's also merged into the &lt;code&gt;master&lt;/code&gt; branch. The git tree now looks like&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%2Fi.imgur.com%2FCu410j2.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%2Fi.imgur.com%2FCu410j2.png" alt="NavBar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;remote master&lt;/code&gt; is not in sync with your &lt;code&gt;local master&lt;/code&gt; anymore. And your feature branch is now behind and doesn't have the latest changes made in the development environment. You add another commit to your branch and decide that you're ready to merge your feature with &lt;code&gt;master&lt;/code&gt;. &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%2Fi.imgur.com%2Fxxyj5OY.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%2Fi.imgur.com%2Fxxyj5OY.png" alt="Cool Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What you need to do now is &lt;code&gt;rebase&lt;/code&gt; so that your feature branch is in sync with the &lt;code&gt;remote master&lt;/code&gt; and that you're up-to-date with the latest changes to the master. This is the flow you'd want to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout master
git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I now have all of my teams changes on my local branch&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%2Fi.imgur.com%2FB4WKIba.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%2Fi.imgur.com%2FB4WKIba.png" alt="Git Pull"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Time to REBASE!
&lt;/h2&gt;

&lt;p&gt;So now I want to make sure that my feature branch will also be in sync with those changes so I'll check back out to it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout my-awesome-feature-branch
git rebase master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fi.imgur.com%2FcPwBB0P.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%2Fi.imgur.com%2FcPwBB0P.png" alt="Rebased"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What just happened is that your changes have been integrated with the latest &lt;code&gt;master&lt;/code&gt; branch. Assuming that you don't have any conflicts in your files, you're ready to merge into &lt;code&gt;master&lt;/code&gt;. If you DO have a conflict in your branch, git will let you know and you'll have to resolve those conflicts. Usually those happen when you and another developer worked on a feature that required you to make changes in the same file. &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%2Flh3.googleusercontent.com%2Fproxy%2FLNqtEE0-4Yel67VQBwq8NpRKQHQsPstubGXGGp3IZBYz70b7OopUIMpH0lXy-yMOYTadzqwsrb5DZzCxL4_heBcUp02o5b7VCM-gIpAs5Kmmzw_4frCg8UW5mQEcEU-2SVbxGMibqf1JRoqBKwvNqOvrLJxb8Ilxf-E" 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%2Flh3.googleusercontent.com%2Fproxy%2FLNqtEE0-4Yel67VQBwq8NpRKQHQsPstubGXGGp3IZBYz70b7OopUIMpH0lXy-yMOYTadzqwsrb5DZzCxL4_heBcUp02o5b7VCM-gIpAs5Kmmzw_4frCg8UW5mQEcEU-2SVbxGMibqf1JRoqBKwvNqOvrLJxb8Ilxf-E" alt="Meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow Up Reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/docs/git-rebase" rel="noopener noreferrer"&gt;Official Git Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>github</category>
    </item>
    <item>
      <title>From Digital Marketing to Front End Engineer in a Pandemic: Lessons Learned, Resources &amp; Tips</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Sat, 10 Apr 2021 23:42:07 +0000</pubDate>
      <link>https://forem.com/za-h-ra/from-digital-marketing-to-front-end-engineer-during-a-pandemic-lessons-learned-resources-tips-5c2i</link>
      <guid>https://forem.com/za-h-ra/from-digital-marketing-to-front-end-engineer-during-a-pandemic-lessons-learned-resources-tips-5c2i</guid>
      <description>&lt;p&gt;Like majority of the world last year, I was in a place of panic. My friends were being laid off and furloughed from their jobs, people around me unsure of their future and financial stability, the economy being in an unpredictable place. It was hard to imagine a world full of opportunities when everything was crashing and shutting down.&lt;/p&gt;

&lt;p&gt;I was working at a Marketing &amp;amp; Web Design agency at the time. I liked the team I was on but I wasn't passionate about the work. I knew that it wasn't for me in the long-term and I knew that I wanted to get into programming eventually. So &lt;em&gt;why the f&lt;/em&gt; was I panicking about losing this job? It was terrifying to not have a plan. &lt;/p&gt;

&lt;p&gt;I finally got the call, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"So Zahra, we're actually going to cut your salary and we think you'd do better in a sales position at the company and work on commission. You'll do well because you've maintained great relationships with our clients." &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;LOL WHAT. &lt;/p&gt;

&lt;p&gt;I was already unhappy with the career trajectory in marketing. It was hard to pivot into web design within that company (which was a dead end to me) and &lt;em&gt;they&lt;/em&gt; decided that cutting my salary to &lt;em&gt;less&lt;/em&gt; than what I was making when I started, to give me more work and more clients AND to add the pressure of commission while the world was falling apart was going to help me succeed. Absolutely not. &lt;/p&gt;

&lt;h1&gt;
  
  
  One Year Reflection
&lt;/h1&gt;

&lt;p&gt;In April 2020, I made the terrifying choice to quit my job without having another job offer to lean back on and attend a &lt;strong&gt;Full Stack Software Engineering Immersive Program&lt;/strong&gt; at &lt;a href="https://generalassemb.ly/?&amp;amp;topic=&amp;amp;mkt_account_id=1056949875&amp;amp;mkt_campaign_id=688004765&amp;amp;mkt_ad_group_id=34925049026&amp;amp;mkt_device_type=c&amp;amp;mkt_keyword=generalassembly&amp;amp;mkt_matchtype=e&amp;amp;mkt_placement=&amp;amp;mkt_ad_id=155457987543&amp;amp;mkt_network=g&amp;amp;mkt_target_id=kwd-48113138834&amp;amp;mkt_feed_item_id=&amp;amp;utm_source=google&amp;amp;utm_medium=paid-search-bra&amp;amp;utm_campaign=TS:TX:BRA:NYC:BR:GeneralAssembly&amp;amp;utm_content=campus-lead-lander&amp;amp;utm_term=generalassembly&amp;amp;gclid=Cj0KCQjwmcWDBhCOARIsALgJ2QekB7xEZ_u87y-HW2vYVqLNPbYs46cqWoViC5849TNGhugy0dHxKQEaArjuEALw_wcB" rel="noopener noreferrer"&gt;General Assembly&lt;/a&gt;. People's lives were falling apart and here I was — "lucky" to have a job during a pandemic — quitting it to pursue this other path. I could've taken to safe route, I could've stayed, I could've fell into the sales role that the company decided to throw me into, and I could've listened to my family and the people around me telling me, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Times are hard, you're taking a big risk quitting now, we don't know where the economy is headed, it's going to be impossible to find a job, just wait, do it later, wait and see."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I knew it wasn't going to be easy and I knew that I'd have to commit 100%. There were a lot of unknowns and uncertainty around what would happen &lt;em&gt;after&lt;/em&gt; the bootcamp. But what made the decision easier was that I wasn't going into the career switch blind. I had started self-teaching myself to code here and there in 2016 after graduating college. I wanted to attend a bootcamp then but I couldn't afford it at the time. And The fact that we were all in lockdown seemed like the perfect opportunity to make the most of it.&lt;/p&gt;

&lt;h1&gt;
  
  
  How I Got Started Learning to Code 👩🏽‍💻
&lt;/h1&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%2Fmedia2.giphy.com%2Fmedia%2FRbDKaczqWovIugyJmW%2Fgiphy.gif%3Fcid%3Decf05e47wgr1urxr1iscdi6mliv9m08ixttpv2wk3b7sblly%26rid%3Dgiphy.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%2Fmedia2.giphy.com%2Fmedia%2FRbDKaczqWovIugyJmW%2Fgiphy.gif%3Fcid%3Decf05e47wgr1urxr1iscdi6mliv9m08ixttpv2wk3b7sblly%26rid%3Dgiphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my final semester of college, I took a computer ethics course. This course wasn't exactly about programming but there was a lot of interesting information we learned about gaming, ethics of creating a program, HOW to create programs, etc. The professor casually mentioned &lt;a href="https://teamtreehouse.com/" rel="noopener noreferrer"&gt;Treehouse&lt;/a&gt; and how we can build our own things. I didn't think much of it at the time.&lt;/p&gt;

&lt;p&gt;In the summer of 2016 (a few short months after graduating college), I went to a music festival in New York City. There was a massive focus around tech, from incredible sound systems to art. They had a lab full of immersive art installations that were focused on design &amp;amp; technology. I was fascinated and hooked. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to make &lt;em&gt;that&lt;/em&gt;." 😍 &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I started looking into how technology could be combined with art. I found SO many resources on &lt;strong&gt;creative coding&lt;/strong&gt;, &lt;strong&gt;Arduino&lt;/strong&gt;, &lt;strong&gt;Raspberry Pi&lt;/strong&gt;, &lt;strong&gt;Processing.js&lt;/strong&gt;, &lt;strong&gt;JavaScript&lt;/strong&gt;. As I dug deeper, I learned that JavaScript was the most universally used programming language. It can be used to build desktop applications, mobile apps, web apps, VR apps, robots, etc. A world full of possibilities and creation opened up for me and my mind went back to thinking about that Computer Ethics course from college. &lt;/p&gt;

&lt;p&gt;I wasn't sure I was going to actually &lt;em&gt;like&lt;/em&gt; coding so I started with the free resources available to me instead of paying for Treehouse: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Flatiron School's Bootcamp Prep JavaScript Course &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I didn't finish freeCodeCamp, but I did finish the bootcamp prep course and shortly after, purchased &lt;a href="https://www.udemy.com/course/the-web-developer-bootcamp/" rel="noopener noreferrer"&gt;Colt Steele's The Web Developer Bootcamp&lt;/a&gt; on Udemy. There's so many other courses now, but at the time this was rated one of the best, so I bought it for like $10. &lt;/p&gt;

&lt;p&gt;Coding was HARD but I really enjoyed it and I loved creating.  I was working a different job at the time though so I wasn't super consistent with it. But as I was learning the Fundamentals of Web Development through Udemy, I also learned to create CSS animations. This was a way for me to have fun with programming while learning some of the hard stuff. This is the first CSS animation I created from scratch 🥺&lt;/p&gt;

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

&lt;p&gt;And then I fell off and stopped coding...because well...life got busy and I fell into another career path. And I needed a job. &lt;/p&gt;

&lt;h1&gt;
  
  
  How Did I Get Here? 🕒
&lt;/h1&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%2Fmedia2.giphy.com%2Fmedia%2FxTiQywlOn0gKyz0l56%2Fgiphy.gif%3Fcid%3Decf05e47jumk8ttp5dmkb43vjgqtk35sezoe9ang7jaw6o0o%26rid%3Dgiphy.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%2Fmedia2.giphy.com%2Fmedia%2FxTiQywlOn0gKyz0l56%2Fgiphy.gif%3Fcid%3Decf05e47jumk8ttp5dmkb43vjgqtk35sezoe9ang7jaw6o0o%26rid%3Dgiphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I didn't &lt;em&gt;completely&lt;/em&gt; stop coding. I would code here and there but I wasn't the best at time management so it was hard to stick to it with a full-time job. &lt;/p&gt;

&lt;h6&gt;
  
  
  (I have all respect for people who are able to make a career switch WITH a full-time job. 👏🏼)
&lt;/h6&gt;

&lt;h3&gt;
  
  
  The Timeline:
&lt;/h3&gt;

&lt;p&gt;November 2016 — Started self-teaching myself JavaScript.&lt;br&gt;
January 2017 – Attended tech meetups at Flatiron School.&lt;br&gt;
March 2017 — Learned about #100DaysOfCode and was exposed to a whole community of wonderful people.&lt;br&gt;
June 2017 — Was "kind of" coding but fell off to pursue a career in Event Marketing.&lt;br&gt;
July 2018 — Took a Creative Coding and Robotics course at &lt;a href="https://www.fitnyc.edu/" rel="noopener noreferrer"&gt;FIT&lt;/a&gt;. &lt;br&gt;
September 2018 — Applied to Flatiron School, got rejected from their in-person bootcamp but got accepted to their remote bootcamp. Didn't attend. Continued with current career.&lt;br&gt;
April 2019 — Applied to General Assembly. Got accepted but couldn't afford it/was too scared.&lt;br&gt;
May 2019 — Got a job in Digital Marketing at a Web Design Agency (in hopes I'd be able to learn Web Design).&lt;br&gt;
April 2020 — Quit that job.&lt;br&gt;
May 2020 — Attended General Assembly's Full Stack Immersive Program.&lt;br&gt;
August 2020 — Graduated General Assembly&lt;br&gt;
January 2021 — Landed my first job in tech as a Front End Engineer. 🎉🥂🤍✨&lt;/p&gt;

&lt;p&gt;As a result, my life has &lt;strong&gt;NOT&lt;/strong&gt; been a linear line upwards. It's been a rollercoaster. &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%2Fmedia2.giphy.com%2Fmedia%2Fl0MYLRryvpO6q5dFC%2Fgiphy.gif%3Fcid%3Decf05e47ay8kbohoyw3ym8a4wgp238z6x37pzg1md6mrtmgs%26rid%3Dgiphy.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%2Fmedia2.giphy.com%2Fmedia%2Fl0MYLRryvpO6q5dFC%2Fgiphy.gif%3Fcid%3Decf05e47ay8kbohoyw3ym8a4wgp238z6x37pzg1md6mrtmgs%26rid%3Dgiphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But I kept coming back to wanting to code, wanting to pursue a career in it, being able to visualize what that would look like — and it wasn't until I set my full focus on it that things started to come into fruition. &lt;/p&gt;

&lt;p&gt;There are two approaches to life:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can be active and control things and live your life how you want to, or&lt;/li&gt;
&lt;li&gt;You can play the oblivious card and just let things happen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And while I love the idea of the oblivious approach to life and still strike gold — the satisfaction you get when you realize, "I made &lt;em&gt;that&lt;/em&gt; happen, I &lt;strong&gt;DID&lt;/strong&gt; that" is much more rewarding. &lt;/p&gt;

&lt;h1&gt;
  
  
  So Here's What I've Learned
&lt;/h1&gt;

&lt;p&gt;I've made so many mistakes throughout this entire process — if I knew what I know now, my mental and emotional health would probably be in a better place 😭&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Compare yourself to yourself, and &lt;em&gt;only&lt;/em&gt; yourself
&lt;/h3&gt;

&lt;p&gt;If you're attending a bootcamp, you will encounter people who are on a completely different level of understanding than you are. Don't compare your progress, comprehension, what you get/don't get to someone else. You don't know them. You don't know their journey or why they're in a bootcamp. Instead, compare yourself to where you were on day one to where you are now. Your own growth is the only one that matters. Everyone's path is uniquely theirs. That applies if you're self-teaching yourself as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Focus on the design and aesthetic of your portfolio
&lt;/h3&gt;

&lt;p&gt;Tech recruiters don't know the difference between good and bad code. If your portfolio looks good, it'll be assumed that the code is good. Not saying to write bad code, but make sure to take a little bit of extra time to focus on the design of your portfolio. I'd use sites like &lt;a href="https://dribbble.com/" rel="noopener noreferrer"&gt;dribbble&lt;/a&gt;, &lt;a href="https://www.siteinspire.com/" rel="noopener noreferrer"&gt;siteinspire&lt;/a&gt;, &lt;a href="https://www.awwwards.com/" rel="noopener noreferrer"&gt;awwwards&lt;/a&gt;, &lt;a href="https://thegallery.io/" rel="noopener noreferrer"&gt;the gallery&lt;/a&gt; and &lt;a href="https://www.pinterest.com/" rel="noopener noreferrer"&gt;Pinterest&lt;/a&gt; for inspiration. You can also take small parts of websites you already really like and build them into your portfolio, frankenstein a beautiful site of your own. &lt;/p&gt;

&lt;h3&gt;
  
  
  3. Let go of the distractions
&lt;/h3&gt;

&lt;p&gt;When you're learning to program and especially when you're making a career switch, you're going to need to learn to be selfish with your time. Anything or anyone that's taking your attention away from that and isn't serving you in a positive way does not belong in your life. It'll cause you unnecessary distress and you don't need more of that. &lt;/p&gt;

&lt;h3&gt;
  
  
  4. Find a Community
&lt;/h3&gt;

&lt;p&gt;In a pandemic, it's hard (and impossible) to find an in-person community. So make a Twitter account and be active with your social presence. There are so many amazing ones such as the #DEVCommunity, #100DaysOfCode, #CodeNewbie, #WebDev, #WomenWhoCode, to name a few. You can also get active on slack channels. I used &lt;strong&gt;Ladies Get Paid&lt;/strong&gt;, &lt;strong&gt;Tech Ladies&lt;/strong&gt;, &lt;strong&gt;Remote Women&lt;/strong&gt;, &lt;strong&gt;Built by Girls&lt;/strong&gt;, &lt;strong&gt;WWWCode&lt;/strong&gt;. These were great for job searching as well.&lt;/p&gt;

&lt;p&gt;It'll be helpful and beneficial to surround yourself with people who are going through the same things as you. These people are there to encourage and support you, as you are for them. It's extremely valuable to be around people who "get it."&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Build your soft skills
&lt;/h3&gt;

&lt;p&gt;It's really hard to network when we can't do it in-person. Here's what I did: &lt;/p&gt;

&lt;p&gt;I made an account on &lt;a href="https://lunchclub.com/" rel="noopener noreferrer"&gt;LunchClub&lt;/a&gt; — they connect you with other professionals so that you can network virtually. Everything is currently remote - your job, the bootcamp, networking events, meetups, etc. So I wanted to practice being able to hold a conversation with people virtually. To learn to ask the right questions and break through the awkwardness we all feel. It's a valuable skill for interviewing AND genuinely connecting with someone and having a conversation. Making friends, potentially, too. I know I like to get to know people I'm working with outside of the normal day-to-day job conversations, so it gave me the foundation to get to know my current teammates as well. &lt;/p&gt;

&lt;h3&gt;
  
  
  6. Know your WHY
&lt;/h3&gt;

&lt;p&gt;You started programming for a reason. Whether you want to switch careers or make your current job more efficient, you must have a strong &lt;strong&gt;WHY&lt;/strong&gt; because coding is not easy. You will get upset, frustrated, discouraged and have moments where you feel like the dumbest person in the room. It's important to remind yourself of why you started in the first place. That'll help you keep going in moments of defeat. &lt;/p&gt;

&lt;h3&gt;
  
  
  7. Ask for technical assessments even if you get told that the role you applied for isn't for juniors
&lt;/h3&gt;

&lt;p&gt;The job search process is ROUGH. Especially landing your first job. No one will tell you that landing the first role sometimes depends on luck (positioning yourself in the right place at the right time) and someone deciding that they will take a chance on you. However, when I was job hunting, I would see roles posted in Slack Channels and I would connect with the job poster and they'd tell me, "&lt;em&gt;We're not hiring juniors right now.&lt;/em&gt;" Instead of being like "&lt;em&gt;Oh ok, thanks.&lt;/em&gt;" I would ask them to take their technical assessments anyway. Most recruiters are open to sending them to you. You want exposure and practice. Especially if you're new, you're not going to know what to expect from a technical assessment. Also, what if you complete that technical assessment, send it back, and that company decides "&lt;em&gt;Well shit, this person I thought was a junior can do the job&lt;/em&gt;" 😉 This also helps you build connections for future opportunities as well. &lt;/p&gt;

&lt;h3&gt;
  
  
  8. Have a CLEAR vision of what you want your career to look like and don't let people sway you
&lt;/h3&gt;

&lt;p&gt;I have a background in Marketing. The recruiters that I worked with told me that because of my background, it's more likely I'd land a role as a "Marketing Developer" or in "Email Marketing" and BASED ON THE STATS, &lt;em&gt;very unlikely&lt;/em&gt; that I'd land an engineering role as my first job out of a bootcamp. &lt;/p&gt;

&lt;p&gt;I knew that I wanted to work in frontend. So I didn't listen. DO NOT let people sway you. I've seen people land intermediate level engineering roles from self-teaching themselves and switching careers WITHOUT a degree in computer science, WITHOUT bootcamp experience. It's not impossible to get what you want. &lt;/p&gt;

&lt;h3&gt;
  
  
  9. Do not neglect yourself, your mental health or your emotional wellness
&lt;/h3&gt;

&lt;p&gt;When you're learning to code, you want to know how &lt;strong&gt;everything&lt;/strong&gt; works. There's so much information overload. Do you apply to jobs? Do you build projects? Do you study algorithms for interviews? Do you follow along tutorials to retain information after a bootcamp? It's overwhelming but taking care of your mind and body is what makes productivity possible. Making sure that you're sleeping, exercising, journaling, eating healthy is essential to your well-being. &lt;/p&gt;

&lt;p&gt;I made the mistake of neglecting myself and my needs — physically, emotionally, mentally — and focusing my energy on things that are irrelevant to my life now. I wasn't sleeping well, eating well, my mind was a mess and I was anxious all the time. As a result - as soon as I signed the job offer, I crashed.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. CELEBRATE 👏🏼 YOUR 👏🏼 MILESTONES 👏🏼
&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%2Fmedia3.giphy.com%2Fmedia%2FlMameLIF8voLu8HxWV%2Fgiphy.gif%3Fcid%3Decf05e47yesix6vwdmf011sjf9ybu8rgzefsnf7c8bew7i2a%26rid%3Dgiphy.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%2Fmedia3.giphy.com%2Fmedia%2FlMameLIF8voLu8HxWV%2Fgiphy.gif%3Fcid%3Decf05e47yesix6vwdmf011sjf9ybu8rgzefsnf7c8bew7i2a%26rid%3Dgiphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure you celebrate yourself and surround yourself with people who celebrate your milestones. Completing a bootcamp is a MASSIVE win! Be proud of yourself and celebrate it. Landing your first interview is a win! Getting a first technical assessment is a win 👏🏼 Failing your first technical assessment is ALSO a win because you LEARNED. And when you land that first role, celebrate HARD. And keep track of these milestones and wins somewhere so when you're having a shitty day and you're discouraged, you can look back at what you've accomplished. Switching careers and learning to code is f-ing hard and not many people have the guts to even get started. You deserve to be celebrated. ✨&lt;/p&gt;

&lt;h1&gt;
  
  
  How I Landed My Job &amp;amp; How That's Going 💙
&lt;/h1&gt;

&lt;p&gt;I landed my first role in tech through Twitter. I connected with an awesome person who put me in the interview pool for the company. I can't say that this is a massively unique story. A lot of it had to do with luck. However, I wouldn't have learned about the company or their interview process otherwise. &lt;/p&gt;

&lt;p&gt;Having a social presence and being involved in the community is SO SO important. My life has changed for the better by being active on Twitter. The people I've met, the friendships I've made and the knowledge I've gained and will continuing gaining are invaluable. Most of the interviews I landed were from connecting with people on Twitter.&lt;/p&gt;

&lt;p&gt;I'm a &lt;strong&gt;Front End Engineer&lt;/strong&gt; at &lt;a href="https://blockfi.com/" rel="noopener noreferrer"&gt;BlockFi&lt;/a&gt; and it's the best team I've worked on. You want to work on a team that's supportive of your growth, open to asking and answering questions, don't think that anything is too dumb to ask, listens to your needs, and is encouraging. That's exactly what I got and I'm excited to see how that will progress and how I can contribute my skills further to the team. I'm just so happy I get to code for a living and learn and grow in this field. 🥺 💙 &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find something &lt;strong&gt;YOU&lt;/strong&gt; love and not what someone tells you to do/love. Something that finds its away into your every passing thought. Grip onto that and don't ever let it go because what you have is a love for something that not many people seem to find, and a dream that you could very well make into a reality. If I can do it, so can you.&lt;/p&gt;
&lt;/blockquote&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%2Fmedia0.giphy.com%2Fmedia%2F42D3CxaINsAFemFuId%2Fgiphy.gif%3Fcid%3Decf05e47a2d97bpslso4ezirt82dudjhfc7w12bgcfd9v19m%26rid%3Dgiphy.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%2Fmedia0.giphy.com%2Fmedia%2F42D3CxaINsAFemFuId%2Fgiphy.gif%3Fcid%3Decf05e47a2d97bpslso4ezirt82dudjhfc7w12bgcfd9v19m%26rid%3Dgiphy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>motivation</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>52 Virtual Cups of Coffee: A Developers Journey for Navigating Uncertainties</title>
      <dc:creator>Zahra Khan</dc:creator>
      <pubDate>Thu, 10 Dec 2020 00:52:00 +0000</pubDate>
      <link>https://forem.com/za-h-ra/52-virtual-cups-of-coffee-a-developers-journey-for-navigating-uncertainties-2j01</link>
      <guid>https://forem.com/za-h-ra/52-virtual-cups-of-coffee-a-developers-journey-for-navigating-uncertainties-2j01</guid>
      <description>&lt;p&gt;I have been trying to work out life's riddle for the past &lt;strong&gt;8 months&lt;/strong&gt;. After having a conversation with my roommate on how lost and clueless I felt in my job search, she recommended that I read the book &lt;a href="https://www.amazon.com/Cups-Coffee-insightful-navigating-uncertainties/dp/150060206X"&gt;52 Cups of Coffee&lt;/a&gt;. The book is about a girl who embarked on an experiment to having 1 cup of coffee each week for a year with someone she wouldn't normally meet. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Who you are in five years depends on the people you meet and the books you read."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This quote was on the first page of the book. I started pondering on it and realized how much I resonated with it. It's true, you are made up of the people you surround yourself with and the words you consume. Parts of who I am are made up of the inspiring people I've met in my life. My perspective in life has broadened because of the books I've had the opportunity to read. &lt;/p&gt;

&lt;h2&gt;
  
  
  My background 👩🏽‍💻
&lt;/h2&gt;

&lt;p&gt;I am a &lt;strong&gt;Software Engineer&lt;/strong&gt; looking for my first role in the tech industry! Earlier this year, I saw an opportunity to leave a career path that I was deeply unhappy in to finally pursue Software Engineering. I've been thinking about this path since 2017 when I went to a music festival in New York City and got to experience interactive art, sound systems and robots all created with code. I didn't have the guts to do anything about it then. &lt;/p&gt;

&lt;p&gt;In May 2020, I got accepted to General Assembly's Full Stack Software Engineering Immersive Program. Since then, I've been committed to putting my 100% into making this career-transition. And in the future, I'd like to get into &lt;strong&gt;robotics&lt;/strong&gt; and &lt;strong&gt;hardware&lt;/strong&gt; or just something extremely cool with AI and machine learning. &lt;/p&gt;

&lt;p&gt;Prior to this, I was working in Events &amp;amp; Digital Marketing and acquired a very heavy client-facing background. This is where I've developed a lot of my soft skills in working with people and being around different personalities. I love people and collaboration so I'll never turn away an opportunity to talk to others. &lt;/p&gt;

&lt;h2&gt;
  
  
  This Project ☕️
&lt;/h2&gt;

&lt;p&gt;As I was reading "52 Cups of Coffee," I decided that I want to have a (virtual) cup of coffee with someone too and pick their brains about what they're up to in life. I'm inspired by all kinds of people doing all kinds of interesting and cool things, so this wouldn't be restricted to &lt;em&gt;just&lt;/em&gt; engineers. I want to get to know entrepreneurs, creators, people who are on untraditional paths to doing amazing things and learn to ask good, insightful questions.&lt;/p&gt;

&lt;p&gt;But &lt;em&gt;HOW&lt;/em&gt;? We're in a pandemic! &lt;em&gt;How do I message people I want to talk to — who are probably getting other messages from other people — and ask to have a zoom coffee meeting with them? How do I ask without the conversation sounding so transactional?&lt;/em&gt; I could use LinkedIn, Twitter, maybe Instagram? &lt;/p&gt;

&lt;p&gt;I've absolutely made genuine connections on &lt;a href="https://twitter.com/zahrakhadijha"&gt;Twitter&lt;/a&gt;. I think the tech community is supportive and wonderful and I learn new things all the time. And I've also had some luck on LinkedIn. But I wanted to branch out and I wanted to have genuine conversations with different kinds of people to gain perspective and navigate my own uncertainties. I decided to join LunchClub. &lt;/p&gt;

&lt;p&gt;I have my first video call with a founder of a sparkling wine brand on Friday at 9 a.m. I'm going in with the expectation that I will learn something from the choices he's made in his life and take them along with me on my own journey. &lt;/p&gt;

&lt;p&gt;I'm excited, I'm going to jot down questions to ask 🤗 So until next week...we'll see what happens!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>career</category>
    </item>
  </channel>
</rss>
