<?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: NFairbairn</title>
    <description>The latest articles on DEV Community by NFairbairn (@nfairbairn).</description>
    <link>https://dev.to/nfairbairn</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%2F176047%2Fd13dfe84-e069-4c1b-86cb-57d01421767c.png</url>
      <title>DEV Community: NFairbairn</title>
      <link>https://dev.to/nfairbairn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nfairbairn"/>
    <language>en</language>
    <item>
      <title>Making your first npm!</title>
      <dc:creator>NFairbairn</dc:creator>
      <pubDate>Thu, 08 Aug 2019 21:03:31 +0000</pubDate>
      <link>https://dev.to/nfairbairn/making-your-first-npm-4if4</link>
      <guid>https://dev.to/nfairbairn/making-your-first-npm-4if4</guid>
      <description>&lt;p&gt;Since I've been working with javascript we’ve been using these crazy magical packages called &lt;code&gt;npm&lt;/code&gt; that do things for me. Importing packages and getting new functions that allow me to do even cooler things in my programs is awesome, but as a programmer, I couldn't just accept that it was magic. So I set out to find out more about node packages and how they’re made, and how I could maybe make my own.&lt;/p&gt;

&lt;p&gt;Throughout my time here at Flatiron, we’ve learned JavaScript ES6, and JSX to use in our various web applications. We use &lt;code&gt;npm&lt;/code&gt; all the time but we can use the same code knowledge we have, to create our very own packages that we can share to making new and exciting applications.&lt;/p&gt;

&lt;p&gt;To get started, we need to set up our directory to contain all of the files we're going to use for our package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd desktop
mkdir my-test-package
cd my-test-package
npm init
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;It will ask you a bunch of questions but after the &lt;code&gt;init&lt;/code&gt; menu it will prompt you to choose different settings to generate a &lt;code&gt;package.json&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;In your &lt;code&gt;package.json&lt;/code&gt; you’ll specify the name and description of your package, and you’ll also specify the file that the package will get it’s code from.&lt;/p&gt;

&lt;p&gt;There will be a key in the file called &lt;code&gt;main&lt;/code&gt; and this points to the file that you’ll want to execute when using your package. By default it’s set to &lt;code&gt;index.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now that your &lt;code&gt;package.json&lt;/code&gt; knows where to look, it’s time to go into your &lt;code&gt;index.js&lt;/code&gt; (or whatever file you set as main in your &lt;code&gt;package.json&lt;/code&gt;). Here is where you’ll write the methods for your package. &lt;/p&gt;

&lt;p&gt;For example, what if I wanted to make a package that contained the solution to a whiteboarding problem, and I wanted to be able to use those methods in another project.&lt;/p&gt;

&lt;p&gt;In my &lt;code&gt;index.js&lt;/code&gt; file, I’ll go ahead and add my function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module.export = (string) =&amp;gt; { return string.split('').reverse().join('')}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This module.export method allows us to import our function as a module, so that the other files in our app can use they methods if they require the file path.&lt;/p&gt;

&lt;p&gt;Now we’ve got our package complete, and we can create a test app to see if our package imports correctly.&lt;/p&gt;

&lt;p&gt;Go back out to your main directory and create a new project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The -y flag just lets you skip all of the setup questions. After the directory is made, we want to &lt;code&gt;npm&lt;/code&gt; install our newly created package!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install my-test-package
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Since our package isn’t published, we’ll have to use the absolute file path of our package to tell our computer where to retrieve our files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install User/desktop/test-package/npm/my-test-package
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now we need to link our imported package to our new app, we can do this by typing&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm link my-test-package
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;inside the console of our working directory.&lt;/p&gt;

&lt;p&gt;Now that we’re set up, open up the &lt;code&gt;app.js&lt;/code&gt; file and we can import out package to use in our current app!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const wordReverse = require(‘my-test-package’)
const input = “reverse me!”
const test = wordReverse(input)

console.log(test)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node app.js
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;in your current terminal and your output should be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=&amp;gt; ‘!em esrever’
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Huge! Now we can import any local package I want to use in my projects!&lt;/p&gt;

