Eu vou contextualizar por que motivo eu coloquei esse título, “não aprenda a programar com framework frontend”, e sim, eu estou falando de React, Vue, Angular. Antes de você começar a reclamar do título, eu peço que você leia até o final. Nesse post eu estou considerando que você é um iniciante na área de programação, ou já está um pouquinho mais avançado, mas ainda não consegue criar os seus próprios códigos. Em nenhum momento eu estou falando que esses frameworks são ruins, eu estou falando que não é uma boa porta de entrada para a programação, e eu vou explicar por que no decorrer desse post. Todos esses frameworks são excelentes, eu já utilizei todos eles, hoje eu utilizo mais o Vue, mas eu já programei em Angular e React também. Mas vamos às considerações…

Criou-se uma premissa no mercado de programação que, no meu ponto de vista, é extremamente equivocada que dividindo frontend de backend seria melhor para desenvolvimento de softwares para web, mas os frameworks de JavaScript evoluíram de uma forma que você precisa ter um conhecimento aprofundado de programação para conseguir lidar com eles. Há algum tempo atrás o jQuery era o framework predominante, e ele tem um comportamento muito mais simples do que o Angular, o Vue ou o React, então, mesmo não sabendo programar, você conseguia fazer algumas implementações dentro do jQuery, ou pegar algum plug-in que fazia o que você precisava fazer, e pronto. Mas por que eu não considero uma boa opção hoje você aprender a programar direto a partir de um framework?

Primeiro que, se você está aprendendo a programar, deveria estar focado muito mais em lógica computacional, em aprender condicionais, variáveis, classes, e não se preocupar em aprender um framework nesse primeiro momento. Por isso que minha indicação para quem está começando é pegar uma linguagem compilada ou interpretada, tem algumas opções legais no mercado, C#, Java, Python, PHP, JavaScript puro, NodeJS, e tudo mais. Por que é interessante você começar com esses caras? Porque a Stack não é tão complicada de instalar, normalmente é um executável e acabou, você não vai ter dor de cabeça para conseguir configurar ambiente de trabalho, apenas baixar um editor, tipo VS Code, e já vai já vai conseguir fazer as suas coisas, e a curva de aprendizado, no meu ponto de vista, vai ser mais fácil. Os frameworks de frontend mais modernos são complexos, até para mim. O Angular1 foi o primeiro framework desses que eu mexi, e na época eu lembro que o conceito era muito diferente do que eu estava habituado a mexer, porque eu mexia com jQuery, então na primeira vez que eu peguei o Angular, eu demorei um tempo para conseguir aprender esse framework. Eu fiz várias videoaulas do Rodrigo Branas para aprender esse conceito de como é que era a componentização para web, porque era uma coisa muito nova esse conceito de escopos, de fazer diretivas dentro do próprio HTML, não é uma coisa tão simples assim.

Então o meu conselho é, quando você já tiver um pouco mais pra frente, já estiver dominando perfeitamente condicionais, loopings, classes, escopos, aí sim você começa a olhar para um framework. De eu fosse colocar uma alternativa que eu acho melhor para quem está querendo ir pro frontend é começar com o NodeJS, não precisa ficar expert, mas aprender o básico de programação, depois pular para o NestJS, que já tem um formato próximo do Java, do C#, já é TypeScript, e vai te dar um conceito mais amplo de SOLID. Ali você consegue aprender bem os conceitos de controlers e de escopos, porque lá os escopos são fechados, e ele é muito próximo da sintaxe do Angular, então a migração fica muito fácil.

“Ah, mas eu só quero mexer com a parte de frontend, eu não quero mexer com backend”… Essa, pra mim, é a premissa que está errada na equação. Quando eu comecei, o programador mexia de ponta a ponta no sistema, tanto no frontend quanto no backend, e isso nunca foi um problema. O cara de backend consegue trafegar muito bem no frontend, talvez ele não vá fazer a coisa ser muito bonita, mexer com CSS e tal, mas aí é uma coisa que você tem ver é o seguinte, se você quer mexer só com CSS pra deixar site bonito, você pode partir pra um Tailwind, pra um Bootstrap, se seu interesse no negócio não é propriamente você colocar o sistema para funcionar, isso que eu acho errado. Agora, se você quer ser um frontend, que vai pegar as APIs e tudo mais, você tem que entender que nem sempre as APIs trazem as informações do jeito que a gente precisa para conseguir colocar as coisas na tela de forma eficiente, então você pode cair no erro de, às vezes, pegar uma listagem muito grande de JSON, tacar dentro de uma tabela e começar a travar a tela, então esses probleminhas de performance vão acabar acontecendo ao longo do processo, e talvez com sua falta de experiência não seja tão fácil de resolver.

