Como explicar o front-end para meus pais?

#Profissão #front-end

Com o mundo avançando cada vez mais rápido, o conjunto de profissões tornou-se algo sazonal: enquanto morrem profissões cujo trabalho é automatizado (front-end não é uma delas), nascem outras para lidar com problemas e soluções que, até pouco tempo atrás, não existiam. É perfeitamente normal que alguém de fora da nossa área não entenda o suficiente sobre ela para saber o que fazemos apenas ouvindo a palavra “front-end”.

Sobre esteriótipos e generalizações

A decisão do título desse artigo foi algo complexo. Inicialmente, a minha idéia era Como explicar o front-end para minha mãe?, porém esse texto da* *Christina sobre uma expressão similar em inglês (So easy that a mom can do, que no meu ver é bem ofensiva) me levou a refletir e a tirar algumas conclusões:

  1. Não compreender do que se trata uma profissão não é um problema exclusivo da minha mãe, e nem relativo somente a mães ou mulheres. Nesse caso, qualquer pessoa que não tenha um conhecimento moderado sobre como a WEB funciona pode ter problemas para compreender nosso papel no mercado.

  2. No meu caso específico, minha mãe tem mais conhecimento de informática e WEB que meu pai, então nem mesmo considerando somente o meu caso o primeiro título faria sentido.

É importante frisar que, mesmo após essa reflexão, o título ainda não é verdade absoluta: conheço programadores e programadoras que são pais e mães, e cujos filhos atuam em outras áreas e provavelmente não entendem de peculiaridades do front-end. Infinitos cenários são possíveis, e com esse texto na verdade eu pretendo ajudar na explicação sobre a nossa área direcionada a qualquer pessoa que tenha dificuldade com a nomenclatura inicial.

O estado da arte do tópico

Pessoalmente, eu acho comum esbarrar com textos na WEB que propõem explicações “leves” de temas “pesados”. Um conjunto das meus favoritos é a série interativa “Explain like I’m 5 promovida pelo site The DEV community. Apesar de haver artigos em outras séries, essa foca mais em assuntos específicos como React, Docker, Unit Tests, CPU Threads e outros. Não encontrei um que falasse sobre a profissão de desenvolvedor front-end em si.

Um tópico no fórum do Front-end Brasil abordou exatamente esse assunto, com certas divergências entre opiniões. A meu ver foi uma discussão muito boa que morreu prematuramente.

Isso foi tudo que encontrei sobre o assunto.

O que é front-end?

Bom, o primeiro passo na preparação para explicar para alguém é explicar para si mesmo. Então, algumas definições do que é desenvolvimento front-end e o papel do seu profissional:

In simplest terms, the frontend is any code that runs in the browser. — Kevin McGillivray O desenvolvedor front-end é responsável por “dar vida” à interface. Trabalha com a parte da aplicação que interage diretamente com o usuário. (…). Na parte de estudo, este profissional foca em HTML, CSS e JavaScript. — Daniel Viana Em ciência da computação, front-end e back-end são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coletar a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o back-end possa utilizar. — Wikipédia Podemos dizer que o* front-end developer* dá vida ao trabalho de um WEB* designer*, e sua missão é projetar, construir e otimizar interfaces de projetos WEB(…). Dentre suas muitas responsabilidades, além da parceria com o time de design e os back-end developers, o profissional deverá: Trabalhar junto à equipe de design para criar a melhor experiência possível; Desenvolver código limpo e bem documentado; Seguir os *WEB standards; *Se preocupar com a performance no client-side; Aplicar técnicas de SEO; Dar suporte à todos os navegadores e dispositivos que o cliente necessitar. — André Ailton dos Reis

Perceba que nenhuma dessas definições, nem mesmo a primeira (que é a mais simples) é auto-contida em relação a termos relacionados a tecnologia. Se a pessoa não tem muito conhecimento sobre o assunto, ela seguiria com “o que é navegador(browser)?”.

Qualquer definição, de qualquer cargo, objeto, etc, precisa de conceitos pré-existentes para fornecer uma explicação completa (definição de contexto). Como o desenvolvimento front-end é algo especifico dentro do vasto campo da T.I., que em geral não é conhecido em detalhes pelas pessoas, os conceitos pré-requisitos muitas vezes não fazem parte da bagagem que a pessoa trás de conhecimento, e isso é absolutamente normal.

Níveis que determinam níveis

Você precisa ter uma minima noção do quanto a pessoa sabe de informática para escolher o conteúdo da sua explicação. Para alguém totalmente leigo, até algo simples como “programador” pode não fazer sentido algum.

Obter esse “nível” pré-existente pode ser complexo como uma relação pré-existente (eu suponho o nível de informática dos meus pais pela longa convivência que temos) ou simples como a análise das perguntas (se eu respondo que mexo com sites, e a pessoa me pergunta se sou programador, ou web-designer, eu suponho que ela tem certo conhecimento e posso me aprofundar mais nas respostas seguintes).

Sendo assim, eu utilizaria as seguintes respostas, em níveis crescentes:

  1. Trabalho com (sistemas de) computador

  2. Trabalho com T.I. / Faço sites

  3. Sou programador

  4. Sou desenvolvedor

  5. Sou desenvolvedor de software para WEB

  6. Sou desenvolvedor front-end

É isso?

Não existe verdade absoluta. Talvez minha percepção de níveis esteja errada, com respostas em níveis trocados, ou seja simplesmente loucura minha e eu dei sorte até agora. Mas eu ainda espero que ela te ajude :)

Se você chegou até aqui, muito obrigado! E sinta-se a vontade para compartilhar suas opiniões sobre o assunto! Esse com certeza é um tópico que pode receber um método mais eficiente como resposta.