18 de set de 2018

Back-end x front-end: 4 programadores definem as diferenças

Udacity Brasil

Se você consegue navegar em um site, é graças ao trabalho dos desenvolvedores web. Não dá para vê-los, mas é preciso agradecer a eles quando se encontra uma página de navegação fácil e intuitiva em meio aos quase dois bilhões de sites que existem na internet (aqui dá para acompanhar a contagem em tempo real).

Divididos nas áreas de front-end e back-end, os desenvolvedores podem ser considerados os "designers de interiores" (front-end) e os "engenheiros" (back-end) de uma casa. Para explicar melhor como cada área funciona e sanar as dúvidas sobre qual carreira combina mais com você, é melhor ouvir quem já está no mercado e imerso em código.

Assista ao webinar: De Minas Gerais para Califórnia: a jornada de uma desenvolvedora web

O que é back-end?

“O back-end, também conhecido como server-side, é o ‘motor’ que se comunica com o servidor e o banco de dados para pegar e entregar informações ao usuário que está acessando o site”, explica Carolina Karklis, desenvolvedora back-end na Magnetis.

“O back-end é a ponta de trás. É tudo que acontece por trás do sistema. Quando o usuário insere o e-mail e faz o cadastro, aquela informação que ele inseriu tem que ser salva em um banco de dados. Essa manipulação quem faz é o back-end, que salva as informações da forma mais adequada para que seja fácil gerar relatórios ou para que o usuário possa alterá-las depois”, diz Osmar Matos, desenvolvedor front-end na iFunded.

“Back-end é uma aplicação que escrevemos para rodar diretamente no servidor. Ela pode ‘servir’ arquivos estáticos para o cliente (um browser ou um aplicativo mobile) ou somente as informações necessárias para o front/mobile ‘consumir’”, fala Stephanie Melo, desenvolvedora full stack (aquela que trabalha tanto com back quanto front-end).

"O back-end é considerado a engrenagem. É o que faz a conexão com o banco de dados e maioria dos processos pesados que precisam ser rodados no lado do servidor e não no lado do cliente", resume Jonathas Guerra, desenvolvedor web e programador PHP freelancer.

Uma rápida entrevista com um desenvolvedor back-end

O que é front-end?

“O front-end é a ponta da frente: é o que está entre o usuário e o serviço. É tudo onde o usuário vai clicar, adicionar informação, escrever, ler para entender o sistema e interagir com ele", continua Osmar.

"Geralmente, o front-end recebe um arquivo do UX designer com todos os visuais de cada tela do site. Então, ele monta tudo utilizando os códigos necessários para que os browsers como Google Chrome, Internet Explorer e Firefox entendam e renderizem, ou seja, mostrem aquela imagem que o designer projetou de forma clicável, interativa e funcional.”

"Essa parte é muito importante porque é o que o cliente vê. Então entra muita coisa: UX (como o usuário usa), o visual (que é deixar bonitinho) e, claro, o mais importante: o JavaScript que roda no cliente", fala Jonathan.

Em suma, diz Carolina, “o front-end (ou client-side) é responsável pela parte visual do site, cuidando do design, usabilidade e dinamismo na tela do usuário.”

Uma rápida entrevista com um desenvolvedor back-end

E se eu não quiser escolher, dá para ser os dois?

Sim! O termo para tanto é full stack. “O desenvolvedor full stack é uma pessoa que ‘joga’ nos dois times. Ela acaba sendo um pouco mais especialista em uma área do que na outra, mas sabe fazer as duas coisas muito bem", explica Stephanie.

Como a curva de aprendizado é grande, Carolina sugere uma estratégia: "foque em aprender o lado com o qual você se sente mais confortável primeiro e depois aprender o outro.”

Saiba mais sobre as diferenças entre front-end, back-end e full stack

Back-end x front-end: quais são as tecnologias envolvidas?

O front-end é composto primordialmente por três linguagens: HTML, CSS e JavaScript. "Dentro dessas três, há várias ramificações e, sabendo bem essas, o front-end pode aprender as outras coisas", diz Osmar.

Jonathas ainda indica conhecimentos de Bootstrap, Angular, JQuery – e Adobe Photoshop para editar imagens.

Ter conhecimentos de versionamento de arquivos também é essencial. "O mais comum é o Git, que basicamente salva seus arquivos cada vez que você os manda para manter um histórico daquilo", continua.

Isso significa que, mesmo que você altere um arquivo centenas de vezes, pode sempre voltar para consultar ou recuperar algo ou mesmo reverter para uma versão anterior caso seja necessário.

"Outra coisa que acho importante seria a metodologia. A maioria das equipes agora trabalha com metodologia ágeis como Scrum ou Kanban e é importante saber sobre elas ou pelo menos ter uma noção", diz Osmar. É assim, através de metodologias, que os desenvolvedores se organizam para criar seus projetos, pedaço a pedaço.

