[PT-BR] Iniciando em desenvolvimento
Published: 2022-03-05 21:02:24

Ocasionalmente, as pessoas conversam comigo sobre materiais e como começar na area de desenvolvimento, como conseguir primeiro emprego... Decidi criar esse artigo trazendo alguns itens que valem a pena dar uma olhada. Não vou trazer exatamente tudo o que fiz ou deixei de fazer por existirem situações, contextos e velocidades diferentes, mas espero conseguir impactar positivamente o máximo de pessoas possível. 

1. Primeiramente, **Linkedin**. Eu sei que muita gente que já tá em outro momento de carreira repudia o Linkedin e o conteúdo publicado lá, mas entenda que simplesmente o Linkedin inteiro parece estar sempre procurando por desenvolvedores. Até mesmo pessoas que não trabalham com desenvolvimento recebem vagas voltadas pra tecnologia. Invista um tempo em criar um perfil (se você souber inglês, crie a versão em inglês também). Traga em sua bio a sua stack atual, ou o que você está aprendendo. Na sessão de histórico profissional, não apenas adicione os trabalhos e datas de entrada e saída, mas coloque as principais responsabilidades. 

2. **Github**: Ao entrar no ambiente de tecnologia, é compreensível que inicialmente não se tenha muita atividade no github, bem associado à síndrome do impostor ou mesmo receio de submeter código para repositórios de terceiros. Mas, mesmo com o receio, é necessário o conhecimento em volta do git. Não olhe tanto para a complexidade dos seus repositórios ou o mosaico de atividade. Foque apenas em aprender o uso adequado de git, a criação de branches conforme for evoluir o código (tratando como features), o uso de chaves SSH. Conforme for ganhando confiança, vá atualizando os repositórios e em seguida, lide isso como um hacktoberfest pro ano todo. Você não precisa esperar até outubro pra pesquisar por projetos com tags "good first issue" ou "help wanted". Idealmente você deve procurar por um projeto que esteja sendo atualizado com frequência, dessa forma pode te ajudar a treinar habilidades de colaboração. Ah, e tenha o link do github sempre exposto no Linkedin.

3. **Preparação para entrevistas**: Ao participar de entrevistas, você poderá lidar com diversas dinâmicas diferentes, podendo ser uma proposta de um projeto, um pareamento... Para os dois casos requerem tipos de expertise diferentes. 
> **Propostas de projeto** geralmente te dão a possibilidade de aprender mais coisas durante o processo, porque você não se sente tão pressionado em relação à "estar sendo julgado ou não". Esse momento é perfeito para você se desafiar trazendo testes (ainda que não seja tão familiar). Não tente já de cara fazer o melhor código possível. Primeiro, entenda qual o cenário que entrega mais valor e trabalhe em volta dele. Atenda o cenário e em depois trabalhe nos casos específicos. É também um ótimo momento pra se iniciar no mantra "primeiro crie testes, depois refatore, depois amplie" também. E mesmo que o desafio já contenha cenários de testes, também não deixe de criar seus próprios cenários.
> Em **pareamentos**, sempre verbalize as suas intenções e não se acanhe em conversar sobre melhores abordagens. Nesse momento, não apenas suas habilidades técnicas estão sendo examinadas, mas sim sua capacidade de colaboração, como você lida com sugestões e como você explica uma ideia. Se trata de **capacidade analítica**, **aprendizado ativo**, **gestão de tempo** e claro, **resolução de problemas**. Em alguns momentos, pessoas entrevistadoras irão te fazer perguntas a respeito de projetos anteriores e vivências. Sendo bem direto, isso se trata de uma das formas da pessoa acessar atributos que ela entende que pode não conseguir acessar durante o pareamento. Nessa etapa, é extremamente relevante se atentar à boas práticas, então SOLID, Object Calisthenics,  o que tiver à disposição deve ser colocado pra jogo. Dica: manter cada método/função com só uma responsabilidade é uma das coisas mais claras de identificar da ótica de uma pessoa entrevistadora.


4. **Testes (ou falta deles)**:
Conhece testes mas não tem prática com TDD? Em suas etapas de desafio traga testes mas pondere cuidadosamente o uso de TDD. Nessa etapa é essencial a pragmaticidade, então se você não tem conforto com TDD, alinhe as expectativas durante a entrevista. Digo isso por algumas empresas serem conhecidas pela prática de TDD, mas nem por isso cobramos de forma tão ativa nas entrevistas. Isso faz parte da expectativa de empatia em volta de uma pessoa entrevistadora, entendemos que não necessariamente a pessoa entrevistada vai ter sido exposta à outras práticas.

5. **Etapas de cultura**:
Não tem muito o que falar dessa etapa, é uma etapa muito pessoal. É extremamente relevante você dizer que não teve exposição à algo ao invés de tentar fabricar situações para criar uma ilusão de empatia. A chave aqui é principalmente as pessoas se sentirem confiantes ao responderem se elas se sentem seguras em trabalhar ao seu lado. E também entender de sua posição na sociedade, seja ela de privilegiado ou não. Entender o que você pode fazer para se tornar um agente de mudanças.

_Esse artigo vai estar em mudança constante._