Artigo original: https://www.freecodecamp.org/news/data-science-learning-roadmap/

Embora nada realmente mude, exceto a data, um novo ano deixa todos nós com a esperança de começar de novo. Se você adicionar um pouco de planejamento, algumas metas bem planejadas e um roteiro de aprendizagem, terá uma ótima receita para um ano cheio de crescimento.

Esta postagem pretende fortalecer seu plano, fornecendo uma estrutura de aprendizagem, recursos e ideias de projetos para ajudá-lo a construir um portfólio sólido de trabalho apresentando experiência em ciência de dados.

Apenas uma observação: preparei este roteiro com base na minha experiência pessoal em ciência de dados. Este não é o plano de aprendizagem definitivo. Você pode adaptar este roteiro para melhor se adequar a qualquer domínio ou campo de estudo específico que lhe interesse. Além disso, ele foi criado com o Python em mente, pois eu pessoalmente prefiro essa linguagem.

O que é um roteiro de aprendizagem?

Um roteiro de aprendizagem é uma extensão de um programa de estudos. Ele traça um mapa de habilidades de vários níveis com detalhes sobre quais habilidades você deseja aprimorar, como você medirá o resultado em cada nível e técnicas para dominar ainda mais cada habilidade.

Meu roteiro atribui pesos a cada nível com base na complexidade e semelhança de sua aplicação no mundo real. Eu também adicionei um tempo estimado para um iniciante completar cada nível com exercícios e projetos.

Aqui está uma pirâmide que descreve as habilidades de alto nível em ordem de complexidade e aplicação no setor.

IMG-0021
Atividades de Ciência de Dados em ordem de complexidade

Ela marcará a base de nossa estrutura. Agora teremos que nos aprofundar em cada um desses estratos para completar nossa estrutura com detalhes mais específicos e mensuráveis.

A especificidade vem do exame dos tópicos críticos em cada camada e dos recursos necessários para dominar esses tópicos.

Podemos medir o conhecimento adquirido, aplicando os tópicos aprendidos a vários projetos do mundo real. Adicionei algumas ideias de projetos, portais e plataformas que você pode usar para medir sua proficiência.

NOTA importante: viva um dia de cada vez, um vídeo/blog/capítulo por dia. É um amplo espectro para se cobrir. Não se sobrecarregue!

Vamos mergulhar profundamente em cada um desses estratos, começando pela base.

1. Como aprender sobre programação ou engenharia de software

(Tempo estimado: 2-3 meses)

Primeiro, certifique-se de ter boas habilidades de programação. Toda descrição de trabalho de ciência de dados exigirá experiência em programação em pelo menos uma linguagem.

Tópicos específicos de programação a serem conhecidos incluem:

  • Estruturas de dados comuns (tipos de dados, listas, dicionários, conjuntos, tuplas), funções, lógica, controle de fluxo, algoritmos de busca e ordenação, programação orientada a objetos e trabalho com bibliotecas externas
  • Scripts de SQL: consultas a bancos de dados usando JOIN, funções de agregação e subconsultas
  • Tranquilidade no uso do Terminal, controle de versão usando Git e GitHub

Recursos para aprender Python:

  • learnpython.org [gratuito]— um recurso gratuito para iniciantes. Abrange todos os tópicos básicos de programação desde o básico. Você dispõe de um shell interativo para praticar esses tópicos lado a lado.
  • Kaggle [gratuito]— um guia gratuito e interativo para aprender Python. É um tutorial curto que cobre todos os tópicos importantes para a ciência de dados.
  • Certificações de Python no freeCodeCamp [gratuito] – o freeCodeCamp oferece diversas certificações baseadas em Python, como computação científica, análise de dados e aprendizagem de máquina.
  • Curso de Python no canal do freeCodeCamp no YouTube [gratuito] — Este é um curso de 5 horas que você pode fazer para praticar os conceitos básicos.
  • Python intermediário [gratuito]— Outro curso gratuito apresentado no freecodecamp.org pelo Patrick.
  • Python for Everybody Specialization (Especialização em Python para todos) no Coursera [pago] — esta é uma especialização que abrange conceitos de nível iniciante, estruturas de dados em Python, coleta de dados da web e uso de bancos de dados com Python.

Recursos para aprender Git e GitHub

  • Guia para Git e GitHub [gratuito]: complete esses tutoriais e laboratórios para ter uma ideia sólida de controle de versão. Esses cursos o ajudarão a contribuir ainda mais para projetos de código aberto.
  • Aqui temos um curso intensivo sobre Git e GitHub no canal do freeCodeCamp no YouTube.

Recursos para aprender SQL

Meça sua experiência resolvendo muitos problemas e construindo pelo menos 2 projetos:

  • Resolva muitos problemas em: HackerRank (recomendado para iniciantes) e LeetCode (resolva questões fáceis ou de nível médio)
  • Extração de dados de um site/endpoints  de APIs — tente escrever scripts em Python para extrair dados de páginas da web que permitem scraping (raspagem da web) como o soundcloud.com. Armazene os dados extraídos em um arquivo CSV ou em um banco de dados SQL.
  • Jogos como pedra-papel-tesoura, girar o novelo, forca, simulador de rolagem de dados, jogo da velha e assim por diante.
  • Aplicativos web simples, como um programa para baixar vídeos do YouTube, bloqueador de sites, reprodutor de música, verificador de plágio e assim por diante.

