Porque o backend é tão super valorizado e o front fica a mingua?

Desde 2019, durante a pandemia, venho me dedicando intensamente à minha carreira de frontend. Estudei bastante, investindo em vários cursos, mesmo enfrentando dificuldades financeiras. Tive que conciliar a vida e os estudos da melhor forma possível.

Antes disso, trabalhava como vendedor, mas sempre sonhei em criar meus próprios sistemas. Sempre fui esforçado e tinha uma inclinação natural para a área de exatas.

Tive a oportunidade de trabalhar com profissionais excelentes, mas frequentemente me sentia sozinho na minha função. Muitas vezes, eu era o único responsável por todo o front-end (UI, BFF, UX, Design, etc.), enquanto havia duas ou três pessoas dedicadas ao back-end. Para complicar, frequentemente era eu quem acabava sendo o "teste automatizado", o que me deixava frustrado, pois muitas vezes tinha que rastrear quem implementou algo para resolver problemas.

Tenho a sensação que desperdicei tempo ao tentar migrar de carreira, não tenho garantia nenhuma de que o ano que vem terei algum serviço.

Será que só eu passo por isso?

Sou dev full stack e a resposta é depente. O mais provavel é que sua empresa é arrombada e não tem visão de projeto. O outro possivel problema, é que o sistema é simples demais pro front ter alguma complexidade. Isso acontece na empresa que eu trabalho como suporte atualmente, o front é absurdamente simples, enquanto o back é desnecessariamente e absurdamento complexo, onde eles usam diretorios como filas por exemplo.

Mas eu acredito que o seu caso é a primeira opção. As pessoas confundem muito o frontend com design e acha que todo front sabe fazer um design no figma (não é que não deva saber, mas não é uma obrigação). O front, é toda a lógica que acontece na parte do cliente. Por isso as vezes ocorre uma discussão ña comunidade se mobile é backend, frontend ou full stack (deixem como mobile, não inventa moda). O front pode ser muito simples, como html, css e uma botão com javascript que faz um fetch pra API, ou pode ser muito complexo, com paginação, pré-processamento de dados, tokenização, ML e diversas tecnicas de segurança. Afinal, do que adianta você ter uma camada de segurança no back mas o front é vulneravel a ataques XSS?

Sua empresa provavelmente não leva a experiência e segurança do usuário a serio o suficiente para valorizar o frontend e o software de vocês muito provavelmente é mal otimizado, cheio de falhas e gambiarras. Não porque você é um desenvolvedor ruim, mas sim porque um homem sozinho não consegue fazer tudo perfeito.

Você fez cursos específicos de programação de front-end, ou você estudou sistemas de informação e engenharia de software como um todo?

Sugiro ver a imagem desse post. Programar tela e fazer um CRUD qualquer um que estudou o básico de computação sabe fazer (ou deveria saber). O que te torna um bom profissional são todas essas outras coisas que estão na imagem, que vão além. Não é só programar (independentemente se é tela ou CRUD).

Quem faz essas outras coisas na sua equipe? Quem faz a arquitetura do sistema? Modelagem de banco de dados? Integração entre sistemas? Quem instancia componentes em cloud? Quem desenvolveu e mantém a esteira de CI/CD? Você escreve testes unitários? Faz revisão de código? Sabe identificar um risco potencial de XSS? Sabe diferenciar autenticação de autorização e identificar potenciais vulnerabilidades de autenticação? E o resto do que está listado ali na imagem? Se são os backends que fazem isso tudo, e você foca só no que apresentar pro usuário na tela, então está aí sua resposta. Se é ninguém, então está aí sua oportunidade pra evoluir e se destacar.

Além disso, você iniciou seus estudos "só" há 5 anos. Não é tanto tempo assim. Pense que quem fez faculdade ficou pelo menos 4 anos só estudando, fazendo projetos, trabalho em grupo, vendo um tanto de matéria de diferente da área, estágio, etc. Mesmo se não tiver experiência profissional, o recém-graduado já tem o mesmo tanto de tempo de contato com programação do que você. Ao longo do tempo seu currículo vai melhorando, e seu reconhecimento também. Inicialmente o salário é relativamente baixo pro tanto de investimento que você teve que dar (de tempo e dinheiro), mas a taxa de crescimento (a derivada ao longo do tempo) do salário da área é alta, desde que você continue evoluindo suas habilidades.

