O início de carreira do desenvolvedor Júnior não é um dos mais fáceis. Como conseguir um primeiro emprego para adquirir experiência, quando a vaga já exige experiência prévia? Como saber quando estamos prontos para começar a trabalhar? Um dos assuntos que tem chamado minha atenção no Twitter e em outras redes são novos profissionais tentando obter a primeira vaga. Eu imagino que o problema tem várias facetas ou partes: a ilusão, o despreparo e choque com a realidade.

Ilusão#

Uma parte é a ilusão de que a programação ou desenvolvimento de sistemas é uma profissão de fácil acesso. Esta visão tem se proliferado em nossa profissão e falei um pouco em outro post: Programadores. Programar é acessível e existe material abundante para estudo entre cursos, vídeos, livros e formações. Eu ainda acho que o melhor caminho, especialmente para quem está começando e é muito novo, é seguir um curso técnico ou universitário. Tentar aprender tudo sozinho e sem um guia, mentor ou amigo que já exerça a profissão é muito complicado.

Todo mundo tem a tendência de procurar o caminho mais fácil e isto acontece também nos estudos, você acaba focando nas coisas que brilham e são mais fáceis, não necessariamente nos assuntos que precisa aprender. Isto se aplica a tudo, de matemática a computação.

Várias empresas têm proposto esquemas de fique rico agora. Os bootcamps são também famosos nos Estados Unidos, onde em 3 ou 6 meses a pessoa já é contratada com salários de 6 dígitos. Se você estudar 8 horas por dia, durante 6 meses, seguindo um programa específico, eu acredito que seja possível, mas duvido muito que você já seja contratado com um salário tão alto. Sênior em um ou dois anos também é perigoso. Você precisa de tempo para se habituar com a nova profissão, não dá para adiantar muito.

Outra armadilha de estudar sozinho é fazer vários cursos com conteúdo quase idênticos e não terminar nada. Quantos cursos online você já iniciou e não chegou ao fim? Quantos livros você já leu este ano? Não se iluda, se em 3 ou 6 meses estudando sozinho você acha que não progrediu, converse com alguém e procure orientação, não perca seu tempo, não se iluda.

Despreparo#

E o quão pronto você está para começar a trabalhar? Qual bagagem você traz para o primeiro emprego?

Cada empresa vai definir o mínimo para um júnior. Mas para ser um programador ou desenvolvedor, você precisa estar preparado. Saber apenas uma linguagem de programação pode não ser o suficiente.

Itens:

Lógica de programação
Laços(loops), atribuição, tipos de variáveis, acumuladores, contadores, funções, operadores lógicos e relacionais.
Matemática
No mínimo um bom domínio das quatro operações, idealmente confortável com assuntos do ensino médio. Proporções, média aritmética e ponderada. Quem vai para ciência de dados tem que se preparar muito melhor, não só em matemática, mas também em estatística.
Português
Se você não escreve razoavelmente, procure melhorar. Não precisa escrever textos longos, mas deve evitar erros básicos. Escrever também ajuda a tirar dúvidas de forma mais eficiente em grupos.
Inglês
No mínimo o básico para ler um site (onde baixar programas) e de preferência o suficiente para ler um texto técnico. Existem vários sites que podem ajudar a aumentar o vocabulário, assim como tradução instantânea e dicionários online.
Estrutura de dados
Listas, filas, pilhas, arquivos, noção de complexidade.
Banco de dados
Saber consultar um banco de dados via programa e utilitário gráfico, saber inserir dados no banco e também atualizar campos.
Utilitários
Git, docker, um compactador/descompactador, um leitor de arquivo texto, uma planilha eletrônica, editor de textos.
Conhecimentos adjacentes
Noções de rede, HTML, como funciona a Internet (básico), ainda mais importante se você escolher uma carreira como desenvolvedor web.

Você deve estar apto a realizar algumas tarefas:

  • Modificar um programa, fazer pequenas alterações.
  • Juntar dois programas
  • Criar um relatório
  • Atualizar uma tabela do banco de dados
  • Testar se o programa está funcionando
  • Explicar como e quando um erro ocorreu, mesmo que você não saiba ainda solucioná-lo.
  • Saber a diferença entre pedir ajuda e procurar conteúdo sozinho.
  • Continuar a estudar depois de receber ajuda.

