It’s never too soon to talk to kids about money, and as for a card, it’s best to start them on one before they leave home, say perhaps when they are a junior or senior in high school. Let me give an example.
Before my daughter left for college, she got a checking account, linked to her parents (of course), and then later a credit card with a very low limit. The idea here was for her to learn to pay for things herself before she got out into the big bad world on her own. I like starting them on these things while they’re still under their parents’ roof, so they get practice, and when they decide on the 5 jeans, and then realize there isn’t enough dough left for lunch and gas money, guess what? They brown bag it to school and take the bus! Or they ride with friends, etc. There’s no harm in their experiencing the consequences of overspending while they are with you, and their limit is low.
You can get a card with just a few hundred dollars limit, and then help them pay it off in full and on time every month. This is actually very good because it builds good credit, it gives them practice, and they feel like a big shot! Not only that, they aren’t constantly asking you for to cover the pizza fund. Well, probably they are still asking, but at least your child can see how far a finite amount of money goes, and learn to adjust, or not!