Categorias
Ciência de Dados Programação

Engenheiros de Dados: quem são?

Na era da informação na qual vivemos, ouve-se muito sobre o valor dos dados que geramos cotidianamente e, por consequência, sobre a demanda de profissionais criada para realizar a análise dos mesmos. Isso posto, podemos então dizer seguramente que a atuação tendência do momento é a de Cientista de Dados. Mas essa não é a única profissão com alta demanda (e boas remunerações) por aí: você já ouviu falar sobre o Engenheiro de Dados? Não? Então segue a leitura, neste post nós vamos te contar tudo sobre essa carreira, quais atividades são desempenhadas nela e quais as habilidades necessárias para se tornar um bom Engenheiro de Dados.

 

Mas afinal, o que é um Engenheiro de Dados?  

Antes de entrarmos em uma definição é necessário termos em mente que, nos times modernos de Ciência de Dados, é cada vez mais comum encontrar papéis bem definidos a fim de facilitar todo o fluxo de trabalho na empresa. Nesses times existem pelo menos três papéis distintos: 

  • O Engenheiro de Dados, responsável por assegurar, através de linguagens de programação, que os dados sejam limpos, confiáveis e disponíveis para acesso em alta performance sempre que necessário;
  • O Analista de Dados, que utiliza ferramentas de business intelligence, planilhas e linguagens de programação para categorizar e descrever os dados já existentes;
  • O Cientista de Dados, que faz uso dos dados para realizar predições e extração de conhecimento desses dados. 

Ou seja, podemos definir o Engenheiro de Dados como a pessoa que é responsável por preparar os dados para uso analítico e operacional, gerenciando os processos de ETL (Extract, Transform, Load), pipelines de execução e o fluxo de trabalho dos dados.  

 

Qual a atuação do Engenheiro de Dados?

Embora o Engenheiro de Dados tenha suas atribuições bem definidas, ele trabalha em conjunto com os Analistas e Cientistas de Dados. As principais atividades de um Engenheiro de Dados envolvem: 

  • Construir e manter os sistemas de pipelines dos dados da empresa

O pipeline dos dados abrange os processos pelos quais os dados passam na empresa, definindo para onde e qual setor eles irão. O Engenheiro de Dados é responsável pela criação desses pipelines, além de mantê-los funcionando sempre da melhor forma possível. O engenheiro deve entender quais as melhores ferramentas a serem utilizadas, bem como conhecer as tecnologias e frameworks existentes, combinando-as para facilitar o processo de pipeline no negócio da empresa. 

  • Limpar e organizar os dados de forma útil

Um Engenheiro de Dados assegura que os dados estejam limpos, organizados, confiáveis e preparados para qualquer caso de uso.  A organização dos dados é uma das principais atividades do engenheiro e envolve tarefas como transformar dados bagunçados e brutos em dados realmente úteis. O engenheiro também é responsável por responder questões como:  “o quão bons são esses conjuntos de dados?”, “o quão relevantes eles são para o objetivo procurado?” e “existe uma fonte de dados melhor?”, de modo que seu trabalho possa auxiliar o Cientista de Dados no processo de extração de conhecimento. 

 

O que devo saber para me tornar um Engenheiro de Dados?

Para se tornar um Engenheiro de Dados, seu conhecimento deve abranger muitas áreas como: formatação de arquivos, processamento de dados em streaming e em batches, SQL, armazenamento de dados, gerenciamento de clusters, banco de dados transacionais, frameworks para web, visualização de dados e, até mesmo, machine learning

Como observado, a lista de conhecimentos requeridos pode ser grande, mas você já tem um bom ponto de partida caso possua algumas dessas skills:

  • Conhecimentos de Linux e uso de linhas de comando;
  • Experiência com linguagens de programação como Java, Python e Scala;
  • Conhecimentos de SQL; 
  • Entendimento de como funcionam sistemas distribuídos em geral e quais as principais diferenças em relação a armazenamentos tradicionais e sistemas de processamento;
  • Profundo entendimento dos ecossistemas existentes, incluindo ingestão (Kafka, Kinesis), frameworks de processamento (Spark, Flink), e engines de armazenamento (HDFS, Hbase, Kudu, etc);
  • Conhecimentos de como processar e acessar dados.

 

E é isso, caro leitor. Esperamos que este post tenha sido útil para introduzir um pouco dessa profissão tão fascinante. Caso queira ler um pouco mais a respeito, este artigo explica muito bem a diferença entre o engenheiro e o cientista de dados. 

