Damn, this is a refreshing post, particularly a refreshing FIRST post.

I'm sure there are some great tutorials out there. I don't have any to link. I'm sure others do. I'll throw in my two cents though.
Think of Denzel Washington in Philadelphia: "Explain this to me like I'm a 2 year-old..." The computer's your 2-year-old, except fortunately it actually does what you tell it and doesn't complain. Scratch that. It complains all right. It complains when you screw up. It has no common sense, it couldn't give a damn about you one way or the other, and it's not its job to figure out what the hell you want it to do, it's YOUR job to tell IT exactly what to do.

Pretend you're in charge of a race of super-beings who you're training as soldiers. However, unlike real soldiers, they have no emotional needs, no judgment, no conscience. When you order them to "take the hill", they just kill everyone, civilians and enemy soldiers alike. When you ask them why they killed civilians, they tell you you never told them they couldn't. If you reply, "I didn't think I had to. I thought it was common sense,", you're not a programmer. If you reply, "Yep, it's my fault, it was my responsibility to tell you," you're a programmer.

So precision, precision, precision, details, details, details, and get rid of any notion of "they shouldn't have done it that way", "the computer should realize what I'm trying to do", and accept the fact that if your program doesn't work, it's only because you screwed up somewhere. If you can do that, you've got the mindset. It's a leap that can't be made by many.