If a spec isn't vague, incomplete and wrong then you could just make a compiler that compiled the spec into working code and skip the programmer.
The job of a programmer is to map the vague notion of what the software should do, which is reflected in the spec, into a concrete, internally consistent set of instructions to the computer.
The job of a programmer is to map the vague notion of what the software should do, which is reflected in the spec, into a concrete, internally consistent set of instructions to the computer.