Hospede esses projetos em páginas do GitHub Pages ou simplesmente mantenha os códigos no GitHub para que você aprenda a usar o Git.

2. Como aprender sobre coleta de dados e  "data wrangling" (limpeza/manipulação)

(Tempo estimado: 2 meses)

Uma parte significativa do trabalho de ciência de dados está centrada em encontrar dados adequados que possam ajudá-lo a resolver seu problema. Você pode coletar dados de diferentes fontes legítimas — scraping (raspagem - se o site permitir), APIs, bancos de dados e repositórios disponíveis publicamente.

Uma vez que você tenha os dados em mãos, como um analista, frequentemente, você se encontrará limpando dataframes, trabalhando com arrays multidimensionais, usando cálculos descritivos/científicos e manipulando dataframes para agregar dados.

No mundo real, raramente, os dados são encontrados limpos, formatados e prontos para uso. Pandas e NumPy são as duas bibliotecas que estão à sua disposição para transformar dados brutos em dados prontos para análise.

À medida que você começar a se sentir confortável escrevendo programas em Python, sinta-se à vontade para começar a ter aulas sobre o uso de bibliotecas como pandas e numpy.

Recursos para aprender sobre coleta e limpeza de dados:

Ideias de projetos de coleta de dados:

  • Colete dados de um site/API (aberto para consumo público) de sua escolha e transforme os dados para armazená-los de diferentes fontes em um arquivo ou tabela agregada (DB). Exemplos de APIs incluem: TMDB, quandl, Twitter API, e assim por diante.
  • Escolha qualquer conjunto de dados disponível publicamente e defina um conjunto de perguntas que você gostaria de responder depois de analisar o conjunto de dados e o domínio. Manipule os dados para encontrar respostas para essas perguntas usando Pandas e NumPy.

3. Como aprender sobre análise exploratória de dados, Business Acumen, and Storytelling

(Tempo estimado: 2–3 meses)

A próxima etapa a ser dominada compreende a análise de dados e o storytelling (contar a história, em inglês). Extrair insights dos dados e, em seguida, comunicá-los aos gestores, fazendo uso de expressões simples e visualizações é a principal responsabilidade de um analista de dados.

A parte do storytelling exige que você seja proficiente em visualização de dados, além de possuir excelentes habilidades de comunicação.

Tópicos específicos de análise de dados exploratórios e storytelling para aprender incluem:

  • Análise de dados exploratória — definição de perguntas, tratamento de dados faltantes, pontos fora da curva (também conhecidos pela palavra em inglês, outliers), formatação, filtragem, análises univariada e multivariada.
  • Visualização de dados — construção de gráficos, usando bibliotecas como matplotlib, seaborn e plotly. Saber como escolher o gráfico certo para comunicar as conclusões obtidas a partir dos dados.
  • Desenvolvimento de dashboards — uma boa porcentagem de analistas usa apenas o Excel ou uma ferramenta especializada como Power BI e Tableau para criar dashboards que resumem/agregam dados para ajudar os gestores a tomar decisões.
  • Conhecimento de negócios: faça as perguntas certas e responda as que são realmente relacionadas às métricas de negócios. Pratique a redação de relatórios, blogs e apresentações claras e concisas.

Recursos para aprender mais sobre análise de dados:

Ideias de projetos de análise de dados

4. Como aprender sobre engenharia de dados

(Tempo estimado: 4–5 meses)

A engenharia de dados sustenta as equipes de Pesquisa e Desenvolvimento, tornando os dados limpos acessíveis a engenheiros de pesquisa e cientistas em empresas orientadas a big data. É um campo por si só, e você pode pular esta seção se quiser se concentrar apenas na parte dos algoritmos estatísticos.

As responsabilidades de um engenheiro de dados incluem construir uma arquitetura de dados eficiente, simplificar o processamento de dados e manter sistemas de dados em grande escala.

Engenheiros de dados usam o Shell (interface de linha de comando – CLI), SQL e Python/Scala para criar pipelines de extração, transformação e carga de dados (ETL, do inglês Extract, Transform and Load), automatizar tarefas do sistema de arquivos e otimizar as operações do banco de dados para torná-las de alto desempenho.

Outra habilidade essencial é implementar essas arquiteturas de dados que exigem proficiência em provedores de serviços em nuvem como AWS, Google Cloud Platform, Microsoft Azure e outros.

Recursos para aprender engenharia de dados:

Ideias de projetos/preparação para certificações em engenharia de dados:

  • AWS Certified Machine Learning (US$ 300) — um exame supervisionado oferecido pela AWS adiciona algum peso ao seu perfil (embora não garanta nada), requer uma compreensão razoável dos serviços da AWS e ML.
  • Professional Data Engineer — este também é um exame supervisionado e avalia suas habilidades para projetar sistemas de processamento de dados, implantar modelos de aprendizagem de máquina em um ambiente de produção e garantir a qualidade e a automação das soluções.

