1
resposta

Dúvida sobre aprendizado com Java

Olá, pessoal.
Boa noite. Tudo bem?

Preciso de ajuda no meu aprendizado em Java. Eis minha situação:

Estou estagiando há mais de um ano em uma empresa como Desenvolvedor Front-end e na última semana fui transferido para outro projeto, da mesma empresa, mais antigo e que tem uma base construído ao longo de dez anos em Java. Por conta da idade do Software, parte do sistema possui uma parte de código legado e outra parte mais atualizada e que tenta seguir um padrão de codificação e de boas práticas.

Hoje, foi meu prmeiro dia atuando nesse projeto, foi alocada a mim uma demanda de implementação de uma nova feature no sistema. Ao abrir o projeto no IntelliJ, confesso que fiquei muito confuso quanto à complexidade do projeto em que a empresa trabalhava há 10 anos.

Em termos técnicos, não consegui new iniciar direito a demanda e não consegui implementar quase nada de Back-End. Visto isso, estou um pouco frustrado pois ao acompanhar os cursos da Alura de Java e de Spring consegui entender bem os conceitos e após assistir a uma seção inteira de aulas e anotar as instruções e comandos dos instrutores, tentava fazer sozinho o algoritmo (quando algo dava errado, voltava à videoaula para entender o que havia feito de errado).

Minha questão é a seguinte: o que vocês recomendam que eu faça em relação a parte técnica e como eu deva agir nesse momento?

Não tenho uma lógica de programação tão bem desenvolvida ainda embora esteja cursando uma faculdade (estou no segundo ano de Engenharia de Computação) e, talvez, eu esteja muito apressado e querendo ser bom em Java logo (rsrsrs).

Tenho algumas ideias:
-Praticar mais lógica de programação com as trilhas de exercícios aqui da Alura;
-Após terminar um curso aqui, tentar fazer um projeto semelhante mas em outro contexto;
-Escrever aqui no fórum o que estou aprendendo e vocês avaliam o meu código e o meu entendimento dos conceitos (visto que a comunidade da Alura tem sido muito receptiva e atenciosa; como se fosse um Stack Overflow mas melhor ainda!);
-Pedir mais ajuda para pessoas mais experientes e que fizeram manutanção no projeto ao longo desses 10 anos para que me guiem e me ajudem a ser um dev melhor.

Se tiverem mais ideias, fiquem à vontade para compartilhar.

Agradeço desde já a ajuda.

1 resposta

Oii, Gabriel.

É perfeitamente normal sentir esse estranho choque térmico ao sair de um curso e cair em um projeto real, especialmente um com uma década de história. No aprendizado, lidamos com cenários controlados, enquanto no mercado enfrentamos o que chamamos de código vivo, que cresce e muda de forma orgânica.

Algumas sugestões práticas pra ajudar você a navegar nesse novo desafio:

Entendendo o código legado:
Sistemas com dez anos possuem camadas de decisões tomadas por pessoas que talvez nem estejam mais na empresa. Não tente entender tudo de uma vez.

  • Mapeie o fluxo: Em vez de focar na sintaxe do Java, tente desenhar como a informação viaja no sistema. Por onde a requisição entra? Qual classe processa o dado? Onde ele é salvo?
  • Debug é seu melhor amigo: Use o depurador do IntelliJ. Coloque um ponto de parada (breakpoint) no início da funcionalidade que você precisa alterar e execute o código passo a passo. Isso ajuda a visualizar a lógica em tempo real, algo que a leitura estática do código muitas vezes não revela.
  • Busque padrões: Identifique como as outras funcionalidades foram feitas. Se precisa criar uma nova tela ou serviço, procure algo semelhante já existente no projeto e use como molde.

Aprimorando a parte técnica:
Suas ideias são ótimas, mas podemos refiná-las para que seu tempo seja usado com foco:

  • Pratique com contexto: Em vez de apenas exercícios de lógica isolados, tente replicar pequenas partes do que você vê no trabalho em projetos pessoais. Se o sistema da empresa usa uma forma específica de conexão com o banco de dados, tente criar um mini projeto em casa usando essa mesma técnica.
  • Foque nos fundamentos: No Java, entenda bem como funciona a Orientação a Objetos (Herança, Polimorfismo, Encapsulamento). Grande parte da complexidade de sistemas antigos vem do uso intenso desses conceitos.

Como agir no dia a dia:
Sua postura como estagiário é o ponto principal para seu crescimento:

  • Peça ajuda com estratégia: Antes de chamar um desenvolvedor mais experiente, tente resolver o problema por conta própria por cerca de 30 a 60 minutos. Quando pedir ajuda, mostre o que você já tentou: "Estou tentando implementar a feature X, vi que o fluxo passa por tal classe, tentei fazer desta forma, mas travei no ponto Y". Isso demonstra proatividade.
  • Documente seu aprendizado: Escrever no fórum é excelente. Além de receber feedback, o ato de explicar o que você aprendeu ajuda a fixar o conhecimento na sua memória.
  • Tenha paciência: Você está no segundo ano de Engenharia de Computação. É natural que a lógica ainda esteja em construção. O domínio de uma linguagem como Java, com um ecossistema tão vasto, leva tempo.

Resumo de ações imediatas

AçãoPor que fazer?
Leitura de códigoFamiliarizar-se com os nomes de classes e métodos do projeto.
AnotaçõesRegistrar termos e siglas que você não conhece para pesquisar depois.
Pequenas entregasComece com tarefas simples (correção de textos ou pequenos ajustes) para ganhar confiança.

Não se sinta frustrado por não entregar algo complexo logo no primeiro dia. O projeto levou dez anos para chegar onde está, ninguém espera que você o domine em 24 horas. Continue com sua dedicação nos estudos e use o código legado como uma escola prática.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!