<?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: Avery Swafford</title>
    <description>The latest articles on DEV Community by Avery Swafford (@aswaff).</description>
    <link>https://dev.to/aswaff</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%2F515688%2F16ff86d2-1374-4e74-a1a2-f79c6fccd81d.jpeg</url>
      <title>DEV Community: Avery Swafford</title>
      <link>https://dev.to/aswaff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aswaff"/>
    <language>en</language>
    <item>
      <title>Don’t Give Up</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Sat, 03 Jul 2021 16:10:14 +0000</pubDate>
      <link>https://dev.to/aswaff/don-t-give-up-2hlp</link>
      <guid>https://dev.to/aswaff/don-t-give-up-2hlp</guid>
      <description>&lt;p&gt;You work 40+ hours a week. You have responsibilities outside of your regular work week. You have friends and family commitments to take care of. Then you have that web development thing that you never have quite enough time for.&lt;/p&gt;

&lt;p&gt;Sound familiar?&lt;/p&gt;

&lt;h2&gt;
  
  
  When your full-time job is not web development.
&lt;/h2&gt;

&lt;p&gt;Maybe you’re doing web development as a hobby, or maybe you are doing it in hopes to make a career change. Whatever reasons you have for doing/learning web dev, when you aren’t doing it full time, it can be very challenging. If you think web development has a steep learning curve, you are not alone. It takes time, commitment, practice and having projects on your own.&lt;/p&gt;

&lt;p&gt;The challenging part for us, is we have busy lives. Trying to fit web dev in somewhere is difficult. Its not that we lack passion for development, but life can sometimes just get in the way. &lt;/p&gt;

&lt;h2&gt;
  
  
  Yes, we’ve all stopped at some point, or maybe multiple points
&lt;/h2&gt;

&lt;p&gt;In the beginnings of your development journey, you’re excited, you can’t wait to get started and build the next great app/website. You watch tutorials, (which gets old eventually) maybe you follow a code along and build a site. You feel on top of the world. These feelings shift into more realistic expectations as we get into developing our own things, and better understand the development process. &lt;/p&gt;

&lt;p&gt;At some point between starting your development journey, and to where you are now, you’ve likely hit a stopping point. Maybe you stopped a few days, weeks, months, or even years. Maybe you’ve stopped several times, to later pick it up again.&lt;/p&gt;

&lt;p&gt;I think most of us have been there. Some of us may even be there now. In these times it feels like we should just give up, you may feel you will have relearn some topics, you may not know where to even begin again. The steep learning curve of web dev can start to overwhelm us.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Going
&lt;/h2&gt;

&lt;p&gt;I think we need to recognize that web dev is hard. It's even harder when you can't commit a full time schedule towards it. Accepting that, is a great step towards finding solutions for when we go through our slumps in the journey. &lt;/p&gt;

&lt;p&gt;Here are some things that I think can be a help for motivation, and the continued learning of development. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set Realistic Goals&lt;/strong&gt;&lt;br&gt;
Don't tell yourself you will spend 20+ hours a week on coding, if that's all the possible free time you have, its not sustainable. Set something that you feel confident you can adhere to, even if its less than 30 minutes a day (that is still 3 and half hours a week). Set some time aside for learning, and do your best to stick to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shorter Coding Sessions&lt;/strong&gt;&lt;br&gt;
We may feel obligated to spend all of time we have set aside for learning, for only coding. The problem with this I believe is we risk running into burnout. I think balance is really important.  Maybe instead of looking at code during your entire devoted time, take time to read up on the latest industry tech, blog or other things web dev related that you enjoy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Involved with a Community&lt;/strong&gt;&lt;br&gt;
I think this is a big one. When your working together with others, on a collective goal, it will motivate you to keep going. Its exciting to build something with a team. Also you can learn from other developers knowledge and style. Find a small community to join, whether it be in person, or online. Can't find one? Create a small study group of your own and invite other developers to join.&lt;/p&gt;




