Funny thing is:
programmer`s mind isn't that much about computer, programming language,
design-patterns or algorithms
It's about understanding subtleties of real world, interaction between things. Ability to think abstract. Ability to notice things and remember them. That inevitably leads to good problem solving.
Implementation, code itself comes only after that - after You have successfully
solved given problem inside Your mind.