&lt;p&gt;From here you can host it on GitHub and you can share your methods with everyone! Or you can start an open source library! The possibilities are endless!&lt;/p&gt;

&lt;p&gt;After you’ve successfully created your package, you can publish your package to npm! After that you can just run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install &amp;lt;your-package&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;from any machine and you can import your very own library! &lt;/p&gt;

&lt;p&gt;Pretty Neat!&lt;/p&gt;

&lt;p&gt;If you wanna read up more on node &lt;a href="https://nodejs.org/en/docs/"&gt;here&lt;/a&gt; are the docs&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.npmjs.com/cli/publish"&gt;Here&lt;/a&gt; is a great guide to publishing npms by the npm docs&lt;/p&gt;

&lt;p&gt;You can create an npm account &lt;a href="https://www.npmjs.com/signup"&gt;here&lt;/a&gt; to start publishing all your amazing packages!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>npm</category>
      <category>codenewbie</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>VR AKA Virtual Reality AKA The Matrix</title>
      <dc:creator>NFairbairn</dc:creator>
      <pubDate>Thu, 25 Jul 2019 22:04:06 +0000</pubDate>
      <link>https://dev.to/nfairbairn/vr-aka-virtual-reality-aka-the-matrix-15pp</link>
      <guid>https://dev.to/nfairbairn/vr-aka-virtual-reality-aka-the-matrix-15pp</guid>
      <description>&lt;p&gt;The goal of VR is really to create an entirely “new reality” you can enter and interact with.&lt;/p&gt;

&lt;p&gt;VR Technology aims to utilize a combination of immersion and interaction to create a seemingly “real” experience for the user.&lt;/p&gt;

&lt;p&gt;VR Tech is moving closer and closer to more realistic and immersive experiences, and while we aren’t quite on the level of the Matrix just yet, we’re certainly on our way.&lt;/p&gt;

&lt;p&gt;I wanted to look into VR and what all it takes to pull something like this off, and how hard would it be to get into VR.&lt;/p&gt;

&lt;p&gt;Here's a list of common things you'll need in order to play, and some options if you're feeling fancy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VR set ups:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Headsets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Oculus Rift&lt;br&gt;
-HTC Vive&lt;br&gt;
-Sony PlayStation VR&lt;br&gt;
-Google Cardboard&lt;br&gt;
-Samsung Gear VR&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controllers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Samsung Gear VR Controller&lt;br&gt;
-Oculus Rift&lt;br&gt;
-HTC Vive&lt;br&gt;
-HTC Steam Controller&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where to Play:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Steam - a digital library and platform for video games for PC platforms. &lt;br&gt;
-Oculus VR&lt;br&gt;
-PlayStation VR&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Notable Games&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Beat Saber - Guitar Hero with Lightsabers&lt;br&gt;
-EVE Valkyrie: Warzone - Space Based Dog Fighting Game&lt;br&gt;
-Keep Talking and Nobody Explodes -  A Multiplayer Bomb Defuser Game with time limits&lt;br&gt;
-Lone Echo - A Space Survival Game that takes place on a base orbiting Saturn&lt;br&gt;
-Fruit Ninja - Hone your Samurai skills against impending bombardment from fruits&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills to become a VR developer&lt;/strong&gt;&lt;br&gt;
-Languages Like C/C++/C#&lt;br&gt;
-3D Modeling and Rendering Experience&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popular Game Engines&lt;/strong&gt;&lt;br&gt;
-Unity - uses C#&lt;br&gt;
-Unreal Engine - Uses C++ and a node-based language called Blueprints Visual Scripting&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful 3D Modeling Software&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Blender - Open Source 3D modeling software&lt;br&gt;
-Autodesk Maya - Computer Animation Software&lt;br&gt;
-Autodesk 3Ds Max - 3D Modeling Software catered more for games and visualization&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interesting 3D Scanning Softwares&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Structure Sense - used for 3D Scanning and Mixed Reality on Ipad &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Places to get 3D Models&lt;/strong&gt;&lt;br&gt;
-TurboSquid - Library of already 3D modeled objects&lt;br&gt;
-Free3D - 3D model library&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can I take my web knowledge to VR???&lt;/strong&gt;&lt;br&gt;
-WebVR is an open standard with a JavaScript API that makes VR in your browser possible&lt;br&gt;
-A-frame. A framework for building virtual reality experiences with HTML and an Entity-Component-System approach. It was developed by the Mozilla VR team and provides one of the most powerful ways to develop WebVR content.&lt;br&gt;
-React 360 - a React framework built to render 3D experiences in Browser&lt;br&gt;
-Three.js - a javascript library used for rendering 3d objects in browser&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://pusher.com/tutorials/realtime-reactvr"&gt;Here&lt;/a&gt; is a great tutorial on making a real-time VR React APP&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.udacity.com/course/introduction-to-virtual-reality--ud1012"&gt;This&lt;/a&gt; is a Udemy Course on intro to VR, always a good place to start&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://docs.unrealengine.com/en-US/Videos/index.html"&gt;Here&lt;/a&gt; is the link to the Unreal Engine documentation&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Events You Say? I'm Listening...</title>
      <dc:creator>NFairbairn</dc:creator>
      <pubDate>Thu, 11 Jul 2019 19:48:52 +0000</pubDate>
      <link>https://dev.to/nfairbairn/events-you-say-i-m-listening-5662</link>
      <guid>https://dev.to/nfairbairn/events-you-say-i-m-listening-5662</guid>
      <description>&lt;p&gt;HTML events are "things" that happen to HTML elements. When JavaScript is used in HTML pages, JavaScript can "react" on these events.&lt;/p&gt;

