Como é o mercado de programação Front-End e como navegá-lo? Parte 1

Caio Vaccaro
DevDevs
Published in
7 min readJun 29, 2020

Desenvolvimento Front-End é relativamente novo no mundo da programação, e por definição é muito volátil. Isso reflete diretamente no mercado de trabalho, o tornando muito plural e heterogêneo. Seja qual for o momento que você está na carreira, é útil ter uma noção do todo, conhecer o que te motiva, se planejar e ter as expectativas adequadas para a “sua viagem”.

Para isso vamos falar sobre:

  • Tipos de lugares que você pode trabalhar
  • Títulos
  • Cargos
Um mercado. Foto de Pixabay, no Pexels

Locais que você pode trabalhar

É interessante ter uma visão geral de onde você pode trabalhar como programador Front-End para saber onde focar os seus esforços e identificar melhor o que você procura para o seu próximo passo. Além disso, saber a realidade de onde você trabalha ajuda a ter expectativas realistas.

Pessoas ou pequenos negócios que precisam de um site. ($)

Provavelmente precisam de um Wix, Squarespace, ou Wordpress para necessidades básicas. Se você está iniciando a carreira pode ser interessante para ter alguma experiência. Não é uma forma de acumular conhecimento técnico necessariamente, mas do processo de ter um projeto e colocar um site no ar, além de um relacionamento básico com o cliente.
Exemplos: restaurantes, fotógrafos, cozinheiros, entre outros.

Habilidades

  • Pouco conhecimento técnico
  • Planejamento
  • Disciplina e rotina ao trabalhar sozinho
  • Relacionamento e gerenciamento de expectativas
  • Operacional de como colocar um site no ar

Agências de publicidade ou agências que “fazem de tudo”. ($$)

Nesse caso são projetos com vida curta, para eventos ou peças publicitárias. De novo a qualidade técnica de código talvez não seja um objetivo para quem te contrata aqui, mas sim a velocidade de produção. A experiência é de como fazer mais em menos tempo e automatizar processos.
Exemplos: Tom Comunicação, Wide

Habilidades

  • Produtividade
  • Automação de processos
  • Reutilização de código
  • Trabalhar sozinho ou com mais uma pessoa
  • Comunicação com pessoas sem perfil técnico
  • Contato com gestor e alguma metodologia básica de gestão
  • Colocar o site no ar sozinho

Agências de design que incluem sites e o digital como parte do pacote. ($$)

Geralmente são contratadas por empresas ou clientes que tem o próprio produto e não tem um time de design e desenvolvimento. O foco principal é design, portanto você provavelmente vai trabalhar em equipes pequenas, e talvez entre si podem propor e treinar boas práticas de código.
Exemplos: Huge, Work & Co

Habilidades

  • Aprender sobre design, usabilidade, experiência do usuário (UX), arquitetura da informação e assim por diante
  • Trabalho em equipe pequena à média
  • Desapego do seu trabalho ao refazer/aprimorar muitas vezes a interface
  • Criatividade e prototipagem
  • Trabalhar em muitos projetos em pouco tempo
  • Reuniões e apresentações
  • Contato com gestores de alguma metodologia (como ágil por exemplo)
  • Entrega do seu trabalho em um pacote para o cliente

Agências de software, especializadas em fazer sites e sistemas simples, parcerias com agências de design. ($$$)

Essas empresas, apesar de focadas em software ainda prezam por ter uma estrutura enxuta e poucos processos. Os profissionais são programadores back-end, front-end, devops, mobile e talvez QA, alguns multidisciplinares ou que deixaram de programar para serem gestores, administradores ou executivos. Geralmente trabalham com metodologia ágil e prezam velocidade.
Exemplos: Nodo.cc, Next4

Habilidades

  • Qualidade de código e code review
  • Processos e boas práticas
  • Produtividade
  • Troca de conhecimento técnico
  • Participar de projetos inteiros
  • Trabalho em equipe
  • Deploys simples para produção ou entrega de pacote

Fábricas de software, fazem sistemas online e offline, as vezes trabalham com hardware, áreas logadas e também sites institucionais. ($$$)

Muitas trabalham com metodologia clássica de desenvolvimento em cascata, com requerimentos, modelagem de banco e processos em sequência tornando os projetos bem longos. São contratadas por clientes grandes (bancos por exemplo) que também trabalham nos mesmos moldes. É provável que você fique no mesmo projeto muito tempo e tenha pouca evolução em termos de novas tecnologias, mas sim em como otimizar e conhecer um projeto profundamente.
Exemplos: Accenture, Thoughtworks

Habilidades

  • Processos clássicos de desenvolvimento de software
  • Documentação e entregas formais entre áreas diferentes
  • Visibilidade dos deploys
  • Cadeias inteiras de integração contínua
  • Manutenção
  • Troca de conhecimento técnico
  • Participar de projetos inteiros
  • Trabalho em equipes grandes

Empresas que possuem o próprio produto com todas as expertises dentro de casa. ($$$$)

Geralmente startups que iniciam com um ou dois profissionais de cada especialização (como design, UX, negócios e desenvolvimento) e crescem escalando até possuir diferentes equipes ou squads verticais e alguns profissionais compartilhados horizontalmente. Nesse universo você compartilha ao mesmo tempo de poder investir na qualidade do software e do produto, mesclando com as necessidades do negócio e dos usuários.
Exemplos: Rappi, Nubank, Hotel Urbano

