Criando o SEU plano de estudo em Engenharia de Dados

Bernardo Costa
10 min readFeb 1, 2022

--

Você que está começando na área de Engenharia de Dados, com dificuldades de achar a sua primeira posição no mercado ou com dificuldades de crescer onde está, esse artigo foi feito especialmente para você.

Conforme prometido no artigo Leia isso antes de ir para Engenharia de Dados, vou aprofundar, nesse artigo extendido, o método que uso para formar o meu plano de estudo.

A coisa mais importante que vejo que falta nesses planos de estudo genéricos da Internet, para Engenharia de Dados ou para qualquer outra coisa, é a personalização. Esses planos servem bem para uma pessoa que caiu de paraquedas, mas não servem pra mim que já tenho experiência na área e quero continuar me desenvolvendo, não servem para as pessoas que estão começando, pois desconsideram seu background e, por transferência, não vão servir para você que tem suas próprias circunstâncias. Dito isso, é importante saber criar um plano personalizado para os seus objetivos e levando em conta as suas próprias circunstâncias, garantindo que ao seguir o plano montado, estará chegando mais perto do seu objetivo.

O Método

Como funciona esse método? Bom, você está tentando entender quais os tópicos, técnicas, tecnologias, você tem que se aprofundar para se tornar melhor na Engenharia de Dados, certo?

O que vou falar aqui é transferível para outras áreas e pode ajudar também você, Líder, a montar um plano de desenvolvimento para as pessoas da sua equipe terem um caminho seguro para o desenvolvimento delas.

1. No que você pretende se desenvolver?

A primeira coisa a fazer é decidir qual grande área você está pensando em se desenvolver. Nossa grande área aqui é a Engenharia de Dados, uma área técnica. Nada impede de você querer se desenvolver em outros campos maiores, como simplesmente Computação, ou outros menores, como Lideranças de equipes de Engenharia de Dados. Você é livre. Lembre-se que esse é o SEU plano.

2. Escopo

Escolhida a área, Engenharia de Dados, vamos ao próximo passo necessário: descobrir o escopo. O que um Engenheiro de Dados faz mesmo?

Para esse primeiro exemplo, vamos supor que o plano é para alguém começando na área. Para alguém ainda "cru", descobrir quais as habilidades necessárias para Engenharia de Dados é o primeiro passo. Eu gosto muito desse gráfico de Radar das habilidades necessárias para Engenharia de Dados.

DISCLAIMER: Essa é uma configuração possível para Engenharia de Dados. Você pode ter outras configurações, achando que uma área deveria ser mais ou menos contemplada, baseada na sua empresa e experiência. Ótimo, sem problemas, monte o SEU gráfico de radar e use-o para o restante do exercício.

Gráfico de radar das habilidades de Engenharia de Dados

Esse gráfico radar foi tirado de [1]. Infelizmente as imagens do artigo estão quebradas. Consegui recuperar apenas esse radar, mas seria ótimo se conseguíssemos recuperar também os radares de Analista de Dados e o de Cientista de Dados. Por causa desse infortúnio, mentalize como ficaria o radar para mais áreas de dados, como, Engenharia de Machine Learning, Análise de Dados, Ciência de Dados, etc. Isso o ajudará a entender o porquê algumas coisas são mais contempladas do que outras.

| Update 03/02/2022 |

Conseguí com o @Fernando Costa Nogueira os outros gráficos de radar de Ciência de Dados e de Análise de Dados, seguem:

Gráfico de radar das habilidades de Ciência de Dados
Gráfico de radar das habilidades de Análise de Dados

Logo, considerando o radar, nosso amigo que está iniciando na área deveria conseguir listar essas habilidades, começando com as que tem mais pontos, assim:

  • Programação: 6 pontos
  • Big Data: 6 pontos
  • Engenharia de Software: 6 Pontos
  • Engenharia de Dados: 6 Pontos
  • Bancos de Dados: 6 Pontos
  • Deploy de Modelos de ML: 5 Pontos
  • Data Wrangling*: 4 pontos
  • Modelagem de Modelos de ML: 3 pontos
  • Estatística: 2 pontos
  • Visualização de Dados: 2 pontos
  • Negócio: 2 pontos

