Every now and then when I try to answer a question of some sort I think the question might be tightly related to someone's homework assignment. Sometimes I answer such a question in complete detail and sometimes I just give a hint. For me the latter approach is the approach I prefer, but the problem is that (in most cases) I am not able to determine if a question is actually a homework related question or not.
If a question isn't a homework related question I want to provide an answer with the full details to help a fellow professional on his/her way, but if a question is homework related I just want to give a hint. Now my question to you: How do you think about this and how can I determine whether a question is homework related?
This is a good question, and it seems less like Meaningless Drivel and more like a serious discussion of how to do business at the Ranch, so I've moved this to "Ranch Office" to avoid inviting joke answers.
Personally, I always interpret questions about basic Java language features as homework, everything up to the level of something like "how do I get two classes to share a variable?" Anything that's no more complex than that, I avoid giving code samples, and instead describe things in words. That includes questions about any methods in java.lang.Object, and very basic use of threads, collections, etc.
Any time the rancher says they need to write a complete program that does X, which could reasonably be completed by a working programmer in under an hour, I assume it's homework. Under no circumstances should you give those folks code!
Questions about any other APIs, even if the rancher is obviously doing homework, are more open. The best way to learn to use many APIs is by looking at code samples, and experimenting can sometimes lead to wrong beliefs or superstitions, so in many cases I'll show examples for those.
Personally, I don't care if it's homework or not. Complete answers are so rarely necessary, and IMO it's better to give hints, pointers, links, etc. and help them figure it out for themselves. Anything learned through self-directed effort, even if there were hints, is retained *so* much more easily than just regurgitating samples/examples/complete explanations.
Also, when it's clearly something work-related, I'm very uncomfortable providing complete answers because that's doing both the asker and their employer a disservice. Helping someone learn, or learn how to learn, is valuable. Giving someone an answer still feels like they're cheating, even if it's not for school. I'm not sure which is worse; at least with school the student is paying the school.
David Newton wrote:Also, when it's clearly something work-related, I'm very uncomfortable providing complete answers because that's doing both the asker and their employer a disservice. Helping someone learn, or learn how to learn, is valuable. Giving someone an answer still feels like they're cheating, even if it's not for school. I'm not sure which is worse; at least with school the student is paying the school.
"Give a man a fish...."
I completely agree. To add to the whole thing, I think anyone around here is more willing to help folks (whether students or employees) with their issues if they show effort in producing the question and showing what they've done already.
I am on the same page: it matters to me little why the person is posting the question and more how they got to that point. Some people are really putting in a ton of effort on their homework and just don't make the connection, while others just wait til the last minute. Usually people who have put in more effort have far different types of questions than people who just want to get the assignment done.
I have gotten a ton of help around here on my own school assignments. I don't think anyone has just "given me answers." People have pointed me to articles, the API, asked questions about my code samples.... all stuff to point me in the right direction. This was all helpful to me because I wanted to do the work and earn my own grade. People who just want code don't get that sort of benefit around here.... or at least that's my impression.
When you do things right, people won't be sure you've done anything at all.
Another sign of homework questions:
A whole list of short answer questions in a post. Often unrelated.
I agree with the above posts that it doesn't matter if it is homework or not. Suppose I have the question that I don't understand why the following Ant code outputs "c".
There are two options. One is this is a work project that I'm stuck on. I've narrowed the problem as much as I can and am now stuck. Telling/reminding me that Ant properties are immutable gets me on my way (either to say doh! or lookup what immutable means). Now suppose it is a homework question. Telling me Ant tags properties are immutable forces me to look up what immutable means.
Thank you all very much for your responses. I think there is not really a silver bullet approach for the subject but I learned a lot from the responses. For myself I concluded that if a question is very obvious a homework question, I'll answer it in such a way that I will not give a whole solution. For all the other questions I'll just answer them as if they are not homework related, so I'll be less paranoid then I was. I think it is not my sole responsibility to prevent this kind of abuse by lazy students; it is also the school's responsibility to create an education program where these kind of students simply will not succeed the whole program if they make their homework like this.
Anyway, thank you all very much for your insight! Time for a beer!