<?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: robinwatson</title>
    <description>The latest articles on DEV Community by robinwatson (@robinhoeh).</description>
    <link>https://dev.to/robinhoeh</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%2F129345%2F07b1395c-689f-4c25-a6aa-8a6b7a3f572f.jpeg</url>
      <title>DEV Community: robinwatson</title>
      <link>https://dev.to/robinhoeh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robinhoeh"/>
    <language>en</language>
    <item>
      <title>Relative and Absolute paths</title>
      <dc:creator>robinwatson</dc:creator>
      <pubDate>Wed, 22 Jul 2020 01:55:38 +0000</pubDate>
      <link>https://dev.to/robinhoeh/relative-and-absolute-paths-38m8</link>
      <guid>https://dev.to/robinhoeh/relative-and-absolute-paths-38m8</guid>
      <description>&lt;p&gt;This is my third post this week. I was prompted to start blogging about my learnings from Zell Liew's course in order to: &lt;/p&gt;

&lt;p&gt;A) Help myself digest material and &lt;/p&gt;

&lt;p&gt;B) Help others learn or re-learn a concept. &lt;/p&gt;

&lt;p&gt;These posts are my own take on the material of the course and are intended to help solidify some JS and web dev concepts. Feel free to add some comments or better yet, correct me! Thanks!&lt;/p&gt;

&lt;h2&gt;
  
  
  Relative and Absolute paths
&lt;/h2&gt;

&lt;p&gt;When I started to get into web dev someone told me that it was extremely important to understand the difference between &lt;code&gt;relative&lt;/code&gt; and &lt;code&gt;absolute&lt;/code&gt; paths. I started to overthink it a lot and many times got confused so maybe this analogy will help you understand if you've been struggling to figure it out:&lt;/p&gt;

&lt;h3&gt;
  
  
  Relative
&lt;/h3&gt;

&lt;p&gt;Relative paths change. Imagine you walk to the bus stop, take the bus to work, walk to work and go upstairs to your office. Your path&lt;code&gt;(home/walk1/bus/walk2/office/you)&lt;/code&gt; could have been different or may change in the future. It depends on your location but how you get there may always change. Maybe you get a drive one day: &lt;code&gt;home/drive/work/you&lt;/code&gt;. I will say that when you have a larger code base, tracking down a file path can be tricky, which is why naming conventions and code structure is very important.&lt;/p&gt;

&lt;h3&gt;
  
  
  Absolute
&lt;/h3&gt;

&lt;p&gt;Absolute paths can easily be thought of websites that you point your files to. The website rarely changes, for example &lt;code&gt;font awesome&lt;/code&gt; or something if you are using a &lt;code&gt;CDN&lt;/code&gt;. Maybe something behind the scenes on the websites end changed but from your file to the site, is a direct/absolute path.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>learning</category>
    </item>
    <item>
      <title>Frontend JavaScript Eco System</title>
      <dc:creator>robinwatson</dc:creator>
      <pubDate>Mon, 20 Jul 2020 12:55:36 +0000</pubDate>
      <link>https://dev.to/robinhoeh/frontend-javascript-eco-system-9gl</link>
      <guid>https://dev.to/robinhoeh/frontend-javascript-eco-system-9gl</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript EcoSystem
&lt;/h1&gt;

