Como usar este livro

Ferramentas

Este livro foi pensado e planejado tendo em mente pesquisadores(as) em formação com pouco ou nenhum conhecimento em programação, análise de dados e estatística. Por este motivo, a estrutura do livro foi concebida pensando num trajeto em que, ao fim, possa-se ser capaz de planejar uma coleta de dados, limpar e tratar os dados e executar análises com uma base sólida de estatística.

Estrutura

O livro conta com as seguintes partes:

  1. Preparação: Nesta parte, buscamos orientar os(as) leitores(as) no aprendizado de fundamentos que servirão para o seu desenvolvimento como pesquisador(a), mas principalmente sob a perspectiva de desenvolvedor(a) de software. Começamos com os Fundamentos de Interface de Linha de Comando, que (apesar de opcional), é algo que tem grande impacto na produtividade em longo prazo. Em seguida, discutimos as várias formas de se fazer a Instalação do Python por meio de prós e contras das alternativas disponíveis atualmente. Consequentemente, vemos como organizar projetos de pesquisa utilizando Ambientes Virtuais e instalação de bibliotecas para evitar conflitos. Com estes passos feitos, partimos para um ambientação aos notebooks Jupyter e seu uso (notebooks, lab e outras IDEs) além de discorrer sobre como organizar visualmente seus projetos no Jupyter por meio da liguagem de marcação Markdown. Finalmente, são apresentados os rudimentos de gestão de Versionamento com Git e GitHub.

  2. Programação em Python: Este livro não tem como propósito a formação de desenvolvedores(as) em Python, mas tenta seguir princípios para o seu desenvolvimento profissional de longo prazo. Nesta parte, vemos os blocos básicos da programação - Variáveis e operacões matemáticas e Booleanos e comparações. Em seguida, vemos estruturas mais avançadas como Texto, Funções, Espaço de nomes, Listas, Dicionários e Conjuntos. Na sequeência são apresentadas a Estrutura condicional if, Iterações com for, Iterações com while, Iterações com map() e Iterações com compreensão de lista e compreensão de dicionário. Finalmente, encerramos esta parte com Programação orientada a objetos, Criação de classes e objetos, Criação de atributos e métodos, Criação de subclasses e Documentação com docstrings.

  3. Limpeza e tratamento de dados: Esta parte prepara o(a) leitor(a) para as atividades de coleta, limpeza, manipulação e tratamento de dados. São apresentadas as principais bibliotecas (Pandas, Numpy).

  4. Análise de dados e estatística:

  5. Visualização de dados

  6. Desenvolvimento futuro:

Notas

Em cada parte você encontra diversas instâncias de dicas, avisos e mais. Veja abaixo os tipos:

Nota

Notas são comentários de importância local. Servem para chamar atenção a algo específico sendo tratado no momento.

Dica

Sempre há espaço para uma Dica em quaisquer situações da nossa vida, e aqui não é diferente.

Importante

Importante se aplica a diversas situações de teoria ou programação que necessitam de maior foco ao longo do livro.

Cuidado

Cuidado se refere a algo que necessita de maior atenção. Por exemplo, pode se referir a um problema teórico, prático ou técnico que afeta o resultado de uma ação.

Perigo!

O nome é autoexplicativo - Perigo se refere a situações em que você pode criar problemas graves no seu código ou na sua pesquisa.

Erro

Erro é uma instância de algo que não sai como esperamos. Não necessariamente é perigoso, mas pode necessitar de atenção especial.

Veja também

Este livro não é uma obra extensiva a respeito de programação, análise de dados, estatística ou metodologia de pesquisa. Notas do tipo Veja também levam a recursos fora do livro / repositório.

Exercícios e práticas

Cada seção do livro pode conter exercícios. No momento, os exercícios não são interativos (mais adiante pretendemos integrar a biblioteca jupyter-quiz para acrescentar interação). Cada exercício tem uma solução sugerida, escondida por um botão. Veja o exemplo abaixo:


Exercício 1: Clique no botão abaixo para ver a solução sugerida:

É altamente sugerido que você faça os exercícios na mão - isto é digitando comando a comando. Isto é importante sobretudo para iniciantes em programação.

Importante

Da mesma forma como no aprendizado de línguas naturais (como inglês, espanhol, etc.), a repetição é chave para automatização. Um falante fluente numa língua raramente fica pensando em como exprimir um pensamento. Guardadas as devidas proporções, um programador trabalha de forma similar. Você pode rodar os códigos prontos do repositório do livro, mas aprenderá mais se esforçando sozinho(a).

Painel superior

Este livro foi construído com base numa biblioteca chamada Jupyter Book. Isto quer dizer que cada parte deste livro é na verdade um documento markdown (texto e formatação) ou um notebook Jupyter. Os notebooks Jupyter são interativos e logo adiante você aprenderá a usá-los. Por este motivo, toda pagina tem um menu em cima (vide a figura abaixo):

Painel do GitHub

Estes três botões permitem, respectivamente:

  • Ver o livro em tela cheia

  • Ver o repositório do livro ou abrir um issue (ver seção Git e GitHub)

  • Baixar o conteúdo da página em .pdf ou .ipynb (a extensão do notebook Jupyter)

Uma vez que é possível baixar o notebook, fica fácil rodar sem ter que estudar. Veja a nota acima sobre os benefícios pedagógicos de fazer seu próprio código.