Vale a pena ainda aprender Java?

Tenho 40 anos de idade, e estou iniciando no curso de CST em Análise e Desenvolvimento de Sistemas, tenho pesquisado no mercado, uma tendencia ou melhor dizendo, uma demanda maior por programadores Python, R, Go, e outras, e vejo muito pouco sobre Java. Diante disso venho fazendo uma reflexão se vale apena investir em Java, em um mercado já saturado de programadores Java. Sei que existe ainda muita coisa legada, muitos sistemas desenvolvidos em Java que demandarão programadores neste nicho.
Vale a pena investir em Java?

Resposta curta e grossa: não.
Resposta mais ou menos adequada;
Onde mora? Que sites você pesquisou para identificar que a demanda de java está em baixa?
Particularmente, todas as semanas, recebo um média de 4 a 5 propostas para processos seletivos para oportunidades java. Em todo o Brasil e, ultimamente, fora dele.
Java é uma linguagem consolidada no mercado, tem lá seus problemas, suas limitações e seu mau uso, mas, isso você vai ter em angular, python ou go.
Vale a máxima “não existe bala de prata”.
Portanto, se você quer aprender algo, foque nisso. Mas, se está iniciando o curso, creio que será obrigado a aprender essa linguagem.

1 curtida

Tanto quanto qualquer outra linguagem. O erro maior é apostar numa única linguagem/tecnologia, excluindo todo o resto. Um bom desenvolvedor deve estar aberto a mudar de tecnologia conforme a necessidade, mesmo que tenha suas preferências. Não se apegue à linguagens. Elas são apenas ferramentas.

Falando em linguagens como Go e R, quantas vagas realmente existem para essas linguagens? E quantas de Java? Essa “demanda maior” é baseada em fatos? Elas estão em crescimento, mas há efetivamente mais vagas que para outras linguagens? Qual rápido isso mudará? Será da noite pro dia, ou levará 5/10 anos?

Se você está estudando, a primeira linguagem costuma ser um grande desafio, mas a partir daí você se sentirá mais confortável para aprender outras. Possivelmente você não será um expert em 20 linguagens, mas terá bagagem suficiente para não se sentir perdido ao iniciar em uma outra.

Se seu curso demanda Java, aprenda Java. Mas considere aprender juntamente os conceitos de outras, principalmente se tem paradigmas diferentes (como programação funcional em Python e Lua). Novamente, não precisa estudar unicamente essas, nem se tornar expert nelas, mas entender quais as semelhanças e diferenças de linguagens como Java e C#.

Abraço.

2 curtidas

Eu iria além e diria: não foque na linguagem, ela é um mecanismo para implementar conceitos. Concentre-se nos conceitos (sejam eles de programação estruturada, programação orientada a objetos, orientada a aspectos, orientada a serviços, etc, etc, etc).

Respostas bastante esclarecedoras, mas o meu propósito é Empreendedorismo. Sei que não tenho chances de emprego com 40 anos de idade. Quero estudar para abrir meu próprio negócio futuramente. Considero aprender uma linguagem para poder dar um pontapé inicial em desenvolvimento de soluções para a minha região. Aonde moro há uma demanda crescente por Mobilidade; restaurantes, bares, soverterias, empresas de transportes e outras que querem utilizar sistemas mobile para atendimento in persona aos clientes.

Isso é balela. Se tiver capacidade e interesse, vai conseguir.

Cara, mobilidade não tem nada ver com desenvolvimento de sistemas, fique atento a esses conceitos e palavras que parecem uma coisa e representam outra

Se vai abrir seu próprio negócio e vender um produto, entenda que, para o usuário (seu cliente), pouco importa o que foi usado, ainda mais nesse segmento que você está mirando, em que a maioria é leigo quanto à tecnologia. Você pode usar o que quiser, o que for mais produtivo e coerente para cada caso.

Provavelmente, o que atenderá será uma combinação de tecnologias: backend em uma linguagem qualquer (Java, php, javacript/nodejs), frontend javascript nos terminais de atendimento (rodando via browser) e em Java no Android, e até mesmo Swift no iOS.