Nesses casos, eu sugiro utilizar o Vuetify, por exemplo, que já é uma ferramenta mais elaborada, com códigos preparados para coisas mais robustas, tabelas e tudo mais, criado por pessoas que já tem uma experiência maior, em vez de criar seus próprios componentes. Até porque também tem esse ponto, você não é obrigado a criar componentes, pode pegar um framework, e o Vuetify é um bom ponto de partida quando a gente está falando de frontend porque ali já vai ter componentes que vão resolver 99% dos problemas, para dashboard é excelente porque ele usa o Material Design, que é o padrão do Google para desenvolvimento de aplicativos Android. Assim você fica no meio termo entre ainda não conseguir fazer os seus próprios códigos, mas também não ter uma dificuldade extrema de performance nas coisas que você está fazendo, e, obviamente, fazer a implementação de uma chamada de API não é nada difícil, uma linha de código consegue fazer isso, então você vai conseguir patinar.

Mas, honestamente, eu sugiro começar no NodeJS, aprende bem o JavaScript, aprender lógica computacional, passa por variáveis, constantes, loopings, classes, orientação a objeto. Depois ir pro NestJS, aprende sobre decorators, controladores, escopos, e tudo mais. Quando você já tiver legal, conseguindo fazer coisas bacanas, soltando APIs, aí sim você parte para um frontend, Angular ou React. E você vai perceber que depois de aprender um desses, passar para outro é muito simples, porque vai ser basicamente uma mudança de sintaxes, mas a construção das coisas é muito próxima. Depois que já estiver bacana num desses frameworks, aí você parte para uma solução de SSR, no caso do Vue você vai pro Nuxt, no caso do React, você vai pro Next, porque aí você vai ser um full-stack (nome horroroso, pra mim, full-stack é um nome desnecessário, na minha época isso era chamado de programador, programador web, web developer, web designer).

Agora, se você é um cara de design que mexe com Photoshop e está só querendo estilizar templates, de novo, vai pro Tailwind ou Bootstrap, não necessariamente você precisa partir para uma solução de React, Vue ou Angular, porque não é sua praia, a não ser que você esteja interessado em aprender a programar. Mas aí, se você quer aprender a programar, começe da base, não comece direto desses frameworks, porque eles não são simples. Esses frameworks são bem complexos, até pessoas que já tem certo conhecimento de programação tem certa dificuldade para conseguir fazer uma implementação satisfatória.

Esse é o meu ponto, que eu queria deixar, porque tem muita gente que fala que está aprendendo a programar e vem me falar que vê a galera usando React, e eu falo sempre que essa é uma parada pra aprender muito mais pra frente, entendeu? Aprende a base primeiro, aprende o JavaScript Vanilla, vai brincando, vai testando, e mais pra frente, quando já tiver com um conhecimento bacana, você parte para uma solução dessas. Até lá, você precisa fazer uma fundação, fazer sua cabeça pensar de forma lógica e começar a escrever os seus próprios códigos, senão não faz sentido, você vai estar copiando do Stack Overflow, mas, na prática, não vai estar criando nada, e esse é um caminho muito mais tortuoso do que aprender o negócio de forma certinha, porque é importante para qualquer desenvolvedor saber todas essas coisas que eu falei. Pra mim, hoje, é muito mais importante ter uma boa base de lógica do que propriamente ser especialista em algum framework, seja ele qual for, porque nesses últimos 15 anos a quantidade de frameworks que eu vi morrendo ao longo do processo foi gigantesca.

Se você estiver gostando do conteúdo, compartilhe com seus amigos. A gente se vê numa próxima. Valeu!

Vou deixar recomendado outros post onde eu falo de programação:

Este post foi criado a partir do conteúdo do vídeo “Não Aprenda a programar com framework Frontend”: