<?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>Forem: Beth (Beza) Meeker</title>
    <description>The latest articles on Forem by Beth (Beza) Meeker (@middledev).</description>
    <link>https://forem.com/middledev</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%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png</url>
      <title>Forem: Beth (Beza) Meeker</title>
      <link>https://forem.com/middledev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/middledev"/>
    <language>en</language>
    <item>
      <title>I can't be the only one that simply enjoys the terminal....</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Sun, 31 Aug 2025 20:54:30 +0000</pubDate>
      <link>https://forem.com/middledev/i-cant-be-the-only-one-that-simply-enjoys-the-terminal-22f3</link>
      <guid>https://forem.com/middledev/i-cant-be-the-only-one-that-simply-enjoys-the-terminal-22f3</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/middledev/terminally-curious-diving-into-bash-3pda" class="crayons-story__hidden-navigation-link"&gt;Terminally Curious: Diving Into Bash&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/middledev" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" alt="middledev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/middledev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Beth (Beza) Meeker
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Beth (Beza) Meeker
                
              
              &lt;div id="story-author-preview-content-2811453" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/middledev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Beth (Beza) Meeker&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/middledev/terminally-curious-diving-into-bash-3pda" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 31 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/middledev/terminally-curious-diving-into-bash-3pda" id="article-link-2811453"&gt;
          Terminally Curious: Diving Into Bash
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/bash"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;bash&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devjournal"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devjournal&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/middledev/terminally-curious-diving-into-bash-3pda" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/middledev/terminally-curious-diving-into-bash-3pda#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>bash</category>
      <category>programming</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Terminally Curious: Diving Into Bash</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Sun, 31 Aug 2025 20:50:35 +0000</pubDate>
      <link>https://forem.com/middledev/terminally-curious-diving-into-bash-3pda</link>
      <guid>https://forem.com/middledev/terminally-curious-diving-into-bash-3pda</guid>
      <description>&lt;p&gt;I’ve been enamored with terminal code since I was a kid. The blinking green cursor and pixelated graphics hooked me early. It’s no surprise that today I enjoy watching build logs fly by, digging into &lt;code&gt;.yaml&lt;/code&gt; files, and wondering what exactly is happening in those mysterious &lt;code&gt;.sh&lt;/code&gt; scripts.&lt;/p&gt;

&lt;p&gt;So, I’ve decided to stop wondering and start learning Bash.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I’ve Learned So Far:
&lt;/h3&gt;

&lt;p&gt;Navigation feels familiar&lt;br&gt;
Moving around in Bash isn’t much different from &lt;code&gt;zsh&lt;/code&gt;—the basics of &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, and &lt;code&gt;pwd&lt;/code&gt; are the same.&lt;/p&gt;

&lt;p&gt;It’s open source (and everywhere)&lt;br&gt;
Because Bash is open-source, there’s a huge ecosystem of examples, code snippets, and full scripts floating around. It’s both a blessing (so many resources) and a curse (easy for me to go down the rabbit hole).&lt;/p&gt;

&lt;p&gt;It feels bottomless&lt;br&gt;
Bash has layers to it, baby! At first it seems simple—run a few commands—but quickly you realize there’s a deep, DEEP toolbox of utilities and scripting quirks. The trick is knowing which tool to reach for and not beating yourself up if you need to Google it.&lt;/p&gt;

&lt;p&gt;Muscle memory + reference skills&lt;br&gt;
Memorization helps, but what really matters is building muscle memory for common tasks and learning how to reference docs or &lt;code&gt;man&lt;/code&gt; pages quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Word of Caution
&lt;/h3&gt;

&lt;p&gt;One thing I’ve learned the hard way:&lt;br&gt;&lt;br&gt;
Bash is powerful, and with great power comes the ability to completely wreck your local machine!&lt;/p&gt;

&lt;p&gt;Use a Virtual Machine or container when possible - a safe sandbox for experiments.&lt;/p&gt;

&lt;p&gt;Comment your code heavily. When I learn/try something new, I add verbose comments so I can retrace my thought process later. My scripts end up as both functional code and a learning journal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9ce5285hcqjxodvdkue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9ce5285hcqjxodvdkue.png" alt=" " width="800" height="234"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Learning Bash is like learning to converse with your computer in its native tongue. It’s not always glamorous or easy, but it opens up a world of automation, and power at your fingertips.&lt;/p&gt;

&lt;p&gt;If you’re just starting out—don’t rush it. I'm not! Experiment, comment, break things (safely), and enjoy the process. For me, that blinking cursor is an invitation to play.&lt;/p&gt;

&lt;h3&gt;
  
  
  Questions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What was your first Bash script? &lt;/li&gt;
