Giliard Godoi

Pesquisador. Aluno de Doutorado. Processamento de Língua Natural. Inteligência Artificial. Aprendizado de Máquina. Análise e Visualização de Dados. Programador Python.

A minha experiência estudando pela DataCamp

Uma introdução (a quase tudo) na área de Data Science

Publicado por Giliard Godoi em Categoria: thoughts. Tags: datacamp

DataCamp é focado na área de Data Science e oferece cursos sobre Python, R, SQL e outros cursos menores sobre planilhas eletrônicas, Power BI, Tableu, por exemplo. Os cursos vão desde os primeiros passos dessas linguagens (Python e R) até tópicos mais avançados como análise e visualização de dados, tópicos de estatística, machine learning, deep learning, processamento de linguagem natural, etc.

Como já tenho uma certa experiências com as ferramentas do ecossistema Python, resolvi focar nos cursos dessa área. Por isso, não posso dizer muita coisa sobre os cursos da Linguagem R, mas acredito que muito do que vou dizer aqui também se aplica a esse segundo caso.

Resolvi assinar os serviços da plataforma DataCamp, que estava oferecendo um preço “promocional” de \$65,00 (USD) para o plano anual. Com a conversão do dia (e o IOF) a assinatura saiu por R$ 311,79.

Como é o site?

A DataCamp baseia-se em quatro estágios: os cursos; as práticas diárias; os projetos; e os testes de avaliação. Nesse review eu vou falar um pouco mais sobre os cursos, mas os outros estágios também serão abordados.

Outra característica é a gamificação da plataforma: para cada atividade é atribuído um XP que é acumulado de forma diária. Ao assistir um vídeo ganhamos 50 XP; os exercícios de código valem 100 XP; as práticas diárias valem 250 XP; os projetos valem em torno de 1200 XP.

Essa dinâmica ajuda a nos manter motivados e monitorar o nosso progresso ao longo da semana (apesar do site não mostrar um gráfico dos XPs acumulados nos últimos dias, esse gráfico está disponível no aplicativo da plataforma).

Porém, não tenho certeza se a gamificação é suficiente para manter o engajamento do aluno ao longo das semanas. Mesmo assim, sempre tenho aquele sentimento de superar a minha meta diária e sempre acabo fazendo mais uma atividade (“Hum, estou com 1500XP, quando eu atingir 2000 XP eu paro”).

Por onde começar?

O aluno pode fazer qualquer curso disponível na plataforma ou então escolher seguir trilhas específicas. Existem dois tipos de trilhas: as focadas em habilidades e as orientadas para carreiras. As trilhas também são organizadas de acordo com a tecnologia: Python, R, ou SQL.

As trilhas voltadas para desenvolver habilidades possuem de quatro a seis cursos, e possuem um objetivo bem específico. Alguns exemplos dessas trilhas são: Fundamentos de programação em Python; Manuseio e limpeza de dados; Visualização de dados; Fundamentos de Machine Learning.

Já as trilhas voltadas para carreiras pretendem preparar o aluno para determinadas posições, por exemplo, Programador Python, Analista de Dados, Cientista de Dados, Engenheiro de Machine Learning. Mas eu tenho um pouco de dúvida se somente com os cursos dessas trilhas são suficientes para preparar uma pessoa para uma posição de Engenheiro de Machine Learning, por exemplo.

Esse segundo tipo de trilhas, na verdade, reúne uma sequência de cursos que também são encontrados nas trilhas voltadas à habilidades. Por exemplo, a trilha de Cientista de Dados (Data Scientist) aborda quase os mesmos cursos das trilhas de Manipulação e Limpeza de Dados; Visualização de Dados; Introdução a Estatística; e Machine Learning. No entanto, sempre existirá um curso na trilha-habilidade, que não está incluída na trilha-carreira. Isso impede que o aluno complete duas trilhas de forma simultânea, ao mesmo tempo faz ele querer completar a outra trilha que está quase lá.

Como são os cursos?

Eu diria que os cursos são elaborados com base no princípio da composição, isto é, reunir um conjunto de conceitos muito simples sobre um tema, para que juntos esses pequenos conceitos formem uma ideia maior.

Os cursos são estruturados em três ou quatro capítulos, cada capítulo possui três ou quatro lições; e cada lição possui um vídeo que aborda um tópico bem específico. Por exemplo, um vídeo pode ensinar sobre como filtrar dados de um pandas Data Frame utilizando o acessor loc e oferece alguns exemplos.

Se à primeira vista pode parecer que os conteúdos dos vídeos são rasos, eu diria que, na verdade, existe uma preocupação em não despejar muita informação em 5 minutos de vídeos. Isso apenas dificulta a assimilação do que é realmente importante, e confundiria o aluno — que em muitos pode ser o primeiro contato do aluno com determinado conteúdo.

Os exercícios se dividem em perguntas de múltipla escolha (e uma variação baseada em corresponder cartões) e exercícios de código. Os exercícios de código possuem uma introdução e instruções do que se pede. Existe uma área para digitar o código e um shell interativo com as bibliotecas e os dados já carregados. Ao se plotar um gráfico (que é uma imagem) elas aparecem junto da área de código.

A correção é feita de forma automática, mas para os exercícios de código não tenho certeza como isso é feito. Talvez eles utilizem uma abordagem baseada em teste de software, ou uma comparação de caracteres com um arquivo de resposta, ou um mix dessas duas abordagens. Por exemplo, como poderia ser testado que um trecho de código que gera um gráfico? Comparando a imagem gerada com a imagem esperada?

