24 de set de 2018

O que faz um engenheiro de dados?

Udacity Brasil

Dados, dados, dados. Trabalhar com eles, de uma forma ou de outra, tem se tornado uma das maneiras mais promissoras de ter uma boa carreira nos próximos anos. Mas se o que faz um cientista de dados e um analista de dados já está claro, há outro profissional essencial que você também deve conhecer: o engenheiro de dados.

Este artigo é escrito para quem tem interesse em saber mais sobre a área e o dia a dia de um engenheiro de dados e ainda não sabe muito bem por onde começar.

Assista ao webinar: Big data, utilizando os dados a favor dos clientes: o case Telefônica

O que é engenharia de dados?

A engenharia de dados é, um campo multidisciplinar e o profissional qualificado deve saber coletar e transformar dados para serem usados por cientistas e analistas de dados. Em outras palavras, deve saber lidar com diferentes arquiteturas e aplicações de dados, com bases de dados estruturadas e não-estruturadas.

Basicamente, é o que essa pirâmide abaixo, publicada originalmente na postagem “The AI Hierarchy of Needs” de Monica Rogati, mostra:

br-blog-engenheiro-de-dados-01

A pirâmide da hierarquia de necessidades da ciência de dados acima inclui:

  • Coletar – instrumentalizar, registrar dados, sensores, dados externos, conteúdos gerados por usuários
  • Mover/Armazenar – dados confiáveis, infraestrutura, pipelines, ETL, armazenamento de dados estruturados e não-estruturados
  • Explorar/transformar – Analytics, métricas, segmentos, agregações, características, dados de treinamento
  • Agregar/Rotular – Teste A/B, Experimentação, algoritmos simples de Machine Learning
  • Aprender/Otimizar – Inteligência Artificial, Deep Learning

E o que é engenharia de dados? De maneira simples, é uma das disciplinas que podemos encaixar nas bases da pirâmide de necessidades para lidar com dados, pois quando as informações estão disponíveis de maneira acessível o trabalho dos demais membros da equipe só tem a ganhar em termos de qualidade, confiança nas informações e eficiência.

Ou seja, o engenheiro de dados é responsável por criar e manter pipelines que transformam dados de diversas fontes e formatos em fontes mais facilmente utilizadas.

Vale dizer que, ainda que não seja necessário amplo domínio em todo espectro de habilidades para lidar com dados, é preciso saber matemática e estatística, linguagens de programação, coleta e construção de bases de dados, análise das informações e, claro, possuir conhecimentos específicos dessa área de atuação.

O que faz um engenheiro de dados?

Partindo de um material desenvolvido pela própria Udacity, o Guia para uma carreira em data science uma explicação simples sobre o que o engenheiro de dados faz é: “Engenheiros de dados fazem os bastidores do trabalho que permite que o analista e o cientista façam seus trabalhos com mais eficiência”.

Neste excelente artigo, publicado pelo engenheiro de dados Allan Sene, a definição é a seguinte:

“O Data Engineer é então responsável por garantir que os dados estejam disponíveis para a análise de forma segura. Engenheiros de dados constroem reservatórios para big data. Além disso, eles desenvolvem, constroem, testam e mantêm arquiteturas, tais como bancos de dados e sistemas de processamento de dados em grande escala. Uma vez que esses dados estão disponíveis, profissionais como cientista de dados e analista de dados podem aplicar técnicas analíticas para extrair conhecimento.”

