I have seen developers struggle to identify the problem. You can't solve a problem if you don't know what a particular algorithm do for you. I have seen java developers knowing only ArrayList and nothing else in the collection.
In numerous forums, people ask for code because they don't know what the problem is. In which case, even search can't help.
> You can't solve a problem if you don't know what a particular algorithm do for you.
I'm sure anyone who is a CS researcher would disagree with you, but I'm probably taking your point out of context.
> I have seen java developers knowing only ArrayList and nothing else in the collection.
And I have seen a full-fledged computer science graduate, from a top school for CS, use MS Access for everything, including projects that had nothing to do with databases, because he didn't know how to use any other tools, and didn't appear to have the know-how to take full advantage of that specific environment. Bad programmers are bad programmers.
> In numerous forums, people ask for code because they don't know what the problem is. In which case, even search can't help.
Technically speaking, isn't that still a search? The only difference to using Google is that the results are indexed by humans instead of machines. I think this further emphasizes that most people really can recognize when they need a new tool and can find the right one on demand with very little trouble.
And, like I said, I am willing to believe that it is a skill that is acquired. Skills, by nature, come with varying degrees of ability. Perhaps the least skillful stand out most predominantly in your mind? The best are probably so good at it that you don't even realize that they are doing it.
In numerous forums, people ask for code because they don't know what the problem is. In which case, even search can't help.