I feel bad for most homeless people, especially in cities where it gets cold in the winter. I assisted with a survey of the homeless population in my city a few times, and everyone I met was friendly, willing to help and not scary at all. There are a few misconceptions and assumptions about homeless people that I wish people would understand. Many of them ended up on the street because of bad home situations, bad relationships, loss of jobs or mental health issues that make them incapable of holding down a job and therefore housing without further treatment. In many cases, once you lose a job or lose your home, it becomes very difficult to get a new one, because you need a job to get a home, and it's difficult to get a job when you don't have a home. It's a catch 22. People love talking about building shelters, but those are often very dangerous places, where people face violence and robbery, so they avoid them. Most of the homeless people I talked to said they wanted a job, but they didn't know how to find one. Many of them have criminal records, often related to them being homeless. Many of them owe fines, and so they don't qualify for low income housing, but their fines are for things like loitering, which is due to homelessness as well.
When people ask for cash instead of food, it's often for good reason. You need money to buy something to stay in a cafe for warmth for a little while. You need money for menstrual products. You need money to stay in a cheap dorm for the night. You need money for bus fare to get to your friend's place to crash. Food is nice (most times I've offered, people will take it) but money will satisfy your other needs. And you know what, sometimes it's for drugs. And honestly, I'm not going to judge. If that gets you through the night, if that is the only way to cope with an overwhelmingly shitty situation, if you can't afford rehab and you have an addiction, then sometimes that's what you need. I get my alcohol, coffee, weed, etc. whenever I want, so I am not going to pretend to be all high and mighty about it.
In my opinion, if we want homelessness to go away, we need to have a lot more homes available. Studies have shown that putting someone in a house first, then offering health and mental health services, job training and hunting, assistance with getting services, etc. works best. You don't know how much stress it is to live on the streets and wonder where you are getting your next meal or where you're going to crash. You can't focus on anything higher level when you can't meet your basic needs.
If you want to know something about homelessness, go talk to someone. Bring them into a cafe and have a coffee with them. Get to know their story. They are not boogymen or criminals. We are all a few shitty situations away from being in their shoes. Most of us have the skills or support systems we'd need to get back on our feet, but just imagine growing up with drug addicted parents, abusive parents, poverty, foster care, and realize that not everyone is lucky enough to develop those skills.
TLDR Don't demonize homeless people, they are people too. Give them homes and support, and most of them will become productive members of society. There are very few who are beyond saving.