Programmers are essentially a type of translator. They translate constraints expressed in human language to constraints expressed as computer language.
At the higher levels you have more say how exactly that happens in terms of system topology, but at that point you're no longer just a programmer, but an architect.