ELI5: Why does unplugging and plugging back in a device work so well with troubleshooting?

The short ELI5 answer: Your device is powered by some kind of program ("software", or "firmware"). When you originally turned the device on, this program essentially became alive. As time went on, the program became older, and therefore much more prone to strange behavior ("bugs"). The easiest way to fix this is to go back in time and make the program brand new again, just as it was when the device was originally turned on. In fact, the way to effectively do just that is to restart the device, which can be done, as you say, by unplugging it and plugging it back in.

Longer answer: all software really does is read from and write to some kind of storage ("memory") according to logical rules. The software uses this memory to determine how to behave as it progresses through its instructions, for example: "if x, then do A; else, do B", where 'x' is a piece of information (a "variable") actually stored in this memory I'm talking about. Over time, it's possible for the memory to become populated with values that cause the software's instructions to veer off the path expected by the programmer: the behavior will always be logical, but it may be unexpected! The chance of unintended behavior increases dramatically with 1) the number of variables the software depends upon, and 2) the amount of time the software has been running. It's chaos: a system with enough variables running for enough time such that it becomes practically unpredictable, and indeed it almost certainly will eventually behave in a way that would have been impractical (or impossible) to predict. The easiest way to "fix" this is to simply wipe the memory and return the program to its very first instruction: this is what "resetting" or "rebooting" actually does.

So it really is true: the best question to ask someone who's experiencing run-of-the-mill problems with their device is in fact "Have you tried turning it off and on again?"

/r/explainlikeimfive Thread