SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Coding Dojo 
Aprendendo a programar programando
Coding Dojo 
Aprendendo a programar programando
Mauricio Matsuda 
mauricio@webgoal.com.br
Agenda 
● O que é o Dojo 
● Os principais tipos 
● Benefícios e dicas 
● Dojo na Prática
Agenda 
● O que é o Dojo 
○ Práticas essenciais 
○ O que é? 
○ Como surgiu? 
● Os principais tipos 
● Benefícios e Dicas 
● Dojo na Prática
Coding Dojo 
Práticas essenciais
Coding Dojo 
Práticas 
● As práticas essenciais para fazer um Dojo foram 
baseadas em conceitos descritos pelas metodologias 
ágeis Scrum e Extreme Programming (XP) 
○ Programação em par 
○ Test Driven Development (TDD) 
○ Design incremental 
○ Reunião de Retrospectiva
Programação em par 
Definição 
● Um computador com duas pessoas programando 
● Piloto: programador que fica com o teclado e é 
responsável em codificar a lógica 
● Co-piloto: auxilia o piloto a conferir o código que está 
sendo escrito e como esse código pode afetar 
negativamente o restante da aplicação
TDD 
Definição 
Desenvolvimento Dirigido por Testes (TDD) é a capacidade de produzir 
testes automatizados para código de produção, e usar este processo 
para dirigir o design e a programação. Para cada pequena 
funcionalidade no código de produção, você primeiro desenvolve um 
teste que especifica e valida o que o código deverá fazer. Você então 
produz somente o código necessário para permitir que o teste passe. 
Então você refatora (simplifica e clarifica) os códigos de produção e 
teste. 
fonte: Agile Alliance
Classe TesteCalculadora 
função testar_soma 
testar se Calculadora.soma(1,2) igual 3 
fim 
fim 
TDD 
Exemplo
Classe TesteCalculadora 
função testar_soma 
testar se Calculadora.soma(1,2) igual 3 
fim 
fim 
TDD 
Exemplo 
Classe Calculadora 
função soma(<num1>, <num2>) 
resultado = num1 + num2 
retorna resultado 
fim 
fim
Classe TesteCalculadora 
função testar_soma 
testar se Calculadora.soma(1,2) igual 3 
fim 
fim 
TDD 
Exemplo 
Classe Calculadora 
função soma(<num1>, <num2>) 
retorna num1 + num2 
fim 
fim 
Classe Calculadora 
função soma(<num1>, <num2>) 
resultado = num1 + num2 
retorna resultado 
fim 
fim
TDD 
Ciclo 
Criar 
teste
TDD 
Ciclo 
Criar 
teste 
Fazer 
teste 
passar
TDD 
Ciclo 
Criar 
teste 
Fazer 
teste 
passar 
Refatorar
Design incremental 
Definição 
● Criar código aos poucos, para atender cada 
funcionalidade 
● O TDD ajuda bastante a guiar essa prática, pois só 
haverá código para resolver se algum teste estiver 
falhando 
● Evita ter códigos que não são utilizados
Reunião de Retrospectiva 
Definição 
● Uma reunião realizada ao fim de uma interação 
● É elencado os pontos positivos e negativos observador 
pelos participantes 
● E tem como objetivo extrair uma lista de ações de 
melhorias para as próximas interações
Coding Dojo 
O que é?
Coding Dojo ou Dojo, ambiente para treinar e aprimorar 
as práticas de programação
Coding Dojo 
Definição 
● A ideia é promover um ambiente 
○ Seguro, onde todos se sintar à vontade em 
programar 
○ Não competitivo, pois o objetivo é que todos 
pensem juntos de forma colaborativa 
○ Inclusivo, programadores experientes e iniciantes 
devem ensinar e aprender juntos
Coding Dojo 
Como surgiu?
Coding Dojo 
Histórico 
● O Psicólogo Dr. K. Anders Ericsson na década de 70 
apresentou o conceito da Prática Deliberada 
● Executar tarefas específicas repetitivamente até 
alcançar a excelência 
● Teoria das 10 mil horas para se tornar um expert
Coding Dojo 
Histórico 
● Em 2003 o Programador Dave Thomas apresentou o 
conceito Code Kata 
● Espaço onde os programadores pudesse exercitar a 
programação 
● Inspirado em outras áreas, como na música que há um 
preparo antes da apresentação em público
Coding Dojo 
Histórico 
● Em 2004 Laurent Bossavit e Emmanuel Gaillot 
fundaram o primeiro Coding Dojo 
● Embasados nas teorias de Ericsson e Thomas, a ideia 
foi criar um cenário diferente do cotidiano de um 
projeto, em um ambiente descontraído e colaborativo 
● Ficou conhecido como Dojo Paris
Agenda 
● O que é o Dojo 
● Os principais tipos 
○ Dojo Kata 
○ Dojo Randori 
○ Dojo Kake 
● Benefícios e Dicas 
● Dojo na Prática
Coding Dojo 
principais tipos
Dojo Kata
Dojo Kata 
Características 
● Formato indicado para introduzir novos 
conhecimento de programação 
● Um apresentador com o domínio do 
conhecimento 
● A plateia tem uma participação passiva
Dojo Kata
Dojo Kata 
Como fazer 
● Equipamentos 
○ Um computador com o ambiente de programação 
configurado 
○ Uma tela de projeção ou uma TV grande
Dojo Kata 
Como fazer 
● Moderador 
○ Definir a melhor data e local 
○ Divulgar o evento para o publico interessado 
○ Preparar a infra-estrutura antes do início do Dojo 
○ Organizar uma retrospectiva ao final do Dojo
Dojo Kata 
Como fazer 
● Apresentador 
○ Pode ser uma dupla programando em par e 
alternando entre os ciclos do TDD 
○ Definir um roteiro de como será apresentado 
○ Explicar para a plateia cada passo apresentado
Dojo Kata 
Como fazer 
● Plateia 
○ Não interage diretamente com o código 
desenvolvido 
○ É livre para tirar dúvidas durante a apresentação
Dojo Randori
Dojo Randori 
Características 
● Formato indicado para praticar 
conhecimentos já aprendidos 
● Todos participam ativamente na 
programação 
● Há muita troca de conhecimento entre os 
participantes
Dojo Randori
Dojo Randori 
Como fazer 
● Equipamentos 
○ Um computador com o ambiente de programação 
configurado 
○ Uma tela de projeção ou uma TV grande 
○ Uma lousa ou flip-chart
Dojo Randori 
Como fazer 
● Moderador 
○ Preparar a infra-estrutura antes do início do Dojo 
○ Definir o problema e a linguagem com os participantes 
○ Escrever na lousa a lista dos participantes 
○ Controlar o intervalo de troca da dupla 
○ Organizar uma retrospectiva ao final do Dojo
Dojo Randori 
Como fazer 
● Piloto 
○ Pessoa que está com o teclado programando 
○ Deve seguir o ciclo de TDD 
○ Explicar em voz alta cada passo executado para 
que a plateia entenda o raciocínio escolhido 
○ Ao fim do ciclo o piloto volta para a plateia
Dojo Randori 
Como fazer 
● Co-piloto 
○ Pessoa sentada em par ao lado do Piloto 
○ Ajuda o Piloto na programação, com uma análise do 
código de forma ampla 
○ Ajuda a explicar o que estão fazendo para a plateia 
○ Ao fim do ciclo assume o posto de Piloto
Dojo Randori 
Como fazer 
● Plateia 
○ Só pode falar quando os testes estiverem passando 
ou quando a dupla pedir ajuda 
○ Ao fim do ciclo o próximo da lista assume o posto de 
Co-piloto
Dojo Kake
Dojo Kake 
Características 
● Formato indicado para programadores mais 
experientes 
● Muita troca de experiências entre os 
participantes
Dojo Kake
Dojo Kake 
Como fazer 
● Equipamentos 
○ Um computador com o ambiente de programação 
configurado por dupla
Dojo Kake 
Como fazer 
● Moderador 
○ Definir o problema com os participantes 
○ Controlar o intervalo de troca da dupla 
○ Organizar uma retrospectiva ao final do Dojo
Dojo Kake 
Como fazer 
● Piloto 
○ Pessoa que está com o teclado programando 
○ Deve seguir o ciclo de TDD 
○ Na primeira rodada escolhe junto com o Co-piloto a 
linguagem que irá utilizar 
○ Ao fim do ciclo assume o Co-piloto em outra dupla
Dojo Kake 
Como fazer 
● Co-piloto 
○ Pessoa sentada em par ao lado do Piloto 
○ Ajuda o Piloto na programação, com uma análise do 
código de forma ampla 
○ Ao fim do ciclo assume o posto de Piloto sem mudar 
de dupla
Dojo Kake 
Como fazer 
● Plateia 
○ Não interage diretamente com o código 
desenvolvido 
○ É livre para observar a programação de cada dupla
Agenda 
● O que é o Dojo 
● Os principais tipos 
● Benefícios e Dicas 
○ Benefícios 
○ Dicas e experiências 
● Dojo na Prática
Coding Dojo 
Benefícios
Coding Dojo 
Benefícios 
● Aprendizado pela observação e pela ação 
● Compartilhamento de conhecimento e colaboração na 
resolução de um problema 
● Aprendizado de novas tecnologias 
● Aprimoramento das técnicas de programação
Coding Dojo 
Dicas e experiências
Coding Dojo 
Dicas 
● Evite utilizar notebook pois dificulta a 
programação em par e o teclado pode ter um 
padrão que nem todos estão acostumados 
● Certifique que a imagem projetada está 
legível para a platéia, tanto na nitidez da 
imagem quanto no tamanho das fontes dos 
códigos
Coding Dojo 
Dicas 
● É sempre bom ter pelo menos uma pessoa 
experiente no assunto abordado no Dojo 
Randori 
● Se possível intercale pessoas experientes e 
inexperientes no Dojo Randori
Coding Dojo 
Dicas 
● Seguir a risca as regras de cada tipo de 
Dojo para ter um bom resultado 
● Caso um problema não tenha sido 
finalizado, só continue no próximo Dojo se 
os participantes forem os mesmos
Coding Dojo 
Dicas 
● Aproveite ao máximo, é a oportunidade de 
todos aprenderem e evoluirem juntos
Agenda 
● O que é o Dojo 
● Os principais tipos 
● Benefícios e Dicas 
● Dojo na Prática 
○ Dojo Kata 
○ Dojo Randori
Vamos programar!
Referências 
● Biografias 
○ http://www.psy.fsu.edu/faculty/ericsson.dp.html 
○ http://en.wikipedia.org/wiki/Dave_Thomas_ 
(programmer) 
● Mais informações sobre Dojo 
○ http://www.webgoal.com.br/coding-dojo/ 
○ Edição 62, Revista Mundo J
Referências 
● Sites com sugestões de problemas 
○ http://dojopuzzles.com/problemas 
○ http://dojorio.org/problemas/ 
○ http://apoie.org/Dojo.html

