Deploy na Sexta #47: O que um programador júnior precisa saber?
Habilidades que mais aparecem nas vagas.
Depois do meu primeiro ano como programadora júnior, eu não via a hora de ser promovida para programadora pleno, afinal eu já tinha as mesmas responsabilidades dos meus colegas nesse nível. No entanto, na empresa onde trabalhava, percebi que a senioridade não era definida apenas pelo conhecimento técnico ou pelas habilidades adquiridas, mas pelo tempo de casa. Essa experiência me fez pensar: Se eu continuar estudando e abraçando novas responsabilidades, isso não vai refletir uma promoção, afinal por aqui pleno é quem tem 4 anos de experiência. Será que em toda empresa é assim? Quando deixarei de ser júnior?
Após um bom tempo na área, passagem por algumas empresas, posso concluir: A senioridade é um conceito relativo e varia conforme a empresa e time. Olhando para o mercado, algumas empresas cravam o conceito de desenvolvedor júnior como alguém com menos de dois anos de experiência prática de mercado, enquanto outras empresas focam mais nas habilidades do que no tempo de carreira.
No geral, um desenvolvedor júnior é alguém que já sabe programar, não tem, ou está ganhando experiência para lidar com desafios reais do mercado de trabalho e equipes de desenvolvimento de software. Diferente do que muitos pensam, ser júnior não significa estar começando do zero, mas sim já ter uma base e estar no processo de aprender a aplicar esse conhecimento de forma mais estruturada e eficiente em projetos reais. É como quem acabou de tirar a carteira de motorista: já sabe dirigir e conhece as regras, mas ainda precisa ganhar experiência na estrada, aprender a lidar com diferentes situações e se tornar mais confiante. No desenvolvimento de software, acontece o mesmo — o júnior já tem o conhecimento técnico, mas precisa de prática para ganhar autonomia e enfrentar desafios mais complexos.
Conhecimentos técnicos de nível júnior ✌
Estruturas de Dados e Algoritmos Básicos: Saber programar não é só escrever código que funciona, mas também entender como organizar e manipular dados de forma eficiente. Listas, filas e árvores, por exemplo, ajudam a estruturar melhor as informações. Além disso, conhecer algoritmos básicos facilita na hora de resolver problemas computacionais e otimizar o desempenho da aplicação.
Arquitetura Cliente-Servidor: O backend faz a ponte entre o que o usuário vê (frontend) e os dados armazenados no sistema. Para isso, é essencial entender como clientes (navegadores, aplicativos) se comunicam com servidores por meio de requisições e respostas.
API RESTful: APIs são como pontes que conectam diferentes partes de um sistema. Saber criar e consumir APIs RESTful é essencial para integrar aplicações, garantindo que o frontend consiga se comunicar com o backend de forma organizada e eficiente. HTTP, status codes e métodos como GET e POST são conceitos fundamentais.
Bancos de Dados: Os dados precisam ser armazenados de forma organizada e eficiente. É essencial conhecer bancos relacionais (SQL, como PostgreSQL e MySQL) e não relacionais (NoSQL, como MongoDB), entendendo quando e como usá-los.
CRUD (Create, Read, Update, Delete): A maioria dos sistemas realiza operações básicas como criar, ler, atualizar e deletar dados em APIs ou bancos de dados. Gerenciar usuários, produtos ou qualquer outro recurso exige esse conhecimento, então entender bem essas operações é indispensável.
Autenticação e Autorização: Não basta permitir que qualquer um acesse tudo no sistema. Autenticação garante que um usuário é quem diz ser (como login e senha), enquanto autorização define o que ele pode ou não pode acessar. Ferramentas como JWT e OAuth são bastante usadas para isso.
Versionamento com Git: Nada de perder código ou sobrescrever mudanças sem querer! Git permite acompanhar o histórico de alterações, criar branches para novas funcionalidades e colaborar com outros desenvolvedores. Plataformas como GitHub são indispensáveis no mercado.
Testes Unitários: Escrever código é uma coisa, garantir que ele funcione corretamente é outra. Testes unitários servem para verificar se pequenas partes do código estão funcionando como esperado, evitando bugs e facilitando a manutenção.
Design Patterns Básicos: Padrões de projeto ajudam a estruturar o código de forma mais organizada e reutilizável. Conhecer alguns básicos, como Singleton e Factory, faz toda a diferença na hora de escrever um backend mais eficiente.
Documentação de Código e Código Limpo: Código bom não é só o que funciona, mas o que também pode ser entendido por outras pessoas (e por ti mesmo no futuro). Escrever uma documentação clara ajuda na manutenção, facilita a colaboração com o time e evita dores de cabeça desnecessárias.
Por fim, vale reforçar que ser um desenvolvedor júnior não significa apenas estar no início da carreira, mas sim ter um conjunto de habilidades fundamentais para contribuir com projetos reais. O que diferencia um júnior de um pleno ou sênior não é apenas o tempo de experiência, mas o nível de autonomia e a capacidade de lidar com desafios mais complexos.
É importante lembrar que nem toda vaga vai exigir todas as habilidades mencionadas. Algumas podem pedir menos, outras podem incluir requisitos extras. O essencial é não desistir de estudar e e continuar se candidatando mesmo sem atender à todas as exigências. Além de aumentar as chances de conseguir uma oportunidade, participar de processos seletivos também é uma forma de aprendizado — entrevistas ajudam a entender melhor o que o mercado busca e onde é possível melhorar.
💡 Indicações da semana
A indicação dessa vez é série Severance que conta a história de funcionários da Indústrias Lumon que participam de um programa de ruptura. Esse procedimento separa a consciência dos funcionários entre o trabalho e a vida pessoal, ou seja, teu “eu” pessoal não tem memórias do teu trabalho e teu “eu” do trabalho, não sabe quem tu és na vida pessoal. Uma ficção científica bem legal!
📘 15% OFF na Alura: Hey, não esquece que temos um cupom SPACECODING com desconto na tua matrícula da Alura. Na plataforma temos acessos a todos os cursos em uma só assinatura, então, vale espiar as opções. Inclusive, neste vídeo analisei os requisitos de vagas C# e indiquei cursos da plataforma.
Essa edição da newsletter levou 02:45 minutos para ficar pronta. Fiz uma boa curadoria de vagas e comparei requisitos pra chegar num denominador comum. Obrigada por ler até aqui. Não esquece de me contar nos comentários o que tu acha sobre o tema!
Nos encontramos no próximo deploy, sexta-feira às 6:00. 🖖
Ótimo conteúdo, obrigada pelas dicas!
Reflexão muito interessante sobre o tema. Realmente a senioridade é algo muito impreciso no nosso dia a dia. Excelente conteúdo e dicas 👏👏👏💯