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 
...
Coding Dojo 
Práticas essenciais
Coding Dojo 
Práticas 
● As práticas essenciais para fazer um Dojo foram 
baseadas em conceitos descritos pelas metodologi...
Programação em par 
Definição 
● Um computador com duas pessoas programando 
● Piloto: programador que fica com o teclado ...
TDD 
Definição 
Desenvolvimento Dirigido por Testes (TDD) é a capacidade de produzir 
testes automatizados para código de ...
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 Calcu...
Classe TesteCalculadora 
função testar_soma 
testar se Calculadora.soma(1,2) igual 3 
fim 
fim 
TDD 
Exemplo 
Classe Calcu...
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 guia...
Reunião de Retrospectiva 
Definição 
● Uma reunião realizada ao fim de uma interação 
● É elencado os pontos positivos e n...
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 co...
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 ...
Coding Dojo 
Histórico 
● Em 2003 o Programador Dave Thomas apresentou o 
conceito Code Kata 
● Espaço onde os programador...
Coding Dojo 
Histórico 
● Em 2004 Laurent Bossavit e Emmanuel Gaillot 
fundaram o primeiro Coding Dojo 
● Embasados nas te...
Agenda 
● O que é o Dojo 
● Os principais tipos 
○ Dojo Kata 
○ Dojo Randori 
○ Dojo Kake 
● Benefícios e Dicas 
● Dojo na...
Coding Dojo 
principais tipos
Dojo Kata
Dojo Kata 
Características 
● Formato indicado para introduzir novos 
conhecimento de programação 
● Um apresentador com o...
Dojo Kata
Dojo Kata 
Como fazer 
● Equipamentos 
○ Um computador com o ambiente de programação 
configurado 
○ Uma tela de projeção ...
Dojo Kata 
Como fazer 
● Moderador 
○ Definir a melhor data e local 
○ Divulgar o evento para o publico interessado 
○ Pre...
Dojo Kata 
Como fazer 
● Apresentador 
○ Pode ser uma dupla programando em par e 
alternando entre os ciclos do TDD 
○ Def...
Dojo Kata 
Como fazer 
● Plateia 
○ Não interage diretamente com o código 
desenvolvido 
○ É livre para tirar dúvidas dura...
Dojo Randori
Dojo Randori 
Características 
● Formato indicado para praticar 
conhecimentos já aprendidos 
● Todos participam ativament...
Dojo Randori
Dojo Randori 
Como fazer 
● Equipamentos 
○ Um computador com o ambiente de programação 
configurado 
○ Uma tela de projeç...
Dojo Randori 
Como fazer 
● Moderador 
○ Preparar a infra-estrutura antes do início do Dojo 
○ Definir o problema e a ling...
Dojo Randori 
Como fazer 
● Piloto 
○ Pessoa que está com o teclado programando 
○ Deve seguir o ciclo de TDD 
○ Explicar ...
Dojo Randori 
Como fazer 
● Co-piloto 
○ Pessoa sentada em par ao lado do Piloto 
○ Ajuda o Piloto na programação, com uma...
Dojo Randori 
Como fazer 
● Plateia 
○ Só pode falar quando os testes estiverem passando 
ou quando a dupla pedir ajuda 
○...
Dojo Kake
Dojo Kake 
Características 
● Formato indicado para programadores mais 
experientes 
● Muita troca de experiências entre o...
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 
...
Dojo Kake 
Como fazer 
● Piloto 
○ Pessoa que está com o teclado programando 
○ Deve seguir o ciclo de TDD 
○ Na primeira ...
Dojo Kake 
Como fazer 
● Co-piloto 
○ Pessoa sentada em par ao lado do Piloto 
○ Ajuda o Piloto na programação, com uma an...
Dojo Kake 
Como fazer 
● Plateia 
○ Não interage diretamente com o código 
desenvolvido 
○ É livre para observar a program...
Agenda 
● O que é o Dojo 
● Os principais tipos 
● Benefícios e Dicas 
○ Benefícios 
○ Dicas e experiências 
● Dojo na Prá...
Coding Dojo 
Benefícios
Coding Dojo 
Benefícios 
● Aprendizado pela observação e pela ação 
● Compartilhamento de conhecimento e colaboração na 
r...
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...
Coding Dojo 
Dicas 
● É sempre bom ter pelo menos uma pessoa 
experiente no assunto abordado no Dojo 
Randori 
● Se possív...
Coding Dojo 
Dicas 
● Seguir a risca as regras de cada tipo de 
Dojo para ter um bom resultado 
● Caso um problema não ten...
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_ ...
Referências 
● Sites com sugestões de problemas 
○ http://dojopuzzles.com/problemas 
○ http://dojorio.org/problemas/ 
○ ht...
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
Próximos SlideShares
Carregando em…5
×