&lt;li&gt;At what point did you feel you had a firm grasp on Bash?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bash</category>
      <category>programming</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Reframing when I hit that wall...</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Wed, 28 May 2025 12:08:38 +0000</pubDate>
      <link>https://forem.com/middledev/-b1n</link>
      <guid>https://forem.com/middledev/-b1n</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/middledev/coding-through-the-crash-4cp9" class="crayons-story__hidden-navigation-link"&gt;Decoding the Crash&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/middledev" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" alt="middledev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/middledev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Beth (Beza) Meeker
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Beth (Beza) Meeker
                
              
              &lt;div id="story-author-preview-content-2537166" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/middledev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Beth (Beza) Meeker&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/middledev/coding-through-the-crash-4cp9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 28 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/middledev/coding-through-the-crash-4cp9" id="article-link-2537166"&gt;
          Decoding the Crash
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devjournal"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devjournal&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/career"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;career&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mentalhealth"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mentalhealth&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/middledev/coding-through-the-crash-4cp9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>devjournal</category>
      <category>career</category>
      <category>mentalhealth</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Decoding the Crash</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Wed, 28 May 2025 12:07:30 +0000</pubDate>
      <link>https://forem.com/middledev/coding-through-the-crash-4cp9</link>
      <guid>https://forem.com/middledev/coding-through-the-crash-4cp9</guid>
      <description>&lt;p&gt;My brain only has two gears — obsession and avoidance.&lt;br&gt;&lt;br&gt;
When I’m inspired, I can be motivated almost to mania. I’ll start a side project and spend all my free time working on it. I’ll immerse myself in Polish music, and watch Polish &lt;em&gt;Peppa Pig&lt;/em&gt;. The ideas feel complete and within my reach if I just push a little further.&lt;/p&gt;

&lt;p&gt;And then comes the crash.&lt;/p&gt;

&lt;p&gt;Maybe work gets busy or the task becomes more demanding than expected. Maybe life just barges in, uninvited. Whatever the reason, my energy runs out. The inspiration is still there, just… shoved to the back. I feel guilty. I wonder why I can’t just push through it — why I can’t just stick with it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The High of Starting
&lt;/h3&gt;

&lt;p&gt;I know I’m in obsession mode when I’m on my personal laptop in the morning, maybe again at lunch, and definitely after work and on weekends. I’m a developer — I spend all day on a computer, Monday through Friday. So when I &lt;em&gt;still&lt;/em&gt; want more screen time that isn't just background music or scrolling, that’s the tell.&lt;/p&gt;

&lt;p&gt;In those moments, I feel unstoppable. I get excited. I tell my friends way too much about whatever it is — a side project, a weird bug I fixed, or something new I learned in Polish. I think about it obsessively. I feel sharp, capable, and certain that &lt;em&gt;this time&lt;/em&gt; I’ll follow through to the finish line.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Guilt Spiral
&lt;/h3&gt;

&lt;p&gt;But when that energy fades, the silence creeps in. I don’t feel sharp anymore — I feel like I’ve failed. It’s so easy to slip into the internal monologue of self-doubt:&lt;br&gt;&lt;br&gt;
&lt;em&gt;“I’m just lazy.”&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;“Am I even a real developer?”&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;“Who am I kidding? I’ll never be truly fluent in Polish.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These thoughts still come up, but I’m better at recognizing them now. I've worked hard to be able to name the cycle — and name it &lt;em&gt;while I'm in it&lt;/em&gt; — especially with my partner. That helps interrupt the spiral, even if it doesn’t stop it completely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rethinking the Crash
&lt;/h3&gt;

&lt;p&gt;Last night, I watched an interview with one of my favorite writer/directors, Mike White (&lt;em&gt;The White Lotus&lt;/em&gt;, &lt;em&gt;Chuck &amp;amp; Buck&lt;/em&gt;). He talked about his own cycles of inspiration — how sometimes he’s just watching TV, reading a book, or staring into space. From the outside, it might look like nothing is happening. But inside his brain, he’s &lt;em&gt;working&lt;/em&gt; — getting inspired, taking notes, fleshing out ideas.&lt;/p&gt;

&lt;p&gt;That really stuck with me.&lt;/p&gt;

&lt;p&gt;I’m not Mike White, and I don’t have a lifehack for this. I’m still in the crash right now actually. But I’m showing up — writing this post — and I’m realizing how advantageous the off-time can be. Maybe this lull is when inspiration actually starts. Maybe this is where the next idea takes root.&lt;/p&gt;

