aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.rst2
-rw-r--r--aulas/ambientes.rst27
-rw-r--r--aulas/clientes.rst11
-rw-r--r--aulas/devops.rst8
-rw-r--r--aulas/encerramento.rst30
-rw-r--r--aulas/licencas.rst50
-rw-r--r--aulas/metodologias.rst10
-rw-r--r--aulas/reinventando.rst9
-rw-r--r--aulas/seguranca.rst21
-rw-r--r--aulas/versionamento.rst38
-rw-r--r--conf.py2
-rw-r--r--plano.rst136
12 files changed, 262 insertions, 82 deletions
diff --git a/TODO.rst b/TODO.rst
index 3a72253..dcda732 100644
--- a/TODO.rst
+++ b/TODO.rst
@@ -1,7 +1,7 @@
TODO
====
-- Adicionar referência da licença na documentação gerada.
- Referências de cada aula na ementa do curso.
- Completar roteiro de aulas.
+- Gravar screencasts.
- Revisar conteúdo.
diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst
index 7a0787c..7a751db 100644
--- a/aulas/ambientes.rst
+++ b/aulas/ambientes.rst
@@ -5,15 +5,18 @@
- Porém, o conteúdo do curso pode ser facilmente adaptado para outros sistemas.
- Se você usa Windows ou MacOSX para desenvolvimento e quiser seguir normalmente o curso, recomendamos a criação de uma máquina virtual em GNU/Linux usando o Vagrant de acordo com a aula de `DevOps <devops.html>`_.
-Ambiente básico
----------------
+2.1 - Ambiente básico e a guerra dos editores de texto
+------------------------------------------------------
+
+2.1 - Ambiente básico
+~~~~~~~~~~~~~~~~~~~~~
- Editor de texto ou IDE: produz código.
- Emulador de terminal: execução de tarefas.
- Navegador web: ambiente de teste.
-Editores
---------
+2.1 - Editores
+~~~~~~~~~~~~~~
- Vantagens dos IDEs (NetBeans, Eclipse, Aptana, etc):
- Ambiente de desenvolvimento integrado.
@@ -21,18 +24,28 @@ Editores
- Simplicidade.
- Performance.
-Fluxo de trabalho
------------------
+2.2 - Emulador de terminal
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+2.3 - Fluxo de trabalho
+~~~~~~~~~~~~~~~~~~~~~~~
- Diário de bordo: de um arquivo de texto a um blog sobre desenvolvimento.
- Organização de pastas.
- Backups.
+
+2.4 - Scripts e templates
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
- Scripts de produtividade.
+- Templates de desenvolvimento.
Atividades
----------
-- Teste diversos editores de textos e IDEs disponíveis para sua plataforma de desenvolvimento. Avalie cada um deles em termos de performance, funcionalidades, facilidade de uso e adaptação. A preferência pela plataforma de desenvolvimento varia muito de pessoa para pessoa: tente descobrir a sua!
+#. Teste diversos editores de textos e IDEs disponíveis para sua plataforma de desenvolvimento. Avalie cada um deles em termos de performance, funcionalidades, facilidade de uso e adaptação. A preferência pela plataforma de desenvolvimento varia muito de pessoa para pessoa: tente descobrir a sua!
+
+#. Crie uma pasta para o seu projeto.
Referências
-----------
diff --git a/aulas/clientes.rst b/aulas/clientes.rst
index 22dbb7f..bb3b398 100644
--- a/aulas/clientes.rst
+++ b/aulas/clientes.rst
@@ -1,2 +1,13 @@
8. Lidando com os clientes
==========================
+
+6.1 - Como fazer / Apresentar uma proposta comercial para um cliente?
+---------------------------------------------------------------------
+
+6.2 - Items essenciais de uma proposta
+--------------------------------------
+
+6.3 - Como cobrar
+-----------------
+
+- Por hora ou por projeto?
diff --git a/aulas/devops.rst b/aulas/devops.rst
index 947feed..559251f 100644
--- a/aulas/devops.rst
+++ b/aulas/devops.rst
@@ -3,18 +3,18 @@
- Vagrant, docker, KVM e afins.
- Ambientes reprodutíveis.
+- Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
- Fazendo o deploy:
- CLI básico (copiar, mover, apagar e permissões).
- SSH e rsync.
- Deploy via git.
-- Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
Atividades
----------
-- Instale o vagrant.
-- Crie uma máquina virtual para desenvolver o seu projeto.
-- Crie uma conta no Travis CI.
+#. Instale o vagrant.
+#. Crie uma máquina virtual para desenvolver o seu projeto.
+#. Crie uma conta no Travis CI.
Referências
-----------
diff --git a/aulas/encerramento.rst b/aulas/encerramento.rst
index 15b58e3..ca1124f 100644
--- a/aulas/encerramento.rst
+++ b/aulas/encerramento.rst
@@ -1,2 +1,32 @@
9. Encerramento
===============
+
+9.1 - Metodologias e técnicas de produtividade
+----------------------------------------------
+
+9.2 - Ambientes de desenvolvimento eficientes
+---------------------------------------------
+
+9.3 - Licenças de software
+--------------------------
+
+9.4 - Controle de versão e social coding
+----------------------------------------
+
+9.5 - DevOps: desenvolvendo e orquestrando
+------------------------------------------
+
+9.6 - Segurança e privacidade
+-----------------------------
+
+9.7 - Quando (não) reinventar a roda
+------------------------------------
+
+9.8 - Lidando com os clientes
+-----------------------------
+
+9.9 - Seguindo adiante
+----------------------
+
+* Sempre haverá novos métodos para eliminar as dificuldades acidentais na programação.
+* Não existem verdades absolutas, mas sim um caminho para reavaliações e autoconhecimento.
diff --git a/aulas/licencas.rst b/aulas/licencas.rst
index f0f35b2..98a0195 100644
--- a/aulas/licencas.rst
+++ b/aulas/licencas.rst
@@ -1,8 +1,54 @@
3. Licenciamento
================
+3.1 - O que é e por quê licenciar?
+----------------------------------
+
+* Propriedade intelectual: marcas, patentes, direito autoral.
+* Licença padrão e automática: copyright.
+* No Brasil: `Lei 9610/98 <http://www.planalto.gov.br/ccivil_03/leis/L9610.htm>`_.
+
+3.2 - Licenças básicas
+----------------------
+
+3.2 - Domínio Público
+~~~~~~~~~~~~~~~~~~~~~
+
+- Obras sem direitos autorais.
+- Existe direito moral (autores/as podem reinvindicar a autoria).
+
+3.2 - New BSD
+~~~~~~~~~~~~~
+
+3.2 - MIT
+~~~~~~~~~
+
+3.3 - GNU GPL
+-------------
+
+Quatro liberdades do software livre:
+
+- 0. Rodar.
+- 1. Estudar.
+- 2. Redistribuir.
+- 3. Melhorar.
+
+* Exemplo: `licença desta documentação </LICENSE.html>`_.
+
+3.4 - Creative Commons
+----------------------
+
+3.5 - Outras licenças
+---------------------
+
+3.5 - Apache
+~~~~~~~~~~~~
+
+3.5 - Mozilla
+~~~~~~~~~~~~~
+
Atividades
----------
-- Escolha uma licença para o seu projeto.
-- Entre no gerador de licenças do CreativeCommons e gere uma licença. Guarde o código de embarcação da mesma para inseri-la no seu projeto.
+#. Escolha uma licença para o seu projeto.
+#. Entre no gerador de licenças do CreativeCommons e gere uma licença. Guarde o código de embarcação da mesma para inseri-la no seu projeto.
diff --git a/aulas/metodologias.rst b/aulas/metodologias.rst
index 424e1bf..65a7895 100644
--- a/aulas/metodologias.rst
+++ b/aulas/metodologias.rst
@@ -1,8 +1,8 @@
1. Metodologias e técnicas de produtividade
===========================================
-1.1 - Apresentação
-------------------
+1.1 - O que são boas práticas em desenvolvimento?
+-------------------------------------------------
1.1 - Apresentação do professor e do curso
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -114,7 +114,9 @@ Queremos:
Atividades
----------
-- Adote a técnica Pomodoro numa tarefa grande e importante do seu dia. Você pode usar qualquer cronômetro disponível -- do seu computador, do telefone, do relógio de pulso ou mesmo um timer de cozinha. Permaneça apenas realizando a tarefa importante em cada bloco de 25 minutos. Avalie a eficácia do método: ele te ajudou?
+#. Adote a técnica Pomodoro numa tarefa grande e importante do seu dia. Você pode usar qualquer cronômetro disponível -- do seu computador, do telefone, do relógio de pulso ou mesmo um timer de cozinha. Permaneça apenas realizando a tarefa importante em cada bloco de 25 minutos. Avalie a eficácia do método: ele te ajudou?
+
+#. Para este curso, definimos o nosso projeto de exemplo como sendo um website bem simples. Você pode fazer o mesmo ou então escolher qualquer projeto que queira fazer usando qualquer linguagem de programação e adaptar as atividades propostas nas aulas seguintes de acordo com o seu caso. Sugerimos apenas que você escolhe um nome para o seu projeto, mesmo que temporário! Mas lembre-se: nomes tem poder! :)
Referências
-----------
@@ -130,7 +132,7 @@ Referências
- `Técnica pomodoro – Wikipédia, a enciclopédia livre <https://pt.wikipedia.org/wiki/T%C3%A9cnica_pomodoro>`_.
- `Zen to Done - ZTD - Lucas Teixeira <http://lucasteixeira.com/ztd/>`_.
- `Zen To Done (ZTD): The Simple Productivity System : zen habits <http://zenhabits.net/zen-to-done-ztd-the-ultimate-simple-productivity-system/>`_.
-- `Time management - Wikipedia, the free encyclopedia <https://en.wikipedia.org/wiki/Time_management`_.
+- `Time management - Wikipedia, the free encyclopedia <https://en.wikipedia.org/wiki/Time_management>`_.
- `Princípios por trás do Manifesto Ágil <http://www.agilemanifesto.org/iso/ptbr/principles.html>`_.
- `Manifesto para o desenvolvimento ágil de software <http://www.manifestoagil.com.br/>`_.
- https://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming
diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst
index 0f13e13..25f05fb 100644
--- a/aulas/reinventando.rst
+++ b/aulas/reinventando.rst
@@ -1,2 +1,11 @@
7. Quando (não) reinventar a roda
=================================
+
+6.1 - Antipatterns
+------------------
+
+6.2 - Inferno de dependências
+-----------------------------
+
+6.3 - Documentação: lendo e escrevendo
+--------------------------------------
diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst
index 55d1483..787c9f0 100644
--- a/aulas/seguranca.rst
+++ b/aulas/seguranca.rst
@@ -1,2 +1,23 @@
6. Segurança e privacidade
==========================
+
+6.1 - Segurança começa no desenvolvimento
+-----------------------------------------
+
+* Criptografia é só uma parte das práticas seguras.
+* Testes de penetração: inverta os papéis: e se você fosse o/a atacante?
+
+6.2 - Use bibliotecas consolidadas!
+-----------------------------------
+
+6.3 - Princípio das permissões mínimas
+--------------------------------------
+
+6.4 - Criptografia básica
+-------------------------
+
+* Assinaturas digitais.
+* Comunicação cifrada.
+
+6.5 - Certificados x509 para SSL/TLS/HTTPS
+------------------------------------------
diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst
index 61cb10e..1e3e075 100644
--- a/aulas/versionamento.rst
+++ b/aulas/versionamento.rst
@@ -1,12 +1,44 @@
4. Controle de versão e social coding
=====================================
+4.1 - O que é? Pra que serve?
+-----------------------------
+
+* Versionando desde o dia 0.
+
+4.2 - Quais sistemas existem?
+-----------------------------
+
+4.3 - Git: introdução
+---------------------
+
+4.4 - Git: navegando no histórico
+---------------------------------
+
+4.5 - Git: ramificações (branches)
+----------------------------------
+
+4.6 - Usando o git-flow
+-----------------------
+
+4.7 - Social coding (gitlab, github, etc)
+-----------------------------------------
+
+4.8 - Github: criando e forkando um projeto
+-------------------------------------------
+
+4.9 - Github: fazendo um pull request
+-------------------------------------
+
+4.10 - Github: sistema de tickets
+---------------------------------
+
Atividades
----------
-- Instale o git.
-- Crie uma conta do `Github <https://github.com>`_ e uma no `Gitlab <https://gitlab.com>`_.
-- Faça um pequeno site com o Skeleton.
+#. Instale o git.
+#. Crie uma conta do `Github <https://github.com>`_ e uma no `Gitlab <https://gitlab.com>`_.
+#. Faça um pequeno site com o Skeleton.
Referências
-----------
diff --git a/conf.py b/conf.py
index 65aae48..4d5d499 100644
--- a/conf.py
+++ b/conf.py
@@ -64,7 +64,7 @@ language = 'pt_BR'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
+exclude_patterns = ['_build', '_themes', 'README.rst']
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
diff --git a/plano.rst b/plano.rst
index aad1045..f57f37a 100644
--- a/plano.rst
+++ b/plano.rst
@@ -1,63 +1,79 @@
Plano de aulas
==============
-1. Metodologias e técnicas de produtividade.
- - Apresentação do professor e do curso.
- - O que são boas práticas de desenvolvimento?
- - Mitos e verdades do desenvolvimento.
- - A catedral e o bazar: Lei de Linus.
- - Metodologias pessoais.
- - Pomodoro.
- - GTD.
- - ZTD.
- - Metodologias em equipe.
- - Agile.
- - Scrum.
-
-2. Ambientes de desenvolvimento eficientes.
- - A guerra dos editores de texto e IDEs.
- - Ambiente de desenvolvimento eficiente e confortável.
- - Backups e ferramentaria.
- - Criando seus templates de desenvolvimento.
- - Mantendo um diário de bordo e uma base de conhecimento.
-
-3. Licenças de software.
- - GPL.
- - BSD.
- - Apache.
- - Creative Commons.
- - Domínio Público.
-
-4. Controle de versão e social coding.
- - O que é? Pra que serve?
- - Quais sistemas existem?
- - Focando no git e no git-flow.
- - Versionando desde o dia 0.
- - Social coding (gitlab, github, etc).
-
-5. DevOps: desenvolvendo e orquestrando.
- - Vagrant, docker, KVM e afins.
- - Ambientes reprodutíveis.
- - Integração contínua usando o `Travis CI <http://travis-ci.org/>`_.
- - Fazendo o deploy:
- - SSH e rsync.
- - Permissões.
-
-6. Segurança e privacidade.
- - Segurança começa no desenvolvimento.
- - Use bibliotecas consolidadass!
- - Princípio das permissões mínimas.
- - Criptografia básica:
- - Assinaturas digitais.
- - Comunicação cifrada.
- - Certificados x509 para SSL/TLS/HTTPS.
-
-7. Quando (não) reinventar a roda.
- - Antipatterns.
- - Inferno de dependências.
- - Documentação: lendo e escrevendo.
-
-8. Lidando com os clientes.
- - Como fazer / Apresentar uma proposta comercial para um cliente?
- - Items essenciais de uma proposta.
- - Como cobrar (por hora ou por projeto).
+* Aula 1: Metodologias e técnicas de produtividade.
+
+ * Capítulo 1: O que são boas práticas em desenvolvimento?
+ * Capítulo 2: Mitos e verdades do desenvolvimento.
+ * Capítulo 3: Metodologias pessoais.
+ * Capítulo 4: Metodologias pessoais: Get Things Done (GTD).
+ * Capítulo 5: Metodologias pessoais: Zen to Done (ZTD).
+ * Capítulo 6: Metodologias em equipe.
+ * Capítulo 7: Começando um projeto.
+
+* Aula 2: Ambientes de desenvolvimento eficientes.
+
+ * Capítulo 1: ambiente básico e a guerra dos editores de texto.
+ * Capítulo 2: emulador de terminal.
+ * Capítulo 3: fluxo de trabalho.
+ * Capítulo 4: scripts e templates.
+
+* Aula 3: Licenças de software.
+
+ * Capítulo 1: O que é e por quê licenciar?
+ * Capítulo 2: Licenças básicas.
+ * Capítulo 3: GNU GPL.
+ * Capítulo 4: Creative Commons.
+ * Capítulo 5: Outras licenças.
+
+* Aula 4: Controle de versão e social coding.
+
+ * Capitulo 1: O que é? Pra que serve?
+ * Capítulo 2: Quais sistemas existem?
+ * Capítulo 3: Git: introdução.
+ * Capítulo 4: Git: navegando no histórico.
+ * Capítulo 5: Git: ramificações (branches).
+ * Capítulo 6: Usando o git-flow.
+ * Capítulo 7: Social coding (gitlab, github, etc).
+ * Capítulo 8: Github: criando e forkando um projeto.
+ * Capítulo 9: Github: fazendo um pull request.
+ * Capítulo 10: Github: sistema de tickets.
+
+* Aula 5: DevOps: desenvolvendo e orquestrando.
+
+ * Capítulo 1: Vagrant, docker, KVM e afins.
+ * Capítulo 2: Ambientes reprodutíveis.
+ * Capítulo 3: Integração contínua usando o Travis CI.
+ * Capítulo 4: Fazendo o deploy:
+
+* Aula 6: Segurança e privacidade.
+
+ * Capítulo 1: Segurança começa no desenvolvimento.
+ * Capítulo 2: Use bibliotecas consolidadas!
+ * Capítulo 3: Princípio das permissões mínimas.
+ * Capítulo 4: Criptografia básica:
+ * Capítulo 5: Certificados x509 para SSL/TLS/HTTPS.
+
+* Aula 7: Quando (não) reinventar a roda.
+
+ * Capítulo 1: Antipatterns.
+ * Capítulo 2: Inferno de dependências.
+ * Capítulo 3: Documentação: lendo e escrevendo.
+
+* Aula 8:. Lidando com os clientes.
+
+ * Capítulo 1: Como fazer / Apresentar uma proposta comercial para um cliente?
+ * Capítulo 2: Items essenciais de uma proposta.
+ * Capítulo 3: Como cobrar.
+
+* Aula 9: Encerramento.
+
+ * Capítulo 1: Metodologias e técnicas de produtividade.
+ * Capítulo 2: Ambientes de desenvolvimento eficientes.
+ * Capítulo 3: Licenças de software.
+ * Capítulo 4: Controle de versão e social coding.
+ * Capítulo 5: DevOps: desenvolvendo e orquestrando.
+ * Capítulo 6: Segurança e privacidade.
+ * Capítulo 7: Quando (não) reinventar a roda.
+ * Capítulo 8: Lidando com os clientes.
+ * Capítulo 9: Seguindo adiante.