Quando resolvemos entrar para o mundo da criação de software, um dos pontos mais difíceis de entender e decidir é qual das profissões desse mundo escolher. Se você já passou por essa etapa, e escolheu a carreira de desenvolver software, ótimo!
O segundo grande dilema é escolher entre ir para o desenvolvimento Front-end, Back-end ou Mobile (há quem chame de desenvolvimento front-end também), ou até mesmo ir para a linha fullstack – em que a pessoa consegue desenvolver uma aplicação de ponta a ponta.
Para quem está iniciando e deseja se tornar fullstack, eu indico focar somente em um caminho de desenvolvimento inicialmente, entender bem os fundamentos e somente após um entendimento sólido tentar aprender o outro caminho. Mas isso é apenas uma opinião pessoal, levando como base de que alguns assuntos são reaproveitados, facilitando assim o aprendizado quando focamos somente em um. Ainda mais que no início a grande quantidade de informações pode nos deixar perdidos.
O desenvolvimento front-end, na maioria das vezes, se resume ao meio de campo entre um (ou mais) serviço de funcionalidades e o usuário final. De forma geral, a pessoa que desenvolve front-end precisa tornar funcional um protótipo/layout (criado geralmente por um designer) consumindo um serviço(API) de forma que o usuário tenha a experiência completa do uso de um sistema/aplicação sem que ele precise conhecer muito mais de tecnologia além do que o uso de um navegador, por exemplo. Resumindo, o front-end transforma os serviços do back-end em algo visual para o usuário facilitando o acesso da aplicação e visualização dos dados do banco em tela.
Para este tipo de carreira é importante focar inicialmente nas bases. Existem na internet os chamados Roadmap, que temos disponíveis para diversas linhas de desenvolvimento, mas vou resumir aqui o necessário para a carreira front-end e também o que tomo como base para guiar os talentos do programa interno da GX2 de preparação de novas pessoas desenvolvedoras. Então, como principais tecnologias de base temos o HTML, o CSS e o JavaScript. Que são itens essenciais para o desenvolvimento front-end.
JavaScript
Aqui entra uma linguagem de programação para podermos sair do estado estático das telas. Com ele trazemos a criação de funcionalidades e possibilidade de dinamização das páginas. JavaScript é algo que é preciso estar constantemente aprendendo, porque os frameworks atuais mais famosos são todos baseados nele. Como também é um estudo contínuo, vamos focar inicialmente em aprender os quesitos básicos de qualquer linguagem, como variáveis, operadores lógicos, laços de repetições, condicionais, funções, tratamento de dados (principalmente conhecendo os manipuladores de arrays e as diferenças entre os outros tipo de dados), tratamento de exceções, seguindo para manipulação da DOM e após o consumo de API (com o uso do fetch, por exemplo). Nesta etapa é extremamente importante a prática para que a lógica de programação também seja amadurecida, para isso podemos procurar sobre exercícios de fortalecimento de lógica, que há aos montes pela internet.
Com isso em mãos, é importante nos atentarmos para a prática constante. Até aqui você tem já o necessário para copiar layouts como o do Twitter, do Spotify, do Youtube… Então agora é o momento de treinar o máximo possível antes de avançar para que o conhecimento se consolide bem.
Calma aí, temos algumas outras coisas importantes ainda. Com tudo isso, precisamos já ir inserindo o uso de algum versionamento de código, tanto para portfólio quanto para não perdermos nosso tão suado tempo caso o computador pare de funcionar, por exemplo.
Então devemos aprender o uso do git e juntamente com ele eu indicaria aprender também sobre o github. O git basicamente é um versionamento de código e o github é uma forma de armazenamento em nuvem do nosso código, que pode ser disponibilizado para outras pessoas ou não.
Agora sim, o tão esperado momento de se aproximar da produção de um software padrão de mercado, buscando a produção rápida com o uso de frameworks e bibliotecas. Após ter adquirido todo o conhecimento anterior, podemos focar em alguma ferramenta de desenvolvimento pedida pelo mercado.
Eu indico focar nos que são mais famosos atualmente, como o ReactJS, o Angular 2+ ou o Vue.js. Há também quem prefira estudar o jquery, mas hoje temos mais projetos legados com ele e eu não focaria neste momento.
Eu estudaria um destes frameworks, ressaltando que não podemos nos prender a nenhum framework, porém focar em um nos ajuda neste momento em que a quantidade de informações novas é bem extensa.
Para se destacar no mercado, há alguns estudos também importantes. Dentre eles temos a necessidade de entender sobre o padrão API REST juntamente com os métodos do protocolo HTTP, que estão sendo usados amplamente no mercado atual.
Além disso, precisamos também entender melhor sobre as estruturas de desenvolvimento de projeto, estudando metodologias ágeis, como o Scrum e o Kanban, entre outras tantas. E, sempre melhorar nossa comunicação e a forma com que nos expressamos.
Hoje o perfil necessário de uma pessoa desenvolvedora de sucesso, é aquele perfil que consegue se comunicar bem com todos os integrantes do time. Além disso, se destaca quem procura ter um entendimento completo do produto que está sendo desenvolvido, em vez de se preocupar somente com suas demandas pontuais.
Dessa forma, se consegue entregar maior valor ao que está produzindo, trazendo satisfação a si próprio pelo reconhecimento, além de satisfação para empresa onde trabalha e para o cliente que receberá o produto.
Não, nesta carreira precisamos estar em constante evolução. Temos a necessidade de aprender sempre mais sobre clean code, padrões de desenvolvimento, melhorias de código CSS e novas funcionalidades da linguagem utilizada, padrões de qualidade, entre outros. Sempre focando em entregar um melhor valor de trabalho.
Mas até aqui você já tem bagagem suficiente para iniciar a carreira do desenvolvimento front-end, trazendo sempre a prática como um dos pontos focais, porque a programação envolve bastante conhecimento teórico mas que só tem valor se esse conhecimento for utilizado na prática.