"What?" - The Duck

"What?" - The Duck

How to get knowledge to stick.

If you are new to coding there are several things you might want to purchase - a good keyboard and mouse, the most ergonomic chair within your price range, and a rubber duck.

Yes, you read that last one correctly. A rubber duck is as vital to the coding process as a workable computer. Some might argue even more so.

giphy.gif

“How does a bathtime toy help me improve my coding?” you might ask. It is a reasonable question.

You are going to talk to your rubber duck. Not only that, you are actually going to teach your rubber duck to code! As you learn new coding concepts, explain them to your duck.

As you write and work through code, explain that code to your duck. What does the code do? How do the different components work together? Why did you choose this way of doing something over other options? Your duck wants to know everything!

117dc08f-1dbf-4c47-8538-efb68424036a_text.gif

This process of “rubber ducking” has a long history in coding. It is a tried and true method that helps us externalize our thought processes and solidify concepts.

It is easy to read through an explanation of a coding concept and think we grasp it. But can you actually explain it in your own words? Is your explanation complete and still understandable? “Rubber ducking” puts these questions to a test.

One of the best ways to learn is to teach. Consciously and consistently building that process into your coding journey will help you succeed.

tell-me.gif

I am a big of Barbara Oakley and her course, “Learning How to Learn”. In it she extolls the virtues of active recall - the act of retrieving information from your memory to deliberately strengthen the neural pathways to it.

In other words, you can strengthen your long term grasp of material by stopping periodically as you learn to remember what you learned. At the end of each page, what big points were covered in the paragraphs? At the end of the chapter, what were the main ideas the author was trying to get across?

Can you recall them? And can you explain them in your own words so your rubber duck can understand?

Rubber ducking also prepares you to excel at technical interviews. Interviewers don’t just want to watch you solve the coding challenges they present. They want to hear your thought process and see how you engage with others when solving a problem. All your “rubber ducking” is practice for doing exactly that!

These interviews are meant to assess how you will do on the job, so unsurprisingly “rubber ducking” will also help you prepare for that. All of us who have worked on teams can attest how nice it is to work with other devs who can communicate well. I will gladly take someone who can communicate processes and their perspective clearly over the most skilled coder who cannot. I promise I am not alone in that.

imagination-spongebob-squarepants.gif

“Does it have to be a duck?”

No, not at all. You are welcome to use a rubber duck for tradition’s sake but any object will do. I happen to use Groot who is an expert software engineer by now:

IMG_5881.jpg

I use Groot because he has those big kind eyes that just scream “I support you and am listening.” That is the energy I need, especially when I am stuck on a frustrating problem or concept. I recommend choosing a “rubber duck” you especially enjoy since you will be spending lots of time together.

I hope this gives you some insight into the world of “rubber ducking.” Please share your rubber ducks in the comments!

IMG_7247.jpg

Final fun fact - Bob Fornal actually sent me his rubber duck, BatDuck, for a visit here in Tucson. BatDuck is still traveling around the world from one coder to another.