Rubber Duck Debugging: A Simple Trick to Help Students Better Understand Complex Problems

In 1999, Andrew Hunt and David Thomas wrote The Pragmatic Programmer:  From Journeyman to Master, an oft-used textbook for computer programmers. The authors spend ample time on the process of debugging — rooting out and correcting errors, looking for misconceptions, and understanding what you THINK a program will do versus what it ACTUALLY does. For programmers, this is tedious and oftentimes maddening work, requiring line-by-line analysis of innumerable lines of code. It might seem odd to use a text for computer programmers to help students struggling with their homework, projects, and papers, but Hunt and Thomas tap into some of the feelings that all of us experience when faced with misunderstanding or errors. 

They introduce this as the “Psychology of Debugging”: “Debugging is a sensitive, emotional subject for many developers. Instead of attacking it as a puzzle to be solved, you may encounter denial, finger-pointing, lame excuses, or just plain apathy.” Re-read that, but replace the first word “debugging” with ANY process your favorite learner tackles, and replace “developers” with students.

Here’s an example to illustrate what I mean: 

Completing homework is a sensitive, emotional subject for many students.  Instead of attacking it as a puzzle to be solved, you may encounter denial, finger-pointing, lame excuses, or just plain apathy.”

Does this sound like a situation you’ve witnessed or tried to mediate for a student you care about? I know that as an Executive Function Coach with Educational Connections, I often see the emotional side of frustrating work. Honestly, I think we’ve all been there! If we tap into the challenges in “the emotional side” of homework assignments, essays, presentations, and exams, we can use solutions that help all parts of the issue. When I see students dealing with these frustrations, I often try a strategy from Hunt and Thomas that helps move students away from the “sensitive” side of things and more towards the problem-solving necessary to tackle problems: rubber duck debugging.

The 5 Steps of Rubber Duck Debugging

This simple strategy works in various situations.  Whether a student is trying to solve complex problems, find errors in their work, or practice a process (that they just can’t seem to get!), rubber duck debugging can help. The process is pretty simple.

1) Get some kind of little toy, like a rubber duck. 

Thomas recalls something he saw while an undergraduate at Imperial College in London.  He noticed that a grad student named Greg Pugh had a cool habit: Greg carried a little rubber duck with him, and he’d set that duck up in his workstation when coding. Thomas eventually learned WHY Greg did this; he followed Steps 2-5, below. But having a little rubber duck is essential. You need something to talk to. My personal “rubber duck” is a Pinocchio pencil holder.

2) When you encounter a problem, bring it to the duck. 

When work gets frustrating, when the problem seems unfixable, or when you just CANNOT find the error, explain it to the rubber duck. So, you’re not going to go through steps in your head, on paper, or in a Word document. You are going to speak — out loud — to your chosen toy.  

3) Explain the problem, the steps you’ve taken, and the outcomes that SHOULD take place. 

You have to keep in mind, as you are talking, that this is just a rubber duck; it will need a simple explanation — step-by-step. On my own desk, Pinocchio serves this purpose very well. His reputation as a lazy pine-wood do-nothing precedes him, so when I encounter a problem that I cannot complete, I need to explain the steps to him in simple terms. I tell him what the problem is, what steps I’ve taken, what should be taking place, and what outcome I should expect.  

4) Explain the “next steps” to the duck. 

This is often the part that we take for granted when we are working. We have an idea in mind of what can happen, but the process of saying it, aloud, to the duck (or, in my case, a stringless puppet who is a constant disappointment to his father) gets us to root out assumptions that will lead to a better understanding of the problem, overall.  

5) Repeat Steps 3-4. 

Eventually, as you explain the problems, the steps, the outcomes, and the next steps, something wonderful will happen. Perhaps you will stumble upon a solution. Perhaps you will root out a key misconception that has hindered your thinking and caused you to make errors.  Perhaps you will realize that you actually cannot explain the concepts simply, in duck-friendly terms, and so you will need to review. Perhaps you will realize that what you THINK you are doing and what you are ACTUALLY doing are, in fact, two different things. 

The process of providing a simple, stripped-down explanation of all concepts, steps, and outcomes gets you to pay attention to all the details and root out the “bugs” in your work. (It’s also key to note that ducks do eat insects, so they’re happy to help you with debugging.)

