<?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: Katie Hughes (she/her)</title>
    <description>The latest articles on DEV Community by Katie Hughes (she/her) (@glitteringkatie).</description>
    <link>https://dev.to/glitteringkatie</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%2F461214%2Fa345168d-5331-4845-841e-16af60353792.jpeg</url>
      <title>DEV Community: Katie Hughes (she/her)</title>
      <link>https://dev.to/glitteringkatie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/glitteringkatie"/>
    <language>en</language>
    <item>
      <title>Katie's VSCode Cheatsheet</title>
      <dc:creator>Katie Hughes (she/her)</dc:creator>
      <pubDate>Sat, 16 Apr 2022 23:30:17 +0000</pubDate>
      <link>https://dev.to/glitteringkatie/katies-vscode-cheatsheet-lp</link>
      <guid>https://dev.to/glitteringkatie/katies-vscode-cheatsheet-lp</guid>
      <description>&lt;h2&gt;
  
  
  Assumptions!
&lt;/h2&gt;

&lt;p&gt;Let's get on the same page. This guide assumes you already have a prettier config and eslint config set up. This will be useful if you want to figure out how to make prettier and eslint Just Work™ in VS Code on save.&lt;/p&gt;

&lt;p&gt;If you're using only prettier and not eslint or eslint and not prettier, this should be easy to follow. If you're using some other formatter/linter combo, this might still be helpful, but I'm not sure how you got here--welcome!&lt;/p&gt;

&lt;h2&gt;
  
  
  Extensions!
&lt;/h2&gt;

&lt;p&gt;Alright, this is the easy part; let's install some extensions! In the left sidebar of VS Code, you'll find the Extensions tab. It looks like a square pizza with one slice being removed. Hovering over it, it says &lt;code&gt;Extensions&lt;/code&gt;. Click that to search for the extensions you're looking for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Settings!
&lt;/h2&gt;

&lt;p&gt;The easiest way to get to your settings has been the keyboard shortcut &lt;code&gt;cmd+,&lt;/code&gt;. This actually works in all mac applications.&lt;/p&gt;

&lt;p&gt;The settings for vscode come in a GUI but also as JSON. To access the JSON, while in the settings, find this file icon with an arrow in the upper right-hand corner:&lt;/p&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%2Fglitteringkatie.com%2Fassets%2Fblog%2Fkaties-vscode-cheatsheet%2Fsettings.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%2Fglitteringkatie.com%2Fassets%2Fblog%2Fkaties-vscode-cheatsheet%2Fsettings.png" alt="Screenshot of VSCode's JSON settings icon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The alt text for the icon is "Open Settings (JSON)". Clicking that icon will open your settings.json! Many settings can be set from the GUI, but some of the ones we're dealing with today are only accessible by manually setting them in &lt;code&gt;settings.json&lt;/code&gt;, so we'll just edit there. (Plus, it makes copying and pasting nicer. But if you DO type it out, you'll see some nice type-ahead added).&lt;/p&gt;

&lt;h2&gt;
  
  
  Eslint + Prettier!
&lt;/h2&gt;

&lt;p&gt;First off, you'll need to install these plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then I suggest the following settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.formatOnPaste"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.formatOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"[typescript]"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"[javascript]"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"[json]"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.codeActionsOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"source.fixAll"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see above, you can set a default formatter per language. If it isn't working out as expected, I'll often set &lt;code&gt;editor.defaultFormatter&lt;/code&gt; on the top-level object to be &lt;code&gt;esbenp.prettier-vscode&lt;/code&gt;. Of course, that makes &lt;em&gt;every&lt;/em&gt; file use prettier, but hey, I'm usually working just in the JS ecosystem.&lt;/p&gt;

&lt;p&gt;The setting &lt;code&gt;source.fixAll&lt;/code&gt; can also instead be &lt;code&gt;source.fixAll.eslint&lt;/code&gt; if it starts being too heavy-handed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Plugins!
&lt;/h2&gt;

