http://mattgemmell.com/what-have-you-tried/
This is how I almost never got my SO topics closed. I state beforehand what I have tried, how certain SO questions may look related but are still not giving me enough knowledge to solve my problem. I do my best to make a convincing argument that I need help and can't make it on my own. A few days later and I get my answer :) (and sometimes I figure it out myself which takes a while)
I agree with the HNers that say that someone needs to struggle a bit first. It's necessary to develop the emotional coping skills, because programming can have very frustrating moments. And they can answer "what have you tried?"
Beginners need to understand: why would I put more time into solving someone else's problems than the person asking me the question? I notice that a lot of friction comes from that place. Sometimes beginners don't realize it, but I've seen some lazy people as well. When I am on the beginning side I really try to take this into account and value the time of the expert.