diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/README.md b/README.md deleted file mode 100644 index b801f89..0000000 --- a/README.md +++ /dev/null @@ -1,124 +0,0 @@ -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). |