Contenu connexe

Tendances

Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
Diego Santos
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
Leonardo Fernandes
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Gabriel Rubens
 

Tendances (20)

Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
 
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Codding dojos
Codding dojosCodding dojos
Codding dojos
 
Coding Dojo #GuruPI
Coding Dojo #GuruPICoding Dojo #GuruPI
Coding Dojo #GuruPI
 
Apresentação Coding Dojo em 10 minutos
Apresentação Coding Dojo em 10 minutosApresentação Coding Dojo em 10 minutos
Apresentação Coding Dojo em 10 minutos
 
Dojo abril
Dojo abrilDojo abril
Dojo abril
 
Coding Dojo: uma abordagem teórica e prática
Coding Dojo: uma abordagem teórica e práticaCoding Dojo: uma abordagem teórica e prática
Coding Dojo: uma abordagem teórica e prática
 
DojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SCDojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SC
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
Palestra: Desafios do desenvolvedor no mercado de trabalho
Palestra: Desafios do desenvolvedor no mercado de trabalhoPalestra: Desafios do desenvolvedor no mercado de trabalho
Palestra: Desafios do desenvolvedor no mercado de trabalho
 
Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Coding dojo C# com NUnit
Coding dojo C# com NUnitCoding dojo C# com NUnit
Coding dojo C# com NUnit
 
