<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: James Mateer</title>
    <description>The latest articles on DEV Community by James Mateer (@jaeger974).</description>
    <link>https://dev.to/jaeger974</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%2F3907675%2F4945e823-4798-4e06-b8e2-bd9d3af4d1f1.png</url>
      <title>DEV Community: James Mateer</title>
      <link>https://dev.to/jaeger974</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jaeger974"/>
    <language>en</language>
    <item>
      <title>The Scientific Method Made Me Better at Debugging Than I Expected</title>
      <dc:creator>James Mateer</dc:creator>
      <pubDate>Fri, 08 May 2026 13:21:00 +0000</pubDate>
      <link>https://dev.to/jaeger974/the-scientific-method-made-me-better-at-debugging-than-i-expected-3min</link>
      <guid>https://dev.to/jaeger974/the-scientific-method-made-me-better-at-debugging-than-i-expected-3min</guid>
      <description>&lt;p&gt;One of the first major bugs I hit as a junior developer looked simple at first.&lt;/p&gt;

&lt;p&gt;My React frontend refused to talk to my Express backend. The terminal kept throwing errors, the browser showed failed requests, and after a few hours I was convinced I had fundamentally misunderstood how APIs worked.&lt;/p&gt;

&lt;p&gt;At first, I did what I think a lot of beginners do: randomly changed things until something worked.&lt;/p&gt;

&lt;p&gt;Bad idea.&lt;/p&gt;

&lt;p&gt;Eventually I stopped, took a breath, and approached it the same way I used to approach problems in scientific environments: isolate variables and identify root causes.&lt;/p&gt;

&lt;p&gt;I started using a simple “5 Whys” approach.&lt;/p&gt;

&lt;p&gt;Problem: Frontend couldn’t connect to backend.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
→ The request was failing.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
→ The API endpoint returned a CORS error.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
→ Express wasn’t configured to allow requests from the Vite frontend.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
→ I never added CORS middleware.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
→ I didn’t fully understand how frontend/backend communication actually worked yet.&lt;/p&gt;

&lt;p&gt;That single debugging session changed how I think about development.&lt;/p&gt;

&lt;p&gt;Instead of treating bugs like random disasters, I started treating them like experiments.&lt;/p&gt;

&lt;p&gt;import express from "express";&lt;br&gt;
import cors from "cors";&lt;/p&gt;

&lt;p&gt;const app = express();&lt;/p&gt;

&lt;p&gt;app.use(cors());&lt;/p&gt;

&lt;p&gt;app.listen(3000, () =&amp;gt; {&lt;br&gt;
  console.log("Server connected on port 3000");&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;The fix itself was tiny.&lt;/p&gt;

&lt;p&gt;The lesson was not.&lt;/p&gt;

&lt;p&gt;What surprised me most about software development is that professional developers don’t seem to know everything either. Before I started coding, I honestly thought experienced engineers just remembered entire frameworks and instantly knew solutions.&lt;/p&gt;

&lt;p&gt;What I’ve discovered instead is that good developers:&lt;/p&gt;

&lt;p&gt;Read documentation constantly&lt;br&gt;
Break problems into smaller problems&lt;br&gt;
Search intelligently&lt;br&gt;
Debug methodically&lt;br&gt;
Document what they learn&lt;/p&gt;

&lt;p&gt;That last one surprised me most.&lt;/p&gt;

&lt;p&gt;I used to think documentation was just corporate busywork. Now I understand it’s one of the most practical skills in development. Half the battle of solving future problems is leaving breadcrumbs for yourself.&lt;/p&gt;

&lt;p&gt;I’ve started keeping notes on:&lt;/p&gt;

&lt;p&gt;recurring errors&lt;br&gt;
useful terminal commands&lt;br&gt;
ESLint fixes&lt;br&gt;
Git commands I always forget&lt;br&gt;
project setup issues&lt;br&gt;
debugging patterns&lt;/p&gt;

&lt;p&gt;Something as simple as this has saved me hours:&lt;/p&gt;

&lt;p&gt;git status&lt;br&gt;
git add .&lt;br&gt;
git commit -m "fix: resolved auth middleware issue"&lt;br&gt;
git push origin main&lt;/p&gt;

&lt;p&gt;Another thing that surprised me was how emotionally challenging development can be.&lt;/p&gt;

&lt;p&gt;There were days where I felt genuinely underqualified. I’d spend hours on something that turned out to be a missing bracket or incorrect import path.&lt;/p&gt;

&lt;p&gt;But I’m starting to realise that debugging is not proof that you’re failing.&lt;/p&gt;

&lt;p&gt;Debugging is the work.&lt;/p&gt;

&lt;p&gt;Every bug forces you to understand the system better than you did before.&lt;/p&gt;

&lt;p&gt;One of the most encouraging moments I’ve had so far was seeing this message after hours of troubleshooting:&lt;/p&gt;

&lt;p&gt;Server connected on port 3000&lt;/p&gt;

&lt;p&gt;Tiny win. Massive confidence boost.&lt;/p&gt;

&lt;p&gt;I’m still early in my journey, but I already think my previous experience outside tech gave me an advantage: learning how to think systematically under pressure.&lt;/p&gt;

&lt;p&gt;Turns out that skill transfers surprisingly well into software development.&lt;/p&gt;

&lt;p&gt;If you're career changing into dev, what's the biggest thing your old career taught you?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>career</category>
    </item>
  </channel>
</rss>
