I grew up poor, not "oh, we're short on money" poor, but "people would randomly leave grocery bags with food in them during the holidays on our doorstep, of which some people stole food out of before we knew it was there" poor. It's hard to sum everything up properly in just a comment here on HN, it's not a lack of effort, or drive, or want to improve the situation. It's literally everything in the deck completely stacked against you. Get a $100 bonus? Well, that means we can pay the past due on the electric and water bill both this month instead of paying only the one that is about to get shut off. There's so much ground to make up that there is never any appearance of improvement, any and all progress results in "less behind" than you were before, but you're still behind and still have the same problems. I started my own lawn mowing business when I was fairly young (~11-12) by borrowing someone's lawn mower, dragging it from section 8 housing to middle class neighborhoods and charging $20 a lawn. I gave half of the money I made to my parents. One of the things I bought from my portion of it was an 18 speed bike. I eventually ended up getting hit by a car, and could afford to replace the rim of the wheel that got screwed up. Eventually, my parents replaced the rim and gave the bike to my brother for Christmas. Yes, they took my broken bike, spent less than $10 on a used, not-quite-right part and then gave it as a gift.

From all that I saw during this, I never once knew of a charity that provided any actual help. Around the holidays, several different charities, churches and caring folks would drop off food. But the food all had a shelf-life of less than a month, so we would eat really good for November/December and then immediately go back to how it was before. I've worked for a few charities/non-profits since dragging myself out of that. I wouldn't ever contribute a single dollar to a charity. However, my time is worth far more value (to me and to those receiving it) than a dollar could be. Volunteer regularly somewhere, like one Saturday a month. The day given up is less cost than a corresponding day's worth of salary and the benefit you can provide is larger than the dollar amount. In the past, I've provided efforts such as: plumbing/electrical/construction/maintenance at zero cost to the person receiving it (including replacement parts), child herding (three of us would take and pay for a trip to a local amusement park for the day, along the lines of a carnival in terms of rides), free tutoring (this one went a long ways, 2 kids and free "babysitting" all day, as well as providing a lot of benefit for the kids). It is much easier to find people who are in need via religious organizations or shelters.

The key takeaway is that if you give dollars, it will be spent on what they absolutely need to survive. There are no more decisions about sacrificing a little bit somewhere in order to do something "nice" such as fixing the leaking faucet because they just can't be made. By providing the things that are sacrificed, you give a glimpse that things can be better while providing for what they cannot manage to. I'm also of the opinion that it doesn't introduce a dependency on charity, which means that it would be better for them in the long term.