Your choice of metaphors is apt. As I have all-too-often said:,
Give a man a fish, and he'll eat for a day;
Teach a man to fish, and he'll spend his life savings on fishing tackle.
This is not necessarily a bad
thing -- the Perlish equivalent might be:
Give a man a snippet, and his program will run for a day;
Teach a man to use PM, and he'll never get back to that code he was supposed to write.
Seriously, though, I think that the need for Socratic learning is related to the kind of question being asked. A general "what method do I use" question needs multiple answers, per TMTOWTDI. But a specific "why is this code fragment broken" question probably deserves a more direct answer.
Determining whether or not I actually provide direct responses when I should do so is left as an exercise to the reader.