Como estudar, praticar e conseguir oportunidades como (Front-end) Developer

Guia prático para quem está iniciando (ou não) a carreira de Desenvolvimento (Front-end) 💥

Já tinha escrito um texto sobre o que Front-end Developers precisam saber e outro sobre 15 coisas que faria se estivesse iniciando minha carreira.

Agora vou escrever uma espécie de guia prático com alguns caminhos para quem está iniciando (ou não) profissionalmente.

Importante dizer que minha atuação principal é como Front-end Developer, então estou mais inserido nesse mercado e naturalmente as dicas são enviesadas para Desenvolvimento Front-end, mas podem ser adaptadas para praticamente qualquer área da programação.

Também quero ressaltar que as pessoas são diferentes e nenhuma jornada vai ser igual, portanto não leve essas dicas como verdade absoluta, são apenas um compilado de coisas que funcionaram comigo e com outras pessoas que conheço, mas podem ou não funcionar com você.

Estudar

Learning CultureCrédito: fulcrumlabs.ai

Sem segredo aqui, estudar vai ser uma constante durante toda carreira. Aprender conceitos, teorias, formas de trabalhar, linguagens de programação e reforçar tudo isso de tempos em tempos é fundamental.

Existem dois caminhos possíveis, que não são mutuamente excludentes: Educação formal e Educação informal.

Educação formal

Muito se discute sobre a necessidade ou não de ter educação formal nas áreas ligadas a programação. É uma escolha bastante individual, conheço devs sensacionais que fizeram faculdade e outras pessoas fodas não tem curso superior, minha única certeza é que não é fator decisivo para o sucesso de uma carreira.

Felizmente cada vez mais empresas estão removendo a necessidade de possuir uma graduação, isso na minha opinião, deixa o mercado mais interessante e dinâmico. Mesmo assim ter graduação segue sendo importante, para por exemplo, conseguir visto de trabalho em alguns países.

Sobre aprendizado, acredito que pode ser interessante para estabelecer e aprender conceitos mais acadêmicos sobre design, lógica de programação, engenharia de software, ciências de computação e etc, parte desse conhecimento vai ser super útil ao longo do tempo.

Alguns exemplos de graduação são:

  • Engenharia de Software
  • Engenharia da Computação
  • Ciências da Computação

Cursos voltados para design, como Design Digital e similares, também podem ser boas escolhas, principalmente se deseja se aprofundar em temas como experiência do usuário e desenvolvimento de interfaces.

Outra possibilidade interessante são cursos tecnólogos, eles tem duração reduzida, geralmente entre 2 e 3 anos. Alguns deles também são aceitos em empresas que exigem graduação ou para conseguir visto em alguns países.

Como referência, veja essa palestra do Afonso Pacifer no Front in Sampa, que pra mim foi das melhores abordagens desse tema nos últimos tempos.

Educação informal (aka JavaScript das ruas)

O termo JavaScript das ruas (que tirei do vídeo acima) cai como uma luva para definir educação informal. E não importa se você tem ou não curso superior, vai precisar de muito estudo informal.

Isso porque o conteúdo aprendido nas universidades nem sempre estão alinhados (e quase nunca estão 😶) com o mercado de trabalho cada vez mais dinâmico que estamos vivendo. Então acontece um fenômeno muito conhecido:

Pessoas se formam mas não estão preparadas para enfrentar desafios do dia-a-dia

A vantagem é que milhares de conteúdos, práticos e teóricos, foram produzidos nos últimos tempos, e melhor, boa parte deles são gratuitos ou possuem preços acessíveis.

Você pode obter educação informal de vários jeitos:

Também existem algumas plataformas que deixam os estudos mais lúdicos, alguns exemplos são:

As vantagem são as metrificações da sua evolução (que inclusive ficam disponíveis para algumas empresas) e a possibilidade de estudar praticando, facilitando o processo de aprendizado.

E falando em praticar…

Praticar e aplicar

Theory and practice

Apesar de conhecimento teórico ser importante, a prática é o que realmente vai fazer você ficar bom em alguma coisa.

Uns anos atrás escrevi um artigo que vale ler depois contando como aproximar a teoria da prática, agora vou me aprofundar nisso e dar novos exemplos e dicas.

Existem várias maneiras de praticar, vou listar algumas, e nelas você não só vai aprender, como também vai criar uma espécie de portfolio que pode ajudar muito a conseguir novas oportunidades.

Criar experimentos

É uma maneira divertida e extremamente eficaz de praticar, porque você não só vai ratificar coisas que está estudando, como também vai desenvolver sua criatividade.

