Como eu consegui meu primeiro emprego como desenvolvedor júnior
Tags: programming
Published: 2021-02-11 17:14:42

- [Introdução](#introducao)
- [O que você sabe fazer?](#fazer)
- [Academia](#fazer)
- [Git](#git)
- [Linguagens e Frameworks](#linguagens)
- [Metodologias Ágeis](#metodologias)
- [Mercado](#mercado)
- [Procurando Vagas](#procurando)
- [Entrevista](#entrevista)
- [Teste prático](#teste)
- [Conclusão](#conclusao)

<a id="introducao"></a>
### Introdução

Olá, a idéia de criação desse post surgiu de um twit do [Nicholas Eduardo](https://twitter.com/nicholasess), que falava sobre a hipocrisia das milhares de vagas no mercado de tecnologia que não abrangem iniciantes. Após alguns twites eu resolvi fazer esse texto e compartilha-lo com o máximo de pessoas possível.

{% twitter 1359638598031728660 %}
<a id="fazer"></a>
### O que você sabe fazer?

Muitas vezes é difícil responder essa pergunta em uma entrevista, principalmente se você tiver a síndrome do impostor. Mas em vez de respondê-la apenas com palavras, por que não mostrar o que você sabe fazer?

Escrevo esse texto para mostrar o processo de como consegui minha primeira vaga como desenvolvedor júnior, agora em 2021. Eu espero que ao terminar de ler esse texto você se sinta motivado a trabalhar duro para estudar e conseguir a tão sonhada vaga de desenvolvedor.
<a id="academia"></a>
### Academia

Durante o seu curso, seja ele Ciência da Computação, Sistema de Informação, Engenharia de Software ou outros, você irá ter uma grande carga de programação, irá aprender conceitos, realizar trabalhos e fazer provas. Em um determinado momento terá vontade ou até mesmo necessidade de praticar tudo isso, seja em um estágio ou em um emprego. É nesse momento que nos deparamos com a realidade do mercado, vagas de estagiário e desenvolvedor jr pedindo experiência com N linguagens, N frameworks, Metodologias ágeis, git, experiência em times distribuidos, entre outros. É comum o estudante da academia se deparar com essa situação e desistir ou até mesmo postergar a procura por um emprego para depois do término do curso.

E se eu te disser que você tem a oportunidade de ter essa experiência exigida sem ter trabalhado em uma empresa?  Vamos ver alguns pontos.
<a id="git"></a>
### Git
![gitgif](https://media.giphy.com/media/cFkiFMDg3iFoI/giphy.gif)
Eu espero que você entenda este gif, mas caso não entenda eu sugiro fortemente que estude Git.

É um dos requisitos mais simples de cumprir, você pode ler a documentação do [Git](https://git-scm.com/) e aprender a usá-lo no seu dia a dia. Existem muitos conteúdos e cursos em português e você será capaz de aprender sem muitos problemas. Agora como usar isso na universidade? Use Git em todos os seus trabalhos de programação, se você está iniciando o curso em T.I por exemplo, utilize-o desde a disciplina de algoritmos. 

Você não precisar saber 100% do Git, basta saber alguns conceitos básicos sobre como ele funciona e aprender uma dúzia de comandos pra começar a fazer algo, mas aprenda os conceitos por trás desses comandos. E é neste ponto que eu recomendo que você leia o seguinte artigo:

- [Learn Git Concepts, Not Commands](https://dev.to/unseenwizzard/learn-git-concepts-not-commands-4gjc)
- [Aprenda conceitos de git, não comandos](https://dev.to/paulogoncalvesbh/aprenda-conceitos-de-git-nao-comandos-4il3)

Use também o [Github](https://github.com/) para guardar os seus projetos e exercícios e de preferência deixe eles [públicos](https://www.swyx.io/learn-in-public/). Aproveite para fazer trabalhos em grupo com seus colegas e crie os projetos do curso usando Git e Github.
<a id="metodologias"></a>
### Metodologias Ágeis
![scrumgif](https://media.giphy.com/media/xT1XGOGdyDrL2BTfxK/giphy.gif)

Um tópico um pouco mais avançado, mas aconselho que você e seus colegas leiam sobre isso. Durante o curso experimente usar uma metodologia ágil como o [Scrum](https://www.desenvolvimentoagil.com.br/scrum/) em algum projeto de disciplina, faça as dailies, o planejamento das sprints, o review das sprints e você já terá algo pra comentar com o seu entrevistador. Você não precisa ser um especialista em desenvolvimento ágil pra conseguir uma vaga de jr, mas mostrar que você conhece o básico, e até mesmo já utilizou, pode ser um plus.
<a id="linguagens"></a>
### Linguagens e Frameworks
![langgif](https://media.giphy.com/media/MdA16VIoXKKxNE8Stk/giphy.gif)

Aqui o bicho pega, vagas de jr pedindo html, css, javascript, java, python, pascal, c++, assembly, php, smalltalk, cartão perfurado e você não sabe o que fazer. Eu não sou um especialista em todas as stacks, mas consegui descobrir o que o mercado pra minha linguagem de programação pedia e você deve ser capaz de descobrir também. Eu desenvolvia meus projetos em python na faculdade, logo pesquisei o que as vagas estavam solicitando e geralmente era algo nesse modelo:

>Conhecimentos necessários:
>- HTML, CSS, Javascript
>- Experiência de 2 anos com Python
>- Framework Django
>- PostgreSQL
>- Andar de Skate
>- Consumo de API's
>- Git
>
>Pode ser um plus
>- Django Rest Framework
>- Flask


Repare que tudo aqui está de alguma forma ligada com o Python, então é bom que você tenha um certo conhecimento na linguagem. Se você passou os últimos 2 ou 3 semestres fazendo seus trabalhos da universidade em python você tem esse conhecimento. Já o html, css e javascript é algo que você deveria estudar se quiser entrar na área de desenvolvimento web, mas em pouco tempo você consegue aprender o básico sobre isso e já ir montando seus projetinhos.

#### E quanto aos outros itens?

Você não precisa ser um especialista em nenhum deles pra conseguir uma vaga, mas é interessante que já tenha usado pelo menos alguns, mesmo os que estão listados como necessários podem ser aprendidos enquanto você se prepara no processo de entrevista, ou até mesmo depois de já ter conseguido o emprego. Ter o conhecimento básico sobre Django, PostgreSql, Api, mas nunca ter andado de skate na vida significa que não devo me candidatar a vaga? NÃO, se candidate mesmo assim e seja sincero na entrevista dizendo que você não sabe aquele item, mas que pode aprender, você não vai levar 4 anos pra aprender a se equilibrar no skate, em pouco tempo você consegue fazer isso. O mercado não vai exigir que você seja um [Tony Hawk](https://pt.wikipedia.org/wiki/Tony_Hawk), mas é desejável que você aprenda a se equilibrar em pouco tempo.

Ah, e isso sempre vai acontecer, você sempre terá que aprender uma coisa ou outra ao trabalhar em uma equipe, terá que aprender uma biblioteca nova, um framework novo ou algo do tipo pra poder atender a uma regra de negócio, se você não for capaz de fazer isso hoje, como o entrevistador saberá que você será capaz de fazer quando estiver na empresa? ;)
<a id="mercado"></a>
### Mercado

Todos os dias vemos notícias sobre como o mercado de T.I está fervendo, e ao mesmo tempo vemos *mais de 8 mil* pessoas reclamando no twitter que as vagas pedem muita coisa, que ninguém abre vaga pra jr, e que nunca somos chamados para os processos seletivos. Sabe como resolvemos isso? Exatamente do jeito que você pensou: devemos continuar reclamando no Twitter e nos grupos de Facebook até que as empresas diminuam os requisitos.

![boyprogramming](https://media.giphy.com/media/XreQmk7ETCak0/giphy.gif)

Obviamente essa não é a solução, o tempo que você gasta discutindo sobre como vagas pedem muitos requisitos, você pode gastar aprendendo um desses requisitos. O mercado não vai mudar só porque você reclamou no twitter, *PARE DE PERDER SEU TEMPO COM ISSO*. Nem todas as empresas tem a disponíbilidade de alocar um funcionário para poder ensinar tudo para você, então você deve tentar ao menos preencher alguns dos requisitos das vagas ofertadas.

Ah Leo mas eu não encontro vagas na minha cidade pra programar em Clojure, e agora? 
![wtfisthisgif](https://media.giphy.com/media/3ohjV8Fu5oF3EIyGPe/giphy.gif)

<a id="procurando"></a>
### Procurando Vagas

Estou certo de que na sua cidade deve existir um mercado de tecnologia com algumas vagas em aberto que vão desde Estagiário em manutenção de computadores até Desenvolvedor Java jr. Muitas vezes pode ser difícil encontrar essas vagas se você estiver esperando que elas caiam do céu, ou que cheguem na lista de e-mail da universidade. Ao invés disso eu aconselho fortemente que você aprenda a usar o [Google](https://www.google.com/) e pesquise mais vagas na sua região. Existem dezenas de sites onde essas vagas estão disponibilizadas, e aqui vai alguns sites onde eu procurei:

- [Linkedin](https://www.linkedin.com/)
- [Programathor](https://programathor.com.br/)
- [Glassdoor](https://www.glassdoor.com.br/index.htm)
- [Gupy](https://www.gupy.io/)
- {% github backend-br/vagas %}
- {% github frontendbr/vagas %} 

Devem existir muitos outros que eu utilizei mas não me recordo, mas acredito que esses irão ajudar você. Utilize o Glassdoor para ver comentários sobre a empresa que você está se candidatando, tem um conjunto de outras funções muito úteis lá.

Dica: Não se limite somente a procurar vagas na sua região, o que mais surgiu nessa pandemia foram vagas remotas na área de T.I e eu sugiro fortemente que você tente essas vagas também. Atualmente eu trabalho como desenvolvedor backend jr de forma completamente remota e tem sido uma experiência incrível.

Durante o tempo que fiquei procurando vagas eu enviei curriculos e fiz submissões para muitas empresas, muitas mesmo. E tive retorno de várias delas para realizar uma entrevista e para fazer testes práticos. Durante esse período eu investigava o que essas empresas faziam, qual o foco do negócio delas e como software poderia ajudar esse negócio, além de muitas vezes tentar conversar com programadores que já trabalhavam nessas empresas, seja através do Linkedin, e-mail ou Twitter. Não tenha medo de entrar em contato com outros programadores para fazer perguntas, geralmente todos respondem de forma amigável.
<a id="entrevista"></a>
### Entrevista
![entrevista](https://media.giphy.com/media/AYECTMLNS4o67dCoeY/giphy.gif)

Nessa etapa você possívelmente vai conversar com alguém do RH da empresa, eu passei por várias entrevistas antes de conseguir meu emprego atual e todas elas foram tranquilas, geralmente é apenas um bate papo pra conversar sobre suas experiências, sobre sua vida e sobre os seus conhecimentos de uma maneira mais abstrata, foque em ser objetivo.

Caso você passe dessa etapa é provavel que o próximo passo seja um teste prático ou uma conversa com alguém da T.I. Se for uma conversa com a T.I, provavelmente irão perguntar sobre o que você já fez, quais suas experiências com programação e sobre como você se encaixa nos requisitos da vaga. ESSE É O MOMENTO!!!! É aqui que aquele seu Github populado com projetos brilha, mostre os projetos que você já fez na universidade, projetos de cursos que você fez e até mesmo seus projetos pessoais, conte o que aprendeu em um determinado projeto, fale sobre a metodologia ágil que usou com sua equipe e mostre que vocẽ tem EXPERIÊNCIA, pois todos esses itens citados acima contam, e muiiiiito.

<a id="teste"></a>
### Teste prático

![testegif](https://media.giphy.com/media/13HgwGsXF0aiGY/giphy.gif)

Os testes práticos podem ser muito diferentes dependendo da empresa que você estiver se candidatando. Você pode receber uma prova conceitual, uma prova prática, ser submetido a um pair programming ou algo do tipo.

Nas provas práticas pra jr eu tive dois tipos: Construção de API, Construção de Crud. Usando seus conhecimentos na linguagem de programação e um framework você deve ser capaz de fazer isso. Documente bem o código antes de enviar o projeto para revisão, e de preferência escreva testes e um passo a passo de como executar o projeto.
 
No pair programming vai ser algo mais rápido, geralmente você vai programar junto com o entrevistador e irá implementar algo mais simples: Uma classe com métodos pra fazer uma tarefa simples, consumir uma API apenas usando uma linguagem, sem framework, realizar uma ordenação, coisas do tipo. É importante que você se comunique com o seu par, falando sobre as decisões que está tomando e até mesmo pedindo sugestões. NÃO TENHA MEDO DE USAR O GOOGLE, TODOS NÓS USAMOS.
<a id="conclusao"></a>
### Conclusão

Eu fiz tudo o que está descrito neste post, e após algumas semanas me candidatando eu fui aceito em três vagas de desenvolvedor jr, e fui rejeitado em várias (inclusive estágio). Pode ser difícil e pode demorar um pouco, mas você vai encontrar aquela vaga que precisa de você, apenas não pare de estudar e continue se capacitando para a vaga que você está procurando. Eu estou disponível no [Twitter](https://twitter.com/furtleo) se você quiser bater um papo, sempre estou disposto a ajudar. Aquele abraço e boa sorte!

![goodluck](https://media.giphy.com/media/kVaj8JXJcDsqs/giphy.gif)