A Fantástica Diversidade do Front-end

Os diferentes perfis de desenvolvedores front-end é um tópico que frequente em fóruns de discussão. Quais perfis o mercado espera? Como posso me definir enquanto desenvolvedor(a) front-end?

Vi, recentemente, uma vaga no Facebook para Front-end Engineer com foco em Acessibilidade. Pensei “Foco em acessibilidade? Que específico!”, e, segundos depois, todas as discussões que já tive sobre os perfis de desenvolvedores front-end me vieram à mente.

Falar sobre esse assunto é falar sobre como interpretar vagas de emprego sem entrar em desespero.

Mesmo Papel, Diversas Habilidades

Estuda Motion Design a fim de desenvolver não só sites, mas experiências fantásticas? Estuda UX Design e práticas de Acessibilidade a fim de desenvolver produtos que engajam o máximo de pessoas possível? Estuda padrões de arquitetura de software a fim de desenvolver aplicações web complexas e escaláveis no client-side?

Você pode estudar e gostar todos; estudar mais um mais do que o outro; trabalhar com um, mas tender a outro; e pode até mesmo não focar em nenhum dos que eu citei acima. Em qualquer uma das possibilidades, você provavelmente não deixará de ser um profissional da área de front-end – mas terá, com certeza, um mercado específico e uma carreira que se basearão nas suas escolhas profissionais.

Existe uma diversidade incrível de habilidades na área de desenvolvimento front-end.

Somos o intermediário entre o back-end e o design, mas nosso papel é transformar o web design em uma experiência real. Essa (grande) responsabilidade faz com que desenvolvamos diversas habilidades, e algumas são inegavelmente desenvolvidas em maior ou menor nível. Nesse desnível, encontramos de Motion Designers a JavaScript Developers, cada um com seu espaço em times e projetos específicos.

E não há nada de errado nisso. O surgimento dessas especializações – que podem (e devem) ser escolhidas por você – é apenas um resultado da complexidade atual do desenvolvimento front-end.

Confie nas Suas Habilidades

(ou “Você Não Precisa Ser o Candidato Perfeito Para Todas as Vagas de Front-end Existentes”.)

Por que eu disse que falar sobre esse assunto é falar sobre como interpretar vagas de emprego sem entrar em desespero?

Pense: Você é experiente, estuda com frequência, mas, ocasionalmente, procura vagas de emprego e se vê insuficiente. Ok, convenhamos, a possibilidade existe: você não estar atingindo os requisitos mínimos das vagas pode sim ser um sinal de que algo está errado. Mas provavelmente não é o caso.

Talvez você esteja procurando vagas para um perfil que não é o seu. Não precisamos aceitar ter expertises variadas como é exigido; afinal, muitas vagas na área de TI viram piada justamente por esse motivo. Desde que você entenda a multidisciplinaridade como mais valiosa que qualquer disciplina, apenas abrace o que prefere e se aprofunde, torne-se uma referência nisso.

No fim, suas preferências moldarão você como profissional. Elas farão com que você seja incluído(a) ou excluído(a) de várias oportunidades, o que, por consequência, moldará sua carreira.

Estude o que gosta, reconheça suas preferências, confie nas suas habilidades, e, então, procure vagas sem entrar em desespero.

Perfis de Desenvolvedores Front-end

No fórum do Front-end Brasil, foi proposta a divisão de separar profissionais de front-end que desenvolvem a camada de apresentação dos que arquitetam aplicações que interagem com back-end. Concordo com a divisão. Tenho uma visão bem definida, com base nas exigências atuais do mercado internacional.

Dois Perfis: Uma Proposta

Front-end Developer

A ponte entre o design e o front-end. (“UI Developer” é um nome alternativo.)

Habilidades
  • Proficiência em HTML semântico, CSS e JavaScript a nível de desenvolvimento da camada de apresentação da aplicação.
  • Princípios e boas práticas de User Experience Design.
  • Princípios e boas práticas de Acessibilidade.
  • Proficiência em metodologias de organização do CSS como OOCSS, SMACSS e BEM.
  • Noções de User Interface Design.
  • Noções de Motion Design.
  • Noções de back-end, geralmente a nível de integração com CMS.
Responsabilidades
  • Planejamento e desenvolvimento da camada de apresentação da aplicação.
  • Implementação do live styleguide, junto ao designer.
  • Metodologia e estrutura a ser usada no CSS.
  • Participação no processo de Design (pois Development is Design).

Front-end Engineer

A ponte entre o front-end e o back-end. (Dependendo do projeto, “JavaScript Developer” pode ser mais apropriado.)

Habilidades
  • Proficiência em HTML e CSS, mas sua especialização é JavaScript.
  • Proficiência em Design Patterns e padrões de arquitetura de software.
  • Conhecimento de modelo cliente-servidor, HTTP, REST.
  • Princípios e boas práticas de Performance.
  • Princípios e boas práticas de Segurança.
  • Noções de estratégias de desenvolvimento, como Integração Contínua (CI).
Responsabilidades
  • Planejamento e desenvolvimento da aplicação JavaScript.
  • Automatização das tarefas.
  • Tooling da aplicação.
  • Implementação de uma metodologia de testes.

Não concordo com o nome “Front-end Designer”, sugerido pelo Brad Frost. Ainda que desenvolvedores front-end participem do processo de design, tornar funcional a camada de apresentação é uma etapa do desenvolvimento de software – não do design. O fato do desenvolvimento front-end ser erroneamente considerado mais programação do que design, quando deveria ser os dois, é um argumento que não justifica o nome.

…Qual Deles?

Normalmente temos um pouco dos dois, mas sempre um mais do que o outro. Nesse caso, uma boa maneira de explicitar o seu papel sem desmerecer o outro é falar sobre suas habilidades, em vez de se apegar a um rótulo.

Dificilmente um rótulo resumirá todo o seu conhecimento.

Eu não me apego a isso, por exemplo. Mesmo exercendo a função de Front-end Engineer atualmente, continuo me denominando “Front-end Developer”.

A Vaga Ideal Para Suas Habilidades

É utópico esperar que todos desenvolvedores front-end sejam bons UX Designers, Motion Designers, JavaScript Developers… Isso não existe.

As empresas procuram diferentes perfis de desenvolvedores front-end. E elas nem sempre sabem disso.

As empresas não simplesmente procuram um Front-end Developer ou um Front-end Engineer. Existem vagas bastante híbridas, como Front-end Engineers com foco em UX ou Acessibilidade, ou até mesmo Front-end Developers com noções de arquiteturas como MVC. Plenamente possível e válido!

Cabe a você identificar se é ideal à vaga de emprego que quer se candidatar e se suas habilidades são compatíveis com a expectativa da empresa. À empresa, cabe a identificação do seu perfil, a fim de alocar você em um projeto e time que explorem suas habilidades.

É o cenário perfeito, pelo menos.

Lembre-se da Nossa Essência

Independente de como você se posiciona e rotula, dos projetos que trabalha e do caminho que quer seguir, o front-end não deixará de orbitar ao redor da trinca HTML, CSS e JavaScript.

Enquanto você possuir interesse nessas três linguagens, os seus outros interesses apenas moldarão o seu caminho profissional.

E, temos sorte: na área de front-end, a diversidade de caminhos é fantástica.