Vou dar um exemplo, no passado teve um boom de novidades no CSS, várias propriedades novas surgiram. Em 2013 eu estava adorando desenhar com CSS, estudando JavaScript… e sempre quis aprender piano, então porque não tentar criar um piano com CSS e JavaScript?

O resultado foi esse:

O Codepen, por exemplo, é um lugar fantástico para criar experimentos desse tipo, com uma simples navegada você vai ver idéias sensacionais que podem te inspirar para criar seus próprios projetos.

Durante minha carreira já fiz vários experimentos desse tipo, pode conferir alguns na página de lab desse site.

É uma maneira incrível de aprender brincando.

Desenvolver seu próprio site (e/ou blog)

Toda vez que sinto vontade de aprender (e praticar) novas tecnologias, refaço todo o código do meu site usando uma nova stack.

Usando essa tática, além de aprender novas tecnologias, você também vai aprender novas metodologias conceitos e arquitetura de projeto. E tem mais, o próprio trabalho de pensar no layout e na experiência do usuário é um exercício fenomenal.

O resultado disso, fora o aprendizado, é sua marca pessoal disponível na internet. Seu site pode ser (e com certeza vai ser) um grande cartão de visita do seu trabalho, pode dizer sobre seu código, suas habilidades e um pouco sobre como você pensa.

Essa já é a terceira versão do meu site, e já escrevi um artigo contando dessas experiências, além de explicar todas as tecnologias e conceitos que apliquei aqui. Vale a pena ler para descobrir todas as possibilidades que podem surgir a partir de um projeto pessoal.

Abrir pull requests

Abrir pull requests em repositórios de outras pessoas é outro jeito muito legal de praticar. Isso porque dessa vez não é você que vai decidir qual stack ou convenções que vão ser utilizadas, assim você tem contato com novas formas de trabalhar.

Bootstrap

A imagem acima é um print de um dos primeiros PRs que abri, nada mais nada menos do que no Bootstrap em meados de 2013. Além de ser super legal poder ajudar num projeto que eu de fato utilizava, ganhei alguns feedbacks super legais sobre o código e qualidade na abertura do PR.

Interessante notar que abrindo Pull Requests algumas soft skills também podem ser desenvolvidas, como:

  • Trabalho em equipe
  • Flexibilidade
  • Comunicação textual
  • Entre outras

Até mesmo o inglês pode ser treinado, já que boa parte das documentações e códigos, são escritos nesse idioma.

Além de contribuir com projetos abertos que podem ajudar várias pessoas, o que já é bem motivador, esse trabalho também fica disponível no seu Github (ou similares) e acessível para outras pessoas e empresas avaliarem.

Recriar libs famosas

No chamado mundo real do mercado de trabalho, nem sempre é uma boa idéia recriar a roda, existem milhares de soluções que endereçam muito dos problemas no Desenvolvimento de Software moderno.

Mas durante seus estudos você tem toda a flexibilidade de desenvolver o que achar melhor.

Tentar recriar ou reproduzir libs famosas, ou o conceito aplicados por elas, é mais uma maneira interessante de praticar.

Você vai entender como as coisas funcionam por debaixo dos panos e melhorar suas habilidades nas tecnologias escolhidas.

E numa dessa, quem sabe a roda que você criou não fica melhor que a roda original? 😜

Refazer páginas de sites e apps famosos

Especialmente se seu foco é Desenvolvimento Front-end, um outro jeito de praticar é listando vários sites e apps que você usa (ou gosta) para tentar replicar o layout.

Dessa forma você consegue desenvolver principalmente suas habilidades de CSS (já que precisa replicar layouts reais), HTML e JavaScript em nível de interface.

Não precisa refazer o projeto inteiro, mas vale pegar as páginas e componentes que você mais gosta e tentar se aproximar do original (ou quem sabe, melhorar o layout e sugerir para a empresa em questão 😂).

Se desafiar com testes reais de empresas no frontend-challenges

Essa dica é matadora.

Uns anos atrás, criei um repositório para agregar testes reais (open source) de empresas do Brasil e do mundo.

O nome desse repositório é:

O que isso significa?

Que você literalmente vai desafiar suas habilidades em testes que as empresas usam para contratações. Teoricamente, se conseguir concluir o desafio, você tem condições técnicas para ser aprovado num processo seletivo.

Mais do que isso, as empresas estão buscando desenvolvedoras e desenvolvedores o tempo inteiro, se você fizer um teste muito bom existem chances reais dessa empresa te chamar para bater um papo.

