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

Estagnado no Pleno: Dúvidas, IA e o Caminho até a Senioridade

Eu entrei na minha carreira como programador em 2016, só como hobby na empresa em que eu trabalhava na época, e não imaginava que isso ia virar minha principal fonte de renda. Mesmo assim, eu já imaginava que, em 10 anos, eu estaria como dev sênior, sabendo tudo e todos os processos. Na época ainda era muito forte o uso de aplicações em PHP.

Pois bem: hoje, em 2025, com 9 anos de programação, eu me sinto estagnado no cargo de pleno. Já encontrei outras pessoas realmente sênior, e a diferença é que a pessoa estuda pesado. Eu achava que conseguiria chegar na senioridade só pela prática, mas isso é puro suco de ilusão. Sem a noção do estudo mais estruturado, eu sinto que só repito as práticas, não reflito nem aprofundo. Até porque programar hoje é meio que uma commodity e não necessariamente um código de valor. Muitas vezes é mais valioso “algo que funciona” do que um código bem estruturado.

Hoje eu fiz uma entrevista em que me perguntaram um monte de coisa que eu sabia do que se tratava, mas eu não soube responder, porque sempre que eu tenho uma dúvida eu simplesmente pesquiso. Então fica a pergunta: como eu dou o próximo passo da senioridade? Eu preciso decorar todas as conversas de sênior para passar numa vaga de sênior?

Eu sei o que é DDD, mas, na prática, em 10 anos de carreira, eu só peguei uma empresa que realmente se preocupava em seguir uma arquitetura. E ainda tem a IA: eu sinto que, com ela, eu consigo fazer tudo, mas ao mesmo tempo ela virou uma bengala. Para acompanhar o ritmo das demandas eu preciso usar IA, e hoje eu cheguei no ponto em que já ensinei tanto a IA sobre o meu trabalho que, só de eu passar a documentação da task, ela faz tudo pra mim. Eu só tenho que revisar aqui e ali, mas não aparecem desafios novos e nem passo por problemas que fariam um sênior realmente ter que pensar.

então meus amigos programadores lhe pergunto: Qual o caminho pra ser um sênior de verdade?

Carregando publicação patrocinada...
6

Eu sei o que é DDD

Mas sabe implementar? Sabe quais são as regras? os fundamentos? ou só o que se vê em vídeo de youtuber?

Pega o livro e leia, estude, implemente em um projeto seu

e hoje eu cheguei no ponto em que já ensinei tanto a IA sobre o meu trabalho que, só de eu passar a documentação da task, ela faz tudo pra mim.

Essa frase reflete que você não está criando uma coisa nova, só repetindo o mesmo várias e várias vezes.

Se a IA consegue fazer tudo que você faz, qual o seu real valor?

Qual o caminho pra ser um sênior de verdade?

Um sênior de verdade sabe como as ferramentas funcionam, e não só usar elas.

  • Qual banco de dados é melhor para um projeto específico? e porque?
  • Qual arquitetura é melhor pra esse projeto?
  • Qual padrão de projeto pode ser utilizado para resolver um problema?
  • Como usar a melhor forma de cache no projeto (cache em memória, cache distribuída)
  • Qual a melhor técnica de ler uma tarefa em paralelo?
  • Qual a melhor estratégia de autenticação e autorização para cada projeto?

São diversas perguntas, diversos caminhos, não tem uma fórmula mágica.

exemplos que eu uso no dia a dia e um pleno mediano não usaria naturalmente:

  • Cursor ao ler muitos dados no banco de dados
  • Separar leitura e processamento de um arquivo grande em threads diferentes (1 thread lê o arquivo para a memória, 1 ou mais threads processam cada linha desse arquivo)

Resposta do Claude

Prompt: Quais são os conhecimentos básicos de um dev sênior em C#?
Um desenvolvedor sênior em C# deve dominar uma ampla gama de conceitos técnicos e arquiteturais. Aqui estão os conhecimentos fundamentais:
Fundamentos da Linguagem
Tipos e Conceitos Avançados: Domínio completo de tipos de valor vs referência, boxing/unboxing, generics com covariância e contravariância, delegates, events, expressões lambda, e LINQ (sintaxe de consulta e método).
Programação Assíncrona: Proficiência em async/await, Task Parallel Library (TPL), tratamento de exceções assíncronas, configuração de contexto de sincronização, e padrões para evitar deadlocks.
Gerenciamento de Memória: Compreensão do Garbage Collector (gerações, modos de coleta), IDisposable pattern, finalizers, spans e memory para alta performance, e técnicas para evitar memory leaks.
Design e Arquitetura
Princípios SOLID: Aplicação prática dos cinco princípios para código manutenível e escalável.
Padrões de Design: Conhecimento de padrões GoF (Factory, Strategy, Observer, Decorator, etc.), padrões de arquitetura (Repository, Unit of Work, CQRS), e quando aplicá-los apropriadamente.
Clean Architecture: Separação de responsabilidades em camadas, inversão de dependências, e design orientado a domínio (DDD).
Frameworks e Tecnologias
ASP.NET Core: Desenvolvimento de APIs REST, middleware pipeline, dependency injection, configuração, autenticação/autorização (JWT, OAuth), e performance tuning.
Entity Framework Core: Mapeamento objeto-relacional, migrações, consultas otimizadas, relacionamentos, lazy loading vs eager loading, e estratégias para evitar problemas de N+1.
Testes: Unit testing (xUnit, NUnit, MSTest), mocking (Moq), integration testing, e práticas de TDD/BDD.
Conhecimentos Adicionais
Segurança: Validação de entrada, proteção contra injeções SQL e XSS, criptografia, hashing de senhas, e princípios de least privilege.
Performance e Otimização: Profiling de aplicações, identificação de gargalos, otimização de consultas, caching strategies (in-memory, distributed), e uso eficiente de recursos.
Versionamento e Deploy: Git avançado, CI/CD pipelines, containerização com Docker, e práticas de DevOps.
Habilidades Soft: Mentoria de desenvolvedores júnior/pleno, code review eficaz, comunicação técnica clara, e capacidade de tomar decisões arquiteturais fundamentadas considerando trade-offs.
Um sênior também deve estar atualizado com as novidades do .NET (atualmente .NET 8/9), compreender microserviços, message brokers (RabbitMQ, Kafka), e ter experiência prática resolvendo problemas complexos em produção.