&lt;p&gt;The key takeaway from this hopefully, is don't get discouraged. Keep going, web development is rewarding, find the spark and remember the reasons that got you started. Find what motivates you, and stick with it.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>My Commitment to "Commit"</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Fri, 18 Dec 2020 12:41:11 +0000</pubDate>
      <link>https://dev.to/aswaff/my-commitment-to-commit-3b3p</link>
      <guid>https://dev.to/aswaff/my-commitment-to-commit-3b3p</guid>
      <description>&lt;p&gt;I had been coding on my project for hours, and it was starting to get late in the day. I decided it was time to finally come out of my office at home, and focus on other (non coding) things before the night was over. As I was getting ready for bed, the power randomly went out. When I say "randomly" there were no storms, no wind, just a completely random power outage. Thankfully, our power disruption was short lived, and we had our power back in less than 5 minutes. &lt;/p&gt;

&lt;p&gt;I began to think about my project I had coding on my desktop, which of course lost power. I remembered committing my code and pushing to GitHub before leaving my office, which was a relief to know that all of my work no matter what, was safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git May Not Feel Necessary for Us That Don’t Code Full Time
&lt;/h2&gt;

&lt;p&gt;I don’t code full time, as I’m sure many of you may not either. I’m not a part of a professional work project or team. So if I don’t use a remote repository or any form of version control on my projects, it doesn’t affect anyone else. When I first started to develop, I almost never used git or GitHub, unless I wanted to test with a site live. &lt;/p&gt;

&lt;p&gt;But guess what? This was a bad coding habit. I found myself coming back to projects I had worked on months prior that I had not used git, wondering where I had left off, or trying find my project in another directory location. &lt;/p&gt;

&lt;p&gt;It’s easy I think for beginners to think of git as just a team tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The importance of git
&lt;/h2&gt;

&lt;p&gt;The importance of git, and a remote repository can’t be stressed enough. Not only can local files be lost on a project, but also version control, collaboration and even personal motivation. &lt;/p&gt;

&lt;p&gt;What if you want to come back to a project later, or share with a developer friend, or even roll back to a previous code base you had? &lt;/p&gt;

&lt;p&gt;I think the importance of git isn’t only for teams and developers that do this for a living, but also developers that do this in their spare time.&lt;/p&gt;

&lt;h2&gt;
  
  
  My personal commitment
&lt;/h2&gt;

&lt;p&gt;One thing I love about GitHub is the contribution section in your profile overview. It shows all of your activity in your projects separated by day. This is a great way to see your progress, and to see days where you have accomplished a lot. &lt;/p&gt;

&lt;p&gt;I use GitHub as motivation to keep learning. I try to make at least a commit (and push) a day. Even if it’s Sunday at 9pm it’s just cleaning up a readme, it has to be something. It forces me daily to think about what I am going to work on, and gets me in front of code daily. This has helped me also in sticking to a development schedule.&lt;/p&gt;

&lt;p&gt;When we make a habit of coding, it helps us who are self-taught to keep learning and continually get better.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>git</category>
      <category>beginners</category>
      <category>github</category>
    </item>
    <item>
      <title>A dev.to component for your blog/portfolio</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Fri, 11 Dec 2020 00:09:06 +0000</pubDate>
      <link>https://dev.to/aswaff/a-dev-to-component-for-your-blog-portfolio-42c8</link>
      <guid>https://dev.to/aswaff/a-dev-to-component-for-your-blog-portfolio-42c8</guid>
      <description>&lt;p&gt;When I was working on my portfolio I had already decided to start blogging on dev.to. With the simplicity and community I prefer this platform for blogging. With this in mind, I wanted my portfolio to have all of my blog articles, which would be on dev.to. I wanted this to be done dynamically. &lt;/p&gt;

&lt;p&gt;I wanted a way to do with this without a rebuild of the site every time I posted a article. So I chose to make my component in the following way to fit my current wants and needs.&lt;/p&gt;

&lt;p&gt;You can see the blog live on my site &lt;a href="//aswaff.dev/blog"&gt;here&lt;/a&gt;.&lt;br&gt;
You can also see the source code for this component &lt;a href="https://github.com/aswaff/dev.to-Blog-Component"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This component was made for Gatsby, however with a few tweaks it could be used with most any framework.&lt;/p&gt;
&lt;h2&gt;
  
  
  Our Blog List component
