<?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: Hannah Ong</title>
    <description>The latest articles on DEV Community by Hannah Ong (@duchesstoffee).</description>
    <link>https://dev.to/duchesstoffee</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%2F345373%2F2118a515-8e71-4617-95f7-ddcf07760939.jpg</url>
      <title>DEV Community: Hannah Ong</title>
      <link>https://dev.to/duchesstoffee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duchesstoffee"/>
    <language>en</language>
    <item>
      <title>Easiest Chrome Floating Video Player Ever!</title>
      <dc:creator>Hannah Ong</dc:creator>
      <pubDate>Mon, 16 Nov 2020 13:57:32 +0000</pubDate>
      <link>https://dev.to/duchesstoffee/easiest-chrome-floating-video-player-ever-l01</link>
      <guid>https://dev.to/duchesstoffee/easiest-chrome-floating-video-player-ever-l01</guid>
      <description>&lt;p&gt;&lt;em&gt;Woah!&lt;/em&gt; I've been enlightened by &lt;a href="https://twitter.com/m_ninepoints/status/1327859081680306177" rel="noopener noreferrer"&gt;my husband&lt;/a&gt; a neat little trick to get a floating video player off any website that will &lt;em&gt;stay&lt;/em&gt; on top of all your windows while you're interacting with other sites, applications, etc. No more resizing my windows, no more playing videos on a separate monitor/device. Just a simple click to pop out the video and continue my work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup &amp;amp; Usage
&lt;/h2&gt;

&lt;p&gt;For everyone who wants this now, here's how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Chrome, open up a video, like this &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" rel="noopener noreferrer"&gt;YouTube video&lt;/a&gt; 😉 and replace the URL with &lt;code&gt;javascript:document.getElementsByTagName('video')[0].requestPictureInPicture();&lt;/code&gt; Once the video pops out, you can move it, resize it, etc! 
&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%2Fjqvcwqmhmklxg2rjv7xh.png" alt="Picture-in-Picture Demo"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But remembering that bit of code and typing it into your URL bar every time seems a bit annoying right? So let's save it as a bookmarklet.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Chrome, make a new bookmark. (Ctrl + Shift + O, then click on the three dots in the upper-righthand corner and click "Add New Bookmark").&lt;/li&gt;
&lt;li&gt;Add a name (like "Floating Player") and set the URL to &lt;code&gt;javascript:document.getElementsByTagName('video')[0].requestPictureInPicture();&lt;/code&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%2Ff825jzi43l4vesb5tsqx.png" alt="Bookmarklet Example"&gt;
&lt;/li&gt;
&lt;li&gt;Great! Now back to the &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" rel="noopener noreferrer"&gt;video&lt;/a&gt; 😉. This time click on your bookmarklet to pop the video out!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  So How Does it Work?
&lt;/h2&gt;

&lt;p&gt;Essentially, we'll are executing the JavaScript directly in your browser to look for any &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; elements and then on the first &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; element, we're leveraging the &lt;a href="https://w3c.github.io/picture-in-picture/" rel="noopener noreferrer"&gt;Picture-in-Picture&lt;/a&gt; API that allows websites to create a floating video window that stays on top of other windows and applications. Up until yesterday, I haven't heard of running JavaScript directly in the URL bar or the Picture-in-Picture API, so let's break it down together.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;javascript:&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;As I mentioned, you can use the &lt;code&gt;javascript:&lt;/code&gt; prefix in a URL to tell the browser to execute the following code as JavaScript instead of navigating to the web address.&lt;/p&gt;

&lt;p&gt;Let's try it out. In the URL bar, type &lt;code&gt;javascript:console.log('hello world')&lt;/code&gt; and then inspect the page to see it in your console log. Neat right? &lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;document.getElementsByTagName('video')[0]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Now that we're requesting to execute JavaScript, let's run the &lt;code&gt;getElementsByTagName('video')&lt;/code&gt; method on the &lt;code&gt;document&lt;/code&gt; to get an &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection" rel="noopener noreferrer"&gt;HTMLCollection&lt;/a&gt; of the elements with a &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag. Since it will return an array-like object, we will use bracket notation &lt;code&gt;[0]&lt;/code&gt; to target the first &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; returned by the DOM (Document Object Model) API.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;code&gt;requestPictureInPicture()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Great now that we have the video element, you can add the &lt;code&gt;requestPictureInPicture()&lt;/code&gt; method to request the display the video in picture-in-picture mode, which we've seen will return a floating player that stays on top of websites and applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Bookmarklets
&lt;/h3&gt;