*pode ser traduzido como limpeza de dados ou manipulação de dados.

Não, você não precisa concordar com todos esses pontos. Isso é algo genérico feito por um levantamento. Existem outras funções dentro de Engenharia de Dados que exigem mais ou menos desses pontos. Eu, particularmente modificaria alguns pontos dessa lista, baseado na minha experiência, para Engenharia de Dados:

  • Deploy de Modelos de ML: 5 Pontos → 1 Pontos. Já temos bem consolidadas posições na área de ML Ops que cuidam especificamente disso.
  • Data Wrangling: 4 pontos → 5 Pontos.
  • Modelagem de Modelos de ML: 3 pontos → 1 ponto.
  • Negócio: 2 pontos → 3 pontos. Você será mais valioso se entender mais disso aqui, talvez 4 para as pessoas mais ousadas. Leia [11] e [12], vai te ajudar bastante.

Como isso não é algo preto no branco, você vai utilizar mais de um fator para chegar nos itens, como, seu gosto pessoal, suas aptidões, a posição que está buscando assumir, o que a posição que está buscando exige mais, etc.

2.1 Outras formas de achar o conjunto de habilidades

Uma outra forma muito boa de achar esse conjunto de habilidades é procurar o que as empresas estão buscando como necessário, ideal e diferencial para as suas vagas. Isso costuma ser exposto nas descrições das vagas. Essas descrições chegam a te mostrar as tecnologias que a empresa usa, qual cloud, qual serviço de processamento é mais usado, qual linguagem de programação usam, qual banco de análise.

Isso deve ser aliado ao fato de cada empresa ter um nível de divisão de responsabilidades que esperam de um Engenheiro de Dados — umas mais voltadas para produtos, outras para ferramentas terceiras, outras para escrita de código — tornando possível usar essas informações para se preparar para uma posição específica ou, o que recomendo, entender o que o mercado está usando, o que é comum e o que é específico de cada empresa. Ao final desse estudo, você conseguirá criar o seu próprio gráfico de radar de habilidades.

2.2 O Mentor

Para mim, uma das formas mais eficazes para achar esse conjunto de habilidades é achar um mentor

Mentores vão te guiar, te ajudar a otimizar todos os seus esforços para alcançar os objetivos.

Se você tiver a oportunidade de achar uma pessoa dessas, com experiência e que esteja disposta a te ajudar, isso acelerará muito seu desenvolvimento. Já vi profissionais renomados oferecendo calls de meia hora de mentoria por alguns dólares que serão doados para alguma instituição de caridade. Um baita investimento em você.

3. O que você já sabe

Essa é a parte mais importante para esse método funcionar. Vamos fazer uma reflexão sincera em cima da nossa lista de habilidades. Nosso objetivo é saber para cada item o que de fato você já estudou sobre aquilo. Esse é o primeiro passo para saber o que precisará estudar posteriormente.

Para cada item da lista, liste quais livros, quais cursos, aulas, palestras, você leu/assistiu sobre o tema. Vamos fazer isso no nosso exemplo hipotético:

Programação

Reflexão:

“Em programação, para engenharia de dados, o mais comum utilizado é Python, Java e Scala. A maioria das posições exigem Python. Seria interessante saber Python. Mas antes, eu tenho algum débito técnico de programação? Sei boas práticas? Quais livros sobre isso estudei? É realmente mais fácil aprender Python do que aprender a programar. Aprender Python é como aprender a fazer um brigadeiro e aprender a programar é como aprender a técnica da confeitaria.”

Livros que já li sobre isso:

  • Deitel do Java [2].

Cursos:

  • POO da faculdade

Conclusão:

