For someone to be a good programmer should they have a basic understanding of hardware and the operating systems or is it enough that they understand what they are doing inside the specifics of their own application?
Should they be able to achieve general tasks in their own operating environment without having to rely upon someone else?
Should they show an interest in computers and computing in general?
Or is it purely good enough that they produce working code that solves the problems that they are looking to overcome?
I'm looking for language agnostic answers.
My PERSONAL opinion is that in general all programmers should have a basic understanding of what a computer is and how it works as well as being familiar with the operating system(s) that they are writing software for (if any).
As a bare minimum this shows that the person is interested in their field of work and is interested in reading around the subject rather than limiting themselves to a single area.