Rubber duck debugging

marsicdev | 2018-12-27

All notes

In software engineering, rubber duck debugging is a method of debugging code. The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck. Many other terms exist for this technique, often involving different inanimate objects.

Many programmers have had the experience of explaining a problem to someone else, possibly even to someone who knows nothing about programming, and then hitting upon the solution in the process of explaining the problem. In describing what the code is supposed to do and observing what it actually does, any incongruity between these two becomes apparent. By using an inanimate object, the programmer can try to accomplish this without having to interrupt anyone else.

More generally, teaching a subject forces its evaluation from different perspectives and can provide a deeper understanding.

Source: Wikipedia - Rubber duck debugging



Related notes

Senior Engineer Fatigue

Alongside senior wisdom comes a less discussed but equally important companion `Senior Fatigue`

development  engineering  seniority 
Read

Understanding what is impactful

Critical skill for software engineers

development  productivity  learning 
Read

What are notes for and what to expect from them

Every move is a step forward

design  programming  development  productivity  learning  writing 
Read

Becoming great developer

Programming Wisdom

programming  development 
Read

Dunning-Kruger Effect

Unskilled persons tend to mistakenly assess their own abilities as being much more competent than they actually are.

programming 
Read

Programming is full of acronyms

SOLID, KISS, DRY, STUPID

programming 
Read

Threads, Sync, Async

Thoughts collection about these important terms

programming 
Read

Mobile ❤ async

Async is more natural in a lot of cases on a mobile device. Why waste valuable battery life polling for updates if you can react on events pushed to you.

programming 
Read

Code commenting and modeling

Don't try to model everything! You need to step back and let the code speak for itself.

programming 
Read

Programming as a process

Writing software engages not only developers but also designers, business strategists, copy writers, and marketers at every stage.

programming 
Read