&lt;p&gt;Although we've ran everything so far in this example in the URL bar, as we've done earlier in the setup/usage, we can set the snippet as a bookmark to execute to execute JavaScript making it a bookmarklet.&lt;/p&gt;

&lt;p&gt;And that's it! Anyways go forth and enjoy!&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/m_ninepoints/status/1327859081680306177" rel="noopener noreferrer"&gt;Cred to Jeremy Ong (m_ninepoints)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/picture-in-picture/" rel="noopener noreferrer"&gt;W3C Picture-in-Picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API" rel="noopener noreferrer"&gt;MDN Picture-in-Picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Bookmarklet" rel="noopener noreferrer"&gt;Wikipedia Bookmarklet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName" rel="noopener noreferrer"&gt;MDN Element.getElementsByTagName()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Speak like a Web Developer</title>
      <dc:creator>Hannah Ong</dc:creator>
      <pubDate>Sat, 14 Nov 2020 16:44:53 +0000</pubDate>
      <link>https://dev.to/duchesstoffee/how-to-speak-like-a-web-developer-5d70</link>
      <guid>https://dev.to/duchesstoffee/how-to-speak-like-a-web-developer-5d70</guid>
      <description>&lt;p&gt;After building my career in HRIS, I've really taken for granted all the terminology I've gained through industry experience. What once felt easy to explain my thoughts and reasonings, now feels like pulling teeth as I struggle like a toddler grasping for the right words to clearly and effectively communicate to other web developers. Exasperated, I turned to my husband, a long time coder, and asked, "How do I learn to talk 'tech'?" And so I've created this post, a collection of his response with what I've found helpful up until now, as a hopefully useful guide for others who want to learn how to speak like a web developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading Level: "Elementary" (Tutorials)
&lt;/h2&gt;

&lt;p&gt;We'll try to distill the process of learning to speak like a web developer into the analogy of learning how to speak a language. When you learn a new language, you rarely start by picking up something advanced like the &lt;em&gt;Lord of the Rings&lt;/em&gt; (although more power to you, if you do). Anyways, you're much more likely to begin the process by learning your ABCs and reading a children's book like &lt;em&gt;My Hungry Caterpillar&lt;/em&gt;. So what is the equivalent of a children's picture book in web development? It's online tutorials. Tutorials are made with the beginner in mind and the content is going to be presented in the most digestible way possible. There will be a good amount of new terminology, but most tutorials will take the time to explain there new concepts and words in layman's terms to help the learning process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supplement Reading with Writing (Comments &amp;amp; READMEs)
&lt;/h2&gt;