Em síntese, o engenheiro de dados é um dos profissionais indispensáveis de uma equipe completa de Data & Analytics. Estas equipes costumam envolver pessoas com habilidades e objetivos diversos para trabalhar com dados, alguns dos trabalhos podem ser vistos nesta postagem sobre possibilidades de atuações na área de Data Science (https://br.udacity.com/blog/post/data-science-experience).

O engenheiro de dados é o profissional responsável por permitir que os dados estejam disponíveis da melhor forma possível para evitar trabalhos desnecessários com informações muito desorganizadas, perda da confiabilidade dos dados por problemas com a coleta ou o armazenamento, por exemplo.

Leia também: Este jovem foi de estagiário a cientista de dados e hoje tem um projeto com a NASA

Para ter sucesso na área, é preciso buscar sempre pensamento crítico, possuir alto nível de abstração, fluências em linguagens de programação e cooperação com equipe visando uma compreensão do universo de trabalho.

Também é preciso buscar soluções para construir e integrar ambientes de dados, bem como tratá-los adequadamente. Como podemos ver a seguir, as habilidades que um engenheiro de dados precisa ter envolvem tanto aspectos técnicos quanto de negócios.

Habilidades do engenheiro de dados

Um engenheiro de dados deve desenvolver, construir, testar e manter arquiteturas que servirão para outros profissionais que lidam com informações, a exemplo de bases de dados e processos envolvendo dados. Antes de mencionar as ferramentas mais usadas por estes profissionais, vale elencar quais as habilidades mais comuns, que podem ser tanto técnicas quanto de negócios:

Habilidades técnicas:

  • Capacidade de coletar dados ou aproveitar os bancos de dados já existentes
  • Criar softwares e aplicações analíticas, inclusive as de larga escala chamadas SaaS (Software as a Service), que é a oferta de softwares com propósitos específicos
  • Utilizar linguagens de programação diferentes e ferramentas diversas, como elencamos na próxima seção
  • Conhecimentos de estatística
  • Desenvolver processos de modelagem de banco de dados, mineração e produção
  • Trabalhar colaborativamente para atingir os objetivos dos projetos
  • Recomendar modos de aumentar a confiança, eficiência e qualidade dos dados – inclusive propondo novos modelos de banco de dados apropriados para os fins almejados
  • Instalar e atualizar procedimentos de recuperação de perdas de dados, garantindo a segurança dos dados

E há também as habilidades de negócios do engenheiro de dados, como o conhecimento sobre o negócio em si. É preciso saber sobre a área em que se atua e isso nem sempre significa domínio avançado, mas ter pelo menos uma visão holística.

Suponhamos que o trabalho seja numa empresa de dermocosméticos. Não é preciso dominar conhecimentos sobre os componentes químicos e seus efeitos na pele humana, mas é indispensável entender sobre os tipos de dados que serão coletados, analisados e utilizados com base nos produtos oferecidos e objetivos estabelecidos.

O primeiro ponto implicará na importância maior ou menor de conhecimentos analíticos em áreas como marketing, RH, mídias sociais, conteúdo ou finanças, por exemplo. O que essas áreas precisam medir? O impacto de uma campanha, os índices de satisfação interna, o número de fraudes ou de cliques que se tornaram vendas, por exemplo? E onde esses dados estão?

Em termos de perfil profissional, ter um espírito colaborativo é muito importante. As habilidades anteriores por si só já deixam nas entrelinhas a necessidade de colaborar, visto que é preciso atuar conjuntamente com a equipe para entender as necessidades e as especificidades do trabalho a ser desenvolvido. Além disso, o engenheiro de dados deve trabalhar em sintonia com a equipe de Data & Analytics, como é possível verificar no tópico sobre a diferença entre o cientista e o engenheiro de dados.

Curiosidade intelectual também é de suma importância, não só porque as tecnologias estão em permanente transformação, mas também pela necessidade de buscar soluções criativas para os problemas com os quais é preciso lidar.

Ler este tanto de habilidades pode parecer desanimador – mas não precisa ser! Por isso, vale a pena dar uma olhada neste mapa criado pela equipe de Data Science & Analytics da Max Milhas, disponível neste link e que mostra o que cada um faz.

br-blog-engenheiro-de-dados-02

O mapa de competências de um engenheiro de dados na Max Milhas

O que podemos inferir a partir dessa imagem? Ainda que sejam muitas competências, algumas costuma ser bem mais relevantes que as outras. Visualização e estatística, por exemplo, muito certamente são habilidade mais exigidas dos cientistas e dos analistas de dados. Por sua vez, a arquitetura aparece como competência fundamental para os engenheiros de dados e muito menos importante para os demais da equipe de Data & Analytics.

Além disso, tanto as linguagens e ferramentas usadas quanto as habilidades de negócios exigidas variam conforme a empresa e o cargo que se ocupa. Existem preferências dentro de cada espaço corporativo por uma ou outra linguagem, além da cultura empresarial de cada iniciativa – o que torna um mapeamento prévio do que você precisa saber algo essencial.

Portanto, se você tem interesse por essa área mas ainda é novato, não se sintam “esmagado” pelo tanto de possibilidades – até porque explicaremos, nos tópicos seguintes, o que você precisa fazer para chegar lá.

E como pôr em prática tudo isso? É preciso, dentre muitas coisas, usar as ferramentas adequadas. Veremos isso nesta próxima seção!

Ferramentas e linguagens usadas pelo engenheiro de dados

  • SQL: quem está na área já deve ter ouvido falar sobre os bancos de dados SQL. Esta linguagem é muito comum e usada para lidar como bancos de dados relacional. Abaixo, temos um vídeo-aula introdutório sobre o que é essa linguagem:
  • NoSQL: o termo _No_ da linguagem significa “Not Only”. Ou seja, diferente do SQL, são bancos com bases de dados não relacionais, que ganharam popularidade com a necessidade atual de ter que lidar com tabelas que não necessariamente estão estruturadas e interligadas. Veja este case do EasyTaxi com NoSQL:
  • Tecnologias para trabalhar com big data, como Hadoop (incluindo Hive, MapReduce e Pig)

  • Ferramentas de modelagem de banco de dados, tais como ERWin, Enterprise Architect e Visio

  • Linguagens de programação, tais como Python, C/C++ Java, Perl, MatLab, SAS, R

  • Soluções de data warehousing que criam repositórios organizados para auxiliar na tomada de decisões

  • Modelos preditivos: a modelagem preditiva usa matemática e estatística para ajudar a predizer possibilidades futuras com base nos dados existentes, ou seja, é possível encontrar padrões a partir de dados históricos e prever tendências e comportamentos, por exemplo. A postagem “Como um modelo de previsão de conversão ajudou um negócio a dobrar as vendas” traz um caso real em que a predição permitiu dobrar números de vendas de uma empresa.

Qual a diferença entre engenheiros de dados e cientista de dados?

Esta é uma questão comum: quais as diferenças entre os profissionais que lidam com dados? Depois de tudo que discutimos, dá para entender um pouco porque existem confusões sobre quais as funções do cientista e do engenheiro de dados.

Inclusive, não é raro ver recrutadores confundindo as atribuições, até mesmo porque em muitos momentos e empresas esses papeis se coadunam. A tendência esperada é que, com a evolução e consolidação dessas áreas no mercado, as diferenças passem a ser mais delimitadas.

Nesta parte do texto, pode ser que algumas informações sejam, de alguma forma, repetidas. A intenção é demarcar bem as diferenças para tornar ainda mais evidente o papel de cada um.

Falando de uma maneira simples, enquanto os engenheiros limpam, preparam e otimizam dados para uso, os cientistas podem prover análises variadas e aplicar técnicas visuais para facilitar o entendimento dos dados. Por isso, a comunicação entre esses profissionais é de suma importância.

Vamos dar uma olhada na imagem abaixo, um infográfico da Udacity que traz mais informações sobre o trabalho em data science:

De maneira geral, entende-se que um cientista de dados deve ter capacidade técnicas e analíticas para gerar insights por meio dos dados disponíveis. Como todo trabalho de pesquisa, é preciso saber fazer as perguntas certas e responder com base na análise realizada.

As análises de um cientista de dados podem ser feitas com conhecimentos diversos, tais como data mining, estatística, visualização de dados e machine learning.

Alguns conhecimentos transversais mais básicos são desejáveis, porque o engenheiro de dados deve construir soluções para a equipe da qual faz parte. Dessa forma, deve saber dialogar com as necessidades da sua área de atuação, tais como negócios, marketing, educação, política, varejo e muitas outras.

Temos uma postagem específica sobre ciência de dados que aprofunda bem esta discussão (você pode verificar aqui neste link).

No vídeo acima, saiba mais sobre o que faz um cientista de dados, que tem um trabalho diferente daquele do engenheiro de dados

E o engenheiro de dados? Numa tradução livre da postagem do “Masters In Data Science”, vemos a seguinte explicação:

“Os engenheiros de dados podem trabalhar de perto com arquitetos de dados (para determinar quais sistemas de gerenciamento de dados são apropriados) e cientistas de dados (para determinar quais dados são necessários para análise). Eles frequentemente enfrentam problemas associados à integridade de bancos de dados e com conjuntos de dados sujos e/ou desordenados. Seu objetivo final é fornecer dados limpos e utilizáveis para quem precisar.”

Podemos concluir que o engenheiro de dados costuma lidar bem mais com a infraestrutura que os demais do time de data.

Por isso, um conhecimento amplo em engenharia de software é extremamente desejável, na medida em que tais profissionais devem focar em modelar, construir e manter sistemas que armazenam e processam dados. E, conforme o tipo de serviço e a empresa, as soluções devem se direcionar para os tipos de informações de cada demanda.

Para finalizar esta seção, vale a pena dar uma olhada no diagrama de habilidades abaixo, retirado da postagem 4 trabalhos para quem quer uma carreira em Data Science e, se dominar inglês, uma lida no artigo “A Beginner’s Guide to the Data Science Pipeline”.

Na figura acima, as habilidades mais (e menos) importantes para engenheiros de dados, engenheiros de machine learning, analistas de dados e cientistas de dados

Por que ser um engenheiro de dados?

Resposta simples: é um campo em crescimento no Brasil e no mundo e demandará profissionais aptos, assim como analistas de dados, analista de banco de dados, engenheiro de software e cientistas de dados. Juntos, eles comporão equipes cada vez mais fundamentais de data & analytics dentro das organizações.

Sem dúvidas, o recente boom de dados no mundo tem muito a ver com as novas tecnologias de informação. Com mais de 3.5 bilhões de usuários de Internet e 2 bilhões de pessoas com celulares, a quantidade de dados geradas é massiva. Cada ação online pode gerar dados: da mensagem enviada até as compras no e-commerce, passando pela postagem publicada e foto compartilhada.

Até hoje, não é fácil lidar com esse montante de informações. A maioria dos dados não está estruturado, organizado em tabelas de fácil acesso já prontos para análise. Sem contar a quantidade! Como lidar com milhões de registros? Muitas soluções foram pensadas para resolver isso, uma delas é o big data, discutido amplamente nesta outra postagem que fizemos.

Também vale a pena ver o vídeo abaixo, que aborda de maneira bem didática este problema:

O que vemos com estes e outros casos é que, se existem problemas, a engenhosidade nos permite encontrar soluções. Hoje, felizmente já existem várias formas de coletar, armazenar, tratar, organizar e analisar dados. Como já discutimos neste artigo, o engenheiro de dados é um dos principais profissionais responsáveis por lidar com dados.

Sabemos também que este é um campo em permanente transformação, pois o ritmo das mudanças tecnológicas é intenso. Isso implica em habilidades que podem ser tornar obsoletas em poucos anos. Se por um lado isso pode assustar, porque o conhecimento de uma ferramenta hoje pode se obsoleta amanhã; por outro lado, para os sedentos por aprendizagem constante é uma oportunidade, pois demanda para esse trabalho será cada vez mais intensa.

A título de curiosidade, o McKinsey Global previu, em 2011, que os EUA poderiam ter uma escassez de 1,5 milhão de profissionais aptos a lidarem com análise de dados.

Outro relatório, dessa vez feito pelo CrowdFlower, aponta que 83% dos cientistas de dados que responderam à pesquisa consideram que há escassez de profissionais do tipo. É um dos cargos mais atrativos não só na área de TI, como no mercado de trabalho como um todo.

No Vale do Silício, referência da 4ª Revolução Industrial – ou Indústria 4.0 –, a média salarial anual de cientistas e engenheiros de dados passa dos 121 mil dólares anuais. Inclusive, vale a pena dar uma lida neste outro artigo que postamos sobre o salário dos cientistas de dados.

Se você ainda não se convenceu da importância desse campo, sugerimos a leitura do artigo “A Inteligência Artificial pode ameaçar nossos empregos?, publicado no Olhar Digital e escrito por Kadu Vido, engenheiro de dados da Udacity.

Uma das coisas que o artigo mostra é como a demanda por profissionais com competências tecnológicas vai crescer em ritmo acelerado até 2030. Em paralelo, estudos da McKinsey Global Institute (MGI) apontam como a inteligência artificial pode ameaçar por volta de 50% dos empregos na Europa e nos Estados Unidos nas próximas décadas.

Em outras palavras, num mundo em que várias posições de trabalho estão sob ameaça de desaparecer ou sofrer queda na demanda, as áreas tecnológicas estão ganhando mais espaço.

Vale lembrar: conforme dito em parágrafos anteriores, as previsões indicam uma escassez de mão-de-obra qualificada – e muito é possível se qualificar para preenchê-la.

Como se tornar um engenheiro de dados

Depois de tudo que falamos, você pode estar se perguntando: Ok, como se tornar um engenheiro de dados? Em primeiro lugar, é preciso ter em mente que este trabalho envolve muito estudo e pesquisa, pois é preciso atualização constante num campo que se transforma intensa e constantemente.

Além disso, é fundamental voltar-se para a solução de problemas e a criação de novas possibilidades com dados. É por isso que perfis que se interessam por assuntos diversos são tão procurados: a capacidade de dialogar com outros campos do conhecimento, da mesma ou de outras áreas, é extremamente valorizada.

Geralmente, esta área é preenchida por formados em Estatística, Matemática, Física, Ciência da Computação, Sistema de Informação e áreas correlatas, especialmente devido ao conhecimento de habilidades em matemática, física e estatística.

Apesar disso, não necessariamente uma formação dessas vai garantir uma vaga de engenheiro de dados num mercado de trabalho – e nem sempre são pré-requisitos. Muitas vezes, a experiência de trabalho e provas de sua expertise via portfólios podem ser mais efetivos.

Inclusive, a Udacity oferece um curso gratuito sobre criar e manter seu GitHub. Para facilitar a conexão com o mercado, há também os Nanodegree com o selo U Pro, que oferecem orientação de especialistas para otimizar seu portfólio no GitHub e seu perfil profissional no LinkedIn, entre outros serviços de carreira.

Quem afirma é o engenheiro de dados Gabriel Lages, em seu artigo “A realidade por trás do Data Science e dos Unicórnios”:

“Engenheiros de dados normalmente possuem sólidos conhecimentos em bancos de dados (SQL e NoSQL), integrações entre sistemas, computação em nuvem, processamento paralelo, ETL’s, datawarehouses, datalakes, data streaming etc. Justamente por isso é essencial que tenham um background na área de técnologia, e uma formação em ciências da computação e sistemas de informação (lembrando que ter diploma nessas áreas não é uma exigência, conheço excelentes engenheiros de dados que optaram por não concluir a graduação ou que são autodidatas desde o início da carreira).”

O relato abaixo mostra como essas carreiras autodidatas podem acontecer na prática. Uma estudante da Udacity que hoje trabalha como engenheira no Google fala sobre seu processo de mudança profissional e como programar pode ter uma característica “artística” por haver tantos modos distintos de construir algo:

Nada disso significa que você precisa mergulhar de cabeça e só sair para o mercado quando estiver totalmente capacitado. Outra dica dada pelo engenheiro Gabriel Lages que vale a pena destacar é:

“Não tente se tornar um 'unicórnio' de cara, dê tempo ao tempo, comece se especializando na parte do Data Science que você tenha mais interesse e facilidade aos poucos você vai começar a adquirir outros conhecimentos para ser mais produtivo.”

Cursos online para se tornar um engenheiro de dados

A boa notícia é que a chegada de cursos online como os da Udacity colabora com a profissionalização desse campo. Depois de tudo que falamos e das leituras extras apresentadas no decorrer desse artigo, talvez você tenha pensado que seu perfil não é necessariamente o de um engenheiro, mas sim de um cientista ou quaisquer outros profissionais do ramo tecnológico que lida com dados.

Por isso, vale a pena dar uma olhada na nossa trilha de dados, Data Science & Machine Learning com opções de formação como analistas de dados, cientistas de dados e engenheiro de Machine Learning, como você pode conferir. Não é preciso realizar todos eles, pois cada caminho é voltado para desenvolver habilidades específicas.

E há também um ebook interessante para guiá-lo nessa jornada, o Guia para começar uma carreira em data science, que traz em detalhes as diferenças entre profissionais. Já este checklist permite ver quais são as habilidades necessárias para um cientista de dados.

Também destacamos o curso de Fundamentos de AI & Machine Learning – que traz, por exemplo, conhecimentos básicos em álgebra e cálculo, conceitos sobre machine learning com construção de módulos preditivos e aprendizado da linguagem Python – e do Engenheiro de Machine Learning – para estudantes com nível avançado aptos a construírem modelos preditivos e automatizados.

O vídeo a seguir traz alguns depoimentos de alunos do Nanodegree Engenheiro de Machine Learning:

Também oferecemos a possibilidade de uma formação bem completa em Inteligência Artificial com outros cursos online com certificado. Nestes casos, tratam-se de formações com alguns pré-requisitos, voltadas para um público mais avançado nestes aprendizados:

Nanodegree Artificial Intelligence Concepts

Para quem já domina programação em Python, sabe estatística, machine learning e deep learning, e deseja aprender conceitos fundamentais da IA, dentre elas busca, otimização, planejamento e reconhecimento de padrões.

Nanodegree Natural Language Processing Expert

Como o próprio nome sugere, este curso é voltado para os que desejam se tornar especialistas em processamento de linguagem natural, ou seja, pretendem ensinar computadores a compreenderem, interpretarem e manipularem a linguagem humana. Também possui alguns pré-requisitos.

Nanodegree Deep Learning

É um dos tópicos em alta da IA. O curso ensina a criar redes neurais e implementá-las, tais como “redes convolucionais para reconhecimento de imagem, redes recorrentes para geração de sequência, redes geradoras adversárias para geração de imagens e muito mais”. Para fazer este nanodegree, é fundamental ter conhecimento em Python, estatística e cálculo básico.

Nanodegree Deep Reinforcement Learning Expert

Este curso também exige alguns requisitos, a saber: Python, estatística, Machine Learning e Deep Learning. A final, você deverá ser capaz de utilizar técnicas como deep Q-learning e métodos ator-crítico.

Abaixo, elencamos também alguns cursos abertos que podem ser interessantes para iniciar uma carreira de engenheiro de dados:

Além disso, existem opções de cursos online gratuitos que podem ser o pontapé para começar uma carreira na área tecnológica, muitos deles com legendas em português. Todos os programas Nanodegree e cursos abertos podem ser consultados no nosso catálogo.

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.