Você quer se tornar um especialista em uma linguagem, mas ainda não decidiu em qual delas?
Para escolher em qual linguagem de programação você deve se especializar, é preciso considerar as oportunidades disponíveis no mercado de trabalho para cada linguagem, os salários praticados, a expectativa para o futuro da linguagem e o tipo de trabalho que você quer desenvolver.
Nesse post eu detalho cada um desses pontos, para que você possa tomar a melhor decisão para a sua carreira, considerando as características do mercado brasileiro.
Depois de ler esse post e entender como escolher uma linguagem para se especializar, eu sugiro que você leia sobre as 11 linguagens de programação para dominar, conhecer, ou ficar longe, para entender os pontos fortes e as fraquezas de cada linguagem, antes de aplicar esses critérios e tomar a sua decisão.
Vale a Pena se Especializar em uma Linguagem de Programação?
Sim. Apesar do mercado valorizar o programador com perfil generalista, isso não significa que você não possa ser especialista em uma linguagem.
As empresas valorizam o conhecimento em múltiplas linguagens, frameworks, bancos de dados e plataformas, porque isso demonstra que o programador se interessa em aprender sobre vários assuntos ligados à tecnologia.
No entanto, o “requisito obrigatório” das vagas de emprego determina que linguagem a empresa espera que o programador domine para ser contratado.
Por isso, se você tiver um perfil generalista e se interessar por diversas tecnologias, mas for especialista na principal linguagem requisitada em uma vaga de emprego, você terá mais chances do que as pessoas que sabem “um pouco de tudo”.
A primeira coisa que vem à cabeça dos programadores iniciantes é aquele monte de requisitos nas vagas de emprego, que vão desde fluência em inglês, até Carteira de Habilitação série B, passando por todas as tecnologias lançadas nos últimos 20 anos.
Não se preocupe, as empresas não esperam que você seja um especialista em tudo aquilo.
No fim das contas, toda vaga de emprego tem um foco que você aprende a encontrar com o tempo.
E se não tiver, é melhor mesmo você ficar longe dessa vaga.
Como Decidir em Qual Linguagem de Programação se Especializar?
Na hora de escolher uma linguagem de programação para se especializar, é preciso considerar alguns fatores:
Mercado de Trabalho
Verifique as oportunidades de emprego para cada linguagem no local onde você quer atuar.
Se você mora, ou pretende morar em uma cidade com muitas vagas, como São Paulo ou Rio de Janeiro, esse ponto não faz muita diferença.
Mas se você quer morar em uma cidade menor, pesquise antes qual é a tecnologia que domina o mercado.
Para isso, passe algum tempo navegando nos sites de empregos da sua região, até descobrir qual é a linguagem de programação mais procurada pelo mercado.
O Futuro da Linguagem
A expectativa do tempo que a linguagem vai continuar sendo relevante é um ponto que deve pesar muito na sua decisão.
Afinal de contas, quem quer investir em alguma coisa sem futuro, para depois ter que recomeçar do zero?
É claro que a tecnologia muda ao longo dos anos e é impossível ter certeza sobre o futuro, mas é possível perceber alguns indicadores.
Por exemplo, no final dos anos 1990, havia o debate sobre qual linguagem era melhor aprender para desenvolver aplicações nativas para Windows: Visual Basic ou Delphi.
Apesar disso, o que aconteceu foi uma mudança de paradigma, de sistemas nativos para sistemas Web.
Com isso, as duas linguagens perderam a relevância, com o Visual Basic sendo ainda mais enterrado por outras linguagens da plataforma .NET nas aplicações nativas que restaram.
Algo bem parecido com isso aconteceu nos últimos anos, quando o foco foi desviado para os apps em dispositivos móveis.
No sentido contrário, um indicador que demonstra a solidez de uma linguagem é a mudança radical ou extinção de alguma característica da linguagem, sem o enfraquecimento do seu uso, como aconteceu com as tecnologias EJB, JSP e JSF no Java.
Portanto, participe de fóruns de discussão e converse com o maior número de pessoas que puder para entender possíveis mudanças de rumo no mercado.
Cenários de Utilização
Antes de investir todas as suas fichas em uma linguagem, verifique se ela é compatível com o tipo de software que você quer desenvolver.
JavaScript é uma boa opção se o seu objetivo for desenvolver sistemas Web, mas essa linguagem não vai te ajudar se você quiser desenvolver drivers para um sistema operacional.
Se você mora em uma região muito industrializada, é provável que haja muita demanda por desenvolvimento de sistemas embarcados.
Nesse caso, se especializar na linguagem C pode ser a melhor opção.
Dessa forma, procure ajustar a sua escolha às oportunidades disponíveis, mas não se afaste daquilo que você se interessa mais, ou pode acabar se desanimando com o tempo.
O seu Apetite por Inovação
Você quer participar de projetos inovadores usando a tecnologia mais moderna, mesmo se tiver que mudar de emprego com frequência?
Ou você se contenta em fazer manutenção de sistemas escritos há mais de 10 anos, desde que consiga se manter em uma empresa por muito tempo, ganhando um bom salário?
Essa distinção é tão importante, que o Gartner criou um termo para diferenciar o desenvolvimento de novos produtos da manutenção do legado, bastante usado hoje em dia: “TI bimodal”.
Há muitas oportunidades em ambos os cenários, mas as vagas para manutenção de sistemas legados tendem a valorizar mais a especialização.
Por exemplo, segundo um comunicado de imprensa da IBM em abril de 2020, há um número estimado de 220 bilhões de linhas escritas em COBOL em uso e carência de profissionais para a manutenção desses sistemas, apesar de ser uma linguagem com mais de 60 anos.
Por outro lado, focando em uma empresa específica e não no mercado, você corre o risco de se especializar em uma tecnologia obsoleta e não conseguir voltar para projetos inovadores.
Isso porque milhares de jovens programadores saem das faculdades todo ano, capacitados nas tecnologias mais modernas para desenvolvimento de apps e sistemas Web.
Dessa forma, se especializar em uma linguagem menos inovadora pode acabar se tornando um diferencial competitivo, mas você pode acabar preso a essa linguagem.
O Salário Praticado pelo Mercado
O salário pode não parecer tão importante para a escolha de uma linguagem de programação.
Afinal, para todas as linguagens há poucas vagas que pagam bem e muitas que pagam mal, não é?
E a média salarial é mais ou menos a mesma para qualquer linguagem…
Na verdade, não é bem assim.
Você pode até tomar uma decisão com base na emoção, escolhendo uma linguagem da qual você goste, mas a justificativa para essa decisão precisa seguir alguma lógica.
E não há nada mais lógico e objetivo do que os números.
O problema é que as pesquisas informam a média dos salários recebidos pelos programadores de cada linguagem e a média aritmética é uma medida muito sensível a distorção por valores extremos.
Por exemplo, com base nos supersalários de alguns jogadores de futebol no Brasil, a média salarial dessa profissão pode superar R$10.000,00.
No entanto, uma pesquisa de 2020 mostrou que 75% dos jogadores ganham menos de R$7.000,00.
Na verdade, a mesma pesquisa mostrou que 38% de todos os jogadores no Brasil recebem menos de R$2.000,00 por mês!
Na prática, o que define a média salarial é a velha lei da oferta e procura.
Nesse caso, a relação entre o número de vagas disponíveis e a quantidade de profissionais que dominam a tecnologia.
Outros fatores como o porte da empresa e o grau de especialização exigido do profissional também influenciam o valor do salário.
Portanto, não tome a média divulgada pelas pesquisas como único parâmetro.
Verifique pelo menos 30 oportunidades de emprego na sua região e classifique os salários em pelo menos 3 ou 4 faixas de valor, com o percentual de vagas em cada faixa.
Dessa forma, você não precisa procurar a linguagem de programação que mais dá dinheiro, mas consegue saber em que faixa salarial você pode se encaixar como especialista em uma linguagem.
E isso leva ao próximo fator que pode pesar na sua escolha:
A Barreira de Entrada
Esse é um ponto menos relevante, mas é interessante olhar a especialização pela perspectiva da dificuldade em aprender uma linguagem.
É claro que é o mercado que dita as oportunidades, mas algumas linguagens como PHP, Python e JavaScript têm uma curva de aprendizagem bastante suave.
Isso faz com que haja uma quantidade muito grande de profissionais disponíveis para atuar nessas linguagens.
Enquanto isso, linguagens mais complexas como Java, C++ e Rust impõem uma barreira de entrada maior, afastando os programadores que só querem obter um conhecimento superficial.
Sempre que eu converso com alguém sobre esse assunto, eu menciono o seguinte exemplo:
Abra o Google Chrome, aperte F12 e vá para a aba Console.
Agora escreva console.log(“Hello World!”);
.
Parabéns, você é um programador JavaScript!
Ou então, aprenda o paradigma OO, os princípios S.O.L.I.D., classes, interfaces, métodos, herança, polimorfismo, encapsulamento, generics, garbage collection, deploy em servidores de aplicação, estratégias para alta disponibilidade, CI/CD, empacotamento em JAR, WAR e EAR, mapeamento objeto relacional, modelo de threading e use uma IDE.
Parabéns, você é um programador Java!
Em qual desses dois cenários você espera encontrar menos concorrentes?
Portanto, caso você viva em uma região onde há vagas para diversas linguagens, considere se especializar em uma linguagem mais complexa para obter um diferencial competitivo.
A sua Disposição para Continuar Aprendendo
Talvez você tenha considerado esse ponto e se perguntado:
Eu posso me especializar em uma linguagem que muda pouco, para estudar uma vez só?
A má notícia é que não… E esse ponto só está aqui para te lembrar disso.
Seja lá qual for a linguagem de programação que você escolha para se especializar, ou mesmo que não se especialize em alguma, você vai ter que continuar aprendendo durante toda a sua carreira como programador.
Conclusão
Conhecendo as características de cada linguagem e aplicando os critérios desse post, você conseguirá decidir em qual delas deve se especializar.
Tenha em mente que não existe linguagem “melhor” ou “pior”.
O que determina se uma linguagem de programação é uma boa opção ou não é só o mercado de trabalho.
Portanto, pesquise bastante as oportunidades de emprego na sua região antes de decidir investir seu tempo em uma linguagem.
E não deixe de ler o post sobre as 11 linguagens de programação para dominar, conhecer, ou ficar longe, para entender os pontos fortes e as fraquezas de cada linguagem, antes de aplicar esses critérios e tomar a sua decisão.
Comente aí embaixo se você pensou em algum outro critério que pode influenciar nessa decisão.