&lt;p&gt;These are other plugins I almost always install when I'm using VS Code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=ue.alphabetical-sorter" rel="noopener noreferrer"&gt;Alphabetical Sorter&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I don't use this consistently, but when I need it, it is so handy.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" rel="noopener noreferrer"&gt;GitLens&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I love seeing the context of when something was last edited and what that commit was while looking at code and trying to investigate an issue.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other settings!
&lt;/h2&gt;

&lt;p&gt;These are my favorite basic settings for VS Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.scrollBeyondLastLine"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.minimap.renderCharacters"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.renderWhitespace"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"boundary"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.tabSize"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.rulers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Designing as a crafty dev</title>
      <dc:creator>Katie Hughes (she/her)</dc:creator>
      <pubDate>Sat, 18 Dec 2021 18:36:49 +0000</pubDate>
      <link>https://dev.to/glitteringkatie/designing-as-a-crafty-dev-2f0p</link>
      <guid>https://dev.to/glitteringkatie/designing-as-a-crafty-dev-2f0p</guid>
      <description>&lt;p&gt;If you've been here before, you know I'm a frontend developer! If not, welcome to &lt;a href="https://glitteringkatie.com"&gt;my blog&lt;/a&gt;! Like any dev, it's hard to resist that well-known itch to re-do my personal website. So here we are. I've given my website a facelift for two reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I want to support more blog post topics than just tech.&lt;/li&gt;
&lt;li&gt;I want to use &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt; because that's what I've been using at work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I've always been a crafty person with an eye for design. I designed all previous iterations of this website! But I'm by no means a graphic/web/frontend designer, so it is &lt;em&gt;super&lt;/em&gt; easy to get overwhelmed when planning out a new design.&lt;/p&gt;

&lt;p&gt;Why is it so hard to get started? Well, frontend design is honestly blank canvas/page syndrome to the max. When painting, you at least have a limited color palette; or when decorating a room, you have a budget.&lt;/p&gt;

&lt;p&gt;When designing a website, it is easy to be overwhelmed because you have virtually every color and font and every way of configuring that content that you can imagine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get some inspo
&lt;/h2&gt;

&lt;p&gt;Taking inspiration from how I approach planning a room, my first step was &lt;a href="https://www.pinterest.com/glitteringkatie/blog-mood-board/"&gt;creating a Pinterest board&lt;/a&gt; and pinning anything I liked. Fonts, layouts, colors, etc. This helped me see everything I was drawn to all in one space, identifying the patterns that emerged.&lt;/p&gt;

&lt;p&gt;Looking in my closet and around my apartment, I obviously love greens and creams together. So obvious, in fact, that one day in a 1-1, I realized I was on a dark teal couch with a dark green sweatshirt with my pale complexion holding a mug with a dark teal/green dipped bottom and creamy top. When you start paying attention, you'll see patterns pop out.&lt;/p&gt;

&lt;p&gt;Mood board resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.pinterest.com/"&gt;Pinterest&lt;/a&gt; (benefit of having content in it already)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://milanote.com/product/moodboarding"&gt;Milanote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/collections/a36sckpBj1U/blog-photos"&gt;Make an Unsplash collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Your photo editor of choice&lt;/li&gt;
&lt;li&gt;Old fashioned magazine + glue&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Narrow it down
&lt;/h2&gt;

&lt;p&gt;We've gone from staring at a blank screen to staring at pictures and colors and fonts that we like. So let's key into our patterns!&lt;/p&gt;

&lt;h3&gt;
  
  
  Colors
&lt;/h3&gt;