&lt;p&gt;The following ecosystem seems to be a pretty standard one for a Front End role these days. Maybe you encounter way more or way less depending on your role. This high level description is my take away from Zell Liew's Javascript course I started yesterday. Like I mentioned in my &lt;a href="https://dev.to/robinhoeh/learning-javascript-again-2of4"&gt;first post&lt;/a&gt;, I'm writing about what I learn each day from the course in an attempt to really solidify my JavaScript skills and fill any gaps of knowledge I have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Libraries
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A library can be a small to large repository of code which&lt;br&gt;
allows you to add additional functionality to your website or app&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Could possibly be any size of code base, but most likely small and fixes or improves specific issues&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Examples include: Axios, D3 animation library or GSAP&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Many times at work someone might say, "Hey, can we use this animation library?" or "We use x UI library for x"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Axios&lt;/code&gt; is a library and so is &lt;code&gt;jQuery&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Frameworks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Frameworks are usually considered big or huge code bases&lt;/li&gt;
&lt;li&gt;Examples include React, Vue and Angular&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They each have their own advantages and disadvantages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Something that I really didn't understand when I first started learning JS was the concept of data being passed around and how it was managed&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;At work we use Vue which I really like to use&lt;/li&gt;
&lt;li&gt;A lot of times you are able to use vanilla JS logic in the framework but if a solution exists leveraging the framework then I would probably choose that&lt;/li&gt;
&lt;li&gt;I could be wrong here, what's your thoughts on this?&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Plugins
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Plugins allow you to add extra functionality to the libraries and frameworks&lt;/li&gt;
&lt;li&gt;Off the top of my head I can't think of any plugins we use at work for Vue&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I think the only thing here to consider is if you are going to add a plugin on a production level app, you wanna make sure with another team member or your boss that you can't just recreate the functionality that the plugin you want has in a short amount of time&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  npm
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;This is what we use to install any dependencies we need for our application or site&lt;/li&gt;
&lt;li&gt;Node Package Manager allows you to install packages via the command line&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You may have heard of node modules(don't add them to your production build or github repo :) )&lt;/li&gt;
&lt;li&gt;Packages typically get saved in your &lt;code&gt;package.json&lt;/code&gt; file and depending on how you save them they work globally or just for your dev environment&lt;/li&gt;
&lt;li&gt;If you don't remember a run command,  &lt;code&gt;package.json&lt;/code&gt; is the place to look&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tooling
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Could include GULP, Webpack, dev tools for a framework, Babel&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;We use Webpack at work which helps bundle code together and strip away many unwanted stuff for production&lt;/li&gt;
&lt;li&gt;TBH, I never touched the setup for this and have not gone into it for about two years&lt;/li&gt;
&lt;li&gt;If you have a build issue, the webpack or GULP file would be one place to figure that out&lt;/li&gt;
&lt;li&gt;I see a lot of requirements for developers to know how to setup webpack and optimize the build process. Our senior dev takes care of it mostly so maybe if you were going for a senior role and going to be in charge of it, that would be a useful skill to have&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>learning</category>
      <category>career</category>
    </item>
    <item>
      <title>Learning JavaScript...again</title>
      <dc:creator>robinwatson</dc:creator>
      <pubDate>Mon, 20 Jul 2020 02:29:48 +0000</pubDate>
      <link>https://dev.to/robinhoeh/learning-javascript-again-2of4</link>
      <guid>https://dev.to/robinhoeh/learning-javascript-again-2of4</guid>
      <description>&lt;h1&gt;
  
  
  I want to get better
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Current day
&lt;/h3&gt;

&lt;p&gt;For the past two and a half years I have been working as a Front End Developer. I have learned a ton since I started. I've been at the same job since I was hired late 2017. Day to day we use Vue.js, CSS, Cypress and mocha + chai for testing. I have come a long way since my first few months at work and still daily, I feel like I have a huge knowledge gap when writing and developing. Specifically, I get stuck when coming up with the logic for a component.&lt;/p&gt;

&lt;p&gt;Last month I got really serious about note taking and started to add to my daily notes breaking down all of the sections of the Front End ecosystem I could find from multiple resources as well as what I have encountered at work.&lt;/p&gt;

&lt;p&gt;I started taking notes at the end of the week of things I had learned from my co-workers not just about building a component but things like how we structure our app and why we do things the way we do. I would sometimes approach a ticket from the scrum board and be like, "Ya ok cool. So build this component and use it on this page". But around the halfway mark I would get stuck and be like "Wait a sec, how come my component works here but not here?" And when I would ask one of the more senior devs a question about something I was stuck on I would typically receive wayyy more info that I thought I was going to get, with so many more considerations. Then my feeling about building that component quickly escalated to "What in the F am I doing", and confidence levels dropped to an all new low for that day.&lt;/p&gt;

&lt;h3&gt;
  
  
  APPROVED
&lt;/h3&gt;

&lt;p&gt;My Boss has always advocated I get my JS skills super solid before anything else. I totally agree with him. Becoming better at JavaScript will make working on the framework we use so much easier. And some days I actually get to put some new found skill in JS and Vue to work which is a great feeling! Something finally clicked and I'm like "Yee I know my stuff!". I want to have this feeling more though. I want to be able to wake up and be like " I am going to crush some JS '' and build a component so DRY and clean that when I make a PR my coworkers are like "APPROVED".&lt;/p&gt;

&lt;p&gt;Let me be clear here though, I'm not chasing for comments and praise for my good work. I want to be able to contribute to our projects with confidence, which I can build off of which will lead to improving my skills. So why not learn what I can during the day, apply that to side projects and build cool shit outside of work. Well, I tried that, or so I thought.&lt;/p&gt;

&lt;h3&gt;
  
  
  Side projects
&lt;/h3&gt;

&lt;p&gt;I would get a great ideas for an app. I would tell my wife and be like "you know that new car we wanted?? I will buy it for you once this app takes off". Hmm...not really but I was so excited to work on my side project. Shortly after doing some scaffolding, base styles and planning out some UX I would stop. I got busy with another idea or got lazy. But that's not the real reason I didn't end up going through with projects. I stopped because I didn't actually know how to code the thing from scratch. I panicked at the thought of asking someone from work for help on it because it was a super "easy" app. I didn't wanna let them know that the person who works on cool components during the day can't code a small project from scratch. I told myself I would just stop attempting projects because I didn't wanna have to face myself and the feeling of failure. For a couple years now I have been feeling this inner pressure to pump out high quality side projects that display my skills and have fun doing it. But, I have not finished one side project to date since working full time. I have taken a ton of courses but the concepts never stuck quite the same way as they did as when I would f*#&amp;amp; something up at work and be like, ohhh got it now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Changing it up
&lt;/h3&gt;

&lt;p&gt;A few months ago, I found an article from this dude Zell Liew. He Explained things extremely well and in a way I could understand. Not only understand but retain the cells on my brain. Then I started getting emails about this course he had. I was sold. These emails were like "Do you get nervous when you think about coding from scratch? Are you afraid to start because you don't wanna fail? I'll show you how to learn and retain JavaScript skills so you don't have that feeling anymore". I answered all of these questions with "Hells ya"...  I have only just started the course and it prompts you to form accountability and write out what you have learned. So, I'm doing just that. For a couple years now I have avoided my knowledge gaps, not tutored because I was scared of being labeled as "A fraud". Avoided hackathons cuz I didn't wanna be like "But wait, how should I loop over this nested array to display the desired data?". I was scared of "getting caught" because I didn't know JS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making a crazy comparison
&lt;/h2&gt;

&lt;p&gt;My former profession was playing and teaching drums. I taught quite a lot actually and had fun doing it. I knew what my limitations were and wasn't scared to let students know when I didn't know how to do something. I started teaching privately after playing drums for about 10 years. Maybe time = confidence? Meanwhile I took a 3 month coding bootcamp and was working full  2.5 months after completing it. WTF! Imagine you learned the drums in 3 months and then had a yearly salary with other professionals who treated you nicely and didn't give you a hard time for being a newbie?!&lt;/p&gt;

&lt;h2&gt;
  
  
  Objective
&lt;/h2&gt;

&lt;p&gt;So, why am I writing this article? I'm taking the advice from Zell's course. I'm changing the way I learn and have learned JavaScript in the past. I'm forming accountability. I'm going to be writing about the concepts and things I learn about. I wanna share it with people. I wanna get feedback from people in the comments about how concise my understanding of the concepts I write about are. Also, the buy in was big. Close to $600 CDN. There's money on the line. As well, writing about JS makes me confront my own skills and ego. It's uncomfortable.&lt;/p&gt;

&lt;p&gt;My hope is that I become way more confident in JS so that I can write clean, DRY components, help others learn and build cool shit that can help people. Nothing too crazy right? I know writing about JS on a blog is nothing new but you gotta start somewhere.&lt;/p&gt;

&lt;p&gt;Please share if any part of this article resonates with you or someone you know! Also, it's been a while since I have written an article so any formatting or readability feedback is welcomed as well! I know I used "I" like 400 times. Thanks for reading :)&lt;/p&gt;

</description>
      <category>learning</category>
      <category>javascript</category>
      <category>career</category>
      <category>selfimprovement</category>
    </item>
  </channel>
</rss>
