12 de set de 2017

3 opções de carreira para desenvolvedores web: front-end vs. back-end vs. full stack

Michael Wales

Você abre o navegador, digita uma URL e aperta enter. O site carrega instantaneamente. Você está diante de uma página elegante, bem estruturada e visualmente incrível.

Quem são os responsáveis por essa experiência? Os desenvolvedores web.

Existem mais de 4 bilhões de sites na internet e esse número não para de crescer. Imagine o grau de seriedade do trabalho desses desenvolvedores, que são os responsáveis por programar, construir, analisar e manter todos esses sites.

Os sites são, hoje, componentes primordiais para a sobrevivência de qualquer tipo de negócio. E considerando que as tendências e práticas nesse segmento estão em constante mudança, não há escassez de trabalho para os profissionais que atuam com desenvolvimento web.

Mas como saber exatamente em que tipo de desenvolvimento web vale a pena trabalhar e treinar? Você deve ter pesquisado em sites de emprego ou procurado cursos online e, provavelmente, descobriu que o desenvolvimento web se divide basicamente em três tipos: front-end, back-end e full stack.

Se você, mesmo que superficialmente, já explorou HTML, JavaScript ou até mesmo Python, mas não sabe ao certo que caminho seguir, esta dica é para você.

Desenvolvedor front-end

O front-end de um site é onde os usuários interagem com a página. Tudo o que você vê quando está navegando na Internet, desde as fontes e cores até os menus suspensos, fazem parte de uma combinação de HTML, CSS e JavaScript, controlados pelo seu navegador.

Habilidades e ferramentas

Os desenvolvedores front-end são responsáveis por todos os códigos, estrutura e arquitetura de interatividade dos usuários com os os sites. Para cumprir essas funções, os desenvolvedores front-end precisam ser adeptos das três principais linguagens utilizadas em programação: HTML, CSS e JavaScript.

Além do domínio desses tipos de linguagem, desenvolvedores front-end precisam estar familiarizados com frameworks e bibliotecas como o Bootstrap, Foundation, Backbone.js, AngularJS, React e Ember.js. Eles garantem uma excelente perspectiva de conteúdo, independentemente do dispositivo e das bibliotecas de funções, como jQuery e LESS, que envolvem os códigos de maneira mais prática, gerando economia de tempo. Boa parte do trabalho de um desenvolvedor Front-end se baseia no conhecimento em Ajax, que é uma técnica de utilização do JavaScript que permite o acesso aos sites por meio de download do servidor de dados em segundo plano.

Digamos que o desenvolvedor front-end seja responsável pela decoração interna de uma casa que foi construída por um desenvolvedor back-end.

É através do uso dessas ferramentas e do trabalho com UX (user experience) designers, que o desenvolvedor front-end viabiliza os modelos pré-concebidos. Os mais experientes podem, inclusive, identificar problemas relacionados à interação do usuário com o site e determinar soluções que influenciem na melhora e no aprimoramento do design. A interação com outras equipes é muito importante para a compreensão integral das necessidades, objetivos e demandas. Isso facilitará o processo para que as soluções atendam às diretrizes de cada negócio.

Esse é um trabalho que envolve muita responsabilidade e que, portanto, pode ser extremamente recompensador. Mikey Ilagan, um desenvolvedor front-end com oito anos de experiência, diz: "Sou uma pessoa técnica e visual. Manipular o que vemos e interagimos nas plataformas digitais, através dos código que produzo, foi quase que um processo natural". "É fascinante poder alterar a interface, estrutura e as características de um site que outras pessoas utilizam".

Por fim, digamos que o desenvolvedor front-end é o responsável pela decoração interna de uma casa que foi construída por um desenvolvedor back-end. Mas o estilo e bom gosto da decoração são determinados pelo proprietário da casa. Como declarou Greg Matranga, diretor de marketing de produtos na Apptix, a respeito das equipes de front-end e back-end sob sua gestão: "Os desenvolvedores front-end costumam ser mais estimulados pelo trabalho, pois eles podem realmente explorar todo o potencial criativo".

O que isso significa?

Tudo o que você está vendo nesse site é, provavelmente, trabalho de um desenvolvedor front-end. Um designer criou a logomarca e os gráficos, um fotógrafo cuidou das imagens e alguém desenvolveu o conteúdo textual. Mas, um desenvolvedor front-end reuniu todas as tarefas, transformou tudo em linguagem web e desenvolveu a experiência de navegação e interação com cada página. Para contextualizar, role para cima e para baixo a página inicial da Udacity. Perceba como o menu desaparece e reaparece?. Isso foi feito por um desenvolvedor front-end.

Desenvolvedor back-end

O que torna possível o front-end de um site? Onde todos os dados ficam armazenados? É aqui que entra o back-end. O back-end de um site consiste em um servidor, um aplicativo e um banco de dados. Um desenvolvedor back-end constrói e mantém toda a estrutura tecnológica que permite a existência básica do site.

Habilidades e ferramentas

