This is a pretty general topic, so before I get started, I want to explain a couple things:
For context, I primarily use Stack Overflow, so a lot of my opinions, examples, or rationalizations may be hard to understand if you are a frequenter of other sites.
I'm formatting this question as follows: I offer general exposition first, then my detailed question, then the specific example that sparked this whole thought in my head (sections separated by these fancy bar lines). So if you're uninterested in my specific example, just read the first two sections. Alternatively, if you want my example first, read the 3rd section first.
(Somehow I made it two years on this network without knowing there's a chat feature. I made this post while under that misinformity. Feel free to add any additional thoughts but understand the chat feature is basically the answer to this question, so long as the other person has 20 rep.)
General Exposition:
I've been reading a lot of meta questions lately (too many, in fact), and the general idea I've gotten from them is: the philosophy of Stack Exchange is for users to ask questions that are specific enough that the title will attract Googlers, but also questions that are general enough so that the answer to the question is helpful to many Googlers.
Obviously, there's many displays of when questions don't fit into this philosophy. Here's a few:
A person asks a question when their problem is literally just a usage or syntax error and requires debugging.
A person doesn't understand a fundamental concept of programming (e.g. object-oriented coding, static items) and, consequently, doesn't have the knowledge to even know what question they should be asking.
And, my favorite, as demonstrated by this discussion: People seeking general reference material.
(That last point is hard to see as "not applicable" to the philosophy, so read the OP's post and a couple answers if you're confused.)
I'm at a loss, because my personal philosophy that I've discovered (and one that I personally think is good for the community), is that Stack Exchange is here to help people. And really that's all there is to it.
The loss I'm at comes from the general consensus over the debate:
The top answer on this discussion (and, I assume as consequence, the general consensus) outlines that we shouldn't stop other people from answering bad questions, but we should still avoid answering them ourselves, instead commenting with a "here's how to improve your question", even if in some cases the question is answerable, just not perfect (complex, right?)
The answer below that top answer that says "I'm okay with answering imperfect questions" got a measly 1/5 of the points the top answer did, so clearly my philosophy and that answer's philosophy are not part of the general consensus.
Therefore, my long-awaited discussion question:
The Question:
How can I help someone with a bad question? They have a problem that is not appropriate for the format of Stack Exchange, but I still want to help them. In other words, what forums, websites, references can I send these people to (If you want general categories, see that first list I made above)? What advice can I offer? How can I guide them through their personal version of the issue while still conforming to Stack Exchange conventions?
My Specific Example:
I only recently discovered my commitment to this idea when I spent a good half-hour of my time helping someone who posted a terrible question (note - it looks better now because it is fixed, see the original version). These were the situations the asker was in:
They were assigned homework (so they were probably stressed and under a time crunch).
They needed to utilize a concept they had little or no knowledge about (static variables) to get data from one place to another. They knew what they wanted the program to do, but had no idea where to start.
They probably didn't have much experience coding, and therefore didn't know what debugging was, didn't know how to use the javadoc, and were still strengthening their handle on the concepts of computational thinking.
From those situations, they tried their best and poured out a question...
with a code dump
with an irrelevant, unhelpful title: "How to program my toString"
without letting us know if it was homework or not
with unhelpful introduction: barely told us what they needed help with, didn't set up a scenario or explain their code example
At the heart of this question was simply a struggle to understand fundamentals, so I largely edited their question to fit that issue and offered an answer explaining it. From there, they sent me several comments looking for more help with their specific issue, but to conform to the Stack Exchange format I knew I couldn't really help them in a good way.