├── BIBLIOGRAPHY.md ├── Chapter1.md ├── Chapter3.md ├── Chapter4.md ├── README.md ├── SUMMARY.md ├── book.json ├── cover.jpg ├── cover_small.jpg ├── images ├── ada-lovelace.png ├── cmd-ls.png ├── cmd-mkdir.png ├── cmd-pwd.png ├── cmd-rm.png ├── grace-hopper.jpg ├── nav-into-directories.png ├── python-executable-download-for-mac-osx.png ├── python-executable-download-for-windows.png ├── terminal-example.png └── whereis-python.png ├── layouts └── footer.html └── styles └── pdf.css /BIBLIOGRAPHY.md: -------------------------------------------------------------------------------- 1 | # Referências Bibliográficas 2 | 3 | Este tutorial possui as seguintes referências bibliográficas organizadas alfabeticamente: 4 | 5 | * [Guia do Hardware](http://www.hardware.com.br/) 6 | * [Como computadores representam informação](http://www.hardware.com.br/tutoriais/como-computadores-representam-informacao/representando-zeros-uns-eletronicamente.html) 7 | * [Tutorial Django Girls](http://tutorial.djangogirls.org/) 8 | * [Wikipedia](https://pt.wikipedia.org/) 9 | * [Ada Lovelace](https://pt.wikipedia.org/wiki/Ada_Lovelace) 10 | * [Compilador](https://pt.wikipedia.org/wiki/Compilador) 11 | [* Grace Hopper](https://pt.wikipedia.org/wiki/Grace_Hopper) 12 | * [Linguagens de programação](https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o) 13 | * [UNIVAC I](https://pt.wikipedia.org/wiki/UNIVAC_I) 14 | -------------------------------------------------------------------------------- /Chapter1.md: -------------------------------------------------------------------------------- 1 | # O que é uma linguagem de programação? 2 | É incrível acreditar que por mais complexas que sejam as tarefas realizadas por um computador, elas não passam de um conjunto de 0 e 1 para a máquina. 0 quando não existe corrente elétrica no circuito e 1 quando existe corrente elétrica no circuito. O processador possui milhões de chaves microscópicas, chamadas transistors, que ligam e desligam reagindo à corrente. Algumas chaves, por sua vez, são dispostas em conjuntos de micro circuitos, chamados circuitos lógicos, que interpretam 0 e 1 como informações lógicas um pouco mais complexas, AND, NOT, OR, para ajudar em operações básicas. Com a ajuda dos transistors e outras microscópicas unidades, o processador é capaz de realizar operações como mover a informação 1101000101100011 para o endereço de memória 1111001010100111. 3 | 4 | E se tivéssemos que escrever programas inteiros utilizando apenas 0 e 1 para que pudessemos ser compreendidos pelo computador? Computadores não entendem nada além de dados, endereços e operações básicas em binário, mas através das linguagens de programação somos capazes de criar programas de uma maneira mais conveniente para nós humanos. Uma linguagem de programação é definida por um conjunto de regras semânticas e sintáticas, mais próximas da nossa linguagem natural, que com a ajuda de um compilador são transformadas em instruções mais simples que podem ser compreendidas pelo computador. 5 | 6 | ## A primeira programadora 7 | ![Ada Lovelace](/images/ada-lovelace.png) 8 | 9 | Ada Augusta King, a Condessa de Lovelace, nascida em Londres, 10 de dezembro de 1815, é considerada a primeira programadora da história. Sua mãe a incentivou no aprendizado da matemática para tentar afastá-la de seu pai, poeta inveterado que abandonou a família depois do nascimento da pequena Ada. Na juventude, ela desenvolveu uma amizade com o também matemático e filosófo Charles Babbage. Ela desenvolveu diversos algoritmos para serem computados pela máquina analítica, um dos grandes inventos de Babbage, considerado o primeiro computador da história. Em 1953, mais de cem anos depois de sua morte, suas notas sobre a máquina analítica foram republicadas e reconhecidas como a primeira descrição de um hardware e software. 10 | 11 | ## O primeiro compilador 12 | Quando Grace Hooper desenvolveu o primeiro compilador em 1952 todos ficaram abismados: 13 | 14 | > Eu tinha um compilador rodando e ninguém lhe tocava. Eles me diziam que computadores apenas podiam fazer aritmética. 15 | 16 | 17 | Graças ao seu trabalho foi-se possível criar linguagens de programação de alto nível, não mais era necessário se programar em linguagem de máquina. 18 | 19 | ![Grace Hopper](/images/grace-hopper.jpg) 20 | 21 | Grace Murray Hopper nasceu em Nova Iorque, 9 de dezembro de 1906. Serviu às forças armadas americanas e foi analista de sistemas da Marinha dos Estados Unidos e depois condecorada como almirante. Depois de concluir seus serviços às forças armardas, tornou-se empregada da Eckert-Mauchly Computer e participou da equipe de desenvolvimento do UNIVAC I, o primeiro computador comercial da história. Foi ela quem criou a linguagem de programação Flow-Matic que serviu como base para a criação do COBOL, linguagem que ainda hoje é amplamente utilizada em sistemas críticos, como sistemas de operações bancárias, por exemplo. -------------------------------------------------------------------------------- /Chapter3.md: -------------------------------------------------------------------------------- 1 | # Introdução à linha de comando 2 | 3 | A linha de comando, também conhecida como _cmd_, _CLI_, _prompt_, _console_ ou _terminal_, é uma parte especial do sistema operacional que nos permite realizar ações (algumas comuns como criar uma pasta na área de trabalho) através de comandos. Apesar de parecer complexo, não se assuste! Ela é extremamente útil no nosso dia-a-dia quando programamos em Python e te faz se sentir tão poderosa quanto uma Deusa (Whoa!). 4 | 5 | ## Abrindo a interface de linha de comando 6 | Dependendo do seu sistema operacional, a interface de linha de comando pode ser encontrada em locais diferentes. Ao executá-la, será aberta uma tela preta (ou branca) com um cursor piscando, aguardando que seja digitado algum comando. 7 | ![Print screen da linha de comando com alguns comandos que foram executados](/images/terminal-example.png) 8 | 9 | ### Windows 10 | Chamada de _Prompt de Comando_ no Windows, para acessá-la basta ir em _Iniciar > Todos os programas > Acessórios > Prompt de comando_. 11 | 12 | ### Linux 13 | Conhecida como _Terminal_ em boa parte das distribuições Linux, a sua interface pode ser acessada em diferentes locais dependendo da interface gráfica da sua distribuição. Em distribuições com Gnome como interface gráfica, o Terminal pode ser acessado em _Atividades > Mostrar Aplicativos > Terminal_. Em distribuições com KDE como interface gráfica, o Terminal provavelmente será encontrado em _Aplicativos > Acessórios > Terminal_. 14 | 15 | ### Mac OS X 16 | Conhecida como _Terminal_ no Mac OS X, ela pode ser encontrada em _Aplicativos > Utilitários > Terminal_. 17 | 18 | ## Comandos Básicos 19 | Existem diversos comandos para executar as mais diversas ações na linha de comando. Não se preocupe em memorizar todos, pois é praticamente impossível! Abaixo, seguem alguns comandos básicos que utilizaremos no dia-a-dia e em caso de dúvida não tenha vergonha de recorrer ao Google ;) 20 | 21 | Ao abrir a linha de comando, ela estará sendo executada em um determinado diretório (geralmente a sua pasta de usuário). Ao trabalhar com a linha de comando, tenha sempre em mente que os diretórios do seu computador comportam-se de maneira hierárquica. Uma pasta, está dentro de outra pasta, que contém mais pastas, e assim sucessivamente. A maioria dos comandos que iremos utilizar será para navegar entre diretórios e manipular seus arquivos. 22 | 23 | Por fim, alguns comandos podem ser diferentes no Windows. Neste tutorial, preocupei-me em listar o comando equivalente para usuárias Windows, mas saiba que você pode procurar instalar uma linha de comando que seja similar à do Linux, como por exemplo o [PowerShell](https://www.microsoft.com/en-us/download/details.aspx?id=42554). 24 | 25 | ### Acessar uma pasta 26 | Para acessar outra pasta, basta digitar: 27 | ```sh 28 | cd 29 | ``` 30 | Sendo que o _`_ deve respeitar a hierarquia atual do seu diretório. No código abaixo estou acessando uma pasta chamada _djangogirls_ dentro do meu atual diretório: 31 | ```sh 32 | cd djangogirls 33 | ``` 34 | E no código abaixo estou acessando uma pasta acima do meu atual diretório: 35 | ```sh 36 | cd ../Imagens 37 | ``` 38 | E para apenas subir uma pasta, basta digitar: 39 | ```sh 40 | cd .. 41 | ``` 42 | ![Navegando entre diretórios usando o comando cd](/images/nav-into-directories.png) 43 | ### Onde estou? 44 | Navegar entre diretórios pode se tornar confuso em determinados momentos. Para isto, digite este comando e o terminal irá te responder o exato local onde ele se encontra no momento: 45 | ```sh 46 | pwd 47 | ``` 48 | Caso você seja usuária Windows, o comando equivalente que deve ser digitado já é um conhecido nosso: 49 | ```sh 50 | cd 51 | ``` 52 | ![A resposta do comando pwd ou cd deve ser o atual diretório](/images/cmd-pwd.png) 53 | 54 | ### Listando conteúdo do atual diretório 55 | Por vezes queremos navegar para um diretório mas não sabemos onde ele está. Podemos então listar o conteúdo das pastas com o seguinte comando: 56 | ```sh 57 | ls 58 | ``` 59 | Caso você esteja utilizando o Windows, digite: 60 | ```sh 61 | dir 62 | ``` 63 | ![Listando o conteúdo de uma pasta usando o comando ls](/images/cmd-ls.png) 64 | 65 | ### Criando uma pasta 66 | Para criar uma pasta, basta digitar: 67 | ```sh 68 | mkdir 69 | ``` 70 | E uma pasta será criada no seu atual diretório, caso já não exista uma com o mesmo nome. 71 | ![Criando uma pasta chamada Project dentro do diretório djangogirls](/images/cmd-mkdir.png) 72 | 73 | ### Excluindo uma pasta 74 | Excluir uma pasta utilizando o terminal __remove a pasta e todo seu conteúdo terminantemente do computador. Nada de lixeira! Todo o conteúdo vai pra um limbo indefinido e jamais será recuperado novamente D:__ Agora que estamos cientes, para remover uma pasta utilizando a linha de comando, basta digitar: 75 | ```sh 76 | rm -r 77 | ``` 78 | Ou caso você esteja utilizando o Windows: 79 | ```sh 80 | rmdir /S 81 | ``` 82 | ![Removendo a pasta djangogirls terminantemente](/images/cmd-rm.png) 83 | 84 | 85 | 86 | --- 87 | 88 | # Exercícios 89 | 1. Crie uma pasta chamada _python_ no seu atual diretório. 90 | 2. Entre na pasta _python_. 91 | 3. Crie uma pasta chamada _Projeto_ dentro da pasta _python_ e entre nela. 92 | 4. Crie um arquivo chamado _home.txt_ dentro da pasta _Projeto_. Não tenha vergonha de pesquisar no Google! 93 | 5. Liste o conteúdo da pasta _Projeto_. 94 | 6. Estando na pasta _Projeto_, suba uma pasta. 95 | 6. Exclua a pasta _Projeto_. 96 | 7. Consegue descobrir qual é o seu diretório atual? Utilize o comando respectivo para esta ação. 97 | 8. Suba um nível e exclua a pasta _python_. 98 | 99 | -------------------------------------------------------------------------------- /Chapter4.md: -------------------------------------------------------------------------------- 1 | # Preparando o ambiente de trabalho 2 | Antes de iniciarmos a programação de fato, precisamos instalar alguns aplicativos na nossa máquina. Nesta parte do tutorial iremos aprender a instalar o Python e uma IDE para programação. 3 | 4 | ## Instalando Python 5 | Neste tutorial iremos utilizar a versão 3 da linguagem, o Python 3. Existem algumas diferenças entre o Python 2 e o Python 3, por isso, mesmo que você já possua uma versão do Python 2 instalada na sua máquina, recomendamos fortemente que você instale o Python 3. 6 | 7 | Dependendo do seu sistema operacional, o Python pode ser obtido de diversas maneiras. Nesta guia vamos aprender à instalar o Python nos seguintes sistemas operacionais: 8 | * Linux 9 | * Windows 10 | * OS X 11 | 12 | ### Linux 13 | Se você for uma usuária Linux, provavelmente já possui o Python instalado pois ele faz parte do conjunto de aplicações básicas da maioria das distribuições Linux. Para verificar, basta abrir o terminal e digitar: 14 | ```sh 15 | whereis python 16 | ``` 17 | ![Listando todas as instalações do Python](/images/whereis-python.png) 18 | E serão listadas todas as instalações do Python na sua máquina. 19 | 20 | Caso o comando não retorne nada, para instalar o Python no Linux é muito simples. 21 | 22 | #### Distribuições Red Hat 23 | Para instalar o Python em distribuições Red Hat, como o CentOS ou o Fedora, basta abrir o terminal e digitar: 24 | ```sh 25 | sudo dnf install python3 26 | ``` 27 | #### Distribuições Debian 28 | Para instalar o Python em distribuições Debian, como o Debian ou o Ubuntu, basta abrir o terminal e digitar: 29 | ```sh 30 | sudo apt-get install python3 31 | ``` 32 | 33 | ### Windows 34 | Para instalar o Python no Windows, é preciso que você faça o download da última versão disponível no site do Python Software Foundation, clicando [aqui](https://www.python.org/downloads/windows/). Procure por um link onde estará indicando a última versão do Python 3, algo como _Latest Python 3 Release_. Você será redirecinada para uma página com um resumo das últimas novidades da linguagem e ao final, com os links para download. Faça o download do arquivo de instalação de acordo com o seu sistema operacional: se você utiliza um Windows 64 bits, procure por _Windows x86-64 executable installer_, ou para versões 32 bits do Windows, _Windows x86 executable installer_. 35 | 36 | ![Arquivos de Instalação do Python para Windows no site do Python Software Foundation](/images/python-executable-download-for-windows.png) 37 | Após o download do arquivo, inicie a instalação do Python e atente apenas para a opção de _Adicionar python.exe ao Path_. 38 | 39 | ### OS X 40 | Para instalar o Python no Mac OS X, é preciso que você faça o download da última versão disponível no site do Python Software Foundation, clicando [aqui](https://www.python.org/downloads/mac-osx/). Procure por um link onde estará indicando a última versão do Python 3, algo como _Latest Python 3 Release_. Você será redirecinada para uma página com um resumo das últimas novidades da linguagem e ao final, com os links para download. Faça o download do arquivo de instalação de acordo com a versão do seu sistema operacional. 41 | 42 | ![Arquivos de Instalação do Python para Mac OS X no site do Python Software Foundation](/images/python-executable-download-for-mac-osx.png) 43 | 44 | Depois de finalizar o download do pacote de instalação, dê um duplo clique para finalmente instalar o Python na sua máquina. 45 | 46 | ## Instalando uma IDE 47 | 48 | IDEs (Integrated Development Environments, ou em português, Ambiente de desenvolvimento Integrado) são editores de texto especiais para programação, também conhecidas como _Editores de Código_. Elas facilitam o trabalho da programadora pois possuem recursos como destaque de código em cores, permitem abrir diversos arquivos simultaneamente e outros incríveis recursos que podem ser adicionados através de plugins. 49 | 50 | Para este tutorial, indico duas IDEs gratuitas que possuem recursos incríveis para iniciarmos os nossos estudos: 51 | * [Atom](https://atom.io/) 52 | * [Sublime Text](https://www.sublimetext.com) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Manual da Programadora Python 2 | Olá \o/ 3 | Bem vinda ao Manual da Programadora Python! 4 | 5 | Este material foi desenvolvido para o projeto [Tutoras](http://projetotutoras.com/) e visa ensinar desde os conceitos básicos aos mais avançados de programação na linguagem. Se você não tem nenhum conhecimento em programação mas deseja dar os primeiros passos em direção a isto, este material foi feito para você \o/ 6 | 7 | Sinta-se livre para copiá-lo, distribuí-lo, editá-lo, mas por favor mantenha os créditos! É interessante saber sobre quem produziu o material e principalmente o porquê. 8 | 9 | ## Sobre a autora 10 | Paula Grangeiro é bacharel em Sistemas de Informação pela Fundação Educacional de Duque de Caxias. Trabalha com desenvolvimento desde 2007, tendo iniciado a carreira com tecnologias Microsoft (ASP clássico, .Net, etc). Em 2012 conheceu Python e se apaixonou pela linguagem :heart: Atualmente, ela entende que linguagens são apenas ferramentas de trabalho e o mais importante é aprender como utilizá-las da melhor maneira possível, afinal com grandes poderes vêm grandes responsabilidades. Nas horas vagas ela gosta de estudar, participar de projetos sociais e domesticar gatos selvagens com sua vareta mágica. 11 | 12 | 13 | ## Sobre o projeto Tutoras 14 | 15 | > Existem mulheres que querem aprender a programar. E existem mulheres que querem ensinar programação. O Projeto Tutoras vem para fazer essa ligação: conectar mulheres que já têm experiência em programação com mulheres que têm pouca ou nenhuma experiência formando, assim, uma rede de aprendizagem colaborativa cujo lema é: “Mulheres empoderando mulheres através da programação”. 16 | > O projeto é sem fins lucrativos e as tutoras são voluntárias, por isso as aprendizes poderão aprender a programar sem gastar nada com isso e o farão do conforto do lar, pois a tutoria ocorre de maneira remota através de redes sociais e aplicativos de troca de mensagens. 17 | 18 | Para saber mais sobre o projeto, clique [aqui](http://projetotutoras.com/sobre/). 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [Introdução](README.md) 4 | * [O que é uma linguagem de programação?](Chapter1.md) 5 | * História do Python 6 | * [Introdução à linha de comando](Chapter3.md) 7 | * [Preparando o ambiente de trabalho](Chapter4.md) 8 | * Desenvolvendo lógica de programação 9 | * Variáveis 10 | * Tipos básicos 11 | * Tipos complexos 12 | * Estruturas de dados 13 | * Repetição 14 | * Condicionais 15 | * Reuso de código 16 | * Funções 17 | * Programação Orientada a Objetos 18 | * Classes 19 | * Herança 20 | * Pacotes 21 | * Apps 22 | * Libs 23 | * Qualidade de código 24 | * Testes 25 | * Unitest 26 | * Py.test 27 | * Utilizando Python para desenvolvimento Web 28 | * Ambientes virtuais 29 | * Django 30 | * Admin 31 | * Forms 32 | * Views, Templates e Urls 33 | * Aprofundando-se nas Views do Django 34 | * Git e Github 35 | * Integração contínua 36 | * Tópicos avançados em Python 37 | * Decorators 38 | * Metaclasses 39 | * Arquitetura de Software 40 | * DDD 41 | * [Referências](BIBLIOGRAPHY.md) 42 | 43 | -------------------------------------------------------------------------------- /book.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "layout" 4 | ], 5 | "pluginsConfig": { 6 | "layout": { 7 | "footerPath": "layouts/footer.html" 8 | } 9 | }, 10 | "pdf": { 11 | "pageNumbers": true, 12 | "fontSize": 10, 13 | "footerTemplate": "Este tutorial foi gentilmente elaborado por Paula Grangeiro (email:pgrangeiro.dev@gmail.com | GitHub:@pgrangeiro) para utilização nas tutorias do Projeto Tutoras. Saiba mais sobre o projeto em http://projetotutoras.com | https://fb.com/projetotutoras | https://twitter.com/projetotutoras." 14 | } 15 | } -------------------------------------------------------------------------------- /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/cover.jpg -------------------------------------------------------------------------------- /cover_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/cover_small.jpg -------------------------------------------------------------------------------- /images/ada-lovelace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/ada-lovelace.png -------------------------------------------------------------------------------- /images/cmd-ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/cmd-ls.png -------------------------------------------------------------------------------- /images/cmd-mkdir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/cmd-mkdir.png -------------------------------------------------------------------------------- /images/cmd-pwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/cmd-pwd.png -------------------------------------------------------------------------------- /images/cmd-rm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/cmd-rm.png -------------------------------------------------------------------------------- /images/grace-hopper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/grace-hopper.jpg -------------------------------------------------------------------------------- /images/nav-into-directories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/nav-into-directories.png -------------------------------------------------------------------------------- /images/python-executable-download-for-mac-osx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/python-executable-download-for-mac-osx.png -------------------------------------------------------------------------------- /images/python-executable-download-for-windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/python-executable-download-for-windows.png -------------------------------------------------------------------------------- /images/terminal-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/terminal-example.png -------------------------------------------------------------------------------- /images/whereis-python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgrangeiro/manual-programadora-python/d9967021345d2256b1415b557eb5b53d8c92a896/images/whereis-python.png -------------------------------------------------------------------------------- /layouts/footer.html: -------------------------------------------------------------------------------- 1 |

Este tutorial foi gentilmente elaborado por Paula Grangeiro (pgrangeiro.dev@gmail.com | @pgrangeiro) para utilização nas tutorias do Projeto Tutoras. 2 |
Saiba mais sobre o projeto em projetotutoras.com | fb.com/projetotutoras | @projetotutoras.

3 | -------------------------------------------------------------------------------- /styles/pdf.css: -------------------------------------------------------------------------------- 1 | /* CSS for pdf */ 2 | footer { 3 | font-size: 10px; 4 | } --------------------------------------------------------------------------------