&lt;p&gt;We just made mood boards with colors, so start with the color combos that pop out to you there, whether you saved actual color palettes or just images. We're going to aim for 5 starter colors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Background color (Usually white or off white)&lt;/li&gt;
&lt;li&gt;Text color (Usually black or off black)&lt;/li&gt;
&lt;li&gt;Main color (Pick your favorite color!)&lt;/li&gt;
&lt;li&gt;2 Accent colors (You can choose more if you want, but 2 is very doable. These should make your main color look its best!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then, let me introduce you to your new best friend: &lt;a href="http://coolors.co/"&gt;Coolors.co&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://coolors.co/"&gt;Coolors.co&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;First, go to &lt;a href="http://coolors.co/generate"&gt;coolors.co/generate&lt;/a&gt;. If you have any colors for which you know the &lt;em&gt;exact hex&lt;/em&gt;, go ahead and input those and lock them in. Then have at it with the space bar to auto-generate color palettes! It looks like coolors does a good job of giving you a mix of complementary, contrasting, and triadic color schemes. If you're not set on the &lt;em&gt;exact&lt;/em&gt; hex code, play around with the colors you started with. You never know what you'll find!&lt;/p&gt;

&lt;p&gt;When playing around with the hues and tones, I suggest using HSL. This is a color code based on Hue, Saturation, and Luminance. HSL is much closer to how we think of color mixing, thanks to elementary school, than something like RGB.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick accessibility note
&lt;/h3&gt;

&lt;p&gt;Now that you've found some colors you like, let's refine them while thinking about accessibility. Here are your steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://webaim.org/resources/contrastchecker/"&gt;https://webaim.org/resources/contrastchecker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Test 1: your text color on your background color, make either darker or lighter as needed&lt;/li&gt;
&lt;li&gt;Test 2: your main color on your background color, again adjusting &amp;amp; checking test 1 if you change your background color&lt;/li&gt;
&lt;li&gt;Test 3: either your dark-ish or black-ish color on your main color as a background, think CTA buttons needing text&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Fonts
&lt;/h3&gt;

&lt;p&gt;First, look at your mood board and notice what fonts you saved have in common. Are they serifed (have feet)? Are the sans-serif (no feet!)? Are they more blocky? Handwritten? We're going to choose 3 fonts here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logo font&lt;/li&gt;
&lt;li&gt;Header font&lt;/li&gt;
&lt;li&gt;Base (paragraph) font&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn't use the same font in my logo as I did in my header because I read a blog post saying that you need to keep your logo distinct. But that's up to you!&lt;/p&gt;

&lt;p&gt;In a book, paragraph fonts are usually serifed. The feet of the serif drag your eyes across. They provide movement. Sans-serif fonts tend to be a little crisper on a screen because a consistent stroke is easier to render than a tapering edge. Do you want people to stop and take notice? Or sit and read?&lt;/p&gt;

&lt;p&gt;You can find fonts anywhere, but I'd recommend skimming through &lt;a href="https://fonts.google.com/"&gt;Google Fonts&lt;/a&gt;. Their fonts are free and open source and are super easy to include in your website. They are also pretty widely available in other systems, like &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt;! If you want help narrowing down options, &lt;a href="https://www.typewolf.com/google-fonts"&gt;Typewolf has a great guide on Google Fonts&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Logo
&lt;/h3&gt;

&lt;p&gt;My "brand name" lends itself easily to an emoji. I actually had the emoji in mind when brainstorming a consistent handle across platforms. So I've always used ✨ as part of my branding.&lt;/p&gt;

&lt;p&gt;I used &lt;a href="https://www.canva.com/logos/"&gt;Canva's logo templates&lt;/a&gt; to play around easily and see what I liked. I keyed in on a design, but with Canva, you don't own your logo. So I keyed into the design I liked the most and used it as inspiration in &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In Figma, I developed a logo icon and a logo with my name in it. The icon lends itself to favicon use, and the full logo lends itself to the header. I then made heavy use of Figma allowing you to right-click and copy as SVG to save my designs!&lt;/p&gt;

&lt;h3&gt;
  
  
  Swatch it all together
&lt;/h3&gt;

&lt;p&gt;Using Figma still, I put my logo icon, my full logo, and a swatch of my colors and fonts together. I want to pause here and say I never really used Figma before this project, so I don't know all of the ins and outs, just kind of futzed with it until I had something that looked reasonable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6KDrc1kS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://glitteringkatie.com/assets/blog/designing-as-a-crafty-dev/swatch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6KDrc1kS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://glitteringkatie.com/assets/blog/designing-as-a-crafty-dev/swatch.png" alt="unorganized screenshot of my logos &amp;amp; font/color swatch" width="880" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Layout
&lt;/h2&gt;

&lt;p&gt;Alright! We have colors! Fonts! A LOGO! We're ready to go now, right? I really want to plead with you, developer, that you should spend the time actually laying out your pages in Figma or on a sheet of paper or whatever. Creating a layout isn't as easy as it seems when you have no plan. Again, we're dealing with the ultimate blank canvas syndrome.&lt;/p&gt;

&lt;p&gt;Did you save any layouts on your mood board? If you didn't, surf around the 'net now and find similar websites to yours. Go on some website template services and see how they layout content. Don't copy directly but take inspiration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real content
&lt;/h3&gt;

&lt;p&gt;You know how when you were a kid, and you drew a speech balloon and tried to fit text inside of it only to find out you didn't leave enough room? That's going to be you now if you don't take the time to think through your real copy.&lt;/p&gt;

&lt;p&gt;Real talk? Step all the way away from your design editor. Just do this in a document using bullet points to represent different sections, side-by-side sections, or links to other pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  All together now
&lt;/h3&gt;

&lt;p&gt;Once we have realistic content and have decided on colors, fonts, and logos, it's time to put this puzzle together! Make a layout for every page you intend on having, no matter how simple that page will be. I promise taking the time to do all of this planning &lt;em&gt;will&lt;/em&gt; lead to a better thought-out website, and it &lt;em&gt;will&lt;/em&gt; make your coding process more straightforward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QeOcB0wc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://glitteringkatie.com/assets/blog/designing-as-a-crafty-dev/layouts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QeOcB0wc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://glitteringkatie.com/assets/blog/designing-as-a-crafty-dev/layouts.png" alt="screenshot of all of my layouts planned in figma" width="880" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  You got this
&lt;/h2&gt;

&lt;p&gt;This whole thing takes time. But once you have a solid design plan, it will be worth executing it and making it live. For me, it took around 25 days to go from nothing to deploying on &lt;a href="http://glitteringkatie.com/"&gt;glitteringkatie.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When I decided to redesign, I was ready to immediately get coding. But I made myself take the time to really think through my design. Honestly, once I had a design, I didn't even want to code at that point. Ultimately the motivating factor for me wasn't, "Wow, I'll have an even nicer tech blog!" Instead, it was, "Wow, when I'm done, I'll have better functionality to support posts about furniture flipping and random crafts!" If you’re putting in this hard work, know &lt;em&gt;why&lt;/em&gt; you are doing all of this work!&lt;/p&gt;

&lt;p&gt;I hope something in this blog post helped you! And stay tuned for some non-tech content in the future!&lt;/p&gt;

</description>
      <category>ux</category>
      <category>design</category>
      <category>nextjs</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>🍿 Keeping Up With the JavaScripts</title>
      <dc:creator>Katie Hughes (she/her)</dc:creator>
      <pubDate>Mon, 23 Nov 2020 23:36:05 +0000</pubDate>
      <link>https://dev.to/glitteringkatie/keeping-up-with-the-javascripts-lc3</link>
      <guid>https://dev.to/glitteringkatie/keeping-up-with-the-javascripts-lc3</guid>
      <description>&lt;p&gt;In July 2020 I found myself as part of the many people affected by COVID-19 related layoffs. Before that, I was writing anything from Elm to Ruby to Elixir at NoRedInk. And before &lt;em&gt;that&lt;/em&gt; I was working with JavaScript and React for three years at AppNexus.&lt;/p&gt;

&lt;p&gt;It was fun to get the chance to write Elm professionally! But when I found myself looking for a new job, I decided I was ready to get back into the mainstream. After not writing any JavaScript for a year and a half, I was hired at Elastic under the posting of "JavaScript Engineer".&lt;/p&gt;

&lt;p&gt;So how did I brush up on JavaScript?&lt;/p&gt;

&lt;h2&gt;
  
  
  Hooks
&lt;/h2&gt;

&lt;p&gt;Through my JavaScript gap year (and a half), I still followed JavaScript community members on Twitter, which gave me a rough idea of what was happening. At least, I was aware of functional components and React hooks (but not enough to know they were related concepts).&lt;/p&gt;

&lt;p&gt;I checked in with some friends in a former-coworkers slack and they said, "Yes, learning hooks IS worth your time!" and also, "Yes, actually read &lt;a href="https://reactjs.org/docs/hooks-intro.html"&gt;React's documentation&lt;/a&gt; because it is actually good" (mildly paraphrased). They haven't lied to me about JavaScript yet so I went with it and used that as my jumping-off point.&lt;/p&gt;

&lt;p&gt;I did actually read all of React's documentation on hooks and I'm here to tell you: Yes, it is actually good documentation! When I felt good with my hooks knowledge, I looked into Elastic's component library (&lt;a href="https://elastic.github.io/eui/"&gt;EUI&lt;/a&gt;) for some real-life examples.&lt;/p&gt;

&lt;p&gt;A particular question I had in mind was around setState: is it more common to see one call to setState with an object representing state? Or more common to see multiple calls to setState, each with their own variable that would normally make up the state object?&lt;/p&gt;

&lt;p&gt;I figured looking up a form would easily tell me that since forms usually have multiple variables tracked in the state. I found &lt;a href="https://elastic.github.io/eui/#/forms/form-layouts#form-and-form-rows"&gt;a form example&lt;/a&gt; and the answer to my question: multiple calls to setState!&lt;/p&gt;

&lt;h2&gt;
  
  
  Muscle memory
&lt;/h2&gt;

&lt;p&gt;Alongside learning about what had &lt;em&gt;changed&lt;/em&gt; about React (not as much as I thought would have changed), I also wanted to get my muscle memory for JavaScript back. Brush off the dust, so to speak.&lt;/p&gt;

&lt;p&gt;I wasn't sure how to go about this at first. I tried &lt;a href="https://www.codecademy.com/"&gt;Codecademy&lt;/a&gt; but remember, I've written JavaScript professionally for three years so while Codecademy was great when I was learning, I wasn't starting from square one. Turns out the best way to re-acclimate is... just to write JavaScript. I had a few different paths for this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tarot side project
&lt;/h3&gt;

&lt;p&gt;Before really diving in deep, I tried to give myself about a week off from stressing (guess what: stress still happened). During this time I at least found the space to be creative and came up with a fun project! In typical side project fashion, it is not finished at the time of writing this post but will hopefully be good fodder for a future post.&lt;/p&gt;

&lt;p&gt;I wanted to build a tarot deck companion web app: you pull a card, the computer tells you what it means. The trick with future telling type stuff is to keep things as vague as possible so that was the route I took.&lt;/p&gt;

&lt;p&gt;I got to play with a natural language processing library, &lt;a href="https://github.com/NaturalNode/natural"&gt;Natural&lt;/a&gt;, and a sentence templating library, &lt;a href="http://kylestetz.github.io/Sentencer/"&gt;Sentencer&lt;/a&gt;. I'll keep the longer description for another blog post but all in all: having something I was excited to work on, and doing that in JavaScript, really helped me get my JavaScript muscle memory back.&lt;/p&gt;

&lt;h3&gt;
  
  
  InterviewCake
&lt;/h3&gt;

&lt;p&gt;When I was interviewing, &lt;a href="https://www.interviewcake.com/"&gt;InterviewCake&lt;/a&gt; had an amazing deal to support folks who had been laid off due to the coronavirus pandemic. It felt like a far more enjoyable read than some nameless interview books out there and it had interactive examples!&lt;/p&gt;

&lt;p&gt;Every weekday I gave myself a goal of InterviewCake problems to get through and this really helped me brush up on my JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://glitteringkatie.com"&gt;My blog&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I had been wanting to move away from Medium for a while but didn't want to over-engineer a personal blog. When I was interviewing for my current job, they mentioned that the project I'd be joining was currently written in &lt;a href="https://www.gatsbyjs.com/"&gt;Gatsby&lt;/a&gt;. Given those two facts and my free time, I figured it was time to play with Gatsby.&lt;/p&gt;

&lt;p&gt;Building up my blog was really one of the first times during my interview prep where I felt like I was in a real React codebase--not just some toy interview question. It felt really nice to be back.&lt;/p&gt;

&lt;p&gt;I did over-engineer one thing: at the bottom of the page where there is usually a "Made with ❤️" statement, I added functionality to randomize the emoji from some of my favorites. I &lt;em&gt;then&lt;/em&gt; decided that I should take seasons into account and added in some date checking to bring in Halloween and birthday emojis (September, October) or Christmas and winter emojis (November, December). Being excited about a little piece of functionality made JavaScript practice feel like play instead of work.&lt;/p&gt;

&lt;h2&gt;
  
  
  On the collective mind
&lt;/h2&gt;

&lt;p&gt;For more conversational interviews, I wanted to figure out what the JavaScript collective was thinking about. I skimmed through titles of talks from React Conf 2019 and that was helpful.&lt;/p&gt;

&lt;p&gt;One talk that I watched was &lt;a href="https://www.youtube.com/watch?v=wUMMUyQtMSg"&gt;The State of React State in 2019&lt;/a&gt; by &lt;a href="https://twitter.com/beccaliz"&gt;Becca Bailey&lt;/a&gt;. This helped me see how thoughts on state had changed since hooks came out. It was a great broad overview for me to get up to date.&lt;/p&gt;

&lt;p&gt;I also watched &lt;a href="https://www.youtube.com/watch?v=ONSD-t4gBb8"&gt;Accessibility Is a Marathon, not a Sprint&lt;/a&gt; by &lt;a href="https://twitter.com/BrittanyIRL"&gt;Brittany Feenstra&lt;/a&gt;. When I was writing Elm, there was a strong push for accessibility to be a default. I was really interested to see how the React community was thinking about it. I was glad to see the push for not breaking semantic HTML since when I left, it was totally fine to leave divs all over the place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice interviews
&lt;/h2&gt;

&lt;p&gt;In addition to all of this prep, practice interviews with friends who work in JavaScript day-to-day also really helped. I got the practice of pretending I'm in an interview but at the end, I also got to ask, "Okay, what is out of date in the JavaScript I wrote? Can you help me modernize this with hooks?"&lt;/p&gt;

&lt;p&gt;When I last was writing JavaScript, I was working with the best practice that if you're using &lt;a href="https://lodash.com/docs"&gt;lodash&lt;/a&gt;, just use it for everything even if &lt;a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype"&gt;&lt;code&gt;Array.prototype&lt;/code&gt;&lt;/a&gt; has the given function. During practice interviews, I got to learn that people now lean towards &lt;code&gt;Array.prototype&lt;/code&gt; functions &lt;em&gt;first&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Verifying my assumptions and understandings with someone who works day to day in JavaScript significantly helped me gain my JavaScript confidence back.&lt;/p&gt;

&lt;h2&gt;
  
  
  One month in
&lt;/h2&gt;

&lt;p&gt;I am writing JavaScript again! One month in, I have had a few moments where I've gone to write something and it comes out in pseudocode-gibberish (looking at you, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch"&gt;switch/case&lt;/a&gt;), but for the most part, I'm back to writing JavaScript fluidly again.&lt;/p&gt;

&lt;p&gt;In my first computer science class in high school, we were learning Pascal, something my CS teacher admitted was outdated for 2010. But my teacher told us something that has always stuck with me: focus on the &lt;em&gt;semantics&lt;/em&gt; not the syntax. I've been able to hop around to different languages because I know my core concepts, learning the syntax of a language can come second.&lt;/p&gt;

&lt;p&gt;I was hired because of how I think as an engineer, not because I can write a given language. And in the end, an employer with that order of priorities is the kind I want to work for.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>career</category>
      <category>react</category>
    </item>
  </channel>
</rss>
