Your money will go further if you donate to a local charity or food bank. That being said, I'll give money occasionally. It's nice to let them know others do genuinely care about them and their plight. Usually I'll talk to them first. If they're not too pushy I'll slip them enough for a couple of meals. Subway gift cards are a good way to go. There's lots of them and you know your money will go towards food. Most importantly treat them with respect and dignity