Até a próxima! 

 

Fontes:         

What is Data Engineering? . 2018. DataCamp. Hillary Green-Lerman.

Data Engineering: A quick and simple definition. 2018. O’Reilly. James Furbush.

Who Is a Data Engineer & How to Become a Data Engineer?. 2019. Towards Data Science. Oleksii Kharkovyna. 

Categorias
Ciência de Dados Programação

“Data Science do Zero: Primeiras Regras com o Python” é nossa nova dica de leitura

 Escrito por Joel Grus, o livro “Data Science do Zero: Primeiras Regras com o Python” é nossa nova dica de leitura para vocês.

Quais habilidades um cientista de dados deve ter? Essa foi a pergunta que guiou o autor na escrita deste livro. Grus oferece recursos para o desenvolvimento de dois centros de habilidade do cientista de dados: habilidades de hacker e conhecimento em Estatística e Matemática. Os tópicos de Estatística e Matemática são aqui desenvolvidos pensando-se na aplicação destes dentro do ambiente Python.

O Python é central nesta obra, e terá seu espaço para ser detalhado, mas, como o próprio autor indica, se você ainda não conhece esta linguagem de programação, é indicado que complemente a leitura da obra com materiais voltados para ensinar Python a iniciantes.

O livro apresenta muitos elementos essenciais para a área de Ciência de Dados, como diversos modelos de algoritmos e pontos básicos de Álgebra Linear, Estatística e Probabilidade. Com tantos temas vastos sendo trabalhados no mesmo volume, o livro não traz densas explicações, ele auxilia na construção de noções e dá direcionamentos. 

Se você está buscando uma obra que te auxilie no entendimento do cenário da Ciência de Dados, “Data Science do Zero” é uma grande opção. Além da clara importância do conteúdo tratado no livro, o autor Joel Gruz conduz o texto de maneira dinâmica e divertida.

Boa leitura!

Categorias
Ciência de Dados Programação

Livro para a estante de programador: Python para Análise de Dados

Escrito por Wes Mckinney, criador da biblioteca pandas, este livro é um guia para quem está no início da formação como programador. Ele ajuda a entender o funcionamento e a combinação de ferramentas para o tratamento dos dados dentro do ambiente Python. O processo de dedução será possível porque o autor apresenta a lógica que estrutura as ferramentas, e mesmo diante do avanço e modernização desses recursos, os princípios permanecem.

 O uso de exemplos é fundamental na explicação de um assunto, e este livro traz diversas aplicações. E através das aplicações conheceremos as ferramentas que compõem o ambiente, como é o caso das bibliotecas.

O volume é desenvolvido em seções curtas, isso torna a informação mais focada, o que ajudará o programador iniciante a identificar claramente os pontos centrais sem entrar em expansões ainda difíceis de entender. Já no início da obra encontramos uma revisão sobre algumas das principais bibliotecas ligadas ao Python, como NumPy, pandas, Matplotlib e Jupyter. É uma apresentação sucinta, mas as ferramentas são melhor delineadas ao longo do texto, com suas características sendo apresentadas dentro da conjuntura de uso. 

Por isso recomendamos, porque mostra de maneira clara, contextualizada e bem direcionada os  procedimentos que precisam ser conhecidos logo no início da carreira de programador.

Categorias
Big Data Programação

Por que você deve aprender Scala?

E por que não aprender Scala? Qual razão pode levar um programador a dispensar o prazer de aprender uma nova linguagem de programação que, além de estar crescendo cada vez mais, é capaz de tornar o processo de codificação mais conciso e funcional?

Scala é uma linguagem de programação multiparadigmática que executa sobre a JVM. É uma linguagem desenvolvida para herdar as vantagens presentes no Java, permitindo também o usuário operar outros paradigmas, como o paradigma funcional, nesse mesmo ambiente. Com Scala, o usuário elabora programas e aplicações, como o próprio nome sugere, escaláveis. 

Escalabilidade

Raymond Roestenbutg, no livro Akka in Action, apresenta uma ferramenta feita em Scala chamada Akka, a qual facilita a programação de aplicações distribuídas utilizando o modelo de programação de Atores. Nele, é apresentado como exemplo uma aplicação para cadastro e venda de ingressos de eventos.

O mais interessante do exemplo é que, o mesmo código, é capaz de lidar desde uma pequena quantidade de eventos a um cenário real de aplicação, mostrando a escalabilidade da tecnologia.

