<?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: Jake Worth</title>
    <description>The latest articles on DEV Community by Jake Worth (@jwworth_).</description>
    <link>https://dev.to/jwworth_</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%2F3432731%2F6d031e57-f48d-497f-b2d8-fcbdab7a79eb.png</url>
      <title>DEV Community: Jake Worth</title>
      <link>https://dev.to/jwworth_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jwworth_"/>
    <language>en</language>
    <item>
      <title>Get Better at Debugging by Making Predictions</title>
      <dc:creator>Jake Worth</dc:creator>
      <pubDate>Tue, 23 Sep 2025 15:42:40 +0000</pubDate>
      <link>https://dev.to/jwworth_/get-better-at-debugging-by-making-predictions-8j0</link>
      <guid>https://dev.to/jwworth_/get-better-at-debugging-by-making-predictions-8j0</guid>
      <description>&lt;p&gt;Shift to a proactive mindset by making predictions before any experiments in a debugging session.&lt;/p&gt;

&lt;p&gt;This may sound simple, but it's powerful. Here's how and why it works, why it moves you from reactive to proactive, and how to use it outside of debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  How and Why to Make a Prediction
&lt;/h3&gt;

&lt;p&gt;Imagine you're debugging a web application, and you're trying to understand why some data on your page looks wrong. Think of an action you might take to learn more. &lt;/p&gt;

&lt;p&gt;Maybe you decide to log your data to see what's wrong with it.&lt;/p&gt;

&lt;p&gt;Before looking at your console to read the data, stop! I want you to predict what's going to happen next.&lt;/p&gt;

&lt;p&gt;Is it going to be null? Is it going to be an object with the wrong keys? Is it going to be an object with the right keys, but the wrong values? Say your prediction out loud.&lt;/p&gt;

&lt;p&gt;Now, look at the output. What do you see? You made a hard prediction, so it's either right or wrong. Which one was it?&lt;/p&gt;

&lt;p&gt;Considering this result, think about another action you might take. Log something else? Use a debugger? Log something higher up? &lt;/p&gt;

&lt;p&gt;Repeat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Predictions Move You from Reactive to Proactive
&lt;/h3&gt;

&lt;p&gt;Predicting what might happen forces you to pivot from the comfort of reacting to the empowering discomfort of being proactive.&lt;/p&gt;

&lt;p&gt;When you're debugging, reacting is our default. "I do this, then I see this...  But why? That shouldn't be happening!" Stimulus, response. You might stumble onto a solution, but it will take a while, and you won't learn much.&lt;/p&gt;

&lt;p&gt;We want to be proactive. There's a saying about debugging: "If all you're assumptions were correct, you wouldn't be stuck." In other words, your mental model of the problem needs refinement. &lt;/p&gt;

&lt;p&gt;To have a chance at fixing a bug, you must at least have a mental model. That's what making a prediction does. You're making a model. On the surface, it can look very similar to guessing. The difference is you're forcing yourself to take a stake in the results of your experiment.&lt;/p&gt;

&lt;p&gt;Predicting moves you from "Why isn't it working?" to "I expected an object of data, but it's null," which is powerful. It's specific enough to be actionable, or at least lead to a good next question. Such as "Why is this null?" &lt;/p&gt;

&lt;h3&gt;
  
  
  Learning to Predict Outside of Debugging
&lt;/h3&gt;

&lt;p&gt;I make predictions all the time when coding. &lt;/p&gt;

&lt;p&gt;On my best days, it puts me in a state where I'm making prediction after prediction and seeing them realized. When a prediction isn't realized, it's jarring. It's a trigger that turns off my autopilot when something surprising happens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Shift to a proactive mindset by making predictions before any experiments in a debugging session. See how it moves you away from reactive, and how it can be useful in many contexts.&lt;/p&gt;

&lt;p&gt;If you found this idea helpful, it's adapted from my short, actionable debugging guide: &lt;a href="https://jwworth.gumroad.com/l/dont-stay-stuck" rel="noopener noreferrer"&gt;Don't Stay Stuck: A Debugging Guide for Rising Engineers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
Photo credit: Hans Reniers on Unsplash&lt;/p&gt;

</description>
      <category>programming</category>
      <category>testing</category>
    </item>
    <item>
      <title>Debugging Tip: Don't Stay Stuck</title>
      <dc:creator>Jake Worth</dc:creator>
      <pubDate>Wed, 13 Aug 2025 15:02:57 +0000</pubDate>
      <link>https://dev.to/jwworth_/debugging-tip-dont-stay-stuck-1caf</link>
      <guid>https://dev.to/jwworth_/debugging-tip-dont-stay-stuck-1caf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Staying stuck rarely leads to a solution or a happy day; don't stay there.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This post is adapted from my digital debugging guide, &lt;a href="https://jwworth.gumroad.com/l/dont-stay-stuck" rel="noopener noreferrer"&gt;&lt;em&gt;Don’t Stay Stuck: A Debugging Guide for Rising Engineers&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We've all seen this: a frustrated coworker hunched over a computer after hours, flailing against some impossible bug. Or been that coworker ourselves.&lt;/p&gt;

&lt;p&gt;Persistence has limited power. Put your problem in a timebox, or go home.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Limited Power of Persistence
&lt;/h3&gt;

&lt;p&gt;Persistence is important in computing, but it can only take you so far.&lt;/p&gt;

&lt;p&gt;I once took a CS course that featured an online puzzle where you had to perform a series of tasks in a seemingly random order to solve it. The solution required brute force. You tried each step until something happened, and then you tried another. I found it maddening, and I gave up.&lt;/p&gt;

&lt;p&gt;It was intended to be a lesson in persistence: sticking with a problem without clear feedback. I learned that, along with an anti-pattern that took years to shake: staying stuck for too long.&lt;/p&gt;

&lt;p&gt;Sticking with a problem is a virtue in programming. If we all walked away anytime we were stuck, none of us would become expert debuggers. But if you're deeply stuck, the process soon loses value. You're no longer demonstrating persistence; you're feeling defeated and alone. When you get there, I recommend stepping away from the computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Put it in a Timebox
&lt;/h3&gt;

&lt;p&gt;Still persisting? My advice is to timebox your solo debugging: give yourself twenty minutes to an hour to spin your wheels, then ask for help.&lt;/p&gt;

&lt;p&gt;When the timebox ends, and you ask for help, you can still learn, because the person you asked might not be available or capable of solving the problem. They might only offer an idea. That meager crumb can lead you back to the trail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Go Home
&lt;/h3&gt;

&lt;p&gt;If you can't get help and it's an appropriate time, go home. Let your brain work on the problem while you sleep. &lt;/p&gt;

&lt;p&gt;You've solved hard problems before, and you can solve this one. Sometimes, the easiest way to do that is to step away.&lt;/p&gt;

&lt;p&gt;I can't count the number of times I've labored over a bug all afternoon, gone home exhausted, then come back and fixed it within minutes the next morning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Staying stuck is frustrating and rarely leads to a solution or a happy day; don't stay there.&lt;/p&gt;




&lt;p&gt;Cover Photo by Aubrey Odom via Unsplash&lt;/p&gt;

</description>
      <category>programming</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