&lt;p&gt;So have I really been toggling between obsession and avoidance?&lt;br&gt;&lt;br&gt;
Perhaps a reframe is needed. I'm just living out a creative cycle — one that includes stillness as much as momentum. And self-care and recharging my mind and body are just as important in this process.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>career</category>
      <category>mentalhealth</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building clarity amidst chaos...</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Wed, 07 May 2025 11:15:20 +0000</pubDate>
      <link>https://forem.com/middledev/building-clarity-amidst-chaos-5ddo</link>
      <guid>https://forem.com/middledev/building-clarity-amidst-chaos-5ddo</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j" class="crayons-story__hidden-navigation-link"&gt;From English Major to Developer: Why Clean Code Is About Telling a Clear Story&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/middledev" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" alt="middledev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/middledev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Beth (Beza) Meeker
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Beth (Beza) Meeker
                
              
              &lt;div id="story-author-preview-content-2434577" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/middledev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Beth (Beza) Meeker&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 26 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j" id="article-link-2434577"&gt;
          From English Major to Developer: Why Clean Code Is About Telling a Clear Story
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/html"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;html&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devjournal"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devjournal&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>html</category>
      <category>coding</category>
      <category>devjournal</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🌍 We’re not just moving — we’re shifting our lives.</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Sat, 03 May 2025 12:15:14 +0000</pubDate>
      <link>https://forem.com/middledev/were-not-just-moving-were-shifting-our-lives-4ee0</link>
      <guid>https://forem.com/middledev/were-not-just-moving-were-shifting-our-lives-4ee0</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4" class="crayons-story__hidden-navigation-link"&gt;Exit Strategy: Year 1 of Our Plan to Move Abroad&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/middledev" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" alt="middledev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/middledev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Beth (Beza) Meeker
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Beth (Beza) Meeker
                
              
              &lt;div id="story-author-preview-content-2453828" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/middledev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553396%2Ff7f1b84f-d3d7-4c94-bcf3-fd396f04a166.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Beth (Beza) Meeker&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 2 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4" id="article-link-2453828"&gt;
          Exit Strategy: Year 1 of Our Plan to Move Abroad
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devjournal"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devjournal&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agile"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agile&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/career"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;career&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>devjournal</category>
      <category>agile</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Exit Strategy: Year 1 of Our Plan to Move Abroad</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Fri, 02 May 2025 12:48:40 +0000</pubDate>
      <link>https://forem.com/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4</link>
      <guid>https://forem.com/middledev/exit-strategy-year-1-of-our-plan-to-move-abroad-18g4</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: This is the first post in a series about two Americans working in tech and planning a move abroad.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ How We Got Here
&lt;/h3&gt;

&lt;p&gt;I was born and raised in the middle — Joplin, Missouri — the buckle of the Bible Belt. From my earliest memories, I felt the world beyond calling to me.&lt;/p&gt;

&lt;p&gt;We didn’t have cable — we were poor. But we had PBS. My family watched &lt;em&gt;Nova&lt;/em&gt;, &lt;em&gt;PBS NewsHour&lt;/em&gt;, &lt;em&gt;Frontline&lt;/em&gt;, and &lt;em&gt;American Experience&lt;/em&gt;. I watched &lt;em&gt;Reading Rainbow&lt;/em&gt;, &lt;em&gt;3-2-1 Contact&lt;/em&gt; , and &lt;em&gt;Where in the World Is Carmen Sandiego?&lt;/em&gt; (Who didn’t want to race across that map?)&lt;/p&gt;

&lt;p&gt;Those shows opened windows to places I’d never seen and ideas I’d never heard. My curiosity grew, and my imagination soared with dreams of big cities and far-off lands.&lt;/p&gt;

&lt;p&gt;But the farthest we ever traveled together as a family was 716 miles — by car — to Gatlinburg, Tennessee.&lt;/p&gt;

&lt;p&gt;Fast forward to 2025. I’m married to a dual citizen of the EU. We visit Poland once a year. We’ve ridden two-humped camels through the Gobi Desert. We crave adventure. And honestly? We want more than America has to offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  🥾 Small Steps to Big Moves
&lt;/h3&gt;

&lt;p&gt;I’ll be honest — this first year has been overwhelming at times. The biggest hurdle has been &lt;em&gt;accepting&lt;/em&gt; that we &lt;em&gt;can&lt;/em&gt; do this. It feels like standing a few miles outside a mountain village, staring up at a peak we’re not sure we can climb.&lt;/p&gt;

&lt;p&gt;So we made a list of what we wanted to accomplish in Year One.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level up our education:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;My wife enrolled in a Master’s program in Data Analytics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I began learning Ruby and started regularly challenging myself again with JavaScript problem-solving. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gain more confidence in Polish:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;My wife was born in Poland and spent her first six years behind the Iron Curtain. She’s fluent, but she’ll need to expand her vocabulary for a professional setting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I only began learning Polish in 2018 — just a few words at first. I got more serious in 2020, but let’s be real: Polish is hard, folks. This year, I enrolled in an official A1 language course.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then, something shifted. Suddenly it felt like we’d made it to that mountain village, spent a warm night at a hostel, and were finally hiking toward the base of the climb.&lt;/p&gt;

&lt;p&gt;We felt the &lt;em&gt;movement&lt;/em&gt; of our plan. We both struggle with ADHD, and when there’s no movement in our lives, the boots feel heavier. The simple act of planning was movement — and the springboard we both needed to kick into high gear.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧭 Looking at the Path Ahead
&lt;/h3&gt;

&lt;p&gt;We’ve had to remind ourselves that Year One is meant to be made up of small steps. We’re on the path, but nowhere near the summit, and sometimes we forget to focus on the trail ahead instead of the mountain’s peak.&lt;/p&gt;

&lt;p&gt;So we refocus, and ideate. We examine the immediate trail in front of us and begin to consider what Year Two might look like — starting with connecting to expats already living in Poland, continuing our language learning, and expanding our professional development.&lt;/p&gt;

