<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shakhor Smith</title>
    <description>The latest articles on DEV Community by Shakhor Smith (@smithmanny).</description>
    <link>https://dev.to/smithmanny</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%2F61326%2F6134bd15-39cd-4b03-9a3c-8f5c016e3a96.png</url>
      <title>DEV Community: Shakhor Smith</title>
      <link>https://dev.to/smithmanny</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/smithmanny"/>
    <language>en</language>
    <item>
      <title>Understanding hoisting in JavaScript</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Wed, 15 May 2019 01:13:01 +0000</pubDate>
      <link>https://dev.to/smithmanny/understanding-hoisting-in-javascript-198g</link>
      <guid>https://dev.to/smithmanny/understanding-hoisting-in-javascript-198g</guid>
      <description>&lt;p&gt;One problem new JavaScript developers face is understanding that variables and functions are “hoisted”. While some developers intend for hoisting to happen, others are faced with unexpected results and don’t understand why. &lt;/p&gt;

&lt;p&gt;First, what is hoisting? &lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Outputs: undefined
console.log(car);
var car = 'Audi';
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Hoisting by definition is to “raise or lift” and that’s exactly what JavaScript does when it runs our code. For example, JavaScript would have read our code snippet above as:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var car;

// Outputs: undefined
console.log(car);

// JavaScript sets our car variable afterwards
car = 'Audi';
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;As you can see our variable car is declared at the top of our file with a value set to “undefined”. Then once JavaScript gets to our variable it will reassign that variable to what we passed it.  &lt;/p&gt;

&lt;p&gt;You might be asking yourself, what about functions? Functions are hoisted as well, but with a catch. Unlike variables, functions actually hoist the whole function definition, but only if it’s a function declaration.  For function expressions, the variable itself is hoisted, but the actual function definition is not. &lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Outputs: 'slyderz.co'
someFunc() 

function someFunc() {
    return 'slyderz.co'
}


// Outputs: site is undefined
site();