Para interligar o servidor, o aplicativo e a base de dados, os desenvolvedores back-end usam linguagens como PHP, Ruby, Python, Java e .Net para criar um aplicativo, e ferramentas como o MySQL, Oracle e SQL Server para encontrar, salvar ou alterar dados e enviá-los de volta ao usuário no código do front-end. As oportunidades de trabalho para desenvolvedores back-end, muitas vezes, exigem experiência com frameworks PHP como Zend, Symfony e CakePHP; domínio de sistemas de controle de versão como SVN, CVS ou Git; e conhecimento de Linux como um sistema de desenvolvimento e implantação.

Os desenvolvedores back-end usam essas ferramentas para criar aplicativos web com um código limpo e bem documentado ou dar contribuições a eles. Mas, antes de desenvolver esse código, eles precisam entender as necessidades específicas de cada stakeholder ​​das empresas para, então, traduzi-las em requisitos técnicos e em soluções tecnologicamente mais adequadas.

"Sempre preferi o desenvolvimento back-end porque adoro operar dados", declarou JP Toto, desenvolvedor experiente e que hoje trabalha para o Wildbit. "Recentemente, as APIs (sigla em inglês para Interface de Programação de Aplicativos) públicas e privadas tornaram-se parte essencial da transmissão de dados entre dispositivos móveis, sites e outros sistemas conectados. Criar APIs que o público considera úteis é uma parte extremamente satisfatória do meu trabalho".

O que isso significa?

Quando você acessou esse site, os servidores da Udacity enviaram informações ao seu computador (ou dispositivo móvel) e elas se transformaram na página que está vendo agora. Esse processo é o resultado do trabalho de um desenvolvedor back-end. Além disso, se você se inscreve em um curso ou Nanodegree da Udacity, o armazenamento de suas informações pessoais e a utilização automática delas a cada vez em que retorna ao site é tarefa de um desenvolvedor back-end.

Desenvolvedor full stack

Normalmente não há uma distinção clara entre desenvolvimento front-end e back-end. "Os desenvolvedores front-end geralmente precisam adquirir habilidades de back-end, e vice-versa. Especialmente na economia atual, onde o marketing dispõe de recursos cada vez mais escassos", disse Matranga. "Os desenvolvedores precisam de conhecimentos interdisciplinares. Muitas vezes, precisamos ser generalistas!".

Desenvolvedores full stack são pau pra toda obra!

O desenvolvedor full stack: a função foi popularizada há quatro anos, pelo departamento de engenharia do Facebook. A ideia é que um desenvolvedor full stack possa operar no "pacote" completo de tecnologia, ou seja, no front e no back-end.

"Trabalhar tanto no servidor quanto como na experiência do usuário abre um leque muito maior de oportunidades", disse Federico Ulfo, desenvolvedor full stack no Grovo. Mas é claro que o desenvolvimento full stack também tem seus desafios. "Para fazer uma analogia com a comida, você pode ser bom em cozinhar ou bom em assar. Mas dominar os dois leva tempo e experiência. E não estou falando em seguir uma receita. Qualquer um pode fazer isso. Estou falando em dispor dos ingredientes certos para preparar algo realmente bom."

Habilidades e ferramentas

Os desenvolvedores full stack atuam no lado do servidor na programação web, mas também podem transitar tranquilamente pelos caminhos que controlam a experiência do usuário. Eles são pau pra toda obra!

Para ilustrar a crescente complexidade do desenvolvimento full stack, aqui está um exemplo da evolução do conceito nos últimos anos:

Antigo Full Stack
Imagem via TechCruch

Full Stack
Imagem via TechCruch

Independentemente das ferramentas específicas, os desenvolvedores full stack devem estar atualizados a respeito do funcionamento geral da web: configuração de servidores Linux, desenvolvimento de APIs, JavaScript e CSS.

Usando essas ferramentas, os desenvolvedores full stack precisam ser capazes de identificar soluções aos problemas corriqueiros, bem como articular os prós e os contras de cada estratégia.

O que isso significa?

Um desenvolvedor full stack seria o responsável por todo o fluxo de sua experiência com esta postagem no blog. Desde o tempo de carregamento da página e o layout até a interatividade e os fundamentos da estrutura do site.

O ponto de partida

O desenvolvimento web é multifacetado. Mas, não importa o tipo de desenvolvimento que você está perseguindo, habilidades como atenção aos detalhes, capacidade de aprender rapidamente, resolver problemas de forma eficiente e uma comunicação forte irão mantê-lo em boa posição.

Nunca houve um melhor momento para seguir uma carreira no desenvolvimento web. O mercado de trabalho para desenvolvedores web deverá crescer 27% ao longo de um período de 10 anos, entre 2014 e 2024, com uma rapidez muito maior do que a média de todas as outras profissões.

Confira os cursos de desenvolvimento web a Udacity para dar o primeiro passo em direção ao caminho que você gostaria de seguir: Nanodegree Introdução à Programação, Nanodegree Desenvolvimento Web Front-End e Nanodegree Desenvolvedor Web Full Stack.

Este texto foi originalmente publicado no blog da Udacity americana, em 8 de dezembro de 2014.

Sobre o autor
Michael Wales