&lt;p&gt;The climb is &lt;em&gt;daunting&lt;/em&gt; — that’s why this is a five-year plan. But shorter hikes — like agile sprints — are manageable, and they flow naturally with our professional lives and our ADHD brains, which thrive on momentum and quickly stall without it.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Moving and Shifting, One Step at a Time
&lt;/h3&gt;

&lt;p&gt;This isn’t just a move — it’s a shift in how we live, think, and plan for our future. It’s an &lt;em&gt;act of faith&lt;/em&gt; in ourselves, and in the idea that we don’t have to stay stuck just because we started here. &lt;br&gt;
There’s a long trek ahead, but we’re walking it with intention, one step at a time.&lt;/p&gt;

&lt;p&gt;In the next post, I’ll explore the realities of uncertainty. The world is volatile — Poland shares a border with Ukraine, and the future is anything but guaranteed. &lt;br&gt;
What if we’re walking toward something that shifts beneath our feet? If only life had types and fallback values — can we TypeScript this plan? &lt;/p&gt;

&lt;p&gt;These are the questions we’re sitting with — and that I’ll dive into next time.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>agile</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>The Guilt of Doing Better</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Sun, 27 Apr 2025 14:52:19 +0000</pubDate>
      <link>https://forem.com/middledev/the-guilt-of-doing-better-3ce9</link>
      <guid>https://forem.com/middledev/the-guilt-of-doing-better-3ce9</guid>
      <description>&lt;p&gt;A big thing I struggled with after changing careers was the idea of "doing better."&lt;/p&gt;

&lt;p&gt;My entire life had been about scraping by — watching my parents struggle, then struggling myself. Financially, emotionally, day after day.&lt;br&gt;
I had worked my ass off, clawing my way from the very bottom to what I thought was the best I could ever do — and even then, it was barely enough to survive, especially in Denver, Colorado.&lt;/p&gt;

&lt;p&gt;Sure, I had a few milestones. I paid off my Forester. I visited China a second time. But like so many Americans, I lived with that gnawing, vibrating pain of debt, like a spiccato cello string stabbing under everything. Debt was just...normal. Expected. A background hum of stress you learned to live with.&lt;/p&gt;

&lt;p&gt;And then suddenly: a new role. A new world. A new tax bracket.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 Work That Didn't Feel Like Work
&lt;/h3&gt;

&lt;p&gt;I enjoyed the work — genuinely enjoyed it — and it messed with my head.&lt;br&gt;
It didn't even feel like &lt;em&gt;work&lt;/em&gt; most of the time. I got to learn, to solve puzzles — the stuff I loved. How could I be paid &lt;em&gt;more&lt;/em&gt; for something that felt &lt;em&gt;easy&lt;/em&gt; compared to the soul-crushing jobs I'd done before?&lt;/p&gt;

&lt;p&gt;I wasn't emotionally shredded at the end of every day.&lt;br&gt;
I wasn't stuck in endless traffic construction zones for two hours a day.&lt;/p&gt;

&lt;p&gt;I was being rewarded — and I didn't know how to accept it.&lt;br&gt;
&lt;em&gt;Why me?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And then, with time: a silence.&lt;br&gt;
The stabbing cello string that had lived under my skin for decades—gone.&lt;/p&gt;

&lt;h3&gt;
  
  
  🇺🇸 A Real American Pain
&lt;/h3&gt;

&lt;p&gt;For the first time ever, when life threw something at me, I could handle it.&lt;/p&gt;

&lt;p&gt;It felt like waking up from a lifetime of sleeping wrong — always with that stiff, seizing pain in your neck and shoulder — and one morning realizing: &lt;em&gt;it's gone&lt;/em&gt;.&lt;br&gt;
You move. You breathe. You think, &lt;em&gt;Wow. This is what it's supposed to feel like?!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was me.&lt;br&gt;
Except the neck pain had been &lt;em&gt;financial&lt;/em&gt;.&lt;br&gt;
&lt;em&gt;Life-long&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Once the pain lifted, even a little, I couldn't unsee it.&lt;/p&gt;

&lt;p&gt;How is this normal?&lt;br&gt;
How is it that in the richest country in the world, financial pain is the &lt;em&gt;default setting&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Because that's exactly how it's built. And so many of us have felt the pain for a lifetime. Many will never know relief.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛍️ Debt By Design
&lt;/h3&gt;

&lt;p&gt;Debt is not a bug in the system. Debt &lt;em&gt;IS&lt;/em&gt; the system.&lt;/p&gt;

&lt;p&gt;We're groomed to crave it: the house, the car, the sunglasses, the newest Xbox.&lt;br&gt;
We are saturated — &lt;strong&gt;&lt;em&gt;assaulted&lt;/em&gt;&lt;/strong&gt; — with marketing that makes us want what we don't need. That makes us believe "happiness" comes with a price tag and a payment plan.&lt;/p&gt;

&lt;p&gt;The marketing is effective, folks. &lt;br&gt;
It's &lt;em&gt;designed&lt;/em&gt; to be.&lt;/p&gt;