var site = function someFunc() {
    return 'slyderz.co'
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;That's all for now 😄. &lt;br&gt;
You can find me on Twitter/IG: &lt;a class="comment-mentioned-user" href="https://dev.to/smithmanny"&gt;@smithmanny&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>es6</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Landing Your First Developer Job</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Mon, 29 Apr 2019 06:21:42 +0000</pubDate>
      <link>https://dev.to/smithmanny/landing-your-first-developer-job-17pj</link>
      <guid>https://dev.to/smithmanny/landing-your-first-developer-job-17pj</guid>
      <description>&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F82827bnou7eq30j5lzef.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F82827bnou7eq30j5lzef.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With technology taking over and creating thousands of jobs, a lot of people still need help landing their first developer job. While none of this will guarantee you a job in 4 months, it will help push you in the right direction to finally transitioning into tech. &lt;/p&gt;

&lt;h2&gt;
  
  
  Study
&lt;/h2&gt;

&lt;p&gt;Ok, so the first one might be a little obvious, but I still see this happening a lot. Some people are trying to land their first developer job straight out of school or a boot camp, while others are trying to transition from one field to another. While you might have 10 years of customer service experience looks good on a resume, it’s not going to be enough by itself. &lt;/p&gt;

&lt;p&gt;Depending on what job title you’ll like to have inside of coding (It’s more than making websites) you will have to have some sort of coding experience. For me being a Full Stack Web Developer I chose to study with Team Treehouse. Team Treehouse covers multiple topics from data analytics to web developer and has even helped me land my first developer job in 4 months. Of course, that will not happen for everybody, but it is going to put you above other candidates along with your own personal brand. &lt;/p&gt;

&lt;h2&gt;
  
  
  Branding
&lt;/h2&gt;

&lt;p&gt;I can’t stress enough how my brand and my online presence has helped me in my career. I’m going to break this topic into smaller sections because there is so much you can do to help your personal brand. &lt;/p&gt;

&lt;h4&gt;
  
  
  •    Portfolio
&lt;/h4&gt;

&lt;p&gt;A portfolio is one of the easiest things someone can put up to show off their skills. Whether you design websites, build OSS, or even a security expert, employers love being able to land on your site and see who you are and your projects. Here are some things I personally think everyone should include in their portfolio:&lt;br&gt;
• Your name and desired job title&lt;br&gt;
• A short introduction and an about me section&lt;br&gt;
• Projects (Your best 3 projects)&lt;br&gt;
• Contact section&lt;/p&gt;

&lt;h4&gt;
  
  
  •    Projects
&lt;/h4&gt;

&lt;p&gt;Having a section on your portfolio website or even a YouTube channel for your projects is a great way to let your skills speak for themselves. Instead of jumping from one course to another, try expanding the project you’ve just built. &lt;/p&gt;

&lt;h2&gt;
  
  
  Networking
&lt;/h2&gt;

&lt;p&gt;My last advice for landing your first developer job is networking. There are plenty of ways you can network. If you haven’t guessed already social media is a great place to network and meet new people. Being that I’m a POC who works in technology, I myself have joined #BlackTechTwitter and have been able to connect and meet with a lot of great individuals. I also have joined many meetups on the app Meetups which include plenty of free workshops available to the public. &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>developer</category>
    </item>
    <item>
      <title>Website Redesign V2</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Fri, 23 Nov 2018 06:35:34 +0000</pubDate>
      <link>https://dev.to/smithmanny/website-redesign-v2-3ah9</link>
      <guid>https://dev.to/smithmanny/website-redesign-v2-3ah9</guid>
      <description>&lt;p&gt;With 2018 coming to an end soon I was able to release V2 of my website over Thanksgiving holiday. Coincidentally this is also my second year as a developer so I'll be able to keep these releases in sync with my years of experience. What’s new? Everything! V2 was completely redesigned from the ground up with a little design inspiration from &lt;a href="https://www.taniarascia.com/" rel="noopener noreferrer"&gt;Tania Rascia&lt;/a&gt;. I switched from using create-react-app to Gatsby. The reason for this switch was to keep my blog on Github via Markdown files and also take advantage of Gatsby blazing fast speed with SSR. As you can see from the results below I was able to increase each area on the lighthouse test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ybegwijdz545t4f4h95.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ybegwijdz545t4f4h95.png" alt="" width="713" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nxnat0boe7tibhalehd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nxnat0boe7tibhalehd.png" alt="" width="711" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this version release of my website, I wanted to switch the focus from learning more about me to more about programming by putting the blog posts front and center. With this change, people would immediately be focused on my new blog posts and are able to learn something new within the first few seconds of visiting my website. &lt;/p&gt;

&lt;p&gt;Another slight change I made was the color scheme. I still am not completely satisfied with my color scheme, but I wanted to go for a Miami Dolphins theme. I originally planned on releasing this site with the option of choosing between a light and dark theme, but because of a bug with styled-components and Gatsby, I postponed this feature until further notice. Curious as to what else I used to build this site? Well let’s see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gatsby&lt;/li&gt;
&lt;li&gt;Hosting &amp;amp; DNS: Netlify&lt;/li&gt;
&lt;li&gt;CSS: styled-components&lt;/li&gt;
&lt;li&gt;Analytics: Google Analytics (looking for free alternatives 🤔)&lt;/li&gt;
&lt;li&gt;Blog: Markdown files hosted on Github &lt;/li&gt;
&lt;li&gt;Icons: Font Awesome&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gatsby</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Deploy Your React App To Heroku</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Fri, 23 Mar 2018 19:27:22 +0000</pubDate>
      <link>https://dev.to/smithmanny/deploy-your-react-app-to-heroku-2b6f</link>
      <guid>https://dev.to/smithmanny/deploy-your-react-app-to-heroku-2b6f</guid>
      <description>&lt;p&gt;Before you jump into this tutorial you do need to have a few things installed first before you can start.&lt;/p&gt;

&lt;p&gt;🚨If your goal is to combine React UI + API (Node, Ruby, Python…) into a single app, then this tutorial is not the answer. &lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;Node / NPM&lt;/a&gt; — Click the link and download the installer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Git&lt;/a&gt; — Click the link and download the installer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://devcenter.heroku.com/articles/heroku-cli" rel="noopener noreferrer"&gt;Heroku CLI&lt;/a&gt; — Click the link and download the installer&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Sign up for &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Setup our React App for deployment&lt;/li&gt;
&lt;li&gt;Create Heroku git repository&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Step 1 — Sign up For Heroku
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Visit &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt; for free hosting
&lt;/h3&gt;

&lt;p&gt;This step explains itself, we need to sign up for Heroku before we can do any deployment. So head over to Heroku and sign up. Once you signed up make sure you head over to your email and confirm your account.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2 — Setup React App
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsc5qb51f2p0q9iz9qu8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsc5qb51f2p0q9iz9qu8w.png" alt="package.json • Before" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open up your React app (I’m using create-react-app) and open up your package.json file. If your using create-react-app we’re going to add a new object called engines. Inside of our engines object, we need to specify the versions for npm and node. To do this open up your terminal and type in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm -v&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Press enter&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;node -v&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Press enter&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Your versions may be different than mine, but that's fine. Once you specified your engine versions save your file.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3 — Create Heroku Git Repository
&lt;/h1&gt;

&lt;p&gt;With your terminal still open navigate to your React app folder and change directory into it. Now we need to connect our project to Heroku. If you haven’t already installed the Heroku CLI. To make sure it’s installed correctly run this command:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;heroku --version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should see your Heroku CLI version. Once that is installed we need to setup up Heroku git repository by running these commands:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;heroku login (Enter your Heroku credentials)&lt;/li&gt;
&lt;li&gt;git init&lt;/li&gt;
&lt;li&gt;git add .&lt;/li&gt;
&lt;li&gt;git commit -m “initial commit”&lt;/li&gt;
&lt;li&gt;heroku create (You should see two links after running this command. Copy the second one)&lt;/li&gt;
&lt;li&gt;git remote add heroku &lt;em&gt;PASTE THE LINK YOU JUST COPIED&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;git push heroku master&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you run the last command Heroku will start to run some tests on your app. If everything goes right you should see a successful deploy message. Now you’re able to navigate to your app by running:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;heroku open&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anytime you make changes to your app and want to re-deploy the only commands you need to run are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git add .&lt;/li&gt;
&lt;li&gt;git commit -m “any message goes here”&lt;/li&gt;
&lt;li&gt;git push heroku master&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Easier Method 😁
&lt;/h1&gt;

&lt;p&gt;Now that I made you go through all of that process, there is an easier method if you use Github. All you have to do is log into your Heroku account; click “new” then “create new app” and give your app a name. After clicking create you should be greeted with a dashboard for the app you just created. Navigate to the deploy tab and sync your Github account with Heroku. After syncing your Github account and can search for the repository you want to sync with Heroku by scrolling down to “App connected to Github” section and searching for the repository you want to sync. You can also set up automatic deployment, so every time you push to the master branch Heroku will rebuild your app for you.&lt;/p&gt;

&lt;p&gt;Enjoy your free hosting!&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me on social media:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://goo.gl/EyDP5g" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/LQKCHR" rel="noopener noreferrer"&gt;Instagram | Personal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/mZ6BTF" rel="noopener noreferrer"&gt;Instagram | Developer&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/6KbPo4" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/xfL36D" rel="noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>code</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Make A Blog With React &amp; GraphQL</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Mon, 19 Mar 2018 01:26:43 +0000</pubDate>
      <link>https://dev.to/smithmanny/how-to-make-a-blog-with-react--graphql-2f9i</link>
      <guid>https://dev.to/smithmanny/how-to-make-a-blog-with-react--graphql-2f9i</guid>
      <description>&lt;p&gt;After hearing all the hype about GraphQL and why developers should start learning it, I finally decided to do some research. I’m not going to go into to much detail, but GraphQL is a query language for your API. If you want to read more about it visit the official link here. So after reading, I came across a headless-cms that uses GraphQL instead of Rest and thought this would be the best chance for me to really try it out. We’re going to build a blog with GrapgQL!&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create-react-app&lt;/li&gt;
&lt;li&gt;GraphCMS account (Free)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Step 1 — Setup GraphCMS:
&lt;/h1&gt;

&lt;p&gt;Before we start doing any coding, you need to sign up for a free &lt;a href="https://graphcms.com"&gt;GraphCMS account&lt;/a&gt;. We will be using GraphCMS to handle our backend for us. After signing up we’re going to make a new project. Click on that project and you’ll be greeted with the dashboard page. Don’t worry about everything right now, the first thing we need to do is setup a new model. Click “Models” on the side nav bar, then click “Add Content Model” at the top of the page. The only field we need to worry about is display name. Enter “Post” as the display name and the API ID should autofill itself; once your done click save.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding Fields:
&lt;/h3&gt;

&lt;p&gt;You should now see a new button that says “Add Field” under your Post Model. We’re going to add four fields to make a basic blog: Image, Title, Description, and Slug.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding Image:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click “Add Field”&lt;/li&gt;
&lt;li&gt;Click “Asset” then “Asset Grid”&lt;/li&gt;
&lt;li&gt;Give it the name “Image”&lt;/li&gt;
&lt;li&gt;Click next then save&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Adding Title:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click “Add Field”&lt;/li&gt;
&lt;li&gt;Click “Text” then “Single Line”&lt;/li&gt;
&lt;li&gt;Give it the name “Title”&lt;/li&gt;
&lt;li&gt;Click next then save&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Adding Description:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click “Add Field”&lt;/li&gt;
&lt;li&gt;Click “Text” then “Rich Text”&lt;/li&gt;
&lt;li&gt;Give it the name “Description”&lt;/li&gt;
&lt;li&gt;Click next then save&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Adding Slug:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click “Add Field”&lt;/li&gt;
&lt;li&gt;Click “Text” then “Slug”&lt;/li&gt;
&lt;li&gt;Give it the name “Slug”&lt;/li&gt;
&lt;li&gt;Click next then save&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Giving API access:
&lt;/h3&gt;

&lt;p&gt;Once we’re finished with our model, we need to give our API access to read our fields. Still, inside your Models view go to Post and click on “R”. Make sure “R” is clicked for every field and that “connect” is selected for Image. Make sure to do the same for Asset as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Dummy Data:
&lt;/h3&gt;

&lt;p&gt;The last step for us inside of our GraphQL is to create some dummy data to show on our front-end. Click on Content then Post on the left side nav bar. You should see a plus icon on the top left. Click it and fill in the data. For the Slug field you can just put in the Title name with dashes instead of spaces (This is a test = This-is-a-test).&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2 — Create New React Project:
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;If you do not have creact-react-app installed run this command&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;npm i -g create-react-app&lt;/p&gt;

&lt;p&gt;Now we can finally code our blog. I did not design this blog to be amazing, so the design is bad, but it gets the job done.&lt;/p&gt;

&lt;p&gt;Navigate to where you want to store this project and create a new react project. I’m using create-react-app and I like to keep my projects inside a folder called projects(makes sense). I’m going to call this project “blog”. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open up your terminal and type:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;create-react-app blog&lt;/p&gt;

&lt;p&gt;then press enter and let create-react-app create our project for us.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once it’s finished you need to change directory into your project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;cd blog&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before we can run our App we need to install a few packages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;npm i react-router-dom react-apollo graphql-tag apollo-client apollo-link-http apollo-cache-inmemory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now we can finally start our App!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;npm start&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3 — Start Coding
&lt;/h1&gt;

&lt;p&gt;Now it’s time for the fun part, coding our React project! I’m trying to keep this project as simple as possible, so I’m just going to throw all of my files inside the root of my src folder. Usually, I’ll create a new folder for components, and etc, but we’re not doing that today because it’s a very small App.&lt;/p&gt;

&lt;p&gt;So with our project running, let's start creating our components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Index.js
&lt;/h3&gt;

&lt;p&gt;Open up your Index.js file inside your src folder and change it to this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;For the const variable API we need to get your GraphCMS API key. Head over back to GraphCMS website and login. Once logged in scroll down to settings. Inside your settings tab scroll down until you see Endpoints and copy your Simple Endpoint API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Header Component
&lt;/h3&gt;

&lt;p&gt;Inside your src folder create a new file called Header.js and paste this code:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  Landing Component
&lt;/h3&gt;

&lt;p&gt;Make a new file in src folder called Landing.js and paste this code, I’ll explain it later.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;That was a lot of code so let me explain it a little. We created a new component called Landing and imported a few packages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;react-router-dom (To use the Link to switch between our component views)&lt;/li&gt;
&lt;li&gt;react-apollo (Used to get our data from GraphCMS API)&lt;/li&gt;
&lt;li&gt;graphql-tag (Used to get our data from GraphCMS API)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The const variable allPosts is were we are calling to our database to get all of our posts and its fields (id, title, description, and slug) in the form of an array, then we’re passing that to our Landing.js data object. The if statement for loading is something that Apollo looks for. If the query is not finished “loading” is set to true and we return&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Once Apollo finishes with the query loading is set to false and then we render all of our blog posts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Post Component
&lt;/h3&gt;

&lt;p&gt;Our Post Component is going to be the same thing just a little different since we only want the post that we clicked on. How we handle this is from the Landing Component when we click on the “read more” button:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;If our slug was “first-post” the Link tag would navigate the user to localhost/post/first-post. This is important because later inside of out Post component we’re going to get the slug from the URL.&lt;/p&gt;

&lt;p&gt;Create a new file called Post.js and paste this code in:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Like I said before you can see that we are getting the slug params from the variables object. This code is basically saying we are only looking for a post that matches slug param from the URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Component
&lt;/h3&gt;

&lt;p&gt;Open up our App.js file and delete everything and paste this code. Don’t worry if you don’t know what this code is doing, it’s just setting up our routes for us. You can learn more here.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h1&gt;
  
  
  Step 4 — Styling our App (Sort of)
&lt;/h1&gt;

&lt;p&gt;This is something hopefully everybody knows if you’re reading this tutorial, if not stop and go learn the basics first…for real. Again to keep this tutorial simple I just posted everything inside my App.css file.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h1&gt;
  
  
  Enjoy your React and GraphQL blog!
&lt;/h1&gt;

&lt;p&gt;You can view the full code &lt;a href="https://github.com/smithmanny/React-Blog"&gt;here.&lt;/a&gt; (I probably will be updating this App later to make it look more appealing and structuring the code)&lt;/p&gt;

&lt;p&gt;Follow me on social media:&lt;br&gt;
&lt;a href="https://goo.gl/EyDP5g"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/LQKCHR"&gt;Instagram | Personal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/mZ6BTF"&gt;Instagram | Developer&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/6KbPo4"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/xfL36D"&gt;Youtube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>developer</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>How I Became A Web Developer in 4 Months</title>
      <dc:creator>Shakhor Smith</dc:creator>
      <pubDate>Sat, 17 Mar 2018 06:17:38 +0000</pubDate>
      <link>https://dev.to/smithmanny/how-i-became-a-web-developer-in-4-months-2h81</link>
      <guid>https://dev.to/smithmanny/how-i-became-a-web-developer-in-4-months-2h81</guid>
      <description>&lt;p&gt;Just like the title says, I was able to land my first web developer position in only 4 months of studying. Well to be honest maybe a little more than 4 months. It all started back in my junior year of high school. I took my first computer class which was “HTML/CSS Introduction”. This was back in 2010 so I’m not sure if responsive design was already out, but I do know that we didn’t learn it. This class was just going over the basics of web development, we never built anything “amazing” just some plain simple websites with a little of styling. I loved the class, but unfortunately, I stopped programming after I completed the class.&lt;/p&gt;

&lt;p&gt;Fast forward to 2016 I was working at Publix warehouse as an order selector. Life was good, I was making decent money and had full benefits (This was my first serious job). Until they announced that they were relocating to Alabama. I didn’t see myself retiring as a warehouse worker anyway, so I let my managers know that I wouldn’t be relocating with them. We had until the end of December before the location transfer. Well fortunately for me I left in November and signed up Team Treehouse. It was actually awkward because when I left my job, I just randomly seen an ad for Front-End Web Development, so I signed up for the free 7-day trial.&lt;/p&gt;

&lt;p&gt;After completing my 7-day trial, I was hooked on web development again. So upgraded from the trial to the actual program. It was like I had an addiction, I couldn’t stop learning. Every day I was spending 3+ hours studying. Sometimes I would stay up all night completing courses, go to sleep for a few hours, wake up and do it all again.&lt;/p&gt;

&lt;p&gt;So from November 2016 to February 2017, I was able to complete Team Treehouse Front-End Developer Stack. Once I completed it, I felt confident enough to start working on some projects and my portfolio. I wish that I still have my first portfolio design to remind myself how far I came, but I didn’t know git at the time 🤦🏾‍. It was nothing special though, it was a basic portfolio page built with HTML5, CSS3, Bootstrap, and a single line of jQuery. And to be honest I was proud af for my accomplishment that I started applying for jobs. After sending multiple applications to companies through indeed, luckily I was able to land an interview for a small company.&lt;/p&gt;

&lt;p&gt;I still remember the day I got a call back for my first developer interview. I couldn’t believe it. Just three months ago I was a warehouse worker trying to figure out what I’m going to do with my life. Walking into the interview I was nervous. I couldn’t stop sweating, I started getting chills through my body, and I was sweating so much I felt like I starting smelling. I finally sat down with the manager of the office and we start the conversation about me. She wanted to get to know me better and what I knew and didn’t know. So I was honest with her, I mean she already knew because she viewed my resume. After telling her I was self-taught and just started, she ended up telling me more about the company and what my role would be. When we got through talking she introduced me to the IT manager and the CEO…did I just get the job?&lt;/p&gt;

&lt;p&gt;Well, come to find out the already had their mind set on hiring me because of my portfolio. They knew that I had just started and wanted someone that knew PHP, but because of my determination and how quickly I learned that offered me the position on the spot!&lt;/p&gt;

&lt;p&gt;So my advice to new developers out their who feel lost and think they are wasting their time, you’re not. Keep on studying and perfecting your craft, build some projects, setup a portfolio, and network. Just don’t give up because it will all be worth it in the end.&lt;/p&gt;

&lt;p&gt;Follow me on social media:&lt;br&gt;
&lt;a href="https://goo.gl/EyDP5g"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/LQKCHR"&gt;Personal Instagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/mZ6BTF"&gt;Developer Instagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://goo.gl/6KbPo4"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://youtu.be/VWtSpeIeLoA"&gt;Youtube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>javascript</category>
      <category>developer</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