E mesmo que isso não aconteça, é possível pedir feedbacks sobre a qualidade do seu teste, o que é muito valioso e pode te ajudar a corrigir diversos aspectos do seu código ou da sua linha de raciocínio.

Procurar oportunidades (ou ser encontrado)

Numa carreira profissional poucas coisas são mais complicadas do que conseguir as primeiras oportunidades.

As pessoas não conhecem você, não sabem das suas capacidades e muitas vezes não tem nenhuma confiança para apostar em você naquela vaga que você curtiu tanto.

E é assim com (quase) todo mundo:

Vale ressaltar, que evito falar sobre assuntos que não tenho vivência prática e quase não tenho experiências com freelas. Sendo assim todas as próximas dicas são focadas em oportunidades dentro de empresas, sendo elas alocadas ou home office.

Antes de tudo: O LinkedIn

Muito tempo atrás, em uma terra distante, as pessoas usavam papel impresso com um resumo das suas qualificações e habilidades, esse papel era chamado de Curriculum Vitae (CV).

Com a era digital, esse papel foi substituído por uma versão digital, geralmente anexada no email. O tempo foi passando e considero o uso do tal CV totalmente desnecessário para profissões digitais, boa parte das informações podem ser encontradas em sites com foco profissional como o LinkedIn.

Exatamente por isso é importante ter um perfil atualizado no LinkedIn. É uma forma de ter suas atribuições profissionais disponíveis num formato que as pessoas já estão acostumadas.

Se seu perfil está desatualizado, tire um tempinho para inserir informações mais recentes sobre você, pode ajudar muito em processos de seleção.

Uma dica, é que caso esteja num processo seletivo que exige o envio do CV anexado, o próprio LinkedIn tem uma ferramenta para gerar CVs em formado PDF, baseado nas informações do seu perfil.

Download CV - LinkedIn

Depois de tudo: O Github

Parte das dicas práticas que dei, fazem uso do Github e é provável que você já tenha um perfil lá, ou no mínimo já tenha escutado falar.

Divide opiniões, mas atualmente também acho muito importante ter um perfil atualizado e ativo no Github.

Falando por mim, jamais deixaria de contratar ou mesmo contatar alguém por não ter códigos abertos disponíveis, pessoas incríveis seriam descartadas por conta disso.

Mas quando a pessoa tem atividades em códigos open source, é possível ter alguma noção do nível técnico, sendo possível alguns casos, dispensar testes práticos e até mesmo avaliar algumas soft skills por conta do engajamento em projetos.

Além disso, o Github é uma rede social como qualquer outra.

Já escrevi um artigo completíssimo contando como contribuir com open source (que vai muito além do código) e o impacto que isso pode ter na carreira, lá falo bastante sobre o Github, vale a pena tirar um tempo para ler.

Locais com vagas de desenvolvimento

Atualmente existem milhares e milhares de locais que compartilham ou publicam vagas de desenvolvimento e programação em geral, mas separei alguns deles.

A vantagem é que vários desses sites já deixam seu perfil disponível para busca ativa feitas por empresas.

Se preparar

Recebeu um contato positivo naquela vaga que você tanto curtiu? É hora de se preparar!

Preparação é essencial em qualquer área de atuação, inclusive em áreas de desenvolvimento e programação.

Pesquise sobre a empresa

Saber mais sobre a empresa é super importante, não só coisas referentes ao negócio dela, mas também entender por exemplo, qual o ambiente de trabalho por lá e ver opiniões das pessoas que trabalham (e já trabalharam) nela.

Vale olhar o site da empresa, buscar notícias na internet e também nas redes sociais.

Para ver a opinião das pessoas sobre a empresa, você pode falar diretamente com elas em redes sociais como LinkedIn ou ver o que foi publicado em sites como o Glassdoor.

Entreviste a empresa

Processos seletivos são uma via de mão dupla, nunca deixe de entrevistar a empresa que você está conversando.

Tire todas as suas dúvidas, pergunte coisas como:

  • Quais as tecnologias utilizadas?
  • Quais são as tarefas esperadas no dia a dia?
  • Qual o plano de carreira?
  • Como ela pretende crescer?
  • Onde ela se vê daqui um tempo?
  • Como anda o faturamento?
  • Como ela lucra?
  • Qual a vantagem competitiva dela?
  • Quais os horários de trabalho?
  • Como é a flexibilidade de horários?
  • Se tem dress code?

Existe uma lista bem legal com várias perguntas interessantes nesse repositório.

Se a vaga for alocada na empresa, você vai passar a maior parte do seu dia nesse ambiente, mesmo que a vaga seja para trabalhar home office você vai interagir a maior parte do dia com processos e pessoas da empresa.