&lt;/h2&gt;

&lt;p&gt;This will be for the list of the blog articles with a title, description, and some details about the blog post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState, useEffect } from 'react';
import { Router } from "@reach/router";
import { Link } from "gatsby";

import BlogTemplate from './blog.template';
import './blog.component.styles.css';

const axios = require('axios');

export default function Blog() {
    const [blogData, setBlogData] = useState(['']);

    useEffect(() =&amp;gt; {
        async function fetchData() {
            await axios.get("https://dev.to/api/articles?username=aswaff")
                .then(data =&amp;gt; setBlogData(data.data));

        } fetchData()
    }, []);


    const List = () =&amp;gt; {
        return( 
        blogData.map(article =&amp;gt;
            &amp;lt;div className="articlewrapper"&amp;gt;
                &amp;lt;Link to={`/blog/${article.slug}`} &amp;gt;&amp;lt;div className="articletitle"&amp;gt;{article.title}&amp;lt;/div&amp;gt;
                &amp;lt;div className="articledesc"&amp;gt;{article.description}&amp;lt;/div&amp;gt;
                &amp;lt;div className="article-details"&amp;gt;{article.readable_publish_date}|
                                                🤍{article.public_reactions_count}
                                                🗨 {article.comments_count}&amp;lt;/div&amp;gt;&amp;lt;/Link&amp;gt;


            &amp;lt;/div&amp;gt;)
        )}

    const Article = () =&amp;gt; {
        return(
            &amp;lt;BlogTemplate /&amp;gt;
        )}

     return (                  
            &amp;lt;Router basepath="/blog"&amp;gt;
                &amp;lt;List path="/" /&amp;gt;
                &amp;lt;Article path="/:article" /&amp;gt;
            &amp;lt;/Router&amp;gt;
        )           
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are importing react hooks, Reach/router, Link, our blog template and CSS styling. Next we setting our blogData hook, which will hold our data after the fetch is done from the dev.to api. &lt;/p&gt;

&lt;p&gt;After the initial render of the page, the fetch gets performed, so we set our blogData state.&lt;/p&gt;

&lt;p&gt;We run .map on blogData and we get back data from each &lt;a href="https://dev.to/api/articles?username=aswaff"&gt;individual article&lt;/a&gt;. So when we pass our blog data into our divs, each article gets mapped, creating a list for us.&lt;/p&gt;

&lt;p&gt;We have an Article function that returns our BlogTemplate we imported earlier, this is for our routing. Using &lt;a href="https://reach.tech/router/"&gt;Reach/router&lt;/a&gt;, we have "basepath" set for "/blog". &lt;/p&gt;

&lt;p&gt;When we go to "/blog", the List function is rendered with our blogData.map. "/:article" dynamically routes us to whatever is after /blog/. We have set the article slugs to be links in our List function, so if the article slug is: "do-something-wrong-4f9c" it gets placed as a link in our article list as "blog/do-something-wrong-4f9c" and Reach/router routes us to the function Article, which returns us our BlogTemplate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blog Template component
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState, useEffect } from 'react';
import './blog.template.styles.css'

const BlogTemplate = () =&amp;gt;  {
  const [articleData, setArticleData] = useState('');
  const articleLink = window.location.pathname.slice(6)

  useEffect(() =&amp;gt; {
    async function fetchArticleData() {
        await fetch(`https://dev.to/api/articles/aswaff/${articleLink}`)
            .then(response =&amp;gt; response.json())
            .then(data =&amp;gt; setArticleData(data))

    } fetchArticleData()
}, []);

  return (
    &amp;lt;div className="article-wrapper"&amp;gt;
        &amp;lt;div className="article-image"&amp;gt;&amp;lt;img src={articleData.cover_image} alt={articleData.name} /&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div className="article-title"&amp;gt;&amp;lt;h1&amp;gt;{articleData.title}&amp;lt;/h1&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div className="article-info"&amp;gt;
          &amp;lt;img className="article-profile-pic" src={articleData.user?.profile_image_90} alt="profile" /&amp;gt;
          &amp;lt;span className="article-arthur"&amp;gt;&amp;lt;a href={articleData.url}&amp;gt;{articleData.user?.name}&amp;lt;/a&amp;gt; &amp;lt;/span&amp;gt;
          &amp;lt;span className="publish-date"&amp;gt;— {articleData.readable_publish_date}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div dangerouslySetInnerHTML={ {__html: articleData.body_html} } className="innerhtml"/&amp;gt;

    &amp;lt;/div&amp;gt;
  )};

