SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesPablo Bender
 
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...Adolfo Neto
 
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 minutosVinícius Barros
 
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áticaFernando Kenji Kamei
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosDiego Santos
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador PragmaticoLeonardo Fernandes
 
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 trabalhoJanynne Gomes
 
Coding dojo C# com NUnit
Coding dojo C# com NUnitCoding dojo C# com NUnit
Coding dojo C# com NUnitFabricio Panhan
 
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 DojoCleverson Sacramento
 
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-2013Gabriel Rubens
 

Mais procurados (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
 

Destaque

Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDDWebgoal
 
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 2011Webgoal
 
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 empresaWebgoal
 
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 Webgoal
 
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 kanbanRodrigo Yoshima
 
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 ÁgeisWebgoal
 

Destaque (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
 

Semelhante a Coding Dojo - Aprendendo a programar programando

Coding Dojo no PUG - PE
Coding Dojo no PUG - PECoding Dojo no PUG - PE
Coding Dojo no PUG - PEBrunno Gomes
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Codding dojo - Apresentação
Codding dojo - ApresentaçãoCodding dojo - Apresentação
Codding dojo - ApresentaçãoMarcus Costa
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Coding Dojo - Unreal Engine
Coding Dojo - Unreal EngineCoding Dojo - Unreal Engine
Coding Dojo - Unreal EngineAdolfo Neto
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
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 PHPDouglas V. Pasqua
 
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...Developer Academy
 

Semelhante a 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)
 

Último

Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Centro Jacques Delors
 
Caderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino MédioCaderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino Médiorafaeloliveirafelici
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfPastor Robson Colaço
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfLeandroTelesRocha2
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarckluanakranz
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxMariaSantos298247
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfBibliotecas Infante D. Henrique
 
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdf
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdfA NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdf
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdfmarcos oliveira
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédioifbauab
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxLuizHenriquedeAlmeid6
 
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdf
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdfdireito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdf
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdfLeandroTelesRocha2
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfrarakey779
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - FalamansaMary Alvarenga
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfRILTONNOGUEIRADOSSAN
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfLeandroTelesRocha2
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaComando Resgatai
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfLeandroTelesRocha2
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é precisoMary Alvarenga
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
Caderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino MédioCaderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino Médio
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarck
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdf
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdfA NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdf
A NEUROPEDAGOGIA NO PROCESSO DE ENCINAGEM.pdf
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
 
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdf
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdfdireito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdf
direito-administrativo-28c2aa-ed-2015-josc3a9-dos-santos-carvalho-filho.pdf
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 

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