“Não estudei seriamente sobre programação depois que sai da faculdade. Fiz uma disciplina e li um livro introdutório. Preciso ainda me aprofundar em Python, nas técnicas utilizadas e entender como difere de outras linguagens. Seria interessante buscar talvez um curso para conhecer Python e depois um livro para se aprofundar. Se consideramos esse assunto de programação importante, investiríamos um tempo nisso.”

Plano:

  • Descobrir um curso de Python para aprender rápido a escrever algum código.
  • Ler o Livro Python Fluente, para me especializar nos fundamentos dessa linguagem [3].

Big Data

Reflexão:

“Eu estudei bastante Big Data. Na faculdade existiam cursos sobre isso. A única coisa que talvez falte, baseado nas vagas das empresas que procurei, é maior familiaridade com ambientes de nuvem, nunca utilizei nada. As vagas aparecem sempre Spark, isso me preocupa, dado que eu sei Big Data, sei vários serviços, mas foquei em ferramentas prontas, não estudei Spark ainda.”

Livros que já li sobre o tema:

  • Big data para leigos [4].
  • Sistemas distribuídos [5].

Cursos:

  • Curso de Hadoop

Conclusão:

“Já fui introduzido ao tema na faculdade. Talvez trabalhando como Data Platform engineer, em empresas com clusters desses, conseguiria apoiar e começar a me desenvolver na prática. Gerenciar esses cluster na nuvem, sem serviços prontos como Amazon EMR ou GCP Dataproc, é quase tão difícil quanto fazer fisicamente. Por conta disso, é mais fácil de encontrar os clusters de Hadoop rodando nesses serviços de Cloud. Preciso escolher uma Cloud e estudar como rodar Hadoop lá. Eu já conheço os conceitos de Hadoop, os Vs do Big Data, sistemas distribuídos. Preciso então estudar o processamento distribuído em memória, base para o Spark, e depois de uma passada em como rodar isso na nuvem, com Amazon EMR, por exemplo. Nesse ponto da jornada é melhor estudar AWS, maior nuvem, e estudar as outras apenas se precisar. Ouvi dizer que conhecimentos de Cloud são mais transferíveis do que parecem”

Plano:

  • Spark, the definitive guide [6].
  • Advanced Analytics with Spark [7].
  • Estudar tutoriais de Amazon EMR [8].

Entendendo a lógica do métodos

Entendeu a lógica da coisa? Descobrir o que você precisa aprender, meditar para mapear o que você já sabe sobre o tema seriamente e, por fim, criar a lista do que você precisaria estudar para saber o que você precisa saber, mas ainda não sabe.

Defina um período para estudar pelo menos parte dos pontos que você mapeou, pode ser mensal ou bimestral, e repita. Se você estudar duas horas por dia, todo dia, está ótimo! Ter Consistência é muito mais importante do que ter lapsos esporádicos de genialidade— e só entre nós, não somos gênios mesmo.

Ciclo de Desenvolvimento

A ideia deste processo é que você irá não só aprendendo, mas descobrindo mais coisas que precisa aprender. Cada ciclo desses você terá aprendido tanta coisa, tomado conhecimento de tanta coisa que não sabia que deverá voltar e pensar, "o que eu preciso aprender agora, dado essas novas coisas que eu sei?", e assim vai. É um processo contínuo de expansão de conhecimento, de expansão da sua consciência.

Depois de um ciclo

Veja o que pode acontece depois de um ciclo desses hipotéticos que nosso amigo fez.

Retrospectiva — Big Data

Reflexão:

“Estudei o curso de Spark, the definitive guide [6] e o curso de EMR [8]. Meu conhecimento de Spark parece bom para o que eu precisava fazer. Ficaram muitas dúvidas sobre orquestração dos jobs e o controle dos catálogo de Dados. Vou focar nisso para o próximo ciclo. Não li o Advanced Analytics with Spark [7] ainda, mas talvez precise no futuro."

Livros que já li sobre o tema (Vamos adicionar o que foi feito):

  • Big data para leigos [4].
  • Sistemas Distribuídos [5].
  • Spark, the definitive guide [6] (Novo).

Cursos (Vamos adicionar o que foi feito):

  • Curso de Hadoop
  • Estudar tutoriais de Amazon EMR [8] (Novo).

Conclusão:

“Foco desse ciclo é focar em orquestração de pipelines de transformação de dados e em catálogo de dados. Pesquisando, descobri que os orquestradores mais famosos são o Apache Airflow, o Apache NiFi, e ainda temos o AWS Step Function que pode desempenhar papel semelhante”

Plano:

  • Fazer o QuickStart do do Airflow [9].
  • Fazer o GettingStarted do Apache Hive [10].

E assim são feitas as interações. É bom materializar isso, fazer um kanban, um a planilha do excel, ou qualquer coisa que você consiga ir acompanhando ciclo a ciclo. Agora, nosso amigo tem mais conhecimento sobre a área e percebeu que precisa estudar outras coisas para se aprofundar, descobrindo inclusive coisas que nem sabia que existiam.

O resultado depois de um ciclo deve ser essa expansão do seu conhecimento e percepção. Vai se dar satisfeito por alguns temas, querer se aprofundar em outros. Por isso essas jornadas são tão pessoais. As vezes, em algum momento você pode se deparar com Visualização de Dados, se interessar tanto que decide trabalhar com isso. Outro exemplo é ir se especializando dentro de uma área, usando os ciclos para aumentar as habilidades periféricas. Essa é a vantagem, você vai moldando seu próprio caminho.

Conclusão

Perceba que nesse processo você vai se especializando, cada vez estudando coisas que fazem sentido para você, no seu momento de conhecimento e, por isso não tem como ser um plano genérico. Vamos tirar mais proveito desse método se passar com bastante profundidade pela segunda etapa, "O que já sei sobre o tema", pois é o momento de ser honesto consigo mesmo, reconhecer suas limitações, para depois ver o que ainda falta estudar. Isso tem tudo a ver com personalização.

Faça o teste! Implemente esse método por 1 ano e sua vida irá mudar. Seu conhecimento aumentará tanto, a sua consciência sobre os temas que está estudando, que as pessoas não o reconhecerão. "É esse o fulano? como ele aprendeu tanto sobre isso?".

Se você gostou desse artigo, compartilhe com seus amigos. Que tal montar planos junto com eles e organizar momento para conversarem sobre o que aprenderam no último ciclo?

Se tiver alguma dúvida ou quiser ajuda para montar o seu plano, responda aqui ou me siga no Instagram. Nos vemos na semana que vem.

sapientiam autem non vincit malitia

Me Siga!

Recomendações de Estudo:

  1. Diferenças de profissões na área de dados: https://7wdata.be/data-science/whats-the-difference-between-a-data-engineer-a-data-analyst-and-a-data-scientist/
  2. Deitel do Java: https://amzn.to/3ISw2If
  3. Python Fluente: https://amzn.to/3raozOp
  4. Big data para leigos: https://amzn.to/3o9V3Xm
  5. Sistemas Distribuídos: : https://amzn.to/3L6TOlN
  6. Spark, the definitive guide: https://amzn.to/34hYqEw
  7. Advanced Analytics with Spark: https://amzn.to/3s0WTe7
  8. Amazon EMR: https://aws.amazon.com/emr/getting-started/
  9. Apache Airflow Quick Start: https://airflow.apache.org/docs/apache-airflow/stable/start/index.html
  10. Getting Started Apache Hive: https://cwiki.apache.org/confluence/display/hive/gettingstarted
  11. Projeto Fênix: https://amzn.to/3gel7fC
  12. Data Science for Business: https://amzn.to/3AKtvg8

--

--

Bernardo Costa

Head de Dados, Engenheiro de Computação de formação e padeiro nas horas vagas.