Habilidades

  • Qualidade de código e code review
  • Processos e boas práticas
  • Aprender sobre design, produto, negócio e conteúdo
  • Trabalho em equipes com responsabilidade pela empresa e produto
  • Trabalhar em diferentes partes do mesmo produto
  • Acompanhar o ciclo de evolução do produto, com feedbacks dos usuários
  • Cadeias inteiras de integração contínua
  • Manutenção
  • Troca de conhecimento técnico

Títulos

O que você precisa saber como desenvolvedor vai ser definido principalmente pelo seu caminho, seus interesses e sua carreira. Os “títulos” em si não são importantes, mas fazem diferença na hora de procurar emprego.

  • CSS/HTML Developer
    É uma vaga onde você precisa principalmente traduzir layouts de imagens para CSS/HTML com pouco ou nenhum Javascript.
  • UI (User Interface) Developer
    Semelhante ao anterior, com algum conhecimento Javascript e mais próximo ao usuário, trabalhando em conjunto com UX Designers.
  • Javascript engineer
    Focado especificamente em desenvolver aplicações Javascript, com ou sem frameworks. Às vezes, infelizmente, sem muito conhecimento de HTML, CSS, semântica, SEO, acessibilidade e performance.
  • Front end/Web Engineer ou Client side developer
    Além de programar o layout, cuida da aplicação como um todo, provavelmente com Javascript. Ou seja, uma soma dos 3 profissionais anteriores, conhecendo tanto lógica, frameworks e javascript, quanto semântica, HTML, CSS, SEO, performance e assim por diante.
  • Full stack
    Apesar de ser um grande debate o fato dessa posição ser justa, a demanda existe. Profissionais que tenham conhecimento sólido de front-end e back-end, possivelmente para uma vaga de NodeJS + Javascript/framework client-side mas exigindo experiência anterior com outras linguagens.
  • Developer
    Algumas empresas optam por abstrair todos esses títulos em apenas “desenvolvedor”.
Você vai desempenhar vários papéis na vida profissional. Foto de Gail Nakada, no Pexels

Possíveis cargos

  • Estagiário
    Na teoria, alguém que tem interesse genuíno em aprender a profissão mas tem pouco ou nenhum conhecimento. O lugar onde trabalha deve proporcionar um ambiente sem pressões de entrega para aprendizado e evolução.
  • Junior
    Sabe pouco de HTML e CSS e não consegue trabalhar sozinho. Consegue passar layouts para código e se usar Javascript provavelmente usa alguma biblioteca ao invés de JS puro.
  • Pleno
    Se preocupa com o projeto (não só com o código e tarefa individual), é independente em HTML, CSS e JS. Começa a compartilhar conhecimento também.
  • Senior
    Pensa a médio prazo e é ponto de referência no projeto sobre qualidade, boas práticas e arquitetura. Também não exagera em engenharia e não fica deslumbrado com tecnologias novas.
  • Lead
    Se preocupa com a evolução da equipe e gere projetos desarmando problemas. Referência técnica para seniors.

A sua motivação

O que vai fazer a diferença nisso tudo é o que te motiva a ser um desenvolvedor Front-End. Se você fizer essa pergunta constantemente e observar, você vai achar algumas respostas que fazem sentido e que vão ajudar a ter muito mais clareza no caminho que você quer seguir, ao invés de estar sempre preocupado com o que você precisa estudar. Por exemplo:

  • Você gosta de matemática e lógica ou mais de desenho e criatividade?
  • Você gosta de se sentir esperto ou ter muito estímulo intelectual?
  • Prefere trabalhar sozinho ou em equipe?
  • Gosta de segurança e rotina, ou prefere resolver um problema novo, criando uma solução do zero?

Com essas e outras perguntas, que só você vai saber quais são, você pode chegar a uma conclusão como:

“O que me motiva é criar uma coisa nova, que faz as pessoas pensarem de forma muito diferente que antes, fazendo a diferença, usando qualquer meio, seja design ou lógica.”

Se esse for o caso, talvez você queira trabalhar em equipes ou empresas pequenas, onde você tem liberdade de criação e de ter esses momentos de quebra de paradigma (muito mais do que rotina e manutenção), mas ao mesmo tempo tenha visibilidade e paridade com todas as equipes e demais profissionais, como uma startup que tenha o próprio produto.

Se conhecendo melhor você vai saber como quer atuar (que título busca), em que tipo de lugar, qual formato de trabalho e como você se sente realizado, para ter uma referência no seu dia a dia e na sua carreira.

Por exemplo, se você gosta muito de abstrações e pensamento abstrato, provavelmente vai se sentir muito mais realizado trabalhando com padrões de arquitetura (orientação à objeto, funcional, MVC, etc) do que com layouts em HTML e CSS. E tudo bem, você não precisa gostar de tudo ou saber tudo para ser um bom programador. Um bom programador está sintonizado com o que gosta, trabalha com isso e por isso é produtivo.

No próximo artigo desta série vamos falar sobre:

  • Formatos de trabalho e salários
  • Preparação, curso, faculdade ou auto-didata
  • Contratado, freelancer ou remoto

--

--