Já quando o tema é back-end, é preciso saber linguagens de programação como Ruby, Elixir ou Python, entre outras.

“Além de dominar alguma dessas linguagens, o back-end tem que saber como funcionam suas principais bibliotecas e frameworks", fala Stephanie. "E precisa saber fazer testes corretamente e trabalhar com performance e melhores práticas de desenvolvimento de software.”

Como os programadores lidam com demandas de outras áreas?

Em qualquer empresa que tenha hoje uma área de TI, a cena pode parecer familiar: algo dá errado e logo pedem para chamar alguém da equipe "para resolver". Mas é cada vez mais comum que companhias criem projetos multidisciplinares, em que pessoas de várias áreas se reúnem para definir escopo, especificações, o que é (e não é) possível e datas prioritárias.

Isso acabou trazendo à tona, para programadores, a necessidade de desenvolver mais fortemente soft skills como comunicação no dia a dia.

“Hoje não existe – ou não deveria existir – uma pessoa desenvolvedora que não tenha nenhum contato com as outras áreas, como administrativa e marketing. Um bom desenvolvedor precisa estar em contato com elas, ter conhecimento sobre a atuação da empresa onde trabalha e conhecer os clientes para quem está se desenvolvendo o software/site, sejam eles internos ou externos", afirma Stephanie.

"Quanto mais contato a pessoa tiver com quem for usar o que ela estiver desenvolvendo, mais feedback vai ter para melhorá-lo. Eu sou muito a favor de métricas de performance para entender se o desenvolvimento está ou não no caminho ‘certo’", continua.

Para Carolina, o foco no usuário naturalmente esclarece quem deve estar envolvido num projeto. “O time todo é focado em entregar valor ao usuário. Para isso, gerentes de produto, designers e desenvolvedores estão envolvidos nas entregas."

Saber mais sobre o negócio em si ou pelo menos sobre a área daquele projeto também pode ser de grande valia.

"No meu caso, é bem comum ter múltiplos papéis em empresas. Ajudo sempre com marketing digital e, se você não imagina como algo pode ser viralizado ou como os usuários pensam, fica difícil desenvolver algo que agrade um número grande de pessoas ou o público que se quer atingir", afirma Jonathas.

"As principais skills para lidar com essas atividades fora da área de programação são ser proativo e estudar, mesmo que rapidamente, o que vem por aí. Eu me mantenho atualizado sobre tudo que surge em relação à programação (óbvio), mas também em marketing digital – tendências de aparelhos novos e de comportamento de público, por exemplo."

Leia também: Descubra 6 habilidades que estão em alta no mercado

Por que se tornar um desenvolvedor?

Agora que a estrutura do desenvolvimento está um pouco mais clara, você pode estar se perguntando se vale a pena seguir nesse caminho. Tudo indica que sim: uma pesquisa da CISCO, por exemplo, prevê um déficit de mais de 400 mil profissionais no mercado de TI na América Latina já em 2019.

Além disso, há os benefícios pessoais de desafiar-se continuamente e estar sempre em contato com o novo. É o que motiva muitos programadores mundo afora. “Quando você trabalha com tecnologia, é preciso estudar, evoluir e mudar constantemente. Você encara desafios constantes para resolver problemas", fala Carolina. "Eu me apaixonei pela comunidade e pela troca de conhecimento que há dentro dela."

E não é só entre latino-americanos que há possibilidades: a demanda cresce no mundo inteiro. Stephanie, por exemplo, hoje mora no Canadá, assim como Pedro Durek, que aprendeu a tecnologia necessária com a Udacity.

“Eu me interessei por programação porque sempre tive aquela ideia mirabolante de ser uma hacker e mudar o mundo. Agora, graças à minha experiência como desenvolvedora, surgiu uma oportunidade”, resume ela.

“O mercado para desenvolvedores e UX designers é excelente e há oportunidade no mundo todo", começa Osmar. O motivo é simples: há um número cada vez maior de ideias que exigem tecnologia para funcionar, o que gera uma demanda crescente. "Essencialmente, front-end e back-end trabalham desenvolvendo sites, aplicativos e sistemas para atender essa demanda. E eu acredito que ainda não há uma quantidade suficiente de profissionais para isso."

Para Jonathas, que começou a programar aos 12 anos, trata-se de uma empolgante "missão diária de desenvolver algo que não existe". "Além de todos os benefícios financeiros, você está aprendendo diariamente. Todo dia algo novo surge, o que é constante e extremamente desafiador", empolga-se.

Vá além:

Sobre o autor
Udacity Brasil

A Udacity, conhecida como a "Universidade do Vale do Silício", é uma plataforma online e global que conecta educação e mercado para ensinar as habilidades do futuro – de data science e marketing digital à inteligência artificial e desenvolvimento. Hoje, há mais de 7 mil alunos ativos no país e 50 mil pelo mundo.