Começa a estudar backend fora do horario de trabalho urgentemente e vire um fullstack o qaunto antes.

tenta buscar empresas maiores ou empresas em que há essa separação entre backend e frontend, pelo que você descreveu você está numa empresa arrombada e como você não se impõe você é o cara que paga o pato, mas cara estuda pra ser foda o suficiente pra arrumar trampo quando quiser e passa a impor limites pra tornar o seu trabalho mais tranquilo e se não rolar parte pra outro trabalho.

Tua pergunta é a própria resposta: porque o back é mais valorizado.

Normalmente os problemas mais difíceis estão no backend, e as pessoas são pagas e cobradas pelos problemas que resolvem.

Se você precisa rastrear quem é o responsável por um bug, imagino que você possa ter acesso ao código fonte do back. Neste caso, vejo uma oportunidade: Tentar resolver um desses problemas por conta própria. Se consistentemente você resolver problemas que não são da sua "função", seu supervisor vai acabar notando que você é diferenciado.

Sem back-end o front é só cartão de visita. Quem resolve a dor do cliente/stakeholder é o back-end.

Pensa numa casa: A aparência é importante, mas o cliente primeira coisa que quer saber é a metragem, quantidade de quartos, se é encanamento a gás, como é o isolamento termo-acustico, qualidade do encanamento, se não há infiltração e resistência a chuvas. Pintar a parede e cuidar do piso é a parte mais barata de construção de uma casa.

Porque a receita do bolo está no backend. Você não põe a regra de negócio no frontend para todos verem, entregar de bandeja os segredos da empresa.

Cheguei um pouco tarde na discussão e os colegas já responderam a dúvida técnicamente. Entretanto tenho um ponto para complementar a discussão aqui: O aspecto social na nossa avaliação das duas áreas do desenvolvimento.

Podemos traçar um paralelo e comparar as duas áreas como:

FrontEnd = Mais artístico. É a forma como a tecnologia vai se relacionar com o ser humano. BackEnd = Mais matemático e técnico. É a forma como a tecnologia vai solucionar os problemas.

Saindo um pouco da área de desenvolvimento e generalizando um pouco. É comum que se pense que o que "é de humanas" não é tão inteligente e valorizado quanto o que "é de exatas".

Concluindo, cabe uma reflexão profunda sobre isso, porque também estuda-se muito para conseguir fazer a tecnologia ser bem vista pelo ser humano, falando agora sobre Interfaces e Experiências do usuário. Entretanto muitas vezes esse estudo é feito por um designer que não necessariamente é um desenvolvedor FrontEnd, o que faz o dev que vai fazer o HTML e CSS ser desvalorizado.

No backend é onde tudo acontece de verdade. Toda a lógica do usuário e regras de negócios que são primordiais para aplicação acontece no backend. As vezes um HTML e css com um pouco de jQuery resolve o front, mas no backend é um pouco mais complicado. Isso não significa que o frontend não importante, mas sim que o backend tem mais responsabilidades.

Porque backend é infinitamente mais diversificado além de mexer com a segunda parte mais sensível de um sistema

Porque backend é mais difícil, tem que estudar muito mais, e no final das contas é quem resolve o problema. Ou seja, a funcionalidade de um sistema ainda é mais importante do que o design dele.

Frontend é sim muito valorizado, mas a nossa área tem a tendência de puxar sardinha para a turma do Backend.

O usuário final não acessa aplicação por API.

O usuário também não cadastra e não tem dados processados no front-end. Hoje eu atuo no back-end e no front-end, mas comecei no front-end. Agora eu entendo por que as pessoas "puxam sardinha" para o back-end. Ambas as partes são importantes, mas o back-end tem um peso maior. É onde as coisas realmente acontecem; é ali onde a empresa investe pesado para criar a solução que o cliente precisa. Dependendo do caso, o desenvolvedor back-end faz toda a lógica e regra de negócio, envia os dados para serem renderizados na view e faz um CSS básico. Muitas empresas não se importam se a aplicação é SPA ou SSR, desde que ela solucione o problema. Claro que nem tudo é assim.. Tem projetos que necessitam de uma melhor experiência do usuário, nessa hora o dev front-end é rei.