> Suppose you want to teach the 'cat' concept to a very young child. Do you explain that a cat is a relatively small, primarily carnivorous mammal with retractable claws, a distinctive sonic output, etc.? I'll bet not. You probably show the kid a lot of different cats saying 'kitty' each time until it gets the idea. To put it more generally, generalizations are best made by abstraction from experience.
(See also Tim (Sir Timothy) Gowers on Examples first: https://gowers.wordpress.com/2007/10/19/my-favourite-pedagog... and https://gowers.wordpress.com/2007/10/24/examples-first-ii/)
(I frankly think this applies to the accursed phenomenon of monad tutorials in Haskell too (https://stackoverflow.com/questions/3261729/monad-in-non-pro...), but some disagree.)