&lt;p&gt;It keeps the cello strings humming, and stabbing under our skin.&lt;/p&gt;

&lt;p&gt;And some of us hear it for what it is.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>career</category>
      <category>cheatsheet</category>
      <category>webdev</category>
    </item>
    <item>
      <title>From English Major to Developer: Why Clean Code Is About Telling a Clear Story</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Sat, 26 Apr 2025 00:40:37 +0000</pubDate>
      <link>https://forem.com/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j</link>
      <guid>https://forem.com/middledev/from-english-major-to-developer-why-clean-code-is-about-telling-a-clear-story-4l1j</guid>
      <description>&lt;p&gt;Before I was a developer, I was an English major. I cared about how sentences flowed, how meaning was layered and could sometimes be buried and lost. &lt;br&gt;
Turns out, writing clean code taps right into those same instincts.&lt;/p&gt;
&lt;h3&gt;
  
  
  🧼 What Clean Code Means to Me
&lt;/h3&gt;

&lt;p&gt;My brain can easily be thrown into a state of chaos, and poorly written code can be very chaotic. For me, clean means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Semantic at very least&lt;/li&gt;
&lt;li&gt;Modularized if possible - chunks of code broken in into reusable pieces&lt;/li&gt;
&lt;li&gt;Coherent - &lt;code&gt;const items&lt;/code&gt; means very little but &lt;code&gt;const blogPosts&lt;/code&gt; has clear meaning.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🍜 Eating Div Soup: Semantic HTML
&lt;/h3&gt;

&lt;p&gt;Have you ever opened a page file only to find hundreds and hundreds of lines of divs — a styled banner, a row of buttons, some images, a form —&lt;br&gt;
&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; after &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; after div-estating &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;Worse still, there are no comments, so it's just an abyss of HTML with no real visual landmarks. My brain looks for structure to latch onto. It finds none.&lt;/p&gt;

&lt;p&gt;When I was learning to code at Turing, they called this &lt;em&gt;Div Soup&lt;/em&gt; — IYKYK — and they were right.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt;
          &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
            fontSize: '32px',
            fontWeight: 'bold'
          }"&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          Welcome
        &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt;
            &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
              backgroundColor: 'blue',
              color: 'white',
              padding: '10px'
            }"&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            Click Me
          &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt;
            &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
              backgroundColor: 'green',
              color: 'white',
              padding: '10px'
            }"&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            Or Me
          &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt;
                &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt;
                &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Name"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  border: '1px solid gray',
                  padding: '8px'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt;
                &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;
                &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Email"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  border: '1px solid gray',
                  padding: '8px'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt;
                &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  backgroundColor: 'purple',
                  color: 'white'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                Submit
              &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
                &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner1.jpg"&lt;/span&gt;
                &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 1"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  width: '100%',
                  height: 'auto'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
                &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner2.jpg"&lt;/span&gt;
                &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 2"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  width: '100%',
                  height: 'auto'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
              &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
                &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner3.jpg"&lt;/span&gt;
                &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 3"&lt;/span&gt;
                &lt;span class="na"&gt;:style=&lt;/span&gt;&lt;span class="s"&gt;"{
                  width: '100%',
                  height: 'auto'
                }"&lt;/span&gt;
              &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- Repeat 300 more lines... --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🌟 Clean, Neat, Semantic Version:
&lt;/h3&gt;

&lt;p&gt;Let's strip out some of that &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; soup and replace it with some semantic HTML elements!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"page-container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;header&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"page-header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Welcome&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"button-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"primary-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"secondary-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Or Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-section"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Name&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Name"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Email"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"submit-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner-gallery"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner1.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner2.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 2"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner3.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahh, that's nice isn't it? It's much easier to tell what elements are making up this page. It utilizes &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; elements showing how the page is organized. The &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; elements now have a &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We can go further though. &lt;/p&gt;

&lt;h3&gt;
  
  
  🧹 Modularized, Neatly Organized Version
&lt;/h3&gt;

&lt;p&gt;What if we put the page header code into it's own component file? We could use it on any page!&lt;/p&gt;

&lt;p&gt;📄 PageHeader.vue&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;header&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"page-header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Welcome&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oh, and the buttons, well, heck let's just refactor each piece into a component. &lt;/p&gt;

&lt;p&gt;📄 ButtonGroup.vue&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"button-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"primary-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"secondary-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Or Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📄 FormSection.vue&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-section"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Name&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Name"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Email"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"submit-button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📄 BannerGallery.vue&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"banner-gallery"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner1.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner2.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 2"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"banner3.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Banner Image 3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's see how the page template would look.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;// Import your modular components&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;PageHeader&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/components/PageHeader.vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;ButtonGroup&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/components/ButtonGroup.vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;FormSection&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/components/FormSection.vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;BannerGallery&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/components/BannerGallery.vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"page-container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;PageHeader&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ButtonGroup&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;FormSection&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;BannerGallery&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is it easier or more difficult to tell what the page is made of? Pretty darn clear, right? We look at the template and tell a quick tale of what makes up the page, at a glance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First there's a page header&lt;/li&gt;
&lt;li&gt;Next there's a button group&lt;/li&gt;
&lt;li&gt;Then comes the big bad form section&lt;/li&gt;
&lt;li&gt;And then the banner gallery rallied at the end&lt;/li&gt;
&lt;li&gt;And the page lived happily ever after...&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🏗️ Where Most Pages Land
&lt;/h3&gt;

