I just answered a question on Stack Overflow. It was asked by someone that was clearly in over their head: "How do I add an if statement to this code? ...[insert code sample from order processing system here]"
I tried to make it clear in my comments and answer that they might be causing more problems than fixing by trying to maintain this code with their level of understanding. That said, I did provide an answer, modifying the code appropriately. Since it was such a simple modification, hopefully it provided some education for the questioner.
But should I have answered the question? How do you tell someone strongly enough that they may not know what they are doing: Code can be very interconnected: don't pull on the thread unless you are prepared for more to unravel.
What would Jon do? Is this like giving to the panhandler: am I just enabling the bad behavior?
Turns out the questioner was working on a hobby project, which I think really changes the dynamic.
if
statement (nicely fitting in a four-line paragraph), then would proceed to teach him LINQ.