Over the years, we had many discussions like that first one, relating programming concepts to real-life principles. My dad was never (and still isn't) a "hardcore" programmer, but as far as understanding and explaining logic go, I'm still to find somebody capable of explaining things so simply and beautifully.
Quite a few years later at University, my teacher with two PhDs failed to explain the basics of OOP to my class in a 4 hours span, entangling himself and everybody in lingo and concepts that even confused me, who already knew OOP. Academics would sometimes do well to relate to the real world and deflate their egos.