Em expansão

Scala vive um quadro de propagação acelerado, além da adoção do sistema por empresas de alto impacto global, ela possui um alto potencial de expansão por ser requisitada por campos em crescimento, como o de big data, data science, ferramentas para processamento de fluxos de dados em tempo real e treinamento de inteligências artificiais.

Os paradigmas trabalhados por este sistema eram abordados pela teoria desde antes da existência desta linguagem; o porquê da aclamação da Scala se encontra na maneira como ela trabalha esses paradigmas, sua técnica que torna os processos envolvidos nas operações muito mais simples e transparentes. Isso torna o ambiente de programação muito mais confortável para o programador.

Abstrações

Pensemos em uma situação onde seja preciso ler e processar um arquivo com um milhão de linhas. Qual método usar? A maneira mais intuitiva é processar o arquivo linha por linha, modo sequencial. Mas vamos acrescentar a necessidade de paralelizar, ou seja, várias linhas devem ser verificadas ao mesmo tempo.

Em casos como esse, quem usa linguagens como Python, C++, e até mesmo Java, por exemplo, precisará elaborar um código complexo, capaz de assustar muitos programadores só em pensar nele.

Em Scala, o método para resolver a situação anterior é muito mais simples. Você determina qual função será processada e estabelece que é paralelo, adicionando apenas quatro caracteres no início do comando. Esta é uma das vantagens da linguagem, as abstrações que ela traz permitem a resolução de situações já conhecidas, mas de uma maneira muito mais fácil.

Dentre as muitas situações em que a Scala se apresenta como o melhor meio de trabalho, podemos destacar a de processamento de dados. Para quem trabalha com Scala, e teve um percurso de contato com outras ferramentas da mesma área, é provável que ela surja como primeiro passo de trabalho para tais casos.

E o processo segue para a etapa de seleção de frameworks como Akka Stream, Apache Flink e Apache Spark, que estão no auge dentro da categoria, sendo ferramentas atuais e poderosas. 

Paradigma Funcional

As possibilidades apresentadas, o nível de abstração com o qual se pode trabalhar e a maneira na qual ele é implementado em grande escala tornam o paradigma funcional a função mais interessante desta linguagem.

Ao mesmo tempo, para muitas pessoas o paradigma funcional é algo estranho, trabalhar a função como valor pode ser difícil. Mas essa não é uma questão particular a Scala, a quem o paradigma funcional se apresenta como dificuldade, diversas linguagens que o utilizam trarão essa questão.

O paradigma funciona como ponto enriquecedor, Scala não é difícil. Scala é muito legível, e isso é realçado mediante a comparação com outras linguagens de programação.

Em muitas aplicações, um código em Scala é tão exato que é como ler uma frase, a instrução presente no programa é uma frase em inglês, perfeitamente legível. 

Pontos de destaque

Dentre tudo que pode ser dito sobre a linguagem, algumas características merecem destaque no delineamento do perfil da ferramenta. São elas: portabilidade: por ser uma linguagem que roda na JVM, ela também carrega essa característica.

  • Legibilidade: a simplificação dos códigos tornam sua leitura mais precisa.
  • Escalabilidade: em um projeto feito em Scala é possível escalá-lo para trabalhar em situações mais complexas, como por exemplo, um serviço consegue trabalhar com um número maior de usuários simultaneamente.
  • Didática: é uma linguagem que possibilita trabalhar muitos tipos e números de casos, e de uma maneira mais orgânica e intuitiva. Isso a coloca como boa opção a quem ministra aulas de programação.

Só Scala resolve?

Como quase tudo em programação, um mesmo problema pode ser resolvido em diferentes linguagens, a questão é o nível de trabalho necessário em cada uma delas. Toda linguagem usa como base uma outra linguagem, ou seja, sempre existirá uma linguagem mais básica para processar aquela linguagem.

Então, não existe uma situação que só possa ser resolvida com Scala, você pode solucionar por outros mecanismos, o porém se apresenta quando consideramos o esforço necessário para isso.

Scala é uma grande representante do sucesso nos esforços para simplificar processos complexos de programação. Ela funciona, e funciona bem.

 

Categorias
Ciência de Dados Machine Learning Programação Python

Python: 10 motivos para aprender a linguagem em 2019