Pergunte para qualquer usuário de smartphone: quantos sabem que seus queridos apps foram construídos em Java e rodam numa máquina virtual? Mais ainda: quantos sabem o que isso implica? Quantos se importam, desde que os apps funcionem de forma satisfatória?

Acredito que ele disso “mobilidade” no sentido de “dispositivos móveis e afins”. Dá uma relaxada, cara, não se apegue tanto às palavras. :wink: :grin:

Abraços.

Estou de boa, apenas por ter entendido que ele se referiu à dispositivos móveis utilizando o termo mobilidade que eu comentei, afinal, são conceitos totalmente distintos.

Quando falo mobilidade em um fórum de TI, você entende o que? Construir cadeira de rodas é que não é? :smile:

Mobilidade é mobilidade em qualquer lugar. Agora, se você usar o termo “aplicativos móveis”, talvez ficasse mais inteligível e demonstrasse o que realmente quer.
O teu interesse poderia ser, realmente, construir cadeiras de rodas inteligentes, por que não?

Ola @wsilvaasc,
nesse tipo de pergunta, eu sempre digo que mais importante que se especializar em ferramentas é se especializar em um nicho ou classe de problemas que se pode resolver com computação. Acho que você deu um grande primeiro passo ao definir o que você espera da área:

  • mobilidade (você já definiu seu nicho)
  • empreendedorismo (modelo de trabalho, isso é importante também)

Sendo assim, penso que o próximo passo é você estudar e se especializar nas ferramentas que fazem sentido nesse seguimento: quais linguagens e frameworks são usados para construir apps Android e iOS ? Existe alguma linguagem ou framework que permita desenvolver para os dois dispositivos ? E para o back-end ? Acho que essas são as perguntas que você precisa buscar responder. Por fim, levando em conta que você deseja empreender, é muito importante considerar a produtividade das ferramentas que você vai escolher. Nesse sentido, Java realmente deixa a desejar para linguagens mais modernas. Se eu estivesse começando nessa área, hoje, eu partiria para estudar Javascript. Com uma linguagem eu conseguiria desenvolver tanto o app mobile quanto o backend, usando React Native ou Quasar e Node.js para o backend.

Entendo seu ponto de vista. Mas eu me referir a Mobile de TI. Obrigado!

É possível fazer o frontend and backend com Python utilizando o Django? Não tive muito entusiasmo com o Kivy for Android.

Não conheço muito de Django, mas está meio confuso o que você quer. Django é um framework web, o que Android tem a ver? Ou está querendo fazer um webapp, para rodar dentro do navegador do celular?

Se quer reduzir a quantidade de ferramentas e linguagens a usar, a recomendação do @rmendes08 é provavelmente a melhor: vá de Javascript. Há frameworks tanto para front quanto backend. E é uma linguagem com crescimento constante no mercado.

Abraço.

Bom, nunca ouvi falar de usar Python para mobile …
Acho que outro fator a ser considerado é a comunidade em torno da ferramenta. Uma das forças do Java é justamente a sua comunidade, que além de ampla é bastante atuante. Particularmente, eu não vejo o Python com tanta força fora das comunidades de Data Science, em mobile, menos ainda …

Vá de javascript:
Nodejs no backend
React/redux para aplicações mobile
React/angular/vue para web

Me xingou todo!

Mobile profissional: Qualquer linguagem que entregue a qualidade de uma UI nativa para o usuário. Já que falou em tendências, Kotlin no caso de Android, ou vai de Java mesmo se preferir. iOS seria outro produto, pode até cobrar mais caro.

Back-end: O que entregar melhor desempenho em requisições e menor consumo de infra pro usuário, por exemplo Go como já citou. Isso seria o ideal, mas por preguiça de aprender até se tornar realmente profissional, se fosse eu dentro da minha realidade iria de C# com .Net Core.

[RESOLVIDO] Obrigado pelas respostas. Já decidi! Não vou de nenhuma! Nem Java, nem C#, nem Python eu vou mesmo é de Clipper, Cobol e banco de dados Paradox. Abraços!

Certamente vai ganhar mais dinheiro com Cobol.