February 18, 2020

Rubber Ducky Productivity

Getting stuck on a problem can hinder productivity. Sometimes, these problems can take hours to solve. Learn how to quickly progress using a rubber ducky.

Rubber Ducky Productivity

Have you ever found yourself sitting at a desk, working at a problem, and feeling helpless about making little to no progress.  Maybe you have had a great idea, sorted all the thoughts in your head, but cannot find a way to execute the idea.  Or even found yourself looping through thought processes that all lead to the same end, despite seeming to be different strings of thought?  While these situations seem hopeless, one technique can help resolve these issues and put you back on track for success.

In computer science there is a practice known as "rubber-duck debugging," which essentially guarantees a boost in productivity and speed of learning.  You may ask "what does a rubber duck have to do with problem solving?"  Despite the funny name the process is a known practice to many people.  The scenario goes like this:

"Ah man my addition program isn't working and I have no clue what to do!"
"Alright Ducky, let's read through each line..."
"So here I am setting a variable equal to a user input"
"Here I am setting another variable to a user input"
"Here I call the multiply function, of which the return value is... a - b"
"Thanks rubber ducky!"

The process is based on two ideas.  One, in the words of Einstein, "If you can't explain it simply, you don't understand it well enough."  By explaining each line of code (thought) you are forced to understand the reasoning behind each step.  Second, purely mental thoughts are typically more messy than written or spoken thoughts.  It seems as if our minds become accustomed to certain thoughts, even if they are actually illogical.  By explicitly saying these thoughts, we analyze them more critically.

Another way to think about rubber duck debugging is considering a situation that has likely happened to most people.  How many times have you had a problem, started talking to someone about the problem, and had an "aha!" moment and solved the problem without the other person saying anything?  Almost everyone I talk to has said they have had one of these moments.  So the question is, why did you need this other person in the first place?  Explaining a problem to someone else requires you to go into details about the problem in order for them to understand.  These details are often overlooked when individually solving the problem because the mind is accustomed to the inner workings of the problem's system.  By analyzing each detail, the individual finds the logical inconsistency and solves the problem.  If you have experienced this phenomena, you already have the experience to understand ducky debugging.

Next time you have an issue, talk yourself through every painstaking detail of the problem!  Not only will this boost your productivity while solving tasks, it will give you a deeper understanding of the system as a whole.

Want to Learn More?

Personal growth and development is one of my favorite topics!  As someone who lived a very inefficient and ineffective life previously to the past couple years, I understand the difficulty in making positive life changes.  If you have any topics you would like to talk about, feel free to join my Discord community and send me a message on discord.  If you want to talk live, find friends in an active community, or just have fun, you can chat with me on stream at twitch.  Thank you for reading and have a good day!

If you prefer written content, make sure to subscribe to receive future post notifications using the subscription menu below!