Ao meu ver, o programador é o cara que resoulve problemas através do código. Isso pode se expandir pra qualquer área, qualquer mesmo. Aonde quer que você olhe, vai existir um problema que necessita de um programador.

O exemplo que você usou, depois que um software está pronto, não significa que acabou. Todos os softwares que você consegue imaginar tiveram uma primeira versão, mas não pararam por aí, eles criaram novas funcionalidades, resouveram bugs, otimizaram e código. Geralmente quando empresas contratam um programador ou uma empresa de desenvolvimento de software, o que vem depois costuma ser o suporte com manutenções, tirar dúvidas ou fazer melhorias.