Piadas de CSS e Javascript
Piadas de CSS e JavascriptPiadas de CSS e Javascript
Piadas de CSS e Javascript
 
Pós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding DojoPós Ruy - 2 e 3 Camadas - Coding Dojo
Pós Ruy - 2 e 3 Camadas - Coding Dojo
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 

En vedette (6)

Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDD
 
Tente Desenvolver Diferente com TDD - Agile Brazil 2011
Tente Desenvolver Diferente com TDD - Agile Brazil 2011Tente Desenvolver Diferente com TDD - Agile Brazil 2011
Tente Desenvolver Diferente com TDD - Agile Brazil 2011
 
Conhecimento é o fator mais importante para o sucesso de uma empresa
Conhecimento é o fator mais importante para o sucesso de uma empresaConhecimento é o fator mais importante para o sucesso de uma empresa
Conhecimento é o fator mais importante para o sucesso de uma empresa
 
Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho
 
O que é agilidade sob as lentes do kanban
O que é agilidade sob as lentes do kanbanO que é agilidade sob as lentes do kanban
O que é agilidade sob as lentes do kanban
 
Análise de Negócio e Requisitos Ágeis
Análise de Negócio e Requisitos ÁgeisAnálise de Negócio e Requisitos Ágeis
Análise de Negócio e Requisitos Ágeis
 