&lt;p&gt;Before we move on to the next reading level, let's talk about a fairly standard way to supplement reading: writing. Similarly, you can supplement your tutorials and coding projects with writing in two easy ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Comments:&lt;/strong&gt; You can add comments to describe difficult code to yourself. I know there's a bit of controversy around code being polluted  with "too many comments", as a beginner these comments are a great way to learn how to communicate your code and thought processes. (And as you get more familiar with coding, you can always write less comments!) Try out the VSCode extension &lt;a href="https://github.com/aaron-bond/better-comments" rel="noopener noreferrer"&gt;Better Comments&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;READMEs:&lt;/strong&gt; Make yourself a README that helps to outline each of your projects. It's a great way to help you (and others) understand the code, the decisions, and the usages. Don't know where to start? Try a template like &lt;a href="https://github.com/othneildrew/Best-README-Template" rel="noopener noreferrer"&gt;this one&lt;/a&gt; (You can even pretty it up with &lt;a href="https://gist.github.com/rxaviers/7360908" rel="noopener noreferrer"&gt;GitHub emojis&lt;/a&gt;!) (Additionally I use &lt;a href="https://joplinapp.org/" rel="noopener noreferrer"&gt;Joplin&lt;/a&gt; so that I can see my markdown output as I'm editing)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Reading Level: "Middle School" (MDN)
&lt;/h2&gt;

&lt;p&gt;The next step is to start reading from &lt;a href="https://developer.mozilla.org/en-US/" rel="noopener noreferrer"&gt;Mozilla Developer Network Web Docs (MDN)&lt;/a&gt;. Please note that I say MDN and not W3Schools because unlike W3Schools, &lt;a href="https://www.w3.org/" rel="noopener noreferrer"&gt;W3C&lt;/a&gt; &lt;a href="https://www.w3.org/blog/2017/10/w3c-to-work-with-mdn-on-web-platform-documentation/#:~:text=I%20am%20pleased%20to%20announce,about%20building%20the%20open%20Web." rel="noopener noreferrer"&gt;has partnered with Mozilla, Microsoft, Google, and Samsung to support MDN Web Docs&lt;/a&gt; Essentially, MDN is directly affiliated with W3C and is a reliable source we should refer for web standards. Many of the pages will have great examples and code sandboxes for you to play around with code. As you're going through it, you'll actually notice that a lot of the content is pretty much identical to the tutorials you've gone through (I remember that a few tutorials I had seen on YouTube were the exact same as some of the examples provided from MDN!) The main difference you'll notice is that the tutorials may have been presented in a more beginner friendly manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading Level: "High School" (W3C/ECMAScript)
&lt;/h2&gt;

&lt;p&gt;So, you're doing great and you feel like you're ready to "graduate" from MDN. You may have noticed that I referred to &lt;a href="https://www.w3.org/" rel="noopener noreferrer"&gt;W3C&lt;/a&gt; a few times in the section above. That's because W3C (or World Wide Web Consortium) is the official organization that develops the standards for the World Wide Web (&lt;a href="https://www.ecma-international.org/" rel="noopener noreferrer"&gt;ECMAScript&lt;/a&gt; for the JavaScript standard to ensure interoperability of Web pages across different Web browsers). That's right, W3C and ECMAScript are as authoritative as it gets in term of web development documentation as they are the ones setting those standards. These sources are literally what MDN is referring to when they write their own documentation for HTML, CSS, and JavaScript. In fact, while you were on MDN, you may have noticed near the bottom of many pages there is a "Specifications" section. &lt;br&gt;
Here's an example for MDN's &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header" rel="noopener noreferrer"&gt;HTML Header&lt;/a&gt;:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4wgocifggk810sdpqzrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4wgocifggk810sdpqzrc.png" alt="MDN HTML Header Specifications Section"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An example for MDN's &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color_value" rel="noopener noreferrer"&gt;CSS Color&lt;/a&gt;:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1jz5mxx64xuucubxyqij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1jz5mxx64xuucubxyqij.png" alt="MDN CSS Color Specifications Section"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly an example for MDN's &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" rel="noopener noreferrer"&gt;JavaScript Array&lt;/a&gt;:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcq82c6vyk8urar0glmj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcq82c6vyk8urar0glmj1.png" alt="MDN JavaScript Array Specifications Section"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you click on the links under "Specifications", they will take you to the W3C (or &lt;a href="https://www.ecma-international.org/" rel="noopener noreferrer"&gt;ECMA International&lt;/a&gt; for JavaScript pages) for which their documentation is based on. Therefore, if you want to learn exactly how a feature should behave on the browser, W3C and ECMA International are going to be your best bet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading Level: "College"+ (Mailing Lists, Discussions, Contributions)
&lt;/h2&gt;

&lt;p&gt;Alrighty smarty pants, you're feeling like a total pro, what's next? Well, you can start participating and contributing back to the community, and here's three ways on how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Join Groups/Mailing Lists:&lt;/strong&gt; &lt;a href="https://lists.w3.org/Archives/Public/" rel="noopener noreferrer"&gt;W3C&lt;/a&gt;, &lt;a href="https://esdiscuss.org/" rel="noopener noreferrer"&gt;ECMA International&lt;/a&gt;, and &lt;a href="https://lists.mozilla.org/listinfo" rel="noopener noreferrer"&gt;MDN&lt;/a&gt; all have groups/mail lists. You can join these communities and have meaningful discussions on your desired topics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Follow Editors &amp;amp; Contributors:&lt;/strong&gt; You'll notice that a lot of the documentation on W3C, ECMA, and MDN have editors/contributors. Do a little digging and follow people of interest to you on Twitter, their blogs, etc. A lot of the time, it's a way to gain insights to their decisions or general thought processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Join Discussions:&lt;/strong&gt; Whether it's on W3C, ECMA International, MDN, Twitter, personal blogs, so on and so forth, start joining in on discussions and share your thoughts!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;This post was written for developers like myself, starting out with web development and realizing that we're running into questions we can't answer, or processes we can't explain to the degree of specificity or clarity that we'd like to because we currently lack the proper terminology. There's no shortcut to learning how to effectively speak "tech", but with a guided approach, I hope this is helpful in getting people started/moving in the right direction.&lt;/p&gt;



&lt;p&gt;I'd like to end this post by saying that this is by no means a comprehensive list of all the ways you can learn to "speak" like a web developer, nor is it the only way. Although I categorize these into "levels", anyone can start anywhere (just because you started learning recently, doesn't mean you can't join discussions, or read documentation straight from the source!). Anyways, I'd love to open it up to discussion below where people can provide comments, suggestions, and ways in which they've learned to "speak" like a web developer!&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/" rel="noopener noreferrer"&gt;World Wide Web Consortium (W3C)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.w3.org/Archives/Public/" rel="noopener noreferrer"&gt;W3C Mailing Lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ecma-international.org/" rel="noopener noreferrer"&gt;ECMA International&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://esdiscuss.org/" rel="noopener noreferrer"&gt;ECMAScript Mailing List&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/" rel="noopener noreferrer"&gt;MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.mozilla.org/listinfo" rel="noopener noreferrer"&gt;MDN Mailing Lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aaron-bond/better-comments" rel="noopener noreferrer"&gt;Better Comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/othneildrew/Best-README-Template" rel="noopener noreferrer"&gt;README Template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/rxaviers/7360908" rel="noopener noreferrer"&gt;GitHub emojis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://joplinapp.org/" rel="noopener noreferrer"&gt;Joplin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>learn</category>
    </item>
    <item>
      <title>A Comprehensive List I'd Like to Give my Past Self</title>
      <dc:creator>Hannah Ong</dc:creator>
      <pubDate>Thu, 20 Aug 2020 15:36:28 +0000</pubDate>
      <link>https://dev.to/duchesstoffee/a-comprehensive-list-i-d-like-to-give-my-past-self-l32</link>
      <guid>https://dev.to/duchesstoffee/a-comprehensive-list-i-d-like-to-give-my-past-self-l32</guid>
      <description>&lt;p&gt;I'm incredibly lucky to be starting my path in a generation where there are so many good (and free) learning resources! However, that's what makes it a bit daunting to get started, because we sometimes don't know what will work best for us as individuals.&lt;/p&gt;

&lt;p&gt;I've recently shipped &lt;a href="https://moreeyesplz.com/"&gt;my first project&lt;/a&gt;, and I wanted to write a post to others in case my journey may be helpful for them. &lt;/p&gt;

&lt;p&gt;If I could rewind time, I'd tell my past self to start here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.freecodecamp.org/learn/"&gt;FreeCodeCamp&lt;/a&gt; - It's literally a free code camp. This is a great resource that got me kick-started with HTML, CSS, and vanilla JavaScript. Everything is there for you in the browser, so you don't even need to download a code editor to get started. They have a YouTube channel as well that goes through the exercises if you want someone to help "instruct" you virtually.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://eloquentjavascript.net/"&gt;Eloquent JavaScript&lt;/a&gt; - I found JavaScript hard to pick up (still do!) I'm still going through this book and rereading chapters over again, but this was really helpful in getting a deeper understanding of JavaScript, and the online version is free!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://javascript30.com/"&gt;JavaScript in 30 days&lt;/a&gt; - Essentially 30 days of small JavaScript projects that are pretty cool to help you get more experience understanding DOM and vanilla JavaScript. What I liked best about this resource was that I could see some better ways to organize or write my code as it comes with an answer key and each lesson has a walk-through video. However, you're going to need to download VS Code or some code editor, and you're going to have to learn how to use GitHub and CLI commands to get started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;My free trial of bootcamp - Bootcamp isn't for everyone, and I found out that it wasn't for me. But one of the days were extremely valuable as it got me quickly familiar with git bash, GitHub, and workflows. However, if I were to go back in time, I'd take back the few weeks I spent here and learned how to use version control via documentation or youtube videos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm ready to start coding my first project! What do I need to get started?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://code.visualstudio.com/"&gt;VS Code&lt;/a&gt; or any code editor. For VS Code, after you get it, search on YouTube for a few VS Code extensions people recommend for Web Dev and download those. You can always remove any you don't like later!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://git-scm.com/downloads"&gt;Git Bash&lt;/a&gt; - This looks scary! But you'll need to learn it so that you can use commands in the git bash terminal to get your workflow up and running. This &lt;a href="https://www.git-tower.com/blog/command-line-cheat-sheet/"&gt;CLI cheatsheet&lt;/a&gt; will help you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt; - Make a GitHub account and get started by learning about &lt;a href="https://www.git-tower.com/blog/git-cheat-sheet"&gt;git commands&lt;/a&gt; and how git works. Essentially this is how you work on code with others via version control. Think of it kinda like how google docs work, kinda.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cool! I've done the JavaScript in 30 days and I've done a few small projects. I want to learn how to do things more efficiently now! What tools should I use?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://sass-lang.com/"&gt;Sass&lt;/a&gt; (or Less) - It lets you write your CSS in a more efficient way which then preprocesses into CSS. You can nest your CSS, use mixins, functions, and do so much more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt; (or Vue or Angular) - These are frameworks/libraries that help structure your JavaScript. I went with React because it's been around awhile and so there's a lot of resources around it, and it's currently the most widely used. MDN has a &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started"&gt;great tutorial&lt;/a&gt; for learning this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://material-ui.com/"&gt;Material UI&lt;/a&gt; (or Blueprint.js or some other React toolkit) - Never make components again! Need a button or a tag? Grab it from the toolkit and override any CSS as needed. Spend your time coding, not designing from scratch. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt; - This is so helpful as it really helps to give you errors that are more descriptive so that you can debug quickly. It's a bit painful for me sometimes since I'm still learning how to use it and I don't understand what all the errors mean, but I can already feel the value!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt; - Test, test test! It's important to write test scripts for your code! It's something I'll be working on in the coming weeks so that when I make changes, I can see the downstream impact.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Youtube sites that are worth taking a look at when you just want someone to show you something because you're tired of reading documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ"&gt;FreeCodeCamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA"&gt;Fireship&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw"&gt;Web Dev Simplified&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCW5YeuERMmlnqo4oq8vwUpg"&gt;The Net Ninja&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA"&gt;Programming with Mosh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCDCHcqyeQgJ-jVSd6VJkbCw"&gt;CodeSTACKr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other sites worth mentioning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/"&gt;MDN&lt;/a&gt; - the place to go for documentation around web dev. Don't forget to sign up for their emails!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://css-tricks.com/"&gt;CSS Tricks&lt;/a&gt; - As the name implies, a great resource to see how to use CSS in fun/creative ways.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fonts.google.com/"&gt;GFonts&lt;/a&gt; - a place to get fonts for your website&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt; - free photos for your website&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://undraw.co/illustrations"&gt;unDraw&lt;/a&gt; - free vector/svg illustrations for your website (we used them for more eyes, plz!)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://favicon.io/"&gt;favicon.io&lt;/a&gt; - create a custom favicon (that icon/image on the webpage's window tab)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fontawesome.com/"&gt;Font Awesome&lt;/a&gt; - so that you can use icons&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.fprintf.net/vimCheatSheet.html"&gt;Vim&lt;/a&gt; - download Vim as an extension on VS Code and use keyboard shortcuts. Never touch your mouse again&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://necolas.github.io/normalize.css/"&gt;Normalize.css&lt;/a&gt; and &lt;a href="https://meyerweb.com/eric/tools/css/reset/"&gt;CSS Reset&lt;/a&gt; - a ways to get your CSS to render all elements more consistently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;General Tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code everyday!! Even if that means doing a few &lt;a href="https://www.hackerrank.com/domains/tutorials"&gt;HackerRank&lt;/a&gt; or &lt;a href="https://edabit.com/challenges/javascript"&gt;Edabit&lt;/a&gt; problems.&lt;/li&gt;
&lt;li&gt;Don't fear the documentation! It's the best place to read first to solve your problem. Don't guess and check, read the source documentation and then google for additional help.&lt;/li&gt;
&lt;li&gt;Reiterate your code! The first time is almost never going to be your best code. It's going to have some bandages as you try to fix it up because of some oversight. Clean it up and look for ways to make your code more readable.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>tips</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Took a leap of faith this year to pursue a career in programming. Shipped my first thing recently, here's my experience.</title>
      <dc:creator>Hannah Ong</dc:creator>
      <pubDate>Thu, 20 Aug 2020 15:13:40 +0000</pubDate>
      <link>https://dev.to/duchesstoffee/took-a-leap-of-faith-this-year-to-pursue-a-career-in-programming-shipped-my-first-thing-recently-here-s-my-experience-9d6</link>
      <guid>https://dev.to/duchesstoffee/took-a-leap-of-faith-this-year-to-pursue-a-career-in-programming-shipped-my-first-thing-recently-here-s-my-experience-9d6</guid>
      <description>&lt;p&gt;I wanted to share some of my experiences learning to code as a former HR professional. I wanted to pursue engineering as a means to gain more autonomy and hopefully grow into a career that would constantly challenge me and stay "interesting." Deciding to finally make the move was a daunting decision that I agonized over for months. I finally took the "leap" a few months ago and have been more or less cramming coding material and coding (to the best of my abilities) since then.&lt;/p&gt;

&lt;p&gt;Initially, I opted to enroll in a bootcamp, as I felt the structure afforded by such a program would keep me honest and guide my learning. While this was true to an extent, I left because I felt the information and instruction was not the quality I had hoped for. In order to cram all the material advertised in the curriculum into a few short months, the coverage felt superficial and rushed. I found myself often asking "why" something was done a particular way, and more often than not, the teaching assistants seemed either not to know, or not to think it was important. I should mention, I am fortunate enough to be married to an engineer, and my husband was more than up to the task of coaching me along the way. As such, the prospect of learning outside a classroom was a bit easier to stomach.&lt;/p&gt;

&lt;p&gt;The main things I've learned so far is that actually trying to build a "thing" has taught me far more than either exercises, or imitating an existing project that is structured a particular way. Learning by example was definitely the fastest way to get started, but I really picked up steam once I overcame the "fear of the blank canvas" and just learned to rely heavily on legitimate documentation (e.g. MDN) instead of trying to learn from random code snippets/tutorials online. So far, I've picked up just HTML, CSS, React, JavaScript, and now a little TypeScript. I'm constantly blown away with how much you can create without knowing a lot, if you're able to just combine what you already know creatively. So don't be intimidated if much of the material out there seems foreign and "scary" (as a lot of it still does for me). I'm convinced that someone new would be able to create what I've recently made with far less knowledge than you would think. Sure it may not be "optimal" or "perfect," but that's what iteration is for, right? :)&lt;/p&gt;

&lt;p&gt;As for the thing I "shipped," it's really early stages (and probably has a lot of things I can improve on), but I built it with people like myself in mind and hope others might benefit from it. The site is &lt;a href="https://moreeyesplz.com/"&gt;https://moreeyesplz.com/&lt;/a&gt; (note: my husband built the backend, but I did the frontend, I swear!). As for what it is, it's a simple way to crowdsource feedback on commits you commit to GitHub. We actually created it for the Dev.to GitHub actions hackathon project, but felt it might be worth sharing as it's also my first shipped project. It's free as in beer (that's free), and we honestly have no idea if others in the community will even take to it. That said, my husband has offered to give as much feedback/mentorship as he has time available there (and I think people should take him up on it!).&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>react</category>
    </item>
  </channel>
</rss>