export default BlogTemplate;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What we are doing with the blog template is taking the link of our current browser window, which should be based on the slug of our article on dev.to, and making another fetch to dev.to for the specific article data. &lt;/p&gt;

&lt;p&gt;Using the "window.location.pathname" we get back a string of where the browser is currently at "/blog/do-something-wrong-4f9c". The slice() is to get us the actual article slug("do-something-wrong-4f9c") so that we can pass it into the dev.to api fetch, and get the article data. &lt;/p&gt;

&lt;p&gt;Because anything after "/blog/" gets routed to our blog template, we can go to a specific article on our site without having to go to the blog list first.  &lt;/p&gt;

&lt;p&gt;The rest of the function is a simple return of the articleData we get, so we can format and style our page.&lt;/p&gt;

&lt;p&gt;If you are on Gatsby, you will need a Gatsby-node.js config, that allows router to take control of the /blog/ route. You can find that in the source above. I also left my CSS styling in the Github repository. Feel free to add or change what you'd like!&lt;/p&gt;

&lt;p&gt;Since this uses client side fetching and routing, you may need to modify the List component so it doesn't list all of the articles at once to improve performance. In my case I only have a few articles, so as of now I am fetching all of my articles. A feature that I plan to add later is a spinner that displays for a user so if a connection is slow, so they don't have a blank white screen while they wait for the page to render.&lt;/p&gt;

&lt;p&gt;That's it! We have a working simple component that will always have our blog articles from dev.to on our portfolio or site.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>portfolio</category>
    </item>
    <item>
      <title>I don't like it</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Thu, 03 Dec 2020 18:20:36 +0000</pubDate>
      <link>https://dev.to/aswaff/i-don-t-like-it-27j4</link>
      <guid>https://dev.to/aswaff/i-don-t-like-it-27j4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"&lt;em&gt;Please, at least try it. You'll love it&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I don't have to, I already know what I like"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;But you haven't tried it, you might like it if you try&lt;/em&gt;!" &lt;/p&gt;

&lt;p&gt;"&lt;em&gt;I already know,&lt;/em&gt; &lt;strong&gt;&lt;em&gt;I don't like it&lt;/em&gt;&lt;/strong&gt;".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
I am the type that could probably eat the same thing nearly every day. I even order the same meal at restaurants once I find something I like, I am always hesitant to try something new. There are types of food that I know I like a lot.  But guess what? I had to at least try something, to know that I liked it in the first place!&lt;/p&gt;

&lt;h2&gt;
  
  
  My Portfolio Problem
&lt;/h2&gt;

&lt;p&gt;I was working on my Gatsby portfolio, and decided to run a google &lt;a href="https://developers.google.com/speed/pagespeed/insights/"&gt;PageSpeed&lt;/a&gt; test, and see how my site performance was doing.  My home page was getting a 90 on mobile, and an 86 on desktop.  Now, me being a bit of a perfectionist, I wanted my site to perform better. My site didn't have much running on the home page, some text, and an image.  So I checked the details of the PageSpeed Insights, and realized that it was the image causing the decrease in my ranking. I wanted a solution to make my site as optimized as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gatsby-Image Solution
&lt;/h2&gt;

