“Rubber Ducking” – the phrase originated from The Pragmatic Programmer: From Journeyman to Master. The concept is that simply explaining the problem out loud, will often help one to come up with a solution, be it computer programming, design, or anything that requires thought really. In the words of the Pragmatic Programmer:
Place a rubber duck on your monitor and describe your problems to it. There’s something magical about stating your problems aloud that makes the solution more clear.
It doesn’t have to be a rubber duck, a Cardboard Programmer will do. Best described from the following example:
A colleague walks past and notices your anguish: “What’s up?”.
“Oh, I’m …”. You explain the problem and what you have done so far. However you suddenly discover the solution before you have finished speaking! So far your colleague has been as useful as a cardboard cutout.
Besides programming work assistance, rubber ducking also makes for an excellent learning tool to computer science students and instructors. My personal approach is to get students to ask the right questions that they could then answer themselves. It works surprisingly well. In another excerpt from the cardboard programmer link:
At a computer lab at UT (University of Texas) there was a lab assistant who required all people asking for help to first tell their problem to his TeddyBear which lived on his desk. He used to say that after talking to the bear more than 75% of the people solved their problems.
Often times I see students lock up in a “my program doesn’t work” attitude, while their mistake is obvious from simply reading the code. Explaining the program and the problem out loud, forces a more detailed attention that reveals such programming mistakes. Students learn better, and feel better for catching their own mistakes. Instructors can attend to more students, and don’t have to figure out what that a:f6 variable is supposed to be. Perfect.
So, what are you having problems with?