&lt;p&gt;Of course, it doesn't always make sense to create a new component file for every tiny section, especially if it's only used once on a single page.&lt;br&gt;
In reality, most page templates land somewhere between Example 2 (neatly organized semantic HTML) and Example 3 (full modularization).&lt;/p&gt;

&lt;p&gt;And that's okay.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ In the Real World
&lt;/h3&gt;

&lt;p&gt;As a developer, you’re guaranteed to encounter a little (or a lot of) &lt;em&gt;Div Soup&lt;/em&gt; chaos at some point.&lt;br&gt;
And most of the time, you won’t be asked to refactor a mess into a clean, modular masterpiece — you’ll be tasked with patching, fixing, and building on top of what's already there.&lt;/p&gt;

&lt;p&gt;But — whenever you have the chance to make things a little clearer, a little more structured, or a little more readable for the next person (even if that person is future-you) — it’s worth doing.&lt;/p&gt;

&lt;p&gt;Clean code isn't about being perfect.&lt;br&gt;
It's about being thoughtful.&lt;/p&gt;

&lt;p&gt;And thoughtful code tells a clearer story — one that's easier to read, easier to build on, and a whole lot nicer to live inside. 🧹📚✨&lt;/p&gt;

</description>
      <category>html</category>
      <category>coding</category>
      <category>devjournal</category>
      <category>webdev</category>
    </item>
    <item>
      <title>👉 Gathering Magic: How .reduce() is JavaScript Alchemy</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Fri, 25 Apr 2025 22:59:12 +0000</pubDate>
      <link>https://forem.com/middledev/gathering-magic-how-reduce-is-javascript-alchemy-48gf</link>
      <guid>https://forem.com/middledev/gathering-magic-how-reduce-is-javascript-alchemy-48gf</guid>
      <description>&lt;p&gt;Is this &lt;strong&gt;really&lt;/strong&gt; a dev blog if I don't post about &lt;code&gt;.reduce()&lt;/code&gt;?!&lt;/p&gt;

&lt;p&gt;When I moved into ES6 iterator methods, I was excited. Sure vanilla JS was fun and all, but I was seriously ready to understand faster more concise ways to do things - and then came &lt;code&gt;.reduce()&lt;/code&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  😱 Reduce Scares People — Just Look at It
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;numArray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;numArray&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is this some strange incantation? Am I turning lead into gold? Well, sort of! Reduce is like JavaScript alchemy, and I love it.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧺 What &lt;code&gt;.reduce()&lt;/code&gt; is Doing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;With every iteration (loop over the array), you can pick something up and put it in your magic basket.&lt;/li&gt;
&lt;li&gt;The accumulator (often shortened to acc) is your basket — and you get to decide what kind of basket you want to carry!&lt;/li&gt;
&lt;li&gt;The initial value you give to &lt;code&gt;.reduce()&lt;/code&gt; is the starting basket:

&lt;ul&gt;
&lt;li&gt;🧮 A number (sum up values)&lt;/li&gt;
&lt;li&gt;✏️ A string (concatenating stuff)&lt;/li&gt;
&lt;li&gt;🗂️ An object (building new structures)&lt;/li&gt;
&lt;li&gt;📦 An array (flattening, regrouping, etc.)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Every time you return from the function, you hand the basket back to &lt;code&gt;.reduce()&lt;/code&gt; for the next loop.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;When &lt;code&gt;.reduce()&lt;/code&gt; finishes walking through the array, it hands you back the final, filled basket.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔢 A Basic Example: Summing Numbers
&lt;/h3&gt;

&lt;p&gt;We'll use &lt;code&gt;.reduce()&lt;/code&gt; to return the total of all the numbers in an array:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;arrayOfNums&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sumOfNumbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`iteration &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`accumulator: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, currentValue: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; + &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`total: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;\n`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// sumOfNumbers(arrayOfNums) returns 15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  👀 Logging What Happens
&lt;/h3&gt;

&lt;p&gt;Those &lt;code&gt;console.log()&lt;/code&gt; statements are everything when it comes to &lt;strong&gt;really seeing&lt;/strong&gt; what's happening when the method runs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;iteration 1
accumulator: 0, currentValue: 1
0 + 1
total: 1

iteration 2
accumulator: 1, currentValue: 2
1 + 2
total: 3

iteration 3
accumulator: 3, currentValue: 3
3 + 3
total: 6

iteration 4
accumulator: 6, currentValue: 4
6 + 4
total: 10

iteration 5
accumulator: 10, currentValue: 5
10 + 5
total: 15
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧠 Breaking Down the Callback: acc, cur, and More
&lt;/h3&gt;

