Jordan said: "Names have meanings because they were used to describe a person's characteristics or profession. Like, someone who worked as a tailor would take the last name Taylor. They would find a word that described themselves and use it as their name." More than that, people would start calling someone John-the-Tailor, to distinguish him from John-the-Smith, and pretty soon they dropped the 'the'.
In the Third World, and in ancient times, parents would sometimes wait up to five years before naming their child. This sounds awkward, but even in books about American settlers, the youngest was Baby, and the next would be Little One, until they got old enough to be called by their names. Also, some cultures don't wean until five or so, so if the child was still nursing at five, I'd think they'd be pretty casual about naming late, too. This way they can name the child after their temperament. The Bible gives a lot of examples of this: "And Enoch walked with God..." Enoch means 'dedicated'. And Isaac, 'laughter' because Sarah laughed in disbelief. Naomi's sons: Mahlon and Chilion, 'sick' and 'pining', who died early of an illness. Jesus, 'Yahweh is salvation': "...for I came...to save the world." John 12:47 And of course, "Thou shalt call His name Emmanuel..." 'God with us'. Sometimes the parents' would give the kid one name, but later he'd do something notable, and people would rename him for the event.
Some American Indians would not let anyone know their real name, believing that it gave the other person some power over them. So they went by various nicknames, like The Girl Who Ran (That's a good book!). She was renamed for her running away from her captors, running all the way across Montana.
In some African(?) cultures, pretty babies are named Ugly, Evil, etc., so the demons will be fooled and won't steal the child. When a missionary lady complemented a baby, the mother screamed and ran away, sure that she'd lose it. Y :)