Os exercícios não fogem muito dos exemplos mencionados nos vídeos. Em caso de dúvida é possível recorrer aos exemplos dos slides para resolvê-los. Nesse sentido, os exercícios funcionam como modo de fixação e prática imediata, e não pretendem fazer o aluno descobrir algo novo que ele não tenha visto.

Como eu já tenho experiência com as bibliotecas pandas, matplotlib e seaborn, os cursos e os exercícios foram uma oportunidade de revisar e consolidar alguns conceitos e usos de algumas funções. Em diversos momentos tive aquela sensação de “Aham! Então é isso”. Por essa razão, eu consegui fazer diversos cursos relacionados a essas bibliotecas em um curto período de tempo.

Por outro lado, em cursos sobre assuntos que eu não domino (como o curso de regressão com a biblioteca statsmodel) eu já senti uma dificuldade maior. Fiquei um pouco frustrado porque não temos com quem tirar dúvidas e fiquei insatisfeito com as explicações. Quando fiz alguns exercícios, apesar de ter feito da forma esperada, eu não entendi muito bem como interpretar o resultado.

Os vídeos são em inglês, mas existe a opção de legendas em português e diversos outros idiomas e também a opção de visualizar o texto completo logo abaixo do vídeo.

Como são as práticas?

As práticas diárias são exercícios relacionados a um determinado curso, mas nem todos os cursos possuem atividades de práticas. Para completar uma rodada é necessário responder cinco questões corretamente, e não há limite de tempo para responder cada questão ou obter cinco acertos. Cada prática concluída é recompensada com 250 XP, demonstrando a importância que se é colocada nessa etapa - é muito fácil obter um alto score diário somente fazendo rodadas de práticas.

Eles também possuem uma preocupação com a carga cognitiva dos exercícios. Eu diria até que é um alívio fazer uma rodada de prática entre uma lição e outra durantes os cursos. As questão são de múltipla escolha e pedem para completar um snippet de código com o nome correto de uma função ou os parâmetros adequados. Novamente, o objetivo principal desses exercícios é a fixação do uso das ferramentas.

Apenas alguns exercícios (não todos) oferecem uma explicação sobre o porquê da resposta dada estar correta ou errada. Além disso, quando se erra uma questão ela tende a aparecer novamente (lembre-se que uma prática é concluída quando se obtém 5 acertos) e isso privilegia a simples memorização e não o entendimento dos porquês.

Como são os projetos?

Os projetos pretendem oferecer uma experiência mãos-na-massa (hands-on) em Data Science e nas tecnologias (ferramentas) abordadas pelos cursos. Esses projetos são divididos em guiados e não guiados, e são do que jupyters notebooks hospedados pela plataforma.

Os projetos guiados são passo-a-passo com explicações detalhadas sobre o que se espera de cada etapa. E novamente não se espera que o aluno seja muito criativo nas soluções mas apenas que lembre do que foi ensinado. Pode parecer que isso seja ruim, mas lembre-se que eles são feitos para aqueles alunos que estão aprendendo e podem ter dificulades somente para responder aquilo que foi pedido.

Acredito que eles utilizam alguma biblioteca de testes para validar as respostas dadas pelos alunos. Ainda não tive tempo de experimentar os projetos não-guiados, mas acredito que eles possuem o estilo de perguntar abertas, sem uma resposta certa ou errada.

Como são os testes de validação?

Os testes de avaliação possuem 15 questões com um limite de tempo de aproximadamente 1 minuto para responder cada questão. A plataforma diz que o teste se adapta às competências do aluno ao longo da própria execução do teste. Ela também informa que a pontuação obtida considera o nível de dificuldade das perguntas, o tempo de resposta e claro, se ela está certa ou errada. Contudo, ainda não vi nenhum artigo que explica como essa sistemática realmente funciona.

Alguns testes permitem pular determinados cursos (ou melhor seria dizer, completar?). Por exemplo, ao invés de fazer todos os cursos sobre os fundamentos da linguagem Python (definição de variáveis, condicionais, loops de repetição, definição de funções, etc.) eu fiz um teste de avaliação o que me classificou como “avançado” e me permitiu marcar como concluído vários cursos. A pontuação nos posiciona em quartis em relação aos demais alunos que fizeram aquele teste.

Conclusão

De uma forma geral, a plataforma possui uma preocupação sobre a experiência do usuário em ambientes de ensino online. E para quem está iniciando na área os cursos são interessantes pois oferecem uma introdução à vários assuntos.

Nessa mesma linha (e como acontece com diversas outras plataformas de ensino de programação online) os cursos não são focados em teoria, mas sim no uso de determinadas ferramentas e tecnologias. Para se aprofundar mesmo em um assunto é necessário recorrer a outras fontes, outros curos, livros e artigos.

Não que isso seja um completo defeito. Eu mesmo considero útil aprender sobre ferramentas, mas não é o local adequado para quem está procurando se aprofundar sobre o tema ou discutir os recentes avanços na área.

Então, caso você tenha dinheiro sobrando pode ser legal assinar os serviços da plataforma. Mas se não tiver, não se preocupe, você pode tranquilamente se tornar um Cientista de Dados utilizando outros recursos.