&lt;p&gt;When you use &lt;code&gt;.reduce()&lt;/code&gt;, you're passing in a callback function that runs once for every item in the array.&lt;br&gt;
That callback can take up to four parameters. Let's demystify them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;acc (the accumulator) – Think of this as your basket. It starts with whatever &lt;code&gt;initialValue&lt;/code&gt; you pass into &lt;code&gt;reduce&lt;/code&gt;. Here, we set it to &lt;code&gt;0&lt;/code&gt;, so the accumulator begins at 0 before adding the first number.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;cur (the current value) – This is the current item from the array that you're looking at during the iteration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;index (optional) – The position of the current item in the array - sometimes just shortened to &lt;code&gt;i&lt;/code&gt;. Super useful when you want to know where you are.&lt;br&gt;
(And don’t forget: arrays are &lt;code&gt;zero-indexed&lt;/code&gt; — meaning the first element has an index of 0, the second has 1, and so on.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;array (optional) – The original array being reduced.&lt;br&gt;
(Apparently handy, but to be honest... I've never really needed it.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t have to include all four — just the ones you actually need.&lt;/p&gt;
&lt;h3&gt;
  
  
  📝 A Slightly Spicier Example: Building a Sentence
&lt;/h3&gt;

&lt;p&gt;Take an array of words. We'll use &lt;code&gt;.reduce()&lt;/code&gt; to build a sentence and utilize &lt;code&gt;index&lt;/code&gt; for more than logging.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;arrayOfWords&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;My&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;is&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Beza&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;buildSentence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="nx"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="nx"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;cur&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    
     &lt;span class="p"&gt;}&lt;/span&gt;
     &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// buildASentence(arrayOfWords) returns "My name is Beza."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔍 What's Different This Time?
&lt;/h3&gt;

&lt;p&gt;Notice how we added some conditions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If we're at the last word (&lt;code&gt;i === arr.length - 1&lt;/code&gt;), we add a period&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Else we add a space after the word&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🛠 Not Just Gathering — Deciding
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;.reduce()&lt;/code&gt; isn’t just gathering stuff — it’s also deciding how to gather based on where we are in the array!&lt;br&gt;
It can build, shape, and transform as it walks through the data — and &lt;strong&gt;you, the developer&lt;/strong&gt;, are the magician casting the spell.&lt;br&gt;
Once it clicks, the possibilities for its use feel endless.&lt;/p&gt;

&lt;h3&gt;
  
  
  🪄 Start Small and Keep Practicing
&lt;/h3&gt;

&lt;p&gt;If &lt;code&gt;.reduce()&lt;/code&gt; still feels confusing, don't worry - it's completely normal at first.&lt;br&gt;
Don't give up. Circle back to the basic numbers example and add your own &lt;code&gt;console.log()&lt;/code&gt; statements.&lt;/p&gt;

&lt;p&gt;The more you watch the basket being filled piece by piece, the more natural &lt;code&gt;.reduce()&lt;/code&gt; will start to feel. And when it clicks, you'll feel the magic!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Feeling at Home in a Different Culture</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Wed, 23 Apr 2025 20:00:16 +0000</pubDate>
      <link>https://forem.com/middledev/feeling-at-home-in-a-different-culture-5ejk</link>
      <guid>https://forem.com/middledev/feeling-at-home-in-a-different-culture-5ejk</guid>
      <description>&lt;p&gt;I’ve been casually learning Polish for a handful of years now — mostly because I want to communicate with my wife's family, and partly because I just love languages. But learning Polish hasn’t just been about vocabulary or grammar. It’s been about culture. And, surprisingly, about comfort.&lt;/p&gt;

&lt;p&gt;Polish is hard.&lt;br&gt;
It has seven cases, sounds I didn’t grow up with, and word endings that change based on things I didn’t even know could matter. I mix up &lt;code&gt;godzina&lt;/code&gt; (hour) and &lt;code&gt;rodzina&lt;/code&gt; (family) constantly, even though their meanings couldn’t be more different. But they sound so similar, and Polish has a lot of that — slippery similarities that can trip you up, over and over again.&lt;/p&gt;

&lt;p&gt;But the more I learn, the more I appreciate the way Polish sounds.&lt;br&gt;
American English — the language I’ve spoken my whole life — feels, in hindsight, like slogging through mud inside your mouth. Polish?&lt;br&gt;
Polish is like tap dancing. It’s sharp. It’s deliberate. It’s artful.&lt;br&gt;
You can’t mumble your way through it. You have to commit.&lt;/p&gt;

&lt;p&gt;And strangely, I like that.&lt;/p&gt;

&lt;h3&gt;
  
  
  🙃 The Smile Thing
&lt;/h3&gt;

&lt;p&gt;Something else that struck me as I spent more time in Poland was just how comfortable I felt — not because it was familiar, but because it was quiet. In the U.S., I grew up hearing this from total strangers — often men:&lt;/p&gt;

&lt;p&gt;“Smile, girl! You should smile more.”&lt;br&gt;
“Are you sad? You’re not smiling.”&lt;/p&gt;

&lt;p&gt;I never understood that. Why did I need to smile for someone else's comfort?&lt;/p&gt;

&lt;p&gt;By the time I finished college and entered the workforce, I’d internalized it. Smile more. Make eye contact. Be approachable. Be pleasant. Perform all the things.&lt;/p&gt;

&lt;p&gt;But in Poland? Smiling at strangers isn’t the norm. People don’t demand it from you. If you’re walking down the street with a neutral expression, nobody comments on it. Nobody asks why you’re not grinning like an idiot.&lt;/p&gt;

&lt;p&gt;It feels like permission to just be me.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Learning a Language, Finding Belonging
&lt;/h3&gt;

&lt;p&gt;So yes — Polish is difficult.&lt;br&gt;
But it’s also beautiful. And grounding. And oddly, it’s helped me understand a part of myself I couldn’t name before.&lt;/p&gt;

&lt;p&gt;When I speak Polish — even badly — I feel like I’m allowed to be quiet. To be deliberate. To exist in a culture that doesn’t expect me to perform warmth for strangers. That alone feels like home.&lt;/p&gt;

&lt;p&gt;And maybe that’s what learning a language is really about. Sure, master the verbs and pronunciation — but be sure to stumble your way into a new world where something else clicks and you feel less like a stranger - &lt;code&gt;obcy&lt;/code&gt; - and more like yourself.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
    </item>
    <item>
      <title>The Time this Broke My Brain</title>
      <dc:creator>Beth (Beza) Meeker</dc:creator>
      <pubDate>Wed, 23 Apr 2025 11:44:50 +0000</pubDate>
      <link>https://forem.com/middledev/the-time-this-broke-my-brain-28nf</link>
      <guid>https://forem.com/middledev/the-time-this-broke-my-brain-28nf</guid>
      <description>&lt;p&gt;When I was first learning JavaScript in Turing's Mod 1, I felt like I was making real progress. I could write loops. I could use conditionals. I was wrapping my head around functions, arrays, and objects. Then came testing — and everything started to fall apart.&lt;/p&gt;

&lt;h3&gt;
  
  
  When &lt;code&gt;this&lt;/code&gt; Broke Everything
&lt;/h3&gt;

&lt;p&gt;We were using Mocha and Chai to test our vanilla JavaScript code, and suddenly I was running into errors I didn’t understand. A method would fail, the test would break, and I’d stare at the screen thinking, "Why doesn’t this work"?&lt;/p&gt;

&lt;p&gt;The answer — almost every time — was &lt;code&gt;this&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;At the time, I didn’t truly understand what &lt;code&gt;this&lt;/code&gt; meant. I assumed it referred to “whatever object I’m working in.” But &lt;code&gt;this&lt;/code&gt; isn’t about where code is written — it’s about how the function is called. And this coding world of callbacks, nested functions, and object method references, that distinction mattered. A lot.&lt;/p&gt;

&lt;p&gt;What I didn’t realize back then is that &lt;code&gt;this&lt;/code&gt; in JavaScript is a trickster. It changes based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The calling context&lt;/li&gt;
&lt;li&gt;Whether you're using arrow functions or regular ones&lt;/li&gt;
&lt;li&gt;Whether something is bound, called, or passed around&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a strong mental model for how this works, my code started to feel like guesswork. I wasn’t debugging — I was just rearranging pieces and throwing code harder and harder at the wall, hoping something would finally stick.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Classic Example
&lt;/h3&gt;

&lt;p&gt;One of my first “what is even happening” moments in JavaScript was running into this classic &lt;code&gt;this&lt;/code&gt; issue in a test.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;User&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;greet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Hello, my name is &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// user-test.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chai&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;chai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;expect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;chai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;greet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Beth&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// ❌ `this` loses context!&lt;/span&gt;

  &lt;span class="nf"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;should return a proper greeting&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;equal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello, my name is Beth&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// 💥 TypeError: Cannot read properties of undefined (reading 'name')&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What Was Actually Happening?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;this&lt;/code&gt; is no longer bound to the instance of &lt;code&gt;User&lt;/code&gt; when we extract the method — so &lt;code&gt;this.name&lt;/code&gt; becomes &lt;code&gt;undefined&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Instead of extracting the method, I needed to call the method on the instance of &lt;code&gt;User&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;beth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Beth&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nf"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;should return a proper greeting&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;beth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;equal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello, my name is Beth&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looking back now, I realize I wasn’t struggling with logic. I was struggling with context. And understanding context — especially how it affects &lt;code&gt;this&lt;/code&gt; — changed everything about my writing and understanding JavaScript code.&lt;/p&gt;

&lt;p&gt;If you're just starting out and &lt;code&gt;this&lt;/code&gt; feels like a mystery:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’re not broken. Your brain isn’t broken.&lt;/li&gt;
&lt;li&gt;JavaScript’s relationship with &lt;code&gt;this&lt;/code&gt; is just weird.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stick with it. Ask questions. Build small things. Watch what happens when you run them. And remember: if &lt;code&gt;this&lt;/code&gt; is breaking your brain, you’re probably closer to getting it than you think.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>coding</category>
      <category>javascript</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