&lt;p&gt;I had read the documentation of Gatsby and knew they &lt;a href="https://www.gatsbyjs.com/plugins/gatsby-image/"&gt;had a solution&lt;/a&gt; that was great for high quality photos. Gatsby-Image essentially loads images "up". Starting with a lower "fuzzy" quality photo served to the client so that it can load the page must faster, while a higher quality photo would be served after. This was exactly what I needed, it was a perfect solution for my situation. So why was I so hesitant to use it?&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL - &lt;em&gt;"I don't like it"&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;I knew that in order to use Gatsby-Image, I was going to have to use GraphQL. I had seen GraphQL used in a online course I had taken, and I was convinced I didn't like it. The whole idea of GraphQL seemed very confusing and it even had its own syntax. I had avoided using it thus far in my projects, and I hadn't stopped to consider why I was avoiding it, I just knew I didn't like it. &lt;/p&gt;

&lt;p&gt;I was determined however to make my site better, so I was forced to learn GraphQL. I started reading the docs, I coded, and tested.  At first, I still didn't like it and in fact, I may of liked it less than in the beginning. It still didn't make sense to me, why was my GraphQL query not working in my component? How is it passing the data to my component at all?&lt;/p&gt;

&lt;p&gt;After a few tutorials and docs, I realized several things I was doing wrong. I moved my query outside of my component and into a page, so that Gatsby would run it in its lifecycle, and passed my props correctly into my component. Everything worked, and it boosted my PageSpeed in the top 90's when I was done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding before Judgement
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Oftentimes, it is our lack of understanding with a coding concept that causes us to have a kneejerk reaction of "I don't like it".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I finally understood what was happening in the code. How Gatsby was running the query and GraphQL returning the query as props, and how accessing the data is as easy as accessing data in an nested object. Once I realized all of this, &lt;strong&gt;I actually liked GraphQL&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;I realized I was so quick to judge it, all because I didn't fully understand it. This is what we as humans are prone to do right? We often make a judgement before having understanding.&lt;/p&gt;

&lt;p&gt;If our first impulse is to avoid using a tool, maybe we don't have a good understanding of the tool itself. We need to really try to understand a coding concept first, and even try it, so that we can make a more educated decision on whether we like it or not. &lt;/p&gt;

&lt;p&gt;Use a tool in your next coding project that you don't like, or makes you uncomfortable. You may find after trying it, it becomes a new tool that you like and use in future projects.&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>gatsby</category>
      <category>beginners</category>
      <category>learnsomethingnew</category>
    </item>
    <item>
      <title>Do Something Wrong</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Fri, 27 Nov 2020 13:27:40 +0000</pubDate>
      <link>https://dev.to/aswaff/do-something-wrong-4f9c</link>
      <guid>https://dev.to/aswaff/do-something-wrong-4f9c</guid>
      <description>&lt;p&gt;When I was a child, I would help my dad with everything, working on the cars, working in the yard, etc. I remember on a particular day, trying to help organize tools with him, and being inexperienced in the matter, I kept placing tools in the wrong place. In a frustrated tone, I said “I can’t do anything right” to which my dad replied “You have to be doing something, in order to do something wrong”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorials are necessary
&lt;/h2&gt;

&lt;p&gt;Tutorials are great, coding bootcamps are great and code along videos are great. You must have at least a decent understanding of at least the fundamentals of programming and basic syntax to get started. In taking an online course I learned so much about HTML, CSS, JavaScript, and React. When I started in 2018, an online course/academy was a great way to get me introduced to web development, I needed something to kickstart my journey. I wouldn’t be where I am today if it wasn’t for the bootcamp.&lt;/p&gt;

&lt;p&gt;But in my journey as a self taught developer, I’ve come to realize that tutorials will not make you a good developer on their own. &lt;a href="https://dev.to/davidmm1707/how-to-escape-from-tutorial-hell-and-never-come-back-bb6#"&gt;It can also be hard to get out of just following along&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tutorials should be laying the foundation and set you in the right direction for when you are developing on your own.&lt;/p&gt;

&lt;h2&gt;
  
  
  When I made my first React app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxvbmchjmk4gbv749p5nb.jpg" 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%2Fi%2Fxvbmchjmk4gbv749p5nb.jpg" alt="App Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After hours and hours of courses, I finally decided to create an app. This app wasn’t a code along, I had found an API that would take a URL you gave it, and respond back with a shortened URL.&lt;/p&gt;

