a companion discussion area for blog.codinghorror.com

Rubber Duck Problem Solving


Framing is the question is always worthwhile. But the questions of newbies often make sense only in terms of a specific combination of ignorance and misapprehension. The best way to help is to look at what they do seem to know and hand them the corners of the metaphorical jigsaw puzzle. This often results in a much improved formulation of the question, a self-closure or self-answer.

But these people are made profoundly unwelcome by communities like Stack Overflow because they are not well equipped to ask a good question, and even if they do, they are not sufficiently steeped in the customs of that field to use phraseology that causes duplicates to show up while they are composing a question.

Recently I experienced this for myself when I embarked on a crash course of self-ed in Microsoft’s implementation of MVC with Durandal, Knockout and Bootstrap. For the first time in decades I floundered, not even knowing the extent of my ignorance. It was highly unpleasant and more than once I had a question closed as duplicate simply because I wasn’t wording things the way I would if I didn’t need to ask.


You can use digital version of Rubber Duck Debugger available on google play


This is still one of my favorite techniques for problem solving. Been doing it for years without having a name for it.

Your post has given me a wonderful name to use when I teach the technique to others - one that no one ever forgets.


Interestingly, it seems that the term “rubber duck debugging” has been coined in 1976 by Stack Overflow user greg-449 (cf. greg-449’s Developer Story), who is an amazingly helpful and swift answerer on all questions [eclipse] and [eclipse-rcp], which is enough reason for an honorary mention here.


My son has been trying to code the second coming of sans, but sadly he has been having complications with his codes and he can’t seem to be able to make a working sans undertale.
Arigato :slight_smile:


Your great link went stale. I now found it on http://www.cs.princeton.edu/~bwk/tpop.webpage/debugging.html