aboutsummaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2015-10-31 20:05:23 -0200
committerSilvio Rhatto <rhatto@riseup.net>2015-10-31 20:05:23 -0200
commitadb65f02f849e43bc6cae02dcfe799877878215b (patch)
tree2eed7b6bc45e6b696c3e2eb5fdd620e59614b976 /README.rst
parentb409f7750e5e0ba3421770c261cc1dee78cd494c (diff)
downloadboaspraticas-adb65f02f849e43bc6cae02dcfe799877878215b.tar.gz
boaspraticas-adb65f02f849e43bc6cae02dcfe799877878215b.tar.bz2
Documentação usando python-sphinx
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst182
1 files changed, 182 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..793c42a
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,182 @@
+.. Boas Práticas em Desenvolvimento documentation master file, created by
+ sphinx-quickstart on Sat Oct 31 19:44:44 2015.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Boas Práticas em Desenvolvimento
+================================
+
+Ementa
+------
+
+- Título do curso: Boas Práticas em Desenvolvimento de Software.
+- Professores: Silvio Rhatto.
+- Tempo estimado de dedicação do aluno e agenda de comprometimento
+ sugerida: 40 horas.
+- Público alvo e Pré-requisitos: o curso é orientado a
+ desenvolvedores(as) de software que já possuem ao menos um
+ conhecimento básico em programação e que necessitam melhorar sua
+ produtividade ou mesmo trabalhar em time de maneira fluida.
+- Dificuldade do curso: intermediário.
+
+Currículo do professor
+~~~~~~~~~~~~~~~~~~~~~~
+
+Silvio Rhatto é bacharel em meteorologia, técnico em eletrônica e
+autodidata em computação. Desenvolve software livre há mais de 10 anos e
+já realizou diversos cursos na área de tecnologia, especialmente em
+segurança da informação e privacidade.
+
+Descrição do curso
+~~~~~~~~~~~~~~~~~~
+
+Este curso introduz diversas metedologias, ferramentas e conceitos de
+desenvolvimento de software que aumentam a produtividade e facilitam o
+compartilhamento de código. A ideia é preencher a lacuna dos cursos
+específicos de programação que dificilmente abordam questões práticas e
+cotidianas como controle de versão, manutenção de um ambiente de
+desenvolvimento, licenciamento, segurança, etc.
+
+Apesar dos softwares serem produtos definidos, reprodutíveis e na
+maioria das vezes determinísticos, o seu desenvolvimento implica na
+canalização da criatividade, na capacidade de trabalhar
+colaborativamente e enfrentar desafios como a integração de elementos já
+disponíveis. Para que isso seja possível e agradável, é fundamental que
+o(a) programador(a) entenda o processo de desenvolvimento que vai além
+de simplesmente codificar seu raciocínio numa linguagem de programação.
+
+Serão apresentados problemas essenciais e acidentais da programação e
+diferentes maneiras de abordá-los, indo desde a ansiedade de programar
+até os modernos ambientes de teste contínuo.
+
+Ao concluir o curso, o(a) aluno(a) terá condições de:
+
+- Analisar criticamente as técnicas e ferramentas apresentadas.
+- Escolher quais delas mais se adequam à sua realidade.
+- Pesquisar o tema por conta própria.
+
+Estrutura do curso
+~~~~~~~~~~~~~~~~~~
+
+O curso será dividido em 8 aulas, sendo cada aula organizada nos
+seguintes capítulos:
+
+1. Metodologias e técnicas de produtividade.
+2. Ambientes de desenvolvimento eficientes.
+3. Licenças de software.
+4. Controle de versão e social coding.
+5. DevOps: desenvolvendo e orquestrando.
+6. Segurança e privacidade.
+7. Quando (não) reinventar a roda.
+8. Lidando com os clientes.
+
+Os capítulos serão organizados na forma de:
+
+- Vídeo aulas.
+- Testes e atividades online.
+- Exercícios individuais de aplicação.
+- Leitura de material didático de apoio.
+
+Dificuldade do curso
+~~~~~~~~~~~~~~~~~~~~
+
+Intermediária.
+
+Relação do curso com o PRONATEC
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Eixo Tecnológico: Informação e Comunicação (é um curso transversal,
+aderente á todos os demais cursos que envolvem linguagens de programação
+e / ou desenvolvimento de software).
+
+Aplicação do conhecimento
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Como e onde ele vai usar usar isso ? Por que que ele será um
+profissional melhor aplicando este conhecimento ?
+
+Material Didático
+~~~~~~~~~~~~~~~~~
+
+Sugestão de Bibliografia:
+
+- O Mítico Homem-Mês.
+
+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).
+