The Rubber Duck Experience



I mentioned in my post about the Ypsilanti Software Development Meetup Group that my friend Fritz had suggested that we have a rubber ducky for a logo. My first thought was that it was a Ypsi tie in with the Heritage Festival that has a rubber duck race every year, but when I talked to Fritz over beers this weekend, he asked if I knew what the reference was. I mentioned the Ypsi thing, but he said that it was from a story about a programmer who would carry around a rubber duck and explain his code to the duck which helped in the debugging process. 

The previous week we had been discussing asynchronous programming in JavaScript and C#, and I had mentioned how I was struggling with figuring out how to use async and await with an MVC controller that calls a service class and then a database repository. The following day he asked me for clarification on what my issue was, and as I was documenting it to respond to him, I was able to figure out how to use the await in the service class. Fritz and I work in different environments with some overlap, but just the process of talking through issues can really help in gaining understanding. 

I really like the rubber duck analogy, and it reminds me of the Feynman approach where to really master a subject, you learn by teaching it. When you try to teach something to a novice, you have to understand the topic on a much deeper level than if you are just trying to understand it for yourself. One of the reasons I write blog posts and Wiki articles is so I can reinforce the things I have learned. They are also great references for things that I forget since they are written in my own words. I guess now I am going to have to get a rubber duck for my desk. 

Here is the wiki article on Rubber Duck Debugging. https://en.wikipedia.org/wiki/Rubber_duck_debugging

Do you have any tricks that help you learn new things or retain information better? Let me know in the comments. 

Comments

Popular posts from this blog

Asp.Net Core with Extended Identity and Jwt Auth Walkthrough

File Backups to Dropbox with PowerShell

Dynamic Expression Builder with EF Core