Carreira Dev: Não comece pelo frontend
Tags: webdev, beginners, programming, frontend
Published: 2023-09-11 17:37:59

Está começando agora ou pensando em começar na carreira DEV, então toma aqui o primeiro ensinamento: **a carreira dev vai comer o teu rabo sem dó!**

## Chorume inicial

De uns anos pra cá, encontrar um vendedor de curso falando em jornada de carreira dev frontend mobile ultra blaster se tornou a coisa mais comum.

O problema é uns 80% desses são picaretas e os outros 20% estão sendo esmagados pelo marketing dos trambiqueiros.

_Encontrar curso bom se tornou mais difícil do que achar dev especialista em Phonegap._

Alguns cursos acabam mostrando somente uma camada, dentre tantas que existem, dentro do mundo do desenvolvimento e deixam de lado uma imensidão de oportunidades de carreira.

Apesar do título deste post parecer tendencioso, e é, você vai perceber que o meu objetivo aqui não é brigar com o frontend ou com os vendedores de cursos, muito pelo contrário, você vai encontrar uma visão realista do que a gente sabe que está acontecendo.

> Disclaimer: eu não vendo ou recomendo curso de ninguém. O que você vai encontrar aqui é a opinião de alguém que está desde o ano 2000 vivendo do mercado de tecnologia.

## Começando na carreira Dev
Começar na carreira Dev tem se tornado um desafio enorme pra muita gente. Parte dessas pessoas são acometidas por tantas ofertas de cursos, imersões, semanas de aprendizado profundo, técnicas inovadoras de aprender linguagens de programação em 7 dias, etc!

Na real, o problema não é as pessoas venderem cursos. O problema é vender mentiras.

### Vamos falar sobre 4 contos do vigário:

**1º - Não tem centenas de milhares de vagas de emprego.**
Hoje, inclusive, o que mais tem são pessoas de tecnologia procurando vagas, logo, vai conseguir uma oportunidade quem se destacar.

**2º - Não é todo mundo que vai conseguir.**
Tem gente que começa, tenta, se esforça e não consegue. Começar é fácil, mas isso é assim em qualquer coisa. Difícil é conseguir persistir.

**3º - Você não vai aprender a programar em 7 dias!**
Você até pode aprender a datilografar código e vai aprender um básico do básico, mas isso não vai te levar para o próximo nível.

**4º - Não caia no conto da melhor linguagem de programação.**
Se você ver um vídeo de um vendedor de curso de Python, ele vai te mostrar que Python é a linguagem mais usada no mundo. Se for um vendedor de curso de Javascript, ele vai fazer a mesma coisa e assim todos os outros.

**O que é verdade na carreira dev é:**
* Não existe salário alto pra quem tá começando;
* Existem casos raros e excessões que ganham muito, e elas serão apresentadas à você como um troféu;
* Tem escolas sérias de tecnologia que te ensinam habilidades técnicas, de negócios e de relacionamento, mas são poucas;
* Você não vai sair de uma imersão sabendo programar. Você no máximo aprender a copiar código escrito por outra pessoa;
* Você só vai aprender a programar, programando. Quando você parar de repetir tutorial e começar a fazer os seus próprios, você aprende;
* Altos salários existem sim e você pode ter um. Trabalhe por ele e foque na sua carreira, dedique anos estudando para ser bom no que você faz que o reconhecimento financeiro vem;
* A maioria das vagas de emprego vão dizer uma coisa e na prática você vai fazer outra. Lide com isso desde agora ou viva reclamando depois.

## Por onde começar?
Desde o início da pandemia até agora, o que mais apareceu no mercado foi desenvolvedor vendendo cursos. Cada pessoa/escola tenta puxar a farinha para o seu saco, afinal de contas a gente está falando de um segmento de mercado chamado Educação.

Como subcategoria de educação, temos o ensino de tecnologia. Dentro de tecnologia tem uma caralhada de coisas que não cabem aqui neste post.

Quanto mais específico for o curso que você estiver fazendo, mais distante você acaba ficando de outras tecnologias.

A minha recomendação para você que está começando agora na carreira de dev é primeiro andar por algumas áreas e entender como cada uma funciona, o mercado de trabalho, as pessoas que fazem parte deste meio, a forma de atuação das empresas que contratam pessoas para essa área e a sua participação dentro do mundo da tecnologia a partir deste ponto de vista.

Perceba que se você conseguir experimentar um pouco de cada área, isso no fim das contas só vai te ajudar a enxergar que existe mais coisas além dos limites apresentados dentro dos cursinhos que você vai encontrar por aí.

