I agree with this.
However, I would like to mention a somewhat implicit point in this. REAL programmers (TM) are usually ready to change their works context if it is necessary.
This observation struck me quite hard, especially now with the software project where I need to interact with lots of other students on a programming level. Usually, when there is a technical problem with the build scripts, library dependencies or other hard problems, the group divides into two groups (one small group and one large group).
The large group just stops doing anything and goes "well, someone will fix it. I don't know anything of this, I never touched this, I will just stop until someone fixes it."
The smaller group on the other hand grows highly active in such a situation. They ask around if someone is working on this, and if no one does so, they just go "Bleh, I hate this, I know nothing of this, where is the ant documentation, git's hard reset and coffee?".
More abstract, the better programmers (let's call them developers :) ) accept that their work context extends from the simple code cutting into fixing the build script, getting dependencies to work and handling other technichal things while the coders just don't accept this and go 'not my context. Stop work'
The funny thing is, very often, the larger group starts to complain about the smaller group, because the smaller group just knows such a lot of things already and they just assume that everyone knows these things (hey, a master's degree programmer who does not know the decorator pattern, despite having java as a primary langaige...), but no one from the smaller group actually starts learning things out of their context... meh.