Executando verificação de segurança...
1

Minha transição do python pro Java

Aviso: este conteúdo é feito para contar a minha experiência com essa transição, e também para pedir concelhos

Bem, eu sou um estudante de programação, estudo sério a quase um ano, e durante esse período usei a linguagem python para aprender, evidentemente por ser muuuuito noobfriendly, cheguei até a parte do POO e comecei a realmente entender os conceitos e como funcionam, principalmente quando se aplica o SOLID, também dei uma passeada pelos frameworks web, tipo Flask e Django, cheguei a subir 2 projetos com flask, mas não tenho certeza se ainda funcionam, já que são do tempo em que eu era mais iniciante (bem mais do que já sou), depois decidi regredir um pouco e tentar reaprender o POO, aí sim cheguei nessa fase de realmente entender as coisas, e agora estou com um projeto de implementação das estruturas de dados existentes.
já cheguei a implementar 2 ou 3 estruturas de forma 100% funcional usando código mais bem feito e organizado, esse projeto das E.Ds está em um dos repositórios do meu GitHub (aqui).

Anteontem decidi me dar uma pausa dos estudos, então, acabei decidindo testar algo diferente... uma outra linguagem, uma mais verbosa, uma mais complexa, uma totalmente orientada a objetos, a linguagem Java. Então, acabei pesquisando um pouco sobre e ela e como ela funcionava, também pesquisei o que era possível criar com ela, e como vi que ela possui frameworks web e desejo ser desenvolvedor web, decidi dar uma chance a ela, então, ontem (dia 16/01/2024), estudei java o dia inteiro usando o site da W3Schools , já estou na parte do POO, e pelo menos por agora, estou apaixonado pela linguagem! ela é realmente mais verbosa, mas um código em java é muito bem estruturado, principalmente pelas classes usarem arquivos inteiros para serem criadas (isso facilita muuuito na hora de separar e organizar as coisas. nesse momento estou implementando a estrutura de dados Stack usando java (eu já implementei as stacks com Python), e pelo menos por agora, tudo está bem fácil de criar usando java, a bagagem do python me ajudou muito na hora de estudar java, eu basicamente só precisei acompanhar os conteúdos para entender a sintaxe da linguagem (logo, logo deve chegar a parte mais chatinha).

Então é isso, provavelmente vou continuar usando java, já que me parece uma linguagem bem mais requisitada do que o Python (sei que não é linguagem que constrói carreira, e que elas são apenas ferramentas), se você, meu caro leitor desenvolvedor java, tem alguma dica para me passar, por favor, escreva um comentário, ficarei muito grato pela ajuda!

não vou "abandonar" o python, mas java vai ser meu foco a partir de agora, tudo tá indo bem por enquanto, não sei o motivo do java ser tão odiado (talvez logo eu vá descobrir kkkk)

Obrigado caro leitor.

Carregando publicação patrocinada...
6

Meu primeiro conselho é não terceirize suas escolhas e o segundo é sai fora do Java e volte ao Python haha. Meus argumentos estão abaixo:

  1. O java é "chato", verboso, fica te obrigando digitar um monte de coisas que visam te garantir "qualidade", mas na realidade tem vários códigos estranhos como as outras que o Java é supostamente melhor. O Python por outro lado é simples de usar, direto ao ponto e parece estar mais alinhado com as necessidades das empresas que é resolver o problema, lançar MVPs, validar ideias.. e não escrever código. Os engenheiros de software são solucionadores de problemas e não escritores de código.

  2. O Python ta explodindo na inteligência artificial, tudo que sai de ponta tem uma lib Python para você integrar, seja com Nvidia, com os atuais modelos de linguagem, multi-gpu e hoje em dia existem ferramentas que colocam o Python em outro nível com código asyncrono e paralelo, isso tudo vem junto com a simplicidade da linguagem.

  3. Acredito que exista uma tendência a praticamente todas as empresas usarem IA de alguma forma e o Python ta lá na frente em relação a isso, portanto acredito que o Python tenha mais valor agora e também no futuro em relação a melhores cargos e salários do que o Java.

  4. Você mesmo pode procurar vagas recentes com Java e vagas recentes com Python, classificar e ver qual linguagem tem o maior leque de opções de uso, qual tem mais oportunidades destintas e qual paga melhor.

Se eu fosse investir em linguagem diferente e verbosa eu investiria em Rust que vai te ensinar milhares de coisas e modos de pensar diferentes, além disso muito do Kernel do Linux parece que está sendo migrado para Rust, a linguagem tem features únicas, não é apenas mais uma linguagem qualquer e muito provavelmente pode ser que seja finalmente a linguagem que vai tomar um pouco de espaço do C/C++.

3

Vou colocar alguns contrapontos a sua resposta:

  1. Esse é um argumento opinativo e provavelmente de alguém que não trabalha com a linguagem, mas talvez veja os memes sobre linguagens, aqueles do tipo "olha em x linguagem eu escrevo um hello world com 1 linha e com java são 5", sinceramente acho essas comparações muito fracas, mas caso você tenha mais embasamento por favor vamos discutir.
  2. Isso é totalmente verdade, mas caso o colega queira trabalhar com IA fora isso meio que tanto faz, codificar um sistema de IA é diferente de codificar um sistema com a ajuda de uma IA ou que usa IA em alguma determinada parte para algo.
  3. Novamente você tem um bom ponto ao falar "usar", não quer dizer desenvolver serviços com IA e voltamos ao item 2.
  4. Sobre isso você tem toda razão.
  5. Sobre o Rust seria realmente muito bom estudá-lo e entender como funciona, mas se está atrás de vagas de trabalho em mais abundancia não é uma boa ideia, não existe um mercado forte de vagas para essa linguagem aqui no Brasil, por enquanto, você pode ver isso nas pesquisas do stackoverflow.
2

Negativo, já estou na área faz uns 15 anos e uma das primeiras linguagens que trabalhei e fiz cursos foi o Java e tenho alguns certificados cheios de poeira de Java, minha opinião é pessoal de fato, eu não gosto da linguagem Java e conforme fui adquirindo mais experiência e vivência real eu gosto menos ainda de Java, mas eu entendo que gostos são particulares, se você gosta de Java ta tudo certo e Java ou Python é como discutir se da pra comer com Garfo ou com Colher.. essas discussões não levam a lugar nenhum.

Minha opinião com IA não quer dizer se ele gosta de IA ou não, quero dizer que na minha opinião todos irão tocar em IA em alguma camada seja com Java ou sem Java e que Python está muito superior nisso.

Mas tudo isso só reflete minha opinião e experiências próprias, não sou mãe dina e minha primeira sugestão a ele foi para não terceirizar a escolha dele para alguém que não vai enfrentar os problemas que ele mesmo irá enfrentar.

1
6

Só toma cuidado, uma armadilha muito comum de quem está aprendendo POO é tentar usar alguma linguagem baseada em POO e achar que isso está resolvendo tudo, dá para aplicar POO perfeitamente em Python da mesma forma que dá para usar Java e basicamente usar POO de uma forma totalmente torta, seguem meus conselhos:

  1. Não fique trocando de linguagem durante a fase de aprendizado inicial isso só vai ficar te forçando a gastar tempo aprendendo estruturas que você já sabe usar, um motivo bom para trocar de linguagem por exemplo seria fazer um estudo de mercado e concluir que tem mais oportunidades com alguma segunda linguagem.
  2. A partir do momento que você souber a estrutura de uma linguagem e seus comandos principais veja estruturas de dados, POO e Design Patterns, isso vai te diferenciar de outros que estão começando e acham que saber fazer um CRUD é o suficiente, fora isso foque em qualidade de desenvolvimento com SOLID e Clean Code.

Seguem alguns links para reflexão e ajuda:

  • Pesquisa do código fonte TV com alguns dados interessantes sobre linguagens, frameworks e salários.
  • Design Pattern Guru o material deles é simplesmente incrível para aprender design patterns.
  • Aqui eu queria deixar um bom livro de python com POO, mas não sou do time Pyhton então indicar um livro que não li seria mancada :(.