- Introdução
- O que você sabe fazer?
- Academia
- Git
- Linguagens e Frameworks
- Metodologias Ágeis
- Mercado
- Procurando Vagas
- Entrevista
- Teste prático
- Conclusão
Introdução
Olá, a idéia de criação desse post surgiu de um twit do Nicholas Eduardo, 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.
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.
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.
Git
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 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:
Use também o Github para guardar os seus projetos e exercícios e de preferência deixe eles públicos. Aproveite para fazer trabalhos em grupo com seus colegas e crie os projetos do curso usando Git e Github.
Metodologias Ágeis
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 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.
Linguagens e Frameworks
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, 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? ;)
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.
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?
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 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:
- Programathor
- Glassdoor
- Gupy
-
backend-br / vagas
Espaço para a divulgação de vagas para desenvolvedores backend via issues do Github.
Vagas
Espaço para a divulgação de vagas para desenvolvedores backend via issues do Github.
Como cadastrar uma vaga?
Abra uma issue, e preencha os dados seguindo o modelo padrão gerado pela issue.
Adicionalmente, informe quais labels devemos adicionar, contendo o nível de experiência desejada e a forma de contração.
Como receber atualizações das vagas?
Você pode receber atualizações das vagas no seu e-mail ou via notificações do GitHub, basta clicar Subscribe, na issue que você tem interesse.
Outros repositórios de vagas
Por área
Por tecnologia
- Vagas para PHP
- Vagas para .NET
- Vagas para Rust
- Vagas para Kotlin
- Vagas para Vue.js
- Vagas para Android
- Vagas para Flutter
- Vagas para iOS e OSX
- Vagas para Go/Golang
- Vagas para React/React Native
- Vagas para Python
- Vagas para Node.JS
Por localidade
-
frontendbr / vagas
🔬 Espaço para divulgação de vagas para front-enders.
Vagas
🔬 Espaço para divulgação de vagas para front-enders.
Vagas (Somente vagas de Front-End)
Espaço para a divulgação de vagas para desenvolvedores via issues do Github.
Vagas disponíveis em https://github.com/frontendbr/vagas/issues
Cadastrando uma vaga
- Abra uma issue e, no título desta issue, coloque o nome da cidade entre colchetes seguido do nome da vaga e nome da empresa.
Exemplo:
[São Paulo] Front-End Developer na [NOME DA EMPRESA]
- Informe quais labels devemos adicionar, contendo o nível de experiência desejada e a forma de contração.
⚠️ ImportanteCom o objetivo de manter a qualidade das vagas postadas e respeitar todas as pessoas e empresas, NÃO ACEITAMOS:
- Vagas sem o nome da empresa.
- Vagas de terceiros que não informem o nome da empresa na qual o(a) candidato(a) irá trabalhar.
- Vagas com informações faltantes e/ou fora do modelo da issue.
- Mais do que 3 (três) vagas da mesma empresa POR MÊS, independente…
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.
Entrevista
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.
Teste prático
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.
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 se você quiser bater um papo, sempre estou disposto a ajudar. Aquele abraço e boa sorte!
Top comments (10)
Excelente artigo
Esta de parabéns
Que bom que gostou, muito obrigado! :)
Português!
Yeah haha, the content of this post is focused on Brazilian developers, cuz there is a lot of Jr developers who find themselves discouraged with the job market cuz a lot of companies try to recruit seniors and middle developers but they offer few places for jr. Nevertheless, I'm trying to show that this is not really true. I intend to show to jr developers that they should keep looking for opportunities. More important: they need to keep learning and improving themselves.
Ótimo conteúdo, será um prazer ter vc no nosso Poadcast B-a-Bá do Dev, Leonardo.
anchor.fm/babadodev
Estarei lá Rafael!
Boaa, ótimo conteúdo
Opa, muito obrigado <3
Legal! Valeu pelas dicas
De nada, estamos ai pra compartilhar experiências :)