Coding Dojo - Aprendendo a programar programando

971 visualizações

Publicada em

Saiba o que é o Dojo e como ele pode te ajudar no seu aprendizado.

Publicada em: Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
971
No SlideShare
0
A partir de incorporações
0
Número de incorporações
150
Ações
Compartilhamentos
0
Downloads
31
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Coding Dojo - Aprendendo a programar programando

  1. 1. Coding Dojo Aprendendo a programar programando
  2. 2. Coding Dojo Aprendendo a programar programando
  3. 3. Mauricio Matsuda mauricio@webgoal.com.br
  4. 4. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e dicas ● Dojo na Prática
  5. 5. Agenda ● O que é o Dojo ○ Práticas essenciais ○ O que é? ○ Como surgiu? ● Os principais tipos ● Benefícios e Dicas ● Dojo na Prática
  6. 6. Coding Dojo Práticas essenciais
  7. 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. 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. 9. 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
  10. 10. Classe TesteCalculadora função testar_soma testar se Calculadora.soma(1,2) igual 3 fim fim TDD Exemplo
  11. 11. 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
  12. 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>) retorna num1 + num2 fim fim Classe Calculadora função soma(<num1>, <num2>) resultado = num1 + num2 retorna resultado fim fim
  13. 13. TDD Ciclo Criar teste
  14. 14. TDD Ciclo Criar teste Fazer teste passar
  15. 15. TDD Ciclo Criar teste Fazer teste passar Refatorar
  16. 16. 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
  17. 17. 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
  18. 18. Coding Dojo O que é?
  19. 19. Coding Dojo ou Dojo, ambiente para treinar e aprimorar as práticas de programação
  20. 20. 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
  21. 21. Coding Dojo Como surgiu?
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Agenda ● O que é o Dojo ● Os principais tipos ○ Dojo Kata ○ Dojo Randori ○ Dojo Kake ● Benefícios e Dicas ● Dojo na Prática
  26. 26. Coding Dojo principais tipos
  27. 27. Dojo Kata
  28. 28. 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
  29. 29. Dojo Kata
  30. 30. Dojo Kata Como fazer ● Equipamentos ○ Um computador com o ambiente de programação configurado ○ Uma tela de projeção ou uma TV grande
  31. 31. 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
  32. 32. 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
  33. 33. Dojo Kata Como fazer ● Plateia ○ Não interage diretamente com o código desenvolvido ○ É livre para tirar dúvidas durante a apresentação
  34. 34. Dojo Randori
  35. 35. 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
  36. 36. Dojo Randori
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. Dojo Kake
  43. 43. Dojo Kake Características ● Formato indicado para programadores mais experientes ● Muita troca de experiências entre os participantes
  44. 44. Dojo Kake
  45. 45. Dojo Kake Como fazer ● Equipamentos ○ Um computador com o ambiente de programação configurado por dupla
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. Dojo Kake Como fazer ● Plateia ○ Não interage diretamente com o código desenvolvido ○ É livre para observar a programação de cada dupla
  50. 50. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e Dicas ○ Benefícios ○ Dicas e experiências ● Dojo na Prática
  51. 51. Coding Dojo Benefícios
  52. 52. 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
  53. 53. Coding Dojo Dicas e experiências
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. Coding Dojo Dicas ● Aproveite ao máximo, é a oportunidade de todos aprenderem e evoluirem juntos
  58. 58. Agenda ● O que é o Dojo ● Os principais tipos ● Benefícios e Dicas ● Dojo na Prática ○ Dojo Kata ○ Dojo Randori
  59. 59. Vamos programar!
  60. 60. 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
  61. 61. Referências ● Sites com sugestões de problemas ○ http://dojopuzzles.com/problemas ○ http://dojorio.org/problemas/ ○ http://apoie.org/Dojo.html

×