How Some Students Use Rubber Ducks Debugging

I think it’s important to illustrate how this works, because this seems a little silly. I mean, I think it’s a little silly (hence all the Pinocchio and duck jokes). However, this is truly a delightful strategy that taps into thinking, and it’s also something that students can try out, as it can help reduce that sensitivity towards work. 

For several years, I worked with a student named Claudia, who is now in college. In high school, she took many advanced math and science courses, which were often frustrating, resulting in some late nights and some negative self-talk. This is why I introduced rubber duck debugging. I noticed that area of sensitivity, and I wanted to share a strategy that would help Claudia figure things out, while also “taking the temperature down.”   

Claudia worked hard in these classes because she had an important goal: She wanted to be a doctor. Her stress stemmed from her intense desire to excel and achieve her goals.  While taking Anatomy, though, things got even harder than normal. Now, she needed to memorize new vocabulary and details about the function of organs and systems. Then, she needed to be able to extrapolate all of this into case studies that had students look at files about a fictional patient to recommend a course of treatment. I vividly remember when Claudia was working on a unit about communicable diseases. She had a case study with so many details about a patient, but there was nothing that really stuck out about the patient, so that she could come up with a diagnosis.

In our session, I “sat in” for the rubber duck, so that she could try the strategy and we could reflect on it at the end of the session. Claudia talked through the case study, explained the evidence, and also explained the steps that were in the patient’s chart (blood tests, etc.) along with those results. As the “duck,” I didn’t ask questions, and I didn’t provide insights.  I let Claudia talk through the steps. When she got to next steps, she said, “So I should at this point be able to pick out a medication, and since the patient’s only issues that I can see are a fever and an infection on the skin, an antibiotic should do it, but it should be topical, maybe. As soon as I saw the picture included in the file, I knew this was probably an allergic reaction from being outside, since the case study mentions that the patient is a hiker. Like, maybe they got a bug bite or had a reaction to something like poison ivy.” And then she got really quiet, finally saying, “But this is a communicable disease unit, and it’s not about allergies. Oh my. I think this might be Lyme’s Disease!”

Claudia talked through the process in detail and in simple terms, and as she did, she realized her misconception — she was treating this case study not as a communicable disease, but as an allergic reaction. That thought lodged itself in her brain, making it difficult for her to sort everything out. By discussing it thoroughly in simple terms and reviewing all the parts/steps, she eventually engaged in the type of problem-solving necessary to complete the work. Was she right, though? She was. When we met again, Claudia not only had an excellent grade, but she also showed me that she had moved her “rubber duck” (a Calico Critters toy she picked up between our sessions) into her work area. She shared that she now coupled “rubber duck debugging” with her review process (taking notes, reviewing class materials), and she was actually writing down a list of misconceptions that she identified.

This example effectively demonstrates how rubber duck debugging can benefit students across various subjects, even though my example focuses on a single student from several years ago in an Anatomy class. It’s best used when the problem is complex, with many steps and considerations. Remember, it’s a strategy that helps programmers find problems in the labyrinth that is computer code. This is not a strategy for every single issue or every single student, but it is an excellent option for those complex, multi-step problems. It’s also a great option when those complex, multi-step problems cause a lot of frustration and sensitivity. It may seem silly at first to talk to a desk ornament, but it taps into thinking processes in a way that helps learners sift through the steps to identify misconceptions.  

At Educational Connections, we understand that every student is unique, which is why we customize Executive Function strategies, like rubber duck debugging, to fit each learner’s individual needs and challenges. If your student could benefit from personalized support to tackle homework frustration, improve problem-solving skills, or build stronger study habits, we’re here for you. Schedule a free consultation call today to discover how our EF coaching can help your child thrive.

About Our Guest Author

Rachael Moss headshot for blog
Rachael Moss, MA, MS Ed.

Rachael Moss is an Executive Function Coach & Professional Development Specialist at Educational Connections.

She previously worked as a teacher at both the high school and college levels.

Rachael holds a Master’s Degree in Literature and another in Secondary Education, English from Duquesne University in Pittsburgh, Pennsylvania.