Similaire à Coding Dojo - Aprendendo a programar programando

Similaire à Coding Dojo - Aprendendo a programar programando (20)

Coding Dojo no PUG - PE
Coding Dojo no PUG - PECoding Dojo no PUG - PE
Coding Dojo no PUG - PE
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
Codding dojo - Apresentação
Codding dojo - ApresentaçãoCodding dojo - Apresentação
Codding dojo - Apresentação
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Coding Dojo - Unreal Engine
Coding Dojo - Unreal EngineCoding Dojo - Unreal Engine
Coding Dojo - Unreal Engine
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
DojoTuba 01
DojoTuba 01DojoTuba 01
DojoTuba 01
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Coding dojo
Coding dojo Coding dojo
Coding dojo
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 

Dernier

A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
andrenespoli3
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 

Dernier (20)

DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 

Coding Dojo - Aprendendo a programar programando

  • 1. Coding Dojo Aprendendo a programar programando
  • 2. Coding Dojo Aprendendo a programar programando
  • 4. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e dicas ● Dojo na Prática
  • 5. Agenda ● O que é o Dojo ○ Práticas essenciais ○ O que é? ○ Como surgiu? ● Os principais tipos ● Benefícios e Dicas ● Dojo na Prática
  • 7. Coding Dojo Práticas ● As práticas essenciais para fazer um Dojo foram baseadas em conceitos descritos pelas metodologias ágeis Scrum e Extreme Programming (XP) ○ Programação em par ○ Test Driven Development (TDD) ○ Design incremental ○ Reunião de Retrospectiva
  • 8. Programação em par Definição ● Um computador com duas pessoas programando ● Piloto: programador que fica com o teclado e é responsável em codificar a lógica ● Co-piloto: auxilia o piloto a conferir o código que está sendo escrito e como esse código pode afetar negativamente o restante da aplicação
  • 9.
  • 10. TDD Definição Desenvolvimento Dirigido por Testes (TDD) é a capacidade de produzir testes automatizados para código de produção, e usar este processo para dirigir o design e a programação. Para cada pequena funcionalidade no código de produção, você primeiro desenvolve um teste que especifica e valida o que o código deverá fazer. Você então produz somente o código necessário para permitir que o teste passe. Então você refatora (simplifica e clarifica) os códigos de produção e teste. fonte: Agile Alliance
  • 11. Classe TesteCalculadora função testar_soma testar se Calculadora.soma(1,2) igual 3 fim fim TDD Exemplo
  • 12. Classe TesteCalculadora função testar_soma testar se Calculadora.soma(1,2) igual 3 fim fim TDD Exemplo Classe Calculadora função soma(<num1>, <num2>) resultado = num1 + num2 retorna resultado fim fim
  • 13. Classe TesteCalculadora função testar_soma testar se Calculadora.soma(1,2) igual 3 fim fim TDD Exemplo Classe Calculadora função soma(<num1>, <num2>) retorna num1 + num2 fim fim Classe Calculadora função soma(<num1>, <num2>) resultado = num1 + num2 retorna resultado fim fim
  • 15. TDD Ciclo Criar teste Fazer teste passar
  • 16. TDD Ciclo Criar teste Fazer teste passar Refatorar
  • 17. Design incremental Definição ● Criar código aos poucos, para atender cada funcionalidade ● O TDD ajuda bastante a guiar essa prática, pois só haverá código para resolver se algum teste estiver falhando ● Evita ter códigos que não são utilizados
  • 18. Reunião de Retrospectiva Definição ● Uma reunião realizada ao fim de uma interação ● É elencado os pontos positivos e negativos observador pelos participantes ● E tem como objetivo extrair uma lista de ações de melhorias para as próximas interações
  • 19.
  • 20. Coding Dojo O que é?
  • 21. Coding Dojo ou Dojo, ambiente para treinar e aprimorar as práticas de programação
  • 22. Coding Dojo Definição ● A ideia é promover um ambiente ○ Seguro, onde todos se sintar à vontade em programar ○ Não competitivo, pois o objetivo é que todos pensem juntos de forma colaborativa ○ Inclusivo, programadores experientes e iniciantes devem ensinar e aprender juntos
  • 23. Coding Dojo Como surgiu?
  • 24. Coding Dojo Histórico ● O Psicólogo Dr. K. Anders Ericsson na década de 70 apresentou o conceito da Prática Deliberada ● Executar tarefas específicas repetitivamente até alcançar a excelência ● Teoria das 10 mil horas para se tornar um expert
  • 25. Coding Dojo Histórico ● Em 2003 o Programador Dave Thomas apresentou o conceito Code Kata ● Espaço onde os programadores pudesse exercitar a programação ● Inspirado em outras áreas, como na música que há um preparo antes da apresentação em público
  • 26. Coding Dojo Histórico ● Em 2004 Laurent Bossavit e Emmanuel Gaillot fundaram o primeiro Coding Dojo ● Embasados nas teorias de Ericsson e Thomas, a ideia foi criar um cenário diferente do cotidiano de um projeto, em um ambiente descontraído e colaborativo ● Ficou conhecido como Dojo Paris
  • 27. Agenda ● O que é o Dojo ● Os principais tipos ○ Dojo Kata ○ Dojo Randori ○ Dojo Kake ● Benefícios e Dicas ● Dojo na Prática
  • 30. Dojo Kata Características ● Formato indicado para introduzir novos conhecimento de programação ● Um apresentador com o domínio do conhecimento ● A plateia tem uma participação passiva
  • 32. Dojo Kata Como fazer ● Equipamentos ○ Um computador com o ambiente de programação configurado ○ Uma tela de projeção ou uma TV grande
  • 33. Dojo Kata Como fazer ● Moderador ○ Definir a melhor data e local ○ Divulgar o evento para o publico interessado ○ Preparar a infra-estrutura antes do início do Dojo ○ Organizar uma retrospectiva ao final do Dojo
  • 34. Dojo Kata Como fazer ● Apresentador ○ Pode ser uma dupla programando em par e alternando entre os ciclos do TDD ○ Definir um roteiro de como será apresentado ○ Explicar para a plateia cada passo apresentado
  • 35. Dojo Kata Como fazer ● Plateia ○ Não interage diretamente com o código desenvolvido ○ É livre para tirar dúvidas durante a apresentação
  • 37. Dojo Randori Características ● Formato indicado para praticar conhecimentos já aprendidos ● Todos participam ativamente na programação ● Há muita troca de conhecimento entre os participantes
  • 39. Dojo Randori Como fazer ● Equipamentos ○ Um computador com o ambiente de programação configurado ○ Uma tela de projeção ou uma TV grande ○ Uma lousa ou flip-chart
  • 40. Dojo Randori Como fazer ● Moderador ○ Preparar a infra-estrutura antes do início do Dojo ○ Definir o problema e a linguagem com os participantes ○ Escrever na lousa a lista dos participantes ○ Controlar o intervalo de troca da dupla ○ Organizar uma retrospectiva ao final do Dojo
  • 41. Dojo Randori Como fazer ● Piloto ○ Pessoa que está com o teclado programando ○ Deve seguir o ciclo de TDD ○ Explicar em voz alta cada passo executado para que a plateia entenda o raciocínio escolhido ○ Ao fim do ciclo o piloto volta para a plateia
  • 42. Dojo Randori Como fazer ● Co-piloto ○ Pessoa sentada em par ao lado do Piloto ○ Ajuda o Piloto na programação, com uma análise do código de forma ampla ○ Ajuda a explicar o que estão fazendo para a plateia ○ Ao fim do ciclo assume o posto de Piloto
  • 43. Dojo Randori Como fazer ● Plateia ○ Só pode falar quando os testes estiverem passando ou quando a dupla pedir ajuda ○ Ao fim do ciclo o próximo da lista assume o posto de Co-piloto
  • 45. Dojo Kake Características ● Formato indicado para programadores mais experientes ● Muita troca de experiências entre os participantes
  • 47. Dojo Kake Como fazer ● Equipamentos ○ Um computador com o ambiente de programação configurado por dupla
  • 48. Dojo Kake Como fazer ● Moderador ○ Definir o problema com os participantes ○ Controlar o intervalo de troca da dupla ○ Organizar uma retrospectiva ao final do Dojo
  • 49. Dojo Kake Como fazer ● Piloto ○ Pessoa que está com o teclado programando ○ Deve seguir o ciclo de TDD ○ Na primeira rodada escolhe junto com o Co-piloto a linguagem que irá utilizar ○ Ao fim do ciclo assume o Co-piloto em outra dupla
  • 50. Dojo Kake Como fazer ● Co-piloto ○ Pessoa sentada em par ao lado do Piloto ○ Ajuda o Piloto na programação, com uma análise do código de forma ampla ○ Ao fim do ciclo assume o posto de Piloto sem mudar de dupla
  • 51. Dojo Kake Como fazer ● Plateia ○ Não interage diretamente com o código desenvolvido ○ É livre para observar a programação de cada dupla
  • 52. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e Dicas ○ Benefícios ○ Dicas e experiências ● Dojo na Prática
  • 54. Coding Dojo Benefícios ● Aprendizado pela observação e pela ação ● Compartilhamento de conhecimento e colaboração na resolução de um problema ● Aprendizado de novas tecnologias ● Aprimoramento das técnicas de programação
  • 55. Coding Dojo Dicas e experiências
  • 56. Coding Dojo Dicas ● Evite utilizar notebook pois dificulta a programação em par e o teclado pode ter um padrão que nem todos estão acostumados ● Certifique que a imagem projetada está legível para a platéia, tanto na nitidez da imagem quanto no tamanho das fontes dos códigos
  • 57. Coding Dojo Dicas ● É sempre bom ter pelo menos uma pessoa experiente no assunto abordado no Dojo Randori ● Se possível intercale pessoas experientes e inexperientes no Dojo Randori
  • 58. Coding Dojo Dicas ● Seguir a risca as regras de cada tipo de Dojo para ter um bom resultado ● Caso um problema não tenha sido finalizado, só continue no próximo Dojo se os participantes forem os mesmos
  • 59. Coding Dojo Dicas ● Aproveite ao máximo, é a oportunidade de todos aprenderem e evoluirem juntos
  • 60. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e Dicas ● Dojo na Prática ○ Dojo Kata ○ Dojo Randori
  • 62. Referências ● Biografias ○ http://www.psy.fsu.edu/faculty/ericsson.dp.html ○ http://en.wikipedia.org/wiki/Dave_Thomas_ (programmer) ● Mais informações sobre Dojo ○ http://www.webgoal.com.br/coding-dojo/ ○ Edição 62, Revista Mundo J
  • 63. Referências ● Sites com sugestões de problemas ○ http://dojopuzzles.com/problemas ○ http://dojorio.org/problemas/ ○ http://apoie.org/Dojo.html