O próprio Claude, com um prompt bem mal feito deu um monte de ideias do que estudar.

me perguntaram um monte de coisa que eu sabia do que se tratava

Mas e aí, você jáfoi atrás de estudar? ou vai continuar sendo um pleno mediano pro resto da vida?

1

Da em média uns 2, 3 meses em cada um dos conceitos acima. Arquitetura e Design agora se tornam mais do que importantes dado que as IA já fazem o trabalho mais chato, agora para saber se o que ela implementou é bom ai ter esses conhecimentos mais amplos é essencial.

4

Da em média uns 2, 3 meses em cada um dos conceitos acima.

Depende de quanto você se dedicar.

agora para saber se o que ela implementou é bom

Não é só saber se é bom, é saber melhorar também.

Lembrei que pedi pra IA criar um componente de calendário em que pode selecionar os dias. O copilot gerou um componente de 270 linhas.

LOTADO de useEffect, useMemo, useCallback, propriedades desnecessárias.

Fui retirando tudo que não era necessário, agrupando os hooks em um só quando eles deveriam executar juntos.

Basicamente refiz o compnente usando o gerado como base

deu 70 linhas.

Esse Trabalho jamais vai ser substituído por IA

"Ah mas diminuir a quantidade de linhas é irrelevante" Não foi só isso

  • O código anterior estava tão complexo que chegava ser ilegível, ninguém ia conseguir dar manutenção
  • Sobrecarregar com o uso de hooks em um componente não faz diferença, em centenas de componente começa degradar a performance, consumir mais banda e bateria dos dispositivos (isso a IA não pensa)
  • O código novo faz somente o que foi proposto, direto ao ponto, sem firula, sem rodeio
3

Meus 2 cents,

Voce mesmo respondeu a sua propria pergunta:

Já encontrei outras pessoas realmente sênior, e a diferença é que a pessoa estuda pesado. Eu achava que conseguiria chegar na senioridade só pela prática, mas isso é puro suco de ilusão. Sem a noção do estudo mais estruturado, eu sinto que só repito as práticas, não reflito nem aprofundo

Saude e sucesso !

2

Vou dizer um pouco de mim atualmente.

Eu trampo e cuido de 4 apps flutter atualmente no meu trabalho. 2 estão em desenvolvimento e outros estão "finalizados", pelo menos até acharem algo pra colocar lá.

Porém se eu olhar neles, eu não consigo aplicar tudo q existe no mundo flutter. O q mais sinto falta é o uso de banco de dados, já que pelo menos pros apps q desenvolvi, nenhum deles usa banco de dados SQL, só banco de dados key-value e API REST.
Ou seja, se eu depender da empresa pra construir minha carreira, meu, eu nunca irei progredir como desenvolvedor.
Por isso eu decidi criar um projeto meio ambicioso, e pessoal, voltado totalmente pra mim. Ele é ambicioso, pois ele vai desde bloco de notas, SRS pra estudo, carteira digital, transferencia entre celular e desktop, etc, e por causa disso, eu consigo aplicar um monte de coisas q nunca aprenderei só na empresa, como lidar com banco de dados SQL em flutter.

Então assim, se quer ser um senior, simplesmente estude, faça projetos, sendo projeto pessoal, ou até comercial por fora do seu trampo atual. Só assim vc aprende, só assim vc melhora. Não é sentado com a bunda no sofá clicando no botão do controle remoto q vc irá aprender algo, é simplesmente lendo e digitando. E não precisa tirar todo seu tempo de lazer para isso, pegue meia hora, 1 hora, vc decide isso de acordo com seu dia-a-dia, tudo q vc precisa é pegar algo e fazer acontecer.

Boa sorte ai nos seus estudos.

1

Eu achei bem valido o seu ponto, por que realmente não consigo desenvolver muito pela as empresas que eu trabalho. E a maior parte aprendi com projetos pessoais.