&lt;p&gt;Its like a Call and Response, or an Action and Reaction.&lt;/p&gt;

&lt;p&gt;Event listeners are just stated responses to a stated action.&lt;/p&gt;

&lt;p&gt;You can attach event listeners to HTML elements to perform certain actions when necessary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common event listeners&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DOM Content Loaded - waits to run the script until the page loads&lt;/li&gt;
&lt;li&gt;On click - performs a function when the user clicks an element&lt;/li&gt;
&lt;li&gt;Submit - performs a function when a user submits a form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Event listeners can be written like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Element.addEventListener ( event , function )
Element.addEventListener(event, () =&amp;gt; {} )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Event Listeners can be really helpful with simple UI/UX tasks such as clicking on elements, scrolling over or submitting a form!&lt;/p&gt;

&lt;p&gt;Event Listeners allow you to not only change the color of a button when you click it, they have the power to handle and execute functions behind the scenes.&lt;/p&gt;

&lt;p&gt;For Example, when creating a JavaScript in browser game, how are you gonna get the user input to actually control anything?&lt;/p&gt;

&lt;p&gt;You use event listeners! You can use &lt;code&gt;keyup&lt;/code&gt; &lt;code&gt;keydown&lt;/code&gt; &lt;code&gt;keyleft&lt;/code&gt; and &lt;code&gt;keyright&lt;/code&gt; to execute functions when a user hits the arrow keys!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Element.addEventListener("keyup", () =&amp;gt; { jump() };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This alone opens up browser pages to a whole new list of possibilities of interactivity! All without refreshing the page!&lt;/p&gt;

&lt;p&gt;Other more complex event listeners can be used for anything from finding the coordinates of your cursor on the page, seeing if a user is holding down a key, to finding out how many times you clicked the mouse in a certain area.&lt;/p&gt;

&lt;p&gt;Event Listeners have great features too like:&lt;/p&gt;

&lt;p&gt;You can add many events to the same element without overriding existing events&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt; let box = document.getElementById("test-box");

box.addEventListener("click", () =&amp;gt; {
 box.textContent = "I Just Got Clicked!";
});

box.addEventListener("mouseover", () =&amp;gt; {
 box.style.color = "red";
});
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can fire off a function when a user resizes their window&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;window.addEventListener("resize", () =&amp;gt; {
  document.getElementById("box").textContent = "I'm getting claustrophobic already!";
});
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can pass parameters to functions called in event listeners for more specific reactions or if the action requires input&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function sum(a, b) {
 return a + b;
}

let a = 2
let b = 3

box.addEventListener("submit", () =&amp;gt; {
 sum(a,b)
});
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Theres also an optional third argument when creating an event listener called useCapture. Its a boolean value referring to the hierarchy of events for elements within the same parent element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Element.addEventListener(event, function, true);
Element.addEventListener(event, function, useCapture);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;By default this is false, and uses &lt;code&gt;bubbling&lt;/code&gt; to state that the inner most element's event is handled first and then the outer. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;capturing&lt;/code&gt; is the opposite, the outer most element's event is handled first and then the inner&lt;/p&gt;

&lt;p&gt;These Event Listeners open up so many doors to interactivity with a site. Without the Action and Reaction of Listeners, we’d all just be maneuvering static pages or refreshing the page every time you like a post!&lt;/p&gt;

&lt;p&gt;JavaScript Superpowers!&lt;br&gt;
&lt;a href="https://i.giphy.com/media/3fJlTgnz9210s/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3fJlTgnz9210s/giphy.gif" alt="almighty"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Anyone Can Code</title>
      <dc:creator>NFairbairn</dc:creator>
      <pubDate>Tue, 25 Jun 2019 20:07:23 +0000</pubDate>
      <link>https://dev.to/nfairbairn/anyone-can-code-2ln3</link>
      <guid>https://dev.to/nfairbairn/anyone-can-code-2ln3</guid>
      <description>&lt;p&gt;Over the last year, I've been learning to code, and more so, learning about the community. What does it take to be a programmer? What qualities to programmers have? What do I need to focus on so that I can be a good coder?&lt;/p&gt;

&lt;p&gt;With all these questions in mind, I've done a bit of research and it boils down to this…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There is no secret formula.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Programming is just like anything, it comes more naturally for some than others, but at the end of the day it's just like any skill, you have to just do it and learn how you learn best.&lt;/p&gt;

&lt;p&gt;I boiled it down to really 3 major concepts that I think will help any new programmer start approaching the world of software in a much more positive light.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Programming is all about problem solving.&lt;/p&gt;

&lt;p&gt;Engineering is all about taking an idea, and make it in real life with the tools you have at your disposal.&lt;/p&gt;

&lt;p&gt;When you approach a project or an idea, often times the first step in creating this is planning.&lt;/p&gt;

&lt;p&gt;Breaking down an idea into smaller pieces to start to work to figure out how to actually create and implement those pieces.&lt;/p&gt;

&lt;p&gt;Programmers are just like craftsmen. A carpenter has saws, hammers, rulers, sanders, or whatever tools they may use to create everything from a fine table or rocking chair, to massive ships to sail the seas.&lt;/p&gt;

&lt;p&gt;Programmers use different languages, frameworks, algorithms, and whatever problem solving they can harness to create a piece of software capable of dazzling audiences.&lt;/p&gt;

&lt;p&gt;Just as a craftsman table is sold for a high price for having the time, effort and attention they put into the detail of the table. From picking the very tree that will become the table, to making the cuts, and finishing off the exterior to make it picture perfect to be displayed in someone's home.&lt;/p&gt;

&lt;p&gt;Programmers, (at least the good ones) give their code the same level of attention to detail as any other craftsman would. With extensive planning, drawing out designs, choosing languages and frameworks best suited for the project. And like a craftsman has an image in their head for what their piece will look like for the customer, a programmer has a finished product they have in mind, and develop a user experience that a customer would enjoy.&lt;/p&gt;

&lt;p&gt;The attention to detail with a user/consumer in mind, coupled with the extreme attention to detail and a pursuit of excellence for the project all mark the traits of a craftsman.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Curiosity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mastering a trade takes a certain determination and curiosity to pursue a trade to its fullest extent. A desire to learn not just what, but why and how.&lt;/p&gt;

&lt;p&gt;Curiosity is what ignites the fire for discovery, innovation, and determination.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Combining the micro and macro&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Micro&lt;/em&gt; being semantics, syntax, and actual building blocks that create the larger picture or program.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Macro&lt;/em&gt; being all of the more abstract concepts that relate to one another. They all add up to create the project itself, it contains features, interactivity, a uniform body or concept containing all of the smaller pieces that all work together to create a larger thing that performs tasks.&lt;/p&gt;

&lt;p&gt;Think about it like a clock. Inside you have all the tiny gears turning and using one another, together, to achieve a larger task. Without the proper planning, and without each piece working simultaneously, the integrity of the whole is compromised.&lt;/p&gt;

&lt;p&gt;The same could be said about programming. Programmers take all their time and effort into making sure each one of those cogs is in place and functioning properly just like a master clock-worker would focus on the gears to make sure the clock functioned properly and efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creativity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Creativity is what inspires us to pursue or create something greater than what already exists. Creativity is what sets people apart in how the approach these skills. From artists, craftsmen, writers, painters, photographers, and many more. &lt;/p&gt;

&lt;p&gt;Creativity is how we think outside the box, how we create new ideas, how we find new ways to approach problems, and how we find new ways to solve those problems.&lt;/p&gt;

&lt;p&gt;Programmers are creative too, just like a painter chooses which colors to convey their message on a canvas, a programmer chooses their tools, strengths, and weaknesses to convey their message into software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Xhfnu2973Wy2Y/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Xhfnu2973Wy2Y/giphy.gif" alt="ratpatootie"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the movie Ratatouille, a famous line states that “Anyone Can Cook”. The misconception that cooking is exclusively meant for people with “god given talent” or “prodigies” or the idea that any skill or trade is exclusive to a particular group is completely false.&lt;/p&gt;

&lt;p&gt;In programming, a huge misconception exists that all programmers have to be geniuses, that just spew out algorithms and math all day, and are somehow super smart and stand out from the rest.&lt;/p&gt;

&lt;p&gt;The fact is that programmers are people too. With strengths, and weaknesses, and we all use those strengths and weaknesses to help us learn how to do a thing. We just happened to pick programming.&lt;/p&gt;

&lt;p&gt;I think we need to start believing the phrase “Anyone Can Code” just as much as we can believe that a rat can believe that “Anyone Can Cook”.&lt;/p&gt;

&lt;p&gt;The misconceptions about programming are just that, misconceptions.&lt;/p&gt;

&lt;p&gt;Great chefs standout for not only cooking, but taking food to its farthest stretches, and creating divine dishes that blow the human mind. Great painters don’t just throw paint on a canvas, they work hard to perfect their craft and they try and pursue a vision beyond just the canvas.&lt;/p&gt;

&lt;p&gt;This being said, programmers can be the same way. Not every programmer is going to build the next big social media app or online streaming service, just as not every painter is working to paint the next Mona Lisa.&lt;/p&gt;

&lt;p&gt;That doesn’t stop people from painting, cooking, or programming. &lt;/p&gt;

&lt;p&gt;The misconception that a programmer has to be a genius is about as true as every painter has to be a visionary, or that every chef has to be a 5 star chef with insane never before seen dishes.&lt;/p&gt;

&lt;p&gt;We’re all just people exploring trades, skills, and learning more about the tools we have at our disposal as humans.&lt;/p&gt;

&lt;p&gt;Programming takes problem solving, curiosity, and creativity just like any other trade or skill. It takes practice and there’s definitely gonna be plenty of people “better” than you. But has a 5 star chef ever scared you into not cooking food for yourself? Or an exhibit at the museum suddenly make you never pick up the brush again?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You don't have to be a genius to program, you just have to start.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>craftsman</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Time for a Change</title>
      <dc:creator>NFairbairn</dc:creator>
      <pubDate>Tue, 11 Jun 2019 05:53:01 +0000</pubDate>
      <link>https://dev.to/nfairbairn/looking-for-a-change-and-finding-a-way-to-make-it-happen-4h5o</link>
      <guid>https://dev.to/nfairbairn/looking-for-a-change-and-finding-a-way-to-make-it-happen-4h5o</guid>
      <description>&lt;p&gt;&lt;strong&gt;The realization I wanted something different to happen...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think for me, it was when I felt stuck. When I realized that I didn’t like the job I had but didn't know what else I'd do. I was in and out of college for a few semesters, nothing was sticking. I loved to learn but I couldn’t stand to be in lecture all day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l378AEZceMwWboAQE/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l378AEZceMwWboAQE/giphy.gif" alt="sleep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then What…?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If I wasn’t going to go to school, then I'd definitely have to work. In the age old feud between “Experience Required” on every job description and not being able to get a job to get experience, I got a job at a car dealership selling parts. It was really fun for the first few months! I got to learn an entire part number system, a computer system for repair orders and invoices, catalogs and rooms full of parts to discover.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0zW4Ytnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yhtcepb3447a1a5bt8pg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0zW4Ytnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yhtcepb3447a1a5bt8pg.png" alt="experience meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The harsh reality...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After a year of that I was on the verge of a meltdown if I had to wake up at 7am again and stock parts all day. I had learned so much and was addicted to asking questions, but after I had reached the peak of my current job description, I was left craving more. Once I finally saved up enough to buy myself some time, I left my job to go serve full time at a restaurant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/yoJC2HGt4h8G8zgbaU/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/yoJC2HGt4h8G8zgbaU/giphy.gif" alt="sherlock"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sweet Sweet Overtime&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Restaurants are some of the most dynamic, versatile, and incredible work environments I’ve ever had the pleasure of being a part of. I absolutely loved going to work every day. I loved meeting the customers, learning about food, wine and cocktails, and being a part of a team that really relied on each other. My lovely coworkers quickly reminded me how hard they work outside of work as well. Most people I found were trying to put themselves through college, or saving up for their band, or are trying to fund their art! Whatever it is, I’ve learned so much from them and it made me think to myself, “What am I working for, not just now, but 5 years from now.?”. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/kPtv3UIPrv36cjxqLs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/kPtv3UIPrv36cjxqLs/giphy.gif" alt="ponder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maybe lets try programming?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My dad and my uncle are both developers and, while I had been preexposed to programming and the fact that it existed, I had never really looked into it. I started out with the free CodeCademy courses in HTML and CSS. I said “Hey, maybe you can build a website, people need websites, and you could do that from your laptop!”. Once I finished those languages, I was prompted to begin the JavaScript course. I was quickly reminded that this was a completely different beast of a language, but pressed on to find out just what programming was all about. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/yYSSBtDgbbRzq/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/yYSSBtDgbbRzq/giphy.gif" alt="css"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;He’s got an Idea&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There was always a buzz about the tech industry being the fastest growing industry in the world, but I didn’t realize that it was a much more accessible trade than I thought. I didn’t have the time, money, or attention span to sit through 4-6 years of college to get a CS degree. But when I heard about bootcamps, I thought “Man this is my ticket. I’m going to learn as much as I can, as fast as possible, and I’m gonna do it in Seattle.”. I started looking into how I could get myself into the tech industry as quickly as possible, and what better way to do it than to pack up and move across the country to Seattle and enroll in a bootcamp. Six months later I packed up one suitcase, one carry on and a backpack, and moved out to Seattle to pursue my crazy idea to become a Software Engineer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/yyvSeRGVj4C64/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/yyvSeRGVj4C64/giphy.gif" alt="aladdin"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If only I could’ve recognized this sooner!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The constant throughout all these experiences is that I could never shake my desire to learn (sometimes despite all my best efforts to). The hardest part for me about making a career change, or going back to school, is to start. I like to say now that  “The hardest part of any process is going from 0 to 1.”. I mean it as in “once you take that first step, you’ve got momentum behind you.”. It’s a snowball effect, once you put the right actions into place, and you continue to strive for those same goals, it all starts to come together. I’ve found that so much more gets done with passion, because it’s so much harder to convince myself out of passion than anything else.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l41JGpEtXuozyNbvq/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l41JGpEtXuozyNbvq/giphy.gif" alt="Steps"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Gist&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think what I'm trying to say is that it can be scary to make a life move and not know what’s gonna happen on the other side. I just want anyone who reads this to know that it is very possible, and it is very worth it. If you can find your passion to learn, and reinforce the drive to pursue that knowledge, whatever it may be, anything is possible. It takes a lot of work, and it can seem scary, but do your research, learn as much as you can about what it is you want to do, and make the best of what you have. You got this! From the random stranger behind the keyboard to you, you got this! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/oxW9IXKWP2Ouk/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/oxW9IXKWP2Ouk/giphy.gif" alt="woo"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
