aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md99
1 files changed, 99 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e079ddd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,99 @@
+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. O que são boas práticas em desenvolvimento?
+2. Metodologias e técnicas de produtividade.
+3. Ambientes de desenvolvimento eficientes.
+4. Licenças de software.
+5. Controle de versão e social coding.
+6. DevOps: desenvolvendo e orquestrando.
+7. Segurança e privacidade.
+8. Quando (não) reinventar a roda.
+
+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.
+
+Plano de aulas
+--------------
+
+1. O que são boas práticas em desenvolvimento?
+ * Produto "funcional" desde o dia 0.
+2. Metodologias e técnicas de produtividade.
+ * Mitos (pessoa-mês, métricas).
+ * A catedral e o bazar: Lei de Linus.
+ * Metodologias pessoais.
+ * Pomodoro.
+ * GTD.
+ * ZTD.
+ * Metodologias em equipe.
+ * Agile.
+ * Scrum.
+3. Ambientes de desenvolvimento eficientes.
+ * A guerra dos editores de texto.
+ * Teclas de atalho, backups e ferramentaria.
+ * Ambiente de desenvolvimento eficiente e confortável.
+ * Criando seus templates de desenvolvimento.
+ * Mantendo um diário de bordo e uma base de conhecimento.
+4. Licenças de software.
+ * GPL.
+ * BSD.
+ * Apache.
+ * Creative Commons.
+ * Domínio Público.
+5. 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).
+6. DevOps: desenvolvendo e orquestrando.
+ * Sysadmin básico.
+ * Vagrant, docker.
+ * Ambientes reprodutíveis.
+ * Integração contínua.
+7. 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.
+8. Quando (não) reinventar a roda.
+ * Antipatterns.
+ * Inferno de dependências.