Por isso não deixe de tirar todas as suas dúvidas, tenha certeza absoluta que você se sente confortável no fim da entrevista.

Desenvolva soft skills

Os tempos de developers que apenas codavam está ficando para trás (ainda bem). Cada vez mais escutamos falar sobre soft skills em ambientes de tecnologia.

Sua participação em várias frentes do negócio é fundamental para o crescimento da empresa e no seu desenvolvimento profissional e pessoal.

Coisas como:

  • Comunicação
  • Trabalho em equipe
  • Liderança
  • Profissionalismo
  • Flexibilidade
  • Criatividade
  • Proatividade
  • Empatia
  • Etc

Essas habilidades são essências para qualquer profissional e isso vai ser avaliado em processos seletivos e no seu dia-a-dia como developer. E sim, elas podem realmente afetar no sucesso profissional.

A boa noticia é que são habilidades como quaisquer outras, portanto, mesmo que inicialmente você tenha dificuldade em algumas delas, todas elas são passíveis de serem melhoradas e desenvolvidas.

Vá bem no teste

Praticamente todas as empresas possuem testes para avaliar o nível das pessoas antes de definir a contratação, isso é importante até para alinhar expectativas de cargo e salários.

Os testes podem ser dos mais variados:

  • Questionário
  • Testes práticos
  • Testes teóricos
  • Teste assistido
  • Dinâmicas

Inclusive não é incomum que mais de um tipo de teste seja aplicado no processo de seleção.

Durante os testes, a dica é sempre ficar atento no que está sendo exigido. Alguns dos testes utilizados podem tentar te induzir ao erro, justamente para testar suas habilidades analíticas.

Caso a empresa não deixe claro todas as fases do processo, sites como o Glassdoor podem ajudar a entender todas as etapas e quais testes serão aplicados.

E novamente, repositórios como o frontend-challenges pode ser um aliado incrível nessa etapa, como citei anteriormente.

Não desista❗️

Temos pressa, muita pressa, mas uma carreira é construída no decorrer de muitos anos e acredite em mim, ela vai passar por altos e baixos, é natural que seja assim. Cada momento de tristeza e alegria é importante no seu amadurecimento como pessoa, que também vai impactar no seu amadurecimento profissional.

Então, caso você não vá bem nos primeiros processos seletivos ou não seja selecionado(a), não desanime!

Tente entender quais pontos você não foi bem e sempre peça feedback para as pessoas que te entrevistaram.

Saber seguir em frente e aprender com erros é fundamental para construir uma carreira sólida.

Plus final

E se você chegou até aqui, ainda vale falar algumas coisas:

Não se compare

Cada etapa, por menor que seja, é importante na sua evolução. Mas são suas etapas e sua evolução.

Todos carregamos nossos próprios universos dentro de nós e nenhuma outra pessoa no mundo vai ter uma história igual a sua.

Dito isso, por mais que você conheça pessoas que de repente estão (ou aparentem estar) em uma posição melhor do que a sua, não use elas como parâmetro para qualificar o seu desenvolvimento. Isso realmente pode fazer muito mal.

Portanto, tenha sim pessoas como inspirações e exemplos, isso pode te ajudar a construir seus próprios caminhos, mas sempre se compare apenas com você mesmo.

Cuide de você

Eu falo muito sobre open source. Mas vá com calma.

Apesar de toda a filosofia incrível que envolve open source e comunidades de desenvolvimento, você precisa cuidar de você primeiro.

O que quero dizer com isso?

Comunidades viciam e é super comum a gente assumir várias responsabilidades quando temos os primeiros contatos com ela.

Queremos gerar conteúdo, dar milhares de palestras, escrever um monte de textos e organizar eventos. Muitas vezes, queremos fazer tudo isso antes de efetivamente ter um emprego, possuir estabilidade profissional ou mesmo cuidar da nossa saúde mental.

Por isso sugiro focar primeiramente no seu desenvolvimento profissional e pessoal. Dessa forma você vai estar bem o suficiente para quem sabe ajudar outras pessoas com seu trabalho.

Conclusão

Todas as dicas apresentadas nesse artigo foram desenvolvidas com muitos, mas muitos erros nos últimos 10 anos.

Elas não são verdades absolutas e o que funcionou pra mim, pode não funcionar para você ou outras pessoas. Mas parte das coisas que foram apresentadas podem ajudar muito na construção de uma vida profissional sólida.

Como leitura complementar, caso ainda não tenha lido, sugiro dar uma olhada nos dois artigos que citei no começo desse texto:

Espero que tenham gostado e aguardo comentários.

É nóis! 😁