But when considering programmer to be someone who is comfortable:
- operating on multiple planes of abstraction
- using recursion/pointers
- 'seeing' the concepts embodied under computer languages
- 'seeing' the code flow
Then, yes, the programmer does think differently. Because it's his job to think this way to communicate correctly to the computer. Not that it's unattainable by someone outside of the field, but by the act of becoming competent, it changes the one coming in.