## Dedo na ferida do frontend

A oferta de cursos de frontend usando Javascript, React, Angular, etc, vem aumentando muito.

Tão enfiando JS em tudo. E tudo bem, mas nem tão bem assim!

O uso do Javascript aumentou muito com o surgimento de bibliotecas e frameworks, o que acaba atraindo a atenção das pessoas, empresas e consequentemente dos vendedores de cursos.

Vende-se uma imagem de que, se você começar pelo frontend, por ele ser a camada da web onde as pessoas mais interagem, acaba sendo mais acessível e fácil expor um portfólio para então, a partir disso, conseguir uma vaga de emprego. _E isso não é mentira, mas também não é totalmente verdade._

Escolher começar pelo frontend pode ser tentador e fazer todo sentido, visto que é uma área que cresce muito, tem grande oferta de cursos, muitas empresas focadas em vender formações frontend, mas por outro lado pode ser o começo de um caminho extenso, cansativo e extremamente ruim para algumas pessoas.

O desenvolvimento de software vai além da criação de interfaces, apps, sites, landing-pages ou qualquer outra coisa que se crie a partir do frontend hoje em dia.

O desenvolvimento híbrido de aplicativos pode até ser um bom mercado, mas entrar nele sem nem conhecer o desenvolvimento nativo, por exemplo, pode ser uma furada.

Vamos pelo caminho da lógica:
Uma pessoa que começa pelo frontend vai seguir basicamente uma jornada onde ela começa aprendendo HTML, CSS e o básico de Javascript e depois vai aprofundando em JS até ser imersa em alguma ramificação. 

Essa ramificação vai acabar chegando num React da vida que hoje em dia é a biblioteca mais hypada.

É normal aparecer aqueles anúncios assim: 

> Seja um desenvolvedor mobile e conquiste a liberdade de ser um nômade digital, ganhar altos salários em dólar e conquistar a sua tão sonhada liberdade financeira 🤡
O vendedor de curso de Javascript vai te dizer que se você aprender apenas Javascript, você vai desenvolver software para qualquer tipo de dispositivo e ainda vai te mostrar exemplos de APPs que foram feitos em JS.

O que não te contam é que essa jornada vai muito além, e que chega um momento onde a pessoa focou tanto em uma determinada tecnologia, que ela acabou deixando de lado o aprendizado em programação para se tornar especialista em biblioteca.

Ao invés da pessoa aprender Javascript e trabalhar com JS, ela aprende React para usar NextJS ou outro framework da modinha, e depois fica horas e horas estudando algum framework de CSS para criar estilos, e por aí vai.

Aí chega a hora de colocar o APP no ar e a pessoa aprende a fazer deploy de APP feito em cima de framework. Nunca viu dentro do curso uma linha de informação sobre redes, protocolos, etc, mas vai aprender a seguir um tutorial de como integrar um CI/CD na Vercel a partir de um repositório no GitHub.

O que até aqui parece uma crítica, é na verdade um alerta.

A gente precisa parar de romantizar a carreira de desenvolvimento e mostrar que o campo de atuação é muito maior e ele vai além do hype da web.

Tecnologias embarcadas, softwares desktop, iOT, ciência de dados, banco de dados, hardware, games, carros autônomos, aviação comercial, agro pop e diversos outros meios precisam de pessoas desenvolvedoras para criar softwares que não chegam nem perto de rodar na web.

## Se liga nisso aqui 👇

O que eu já vi de frameworks morrerem nos últimos 25 anos não foi pouco, e isso não vai acabar. 

Um exemplo prático disso **eu mesmo vivenciei** quando, em 2002 eu fiz algumas especializações em Flash, uma tecnologia que na época era considerada a coisa mais incrível já criada no mundo e que pouco tempo depois viria a ser totalmente destruída.

> Quem tem 30+ vai lembrar que foi Steve Jobs e o iPhone que decretaram o fim da vida do então Adobe Flash.

## Não caia nas garras do framework bandido

Pare de programar orientado à framework, ou nem comece a programar assim se você ainda não sentiu esse gostinho.

É tipo sangue em boca de vampiro.

Não que eles (os frameworks, não os vampiros) não sejam importantes, mas você precisa aprender algumas coisas antes de usar frameworks. 

Se lá em 2000 quando eu comecei a focar mais em desenvolvimento eu não tivesse ampliado o meu campo de atuação e conhecimento, aprendendo Linux, banco de dados, redes e infraestrutura, eu não teria conseguido os empregos que eu consegui e muito menos teria a experiência que eu tenho hoje.