O Python é uma linguagem de programação de alto nível e muito versátil. Ela suporta tanto a programação orientada a objetos quanto a programação estruturada. Com Python, você pode acessar bibliotecas nativas que oferecem funcionalidades para desenvolvimento de projetos e implementação de aplicações complexas. A tecnologia está presente nos códigos do Instagram, Netflix, Spotify, Reddit, Facebook, Google e muitos outros.

Desenvolvida pelo matemático holandês Guido van Rossum, atualmente a linguagem faz parte de um modelo de desenvolvimento comunitário, gerenciado pela organização sem fins lucrativos Python Software Foundation.

Lançada no começo dos anos 1990, a linguagem tem ganhado crescente notoriedade nos últimos anos, tornando-se uma das mais populares entre programadores, principalmente pela sua funcionalidade com dados, big data e inteligência artificial.

Pensando em todo o seu potencial para a sua carreira, na lista abaixo, a redação do IT Trends separou 10 motivos para aprender Python em 2019.

1. Python é muito popular

IEEE Spectrum 2018, ranking anual das principais linguagens de programação, definiu o Python como uma das linguagens mais usadas entre programadores e projetos.

2. Conhecimentos em Python são exigidos por muitas vagas

Embora Python seja uma linguagem extremamente popular, ainda faltam desenvolvedores com conhecimento da tecnologia no mercado de trabalho. Saber Python pode não só contar como critério de desempate, como também é um conhecimento muito valorizado por empresas, principalmente para posições de desenvolvedor full-stack.

3. Python tem muitas bibliotecas e estruturas

Há mais de 125.000 bibliotecas Python de terceiros que tornam a linguagem extremamente popular em diversos campos do desenvolvimento web, configuração de nuvem, análise de dados, machine learning e inteligência artificial. Sua versatilidade reforça a sua quase onipresença atual.

4. Python e a ciência de dados

Dentro do universo da ciência de dados, Python é a linguagem mais popular entre os cientistas, analistas e pesquisadores. Um dos principais motivos é que ela fornece muitas bibliotecas e estruturas para a análise de dados, como PyBrain, NumPy, SymPy, PyMySQL, Pandas e outros. Todas essas bibliotecas são dedicadas para o desenvolvimento de algoritmos, coleta e análise de dados.

5. Inteligência artificial e machine learning

Além de muito usada na ciência de dados, há também muitas bibliotecas eficientes na programação de inteligência artificial e machine learning. Theano, Scikit-learn, Tensorflow estão entre os módulos mais usados para algoritmos de machine learning. Já o Keras, é uma biblioteca de rede neural open source dedicada para aplicações de inteligência artificial.

6. Python é usado no desenvolvimento da Web

Mesmo com características muito técnicas, Python é bastante útil e popular entre desenvolvedores web, pois também possui bibliotecas e estruturas específicas para o desenvolvimento de páginas web, como Django, web2py, Flask, bottle.py, CherryPy, Pyramid e outros. As aplicações Mozilla, Reddit, Spotify, Yelp foram desenvolvidas com ajuda de bibliotecas em Python.

7. Python é universal

Sistemas como Windows, MacOs, distribuições Linux (incluindo Raspberry PI), Solaris, Unix e até FreeBSD conseguem operar programas em Python, se um sistema não roda Python de forma nativa é possível instalar a tecnologia. Veja as opções de sistemas alternativos que suportam a tecnologia aqui.

8. Uma grande comunidade

Há muito conteúdo sobre a linguagem criado por usuários como, documentação, Python Wiki, Fóruns, cursos gratuitos e tutoriais, sendo assim, é possível encontrar praticamente qualquer resposta para suas dúvidas relacionadas à tecnologia em canais oficiais da linguagem.

9. Python é usado para criar interfaces gráficas de usuário (GUI)

Python também é muito utilizado para criar interfaces gráficas de usuário (GUI). Tkinter é a interface de usuário (GUI) padrão da tecnologia, que foi usada na criação da GUI nativa do MaC OS X, distribuições Linux e Windows.

10. Python é usado para “Scripting and Automation”

Além de uma poderosa linguagem de programação, capaz de fazer uma variedade de programas complexos, Python também pode ser usado como uma linguagem de scripts. Um script feito em Python pode automatizar diferentes tarefas que reduzem o tempo de processos, economizando energia e em alguns casos até dinheiro.

Onde aprender Python?

Agora você já sabe os motivos para aprender Python. Mas por onde começar a aprender a linguagem? Reunimos em outra matéria, algumas opções para uma imersão inicial e, o melhor, você não precisa sair de casa para aprender. Acesse a lista aqui.

Sair da versão mobile