Last year, while trying to prepare for my Computing and Information Systems exams, I stumbled upon an article that presented an interesting debugging technique. This technique first appeared in the book The Pragmatic Programmer by Andrew Hunt and David Thomas and has been retold countless times with the name Rubber Duck Debugging. The idea is that when a programmer needs to debug their code, they should explain the program line-by-line to a rubber duck. Often, the act of explaining the problem step by step will cause the solution to present itself.
The concept of Rubber Duck Debugging need not be confined to programming. It can also be applied to other tasks like preparing presentations, revising for exams, and editing essays. The key idea is that speaking out loud can help solve problems. It does not matter if you are speaking to a rubber duck, your cat, or a colleague. Verbally explaining the problem that you are trying to solve helps greatly in coming up with a solution, because it forces you to pay attention to detail.
When I stumbled upon Rubber Duck Debugging, I was eager to put it to the test. Previously, I had dismissed the idea of talking out loud during problem solving, as I considered it to be a waste of energy. Recently, I decided to informally test the technique on various aspects of my study, not just programming. Unfortunately, I did not have a rubber duck, so I pulled up a picture of one on my phone. Here are some things I observed:
- Putting the effort to teach my rubber duck helped me recognise whether I actually understood a topic. For example, there were topics in the study guide that I had glanced over, thinking that I had already grasped them. When I tried teaching those topics, I realised I did not have a complete understanding and I needed to go back and study them.
- Reading an essay out loud that I wanted to edit helped me to decide whether sentences were grammatically correct and whether the essay flowed well.
- Sometimes, teaching a rubber duck was more useful than explaining the problem to a colleague, because suggestions from a colleague may lead to distractions or digressions, making it harder to solve the problem.
Personally, I find Rubber Duck Debugging to be quite useful when applied to my studies. If you are looking for some problem-solving help, perhaps you should try teaching rubber ducks!
Soumya studies BSc Computing and Information Systems from the Seychelles.