## Se liga que Programação é diferente de Desenvolvimento
Programar e desenvolver são coisas que podem ser semelhantes e podem também ser completamente diferentes.

Programar é o ato de entender e saber usar as linguagens de programação.

Desenvolver é usar a programação para construir algo. 

Esse algo pode ser tanto uma coisa (software) pequeno e simples como também pode ser algo grandioso e complexo.

Dentro do desenvolvimento de software, por exemplo, nós temos diversos outros profissionais além da pessoa dev trabalhando no projeto.

O que os (alguns) cursos de dev tentam fazer é _encurtar a jornada_ e "preparar o profissional para o mercado de trabalho" no menor tempo possível.

O que acaba sendo uma merda!

Diferente de uma graduação, por exemplo, onde a ideia é entrar a fundo em campos de estudos e fazer isso ao decorrer de alguns anos, os cursos removem do treinamento tudo aquilo que eles consideram desnecessário.

Exemplo são os cursos que ensinam a salvar dados num banco de dados, mas a pessoa que aprende não tem a menor noção do motivo de ela estar usando MongoDB ao invés de mySQL, por exemplo, ou qualquer outra solução no lugar outra solução, não importa.

Na minha humilde opinião, o que falta hoje são os cursos assumirem que o que eles ensinam é apenas uma parcela do que é necessário saber.

Alguns poucos falam que você precisa ir além, etc, etc, etc, mas poucos mostram o caminho.

Algumas escolas de formação até possuem planos de carreira que contemplam diversos cursos e formações, onde no final de tudo isso a pessoa, teoricamente, é especialista em alguma coisa.

Naturalmente, se você começar a estudar uma tecnologia hoje, em poucos dias você vai topar com 200 novas tecnologias que estão envolvidas no meio do caminho dentro do pouco que você está usando.

_Começa instalando o editor de código, aprendendo que precisa digitar comandos em um terminal, descobre que vai ter que usar Linux, entende que para "facilitar" criaram alguns pacotes que você só vai instalar e sair usando, etc, etc, etc._

Toda jornada de tecnologia começa simples e termina caótica. 

Quando você acha que está sabendo muito e que manja dos paranauê de desenvolver, você descobre que precisa aprender algoritmos, estruturas de dados, descobre que existem paradigmas de programação, começa a acumular livros cansativos e chatos como os do Uncle Bob, Eric Evans e Martin Fowler, tendo que ler traduções grotescas de obras que só fazem sentido quando você conhece um campo muito mais amplo no desenvolvimento de software.

Em pouco tempo você vai ter uma lista de tecnologias tão grande para estudar e vai ver que outras pessoas estão muito mais avançadas do que você, e então você começa a se sentir menos capaz, começa a enxergar as oportunidades mais distantes, sente que dentro da própria comunidade de desenvolvimento existe muito mais um jogo de egos do que uma estrutura para ajudar quem está começando e começa a pensar em desistir.

Não se deixe abalar pelo caminho percorrido pelos outros. Foque em você! E esse é o melhor conselho que qualquer pessoa pode te dar.

## Não se limite
No fim das contas a mensagem que eu quero te passar é: não se limite. 

Não deixe a guerrinha entre linguagens de programação te fazer desistir ou persistir somente em um caminho a partir da opinião de outros. Experimente você mesmo.

**O que você não deve experimentar são drogas. Linguagens de programação você pode testar todas.**

Explore, conheça, teste linguagens de programação, mesmo aquelas que você olha para a sintaxe do código e pensa: isso aqui não foi feito por humanos.

Existem diversos tutoriais passo a passo no YouTube que podem te ajudar a ver mais conceitos. Não é porque você vai trabalhar com uma linguagem orientada à objetos que você vai deixar e entender sobre programação funcional, ou procedural, por exemplo.

Quando você entende mais sobre diferentes linguagens, você começa a perceber que as todas elas meio que são iguais, e que independente da linguagem que você tem mais domínio, saber programação te habilita a aprender outras linguagens rapidamente.

Saber programação não é sobre dominar uma linguagem de programação por completo e saber tudo o que pode ser feito com ela. Programação é saber quando e onde usar determinada linguagem e aplicar ela para resolver o problema que tiver que ser resolvido.

**E isso não quer dizer que ser generalista é melhor do que ser especialista**, mas se você começar do zero e colocar o objetivo de ser especialista em uma coisa sem nem conhecer as outras antes, pode ser que ali na frente você descubra que a sua escolha poderia ter sido melhor, ou não.

Espero você no próximo post. Até lá.