&lt;p&gt;So I started with &lt;code&gt;npx create-react-app&lt;/code&gt;, and began to work on my own. I implemented state, worked with the shrtco.de API to send and retrieve data, and utilized the “react-promise-tracker” and “react-spinners” libraries to add a nice little spin animation while waiting for the promise of the shortened link to return to the user.&lt;/p&gt;

&lt;p&gt;Did I run into problems? Oh yes. I remember struggling nearly every step of the way. But I realized something, I was starting to actually understand the code behind my app. When I ran into trouble, I had to read the docs, Google around, and troubleshoot on my own. I felt like I learned more running into issues building the app, than I did when I was taking web courses.&lt;/p&gt;

&lt;p&gt;You can see my app here: &lt;a href="https://aswaff.github.io/URL-Shortener/" rel="noopener noreferrer"&gt;Live&lt;/a&gt; | &lt;a href="https://github.com/aswaff/URL-Shortener" rel="noopener noreferrer"&gt;Source&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Don’t judge, this was my early stages of web dev, I didn’t care how it looked, I just wanted it to work 😬.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build something
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"You have to be doing something, in order to do something wrong."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Part of what took me so long to build something on my own was what I believe, the fear to fail.  Starting something, and not being able to complete it, or figure it out.  But when I set out to build a very simple app setting a realistic goal, it boosted my confidence along with learning a lot along the way.  &lt;/p&gt;

&lt;p&gt;So if you are tired of taking courses, tutorials, bootcamps, and want to take your learning to the next level.  I suggest building something.  Set a realistic goal (don't rebuild Twitter at first), a goal that will push you while also aligning with your current skill set.  When you "do something wrong", just remember this is the developer life, we run into issues, and we solve them.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Learning in Public</title>
      <dc:creator>Avery Swafford</dc:creator>
      <pubDate>Mon, 16 Nov 2020 19:53:08 +0000</pubDate>
      <link>https://dev.to/aswaff/learning-in-public-5d6p</link>
      <guid>https://dev.to/aswaff/learning-in-public-5d6p</guid>
      <description>&lt;p&gt;I came across a article that was posted by "SWYX", regarding "learning in public".  This was a new concept to me, I've been dabbling in web dev for a couple of years now, and I haven't heard of this.  The idea is simple, you publicize your learning journey.  Your experiences can be helpful to someone who is trying to learn.  I also think its helpful to yourself, to write out and explain a complex coding concept, to make it easy to understand.  It causes you to really reflect on what you have learned, and I believe reiteration, can you to remember and ingrain your knowledge.&lt;/p&gt;

&lt;h1&gt;
  
  
  My Methods of "Learning in Public"
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Writing blog posts

&lt;ul&gt;
&lt;li&gt;I'll be using dev.to moving forward for my blogging, I really 
like the platform.  I'll also be connecting the API of dev.to to 
my actual site to act as a CMS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Discord groups

&lt;ul&gt;
&lt;li&gt;I am in a couple of discord groups that have a focus on web dev and React.  I've learned to not just be a observer, but actually contribute.  Even if its just checking in to see how everyone is doing.  While its not my favorite "public" app, it can help the group you are in, and some people are more comfortable in a small group setting.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Asking and answering questions

&lt;ul&gt;
&lt;li&gt;With multiple online forums and boards, it is true someone has likely had and asked about a problem or bug that are having.  I am not advocating that we spam, and ask the same questions that have already been answered, but maybe if you find the questions doesn't exactly meet your needs, ask or post in a different way.  Or maybe if you have found a different and better answer to something you had a hard time with, post it!  Chances are, someone else is going through, or will go through the same thing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h6&gt;
  
  
  Sources
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://www.swyx.io/learn-in-public/"&gt;https://www.swyx.io/learn-in-public/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://careerchats.transistor.fm/episodes/learn-in-public"&gt;https://careerchats.transistor.fm/episodes/learn-in-public&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
    </item>
  </channel>
</rss>
