Boa tarde, Gabriel! A função de um programador nada mais é do que solucionar problemas através de desenvolvimento de softwares. O programador sempre tem que estar atualizado das melhores ferramentas e ter domínio de variadas linguagens de programação para que consiga dar conta de eventuais problemas que podem aparecer. O mercado está em alta e com bastante demanda, tanto dentro do Brasil, quanto fora. E acredito que chegar mostrando essas "subáreas" que você perguntou, podem acabar te confundindo logo de ínicio, te recomendo pesquisar sobre a profissão, afinal existe SIM muito conteúdo gratuito disponibilizado na internet, por mais que o conteúdo pago as vezes seja mais fácil de encontrar, acredito eu que não haja necessidade.