Se você ainda não se sente capaz de realizar estas operações, provavelmente precisa se preparar melhor.

Choque com a realidade#

O júnior tem que ser útil para a empresa. Em imagino um júnior como alguém que fez 3 anos de ensino técnico ou que tenha experiência equivalente. Não é fácil começar hoje em dia, eu tenho visto muita gente reclamar que as listas de requisitos de algumas vagas parecem livros. Mas não se engane, a empresa espera algo de você, não se contratam júniores apenas para pagar menos.

Mesmo no início de carreira, você tem que gerar valor para empresa que o contrata.

A ideia de contratar um júnior é:

  • Liberar os sêniores e plenos de tarefas simples que tomam tempo
  • Começar a treinar profissionais para o futuro da empresa/projeto.

Em contrapartida, o júnior deveria ter:

  • Uma supervisão do que faz, um sênior que analisa o código e mostra de forma construtiva como melhorá-lo.
  • Apoio para tirar dúvidas e guiar o desenvolvimento requerido pela empresa/projeto. Dicas do que se aprofundar e estudar mais.

O que o júnior não deveria fazer:

  • Assumir projetos sozinho, é muito cedo para assumir responsabilidade, júnior é um aprendiz.
  • Fazer horas extra. O tempo extra deve ser usado para diversão e estudos.
  • Confundir a carreira pessoal, escolhida pelo júnior com o que a empresa precisa. Este ponto é importante porque nem sempre o que a empresa quer é o melhor para o funcionário. Você pode muito bem trabalhar numa empresa usando Visual Basic, ganhando experiência, mas tendo plena consciência que a tecnologia está ultrapassada e se preparando para outras. O Fábio Akita fala muito bem a questão de não terceirizar suas decisões neste vídeo

Conclusão#

Falta gente no mercado, há vagas. O problema sempre foi ter mais vagas do que gente qualificada, é um mercado muito aquecido. Um problema é que alguns lugares não têm tamanho para pagar bem, são pequenas empresas que precisam de um suporte de rede alguém só para manter as coisas rodando. Quando você consegue programar algo legal, normalmente em empresas grandes e até mesmo em empresas públicas é uma chance (essas vagas são as mais disputadas). Os salários também não evoluíram. Eu saí do Brasil em 2006 e ainda vejo vagas que pagam R$1.500/2.000 por mês como há mais de 20 anos atrás (e a inflação/preços aumentaram muito, eu acho muito caro tudo no Brasil). Hoje temos a sorte de poder trabalhar remoto para empresas no exterior, sem ter que sair do Brasil, mas o inglês limita muita gente 😞. De qualquer forma, trabalho remoto para júnior pode ser perigoso, tem que ser planejado.

Cuidado também para não ser explorado. Algumas empresas prometem muito e entregam muito pouco. O júnior tem que trabalhar, gerar valor, mas precisa da contrapartida do aprendizado/treinamento no trabalho para que valha a pena. Júnior PJ não deveria existir, fuja deste tipo de vaga.

Não espere construir uma carreira em dois ou três anos. Você está entrando numa maratona profissional, você deve pensar em 5, 10, 20 anos. É impossível hoje saber o que você fará daqui 20 anos. O melhor que podemos fazer é avaliar sempre, no mínimo uma vez por ano, como está nossa carreira e corrigir o rumo caso este não lhe agrade. Tenha como meta aprender algo novo todo ano e sempre experimentar novos programas, linguagens e bibliotecas. Não se acomode com uma só opção, pois tudo muda muito rápido.

Aproveitem para estudar e aprender o máximo que puderem, só não caiam nas armadilhas do aprenda em 24 h, sênior em 1 ano e coisas que nem precisa estudar ou se esforçar para conseguir. Outra coisa, não aprendam apenas uma só linguagem de programação. Você pode muito bem aprender a programar em Python e ver um pouco de Javascript/Typescript ou mesmo C#. Se não tem vaga na sua cidade, pode ver remoto ou mesmo mudar de cidade. O mercado sempre tem uma preferência e isso muda de um lugar para outro.