Depende,
muitos programadores, como uma vez já disse kicolobo, são apenas usuários avançados. Ou seja, consegue fazer um código aqui e ali na base do copia e cola, mas não entende o seu mecanismo. Então, você deve ter como objetivo conhecer os mecanismos por trás do design e construção de software, e não tanto um título pra pendurar na parede.
Já te falo que, mesmo eu que estudei Ciência da Computação em universidade pública, não saí sabendo de tudo sobre a minha área, e tive que correr atrás de muita coisa pra ficar “alinhado” ao mercado. Porém, nunca fui atrás de especialização e pós. Ao contrário, meu conhecimento cresceu através de leitura de livros, praticando programação em casa e fuçando novidades que apareciam nos blogs por aí.
Estou querendo te dizer que, se tiver vontade, pode ser um autodidata. É um pouco sofrido (principalmente pra ganhar confiança no mercado), mas valeu a pena pra mim, que não precisei deixar um carro zero-quilômetro na garagem do reitor pra complementar meus estudos.