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 `_. - 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).