O que é um desenvolvedor full stack?
O primeiro passo para entender o desenvolvimento full-stack é decompor suas partes componentes, que são:
- Desenvolvimento Front-End
- Desenvolvimento Back-End
Desenvolvimento Front End
O desenvolvimento front end é o campo de desenvolvimento da web que envolve a criação das partes frontais de um site ou aplicativo. São aqueles conteúdos do site que os visitantes visualizam na tela do computador por meio do navegador da web.
Idiomas comuns de desenvolvimento web front end incluem:
- HTML
- CSS
- JavaScript
Desenvolvimento de Back-end
O desenvolvimento back-end lida com o aspecto por trás das cenas de sites e aplicativos da web ou móveis. Isso envolve o uso de linguagens de programação do servidor para solicitar dados da web, por exemplo.
Os idiomas comuns de desenvolvimento web back end incluem:
- JavaScript
- PHP
- SQL
Desenvolvedores full stack, então, são aqueles que têm as habilidades para trabalhar em projetos de desenvolvimento front-end e back-end. Basicamente, eles são os candidatos perfeitos e que sempre ouvimos as pessoas falando a respeito.
Como um desenvolvedor full stack é, em teoria, bem versado em ambos os lados do processo de desenvolvimento, significa que ele ou ela pode contribuir em qualquer lugar, conforme necessário, em uma equipe de desenvolvimento.
Na verdade, algumas grandes empresas de tecnologia, como o Facebook, têm a reputação de procurar ativamente desenvolvedores full stack com a ideia de trazer candidatos mais versáteis. Uma curiosidade: o termo "desenvolvedor full stack" foi canonizado em 2010 pelo engenheiro do Facebook, Carlos Bueno.
Tarefas desempenhadas pelo desenvolvedor full-stack
Um desenvolvedor full stack é capaz de executar tarefas como:
- Trabalhar com infra-estrutura de sistemas (sabendo qual hardware pedir, qual sistema operacional instalar, como preparar o sistema e dependências para todo o software);
- Entender, criar, manipular e consultar bancos de dados;
- Entender de Código da API ou back-end em um ou mais idiomas, por exemplo Ruby, Java, Python, etc.
- Entender de código front-end em um ou mais idiomas, como HTML, JavaScript, Java, etc.
- Fazer o gerenciamento de projetos, como por exemplo coleta de requisitos, criação de especificações técnicas e documentos de arquitetura, criação de boa documentação, gerenciamento de um cronograma do projeto (por exemplo, alguém que conhece Agile, SCRUM ou Kanban).
Normalmente, essas habilidades são desenvolvidas ao longo de muitos anos nos contextos de trabalhos diferentes, de modo que ser um desenvolvedor full stack significa ser empurrado para fora de sua zona de conforto para aprender constantemente novas habilidades.
Claro, precisa começar de algumas forma, como um bom curso ou treinamento, por exemplo. Tenho a sugestão do Curso Desenvolvedor Full-Stack da Danki Code.