Sadly I think most people are not taught how to think, but rather how to perform repetitive tasks based on some formula (works great for writing Java).
Another problem I think is that most Blub programmers don't program because they love programming and therefore are not willing to put in the time and effort to learn a different way of thinking.
Personally I believe programming is an art and as such it requires talent as well as dedication. I'm disappointed that after all this years everyone still thinks programming is some form of science. Software engineering? WTF?