5. Como aprender sobre Estatística Aplicada e Matemática

(Tempo estimado: 4–5 meses)

Os métodos estatísticos são uma parte central da ciência de dados. Quase todas as entrevistas de ciência de dados se concentram predominantemente em estatísticas descritivas e inferenciais.

As pessoas geralmente começam a programar algoritmos de aprendizagem de máquina sem uma compreensão clara dos métodos estatísticos e matemáticos subjacentes que explicam o funcionamento desses algoritmos. Esta, claro, não é a melhor maneira de fazer isso.

Tópicos em que você deve se concentrar em Estatística Aplicada e Matemática:

  • Estatística Descritiva — ser capaz de resumir os dados é uma habilidade poderosa, mas nem sempre. Aprenda sobre medidas de posição (média, mediana, moda, estatísticas ponderadas, estatísticas truncadas) e variabilidade para descrever os dados.
  • Estatística Inferencial — projetar testes de hipóteses, testes A/B, definir métricas de negócios, analisar os dados coletados e resultados de experimentos usando intervalo de confiança, valor p e valores alfa.
  • Álgebra Linear, Cálculo uni e multivariado para entender as funções de custo, gradiente e otimizadores em aprendizagem de máquina.

Recursos para aprender sobre Estatística e Matemática:

Ideias de projetos de Estatística:

  • Resolva os exercícios fornecidos nos cursos acima e tente passar por vários conjuntos de dados públicos onde você pode aplicar esses conceitos estatísticos. Faça perguntas como “Existem evidências suficientes para concluir que a idade média das mães que dão à luz em Boston é superior a 25 anos no nível de significância de 0,05”?
  • Tente projetar e executar pequenos experimentos com seus colegas/grupos/turmas, pedindo que eles interajam com um aplicativo ou respondam a uma pergunta. Execute métodos estatísticos nos dados coletados quando tiver uma boa quantidade de dados após um período de tempo. Isso pode ser muito difícil de conseguir, mas deve ser muito interessante.
  • Analise os preços das ações, criptomoedas e hipóteses de design em torno do retorno médio ou qualquer outra métrica. Determine se você pode rejeitar a hipótese nula ou deixar de fazê-lo usando valores críticos.

6. Como aprender sobre aprendizagem de máquina e IA

(Tempo estimado: 4–5 meses)

Depois de se questionar e passar por todos os principais conceitos mencionados acima, agora você deve estar pronto para começar com os sofisticados algoritmos de ML (Machine Learning - Aprendizagem de Máquina).

Há três tipos principais de aprendizagem:

  1. Aprendizagem supervisionada — inclui problemas de regressão e classificação. Estude regressão linear simples, regressão múltipla, regressão polinomial, Naive Bayes, regressão logística, KNNs, árvores de classificação, modelos ensemble. Saiba mais sobre as métricas de avaliação.
  2. Aprendizagem não supervisionada— agrupamento e redução de dimensionalidade são as duas aplicações amplamente utilizadas de aprendizagem não supervisionada. Mergulhe profundamente em PCA, agrupamento K-means, agrupamento hierárquico e misturas gaussianas.
  3. Aprendizagem por reforço (não obrigatório*) — ajuda você a construir sistemas de autorrecompensa. Aprenda a otimizar recompensas, usando a biblioteca TF-Agents, criando Q-networks profundas e assim por diante.

A maioria dos projetos de ML precisa que você domine várias tarefas explicadas neste artigo.

Recursos para aprender sobre Aprendizagem de Máquina:

Especialização em Deep Learning na deeplearning.ai

Para aqueles que estão interessados em mergulhar ainda mais em Deep Learning, você pode começar concluindo esta especialização oferecida pela deeplearning.ai e o livro Hands-On. Isso não é tão importante do ponto de vista da ciência de dados, a menos que você esteja planejando resolver um problema de visão computacional ou NLP (do inglês Natural Language Processing - processamento de linguagens naturais).

Deep Learning merece um roteiro dedicado. Vou criar um com todos os conceitos fundamentais em breve.

Acompanhe seu progresso de aprendizagem

Também criei uma página no Notion onde você poderá acompanhar sua aprendizagem. Você pode personalizá-la de acordo com suas necessidades e usá-la para acompanhar seu progresso, ter acesso fácil a todos os recursos e seus projetos.

Aqui está o link.

Além disso, aqui está a versão em vídeo deste artigo:

Ciência de dados com Harshit

Esta é apenas uma visão geral de alto nível do amplo espectro da ciência de dados. Você pode querer se aprofundar em cada um desses tópicos e criar um plano de menor rigor baseado em conceitos para cada uma das categorias.

Se este tutorial foi útil para você, confira os cursos do autor sobre Ciência de Dados e Aprendizagem de Máquina na Wiplane Academy. Eles são abrangentes, mas compactos, e ajudam